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,1716 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DockerEngine
4
+ module Models
5
+ # @see DockerEngine::Resources::Containers#create
6
+ class ContainerCreateParams < DockerEngine::Internal::Type::BaseModel
7
+ extend DockerEngine::Internal::Type::RequestParameters::Converter
8
+ include DockerEngine::Internal::Type::RequestParameters
9
+
10
+ # @!attribute config
11
+ # Configuration for a container that is portable between hosts.
12
+ #
13
+ # @return [DockerEngine::Models::ContainerCreateParams::Config]
14
+ required :config, -> { DockerEngine::ContainerCreateParams::Config }
15
+
16
+ # @!attribute name
17
+ # Assign the specified name to the container. Must match
18
+ # `/?[a-zA-Z0-9][a-zA-Z0-9_.-]+`.
19
+ #
20
+ # @return [String, nil]
21
+ optional :name, String
22
+
23
+ # @!attribute platform
24
+ # Platform in the format `os[/arch[/variant]]` used for image lookup.
25
+ #
26
+ # When specified, the daemon checks if the requested image is present in the local
27
+ # image cache with the given OS and Architecture, and otherwise returns a `404`
28
+ # status.
29
+ #
30
+ # If the option is not set, the host's native OS and Architecture are used to look
31
+ # up the image in the image cache. However, if no platform is passed and the given
32
+ # image does exist in the local image cache, but its OS or architecture does not
33
+ # match, the container is created with the available image, and a warning is added
34
+ # to the `Warnings` field in the response, for example;
35
+ #
36
+ # WARNING: The requested image's platform (linux/arm64/v8) does not
37
+ # match the detected host platform (linux/amd64) and no
38
+ # specific platform was requested
39
+ #
40
+ # @return [String, nil]
41
+ optional :platform, String
42
+
43
+ # @!method initialize(config:, name: nil, platform: nil, request_options: {})
44
+ # Some parameter documentations has been truncated, see
45
+ # {DockerEngine::Models::ContainerCreateParams} for more details.
46
+ #
47
+ # @param config [DockerEngine::Models::ContainerCreateParams::Config] Configuration for a container that is portable between hosts.
48
+ #
49
+ # @param name [String] Assign the specified name to the container. Must match
50
+ #
51
+ # @param platform [String] Platform in the format `os[/arch[/variant]]` used for image lookup.
52
+ #
53
+ # @param request_options [DockerEngine::RequestOptions, Hash{Symbol=>Object}]
54
+
55
+ class Config < DockerEngine::Models::Config
56
+ # @!attribute host_config
57
+ # Container configuration that depends on the host we are running on
58
+ #
59
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig, nil]
60
+ optional :host_config,
61
+ -> { DockerEngine::ContainerCreateParams::Config::HostConfig },
62
+ api_name: :HostConfig
63
+
64
+ # @!attribute networking_config
65
+ # NetworkingConfig represents the container's networking configuration for each of
66
+ # its interfaces. It is used for the networking configs specified in the
67
+ # `docker create` and `docker network connect` commands.
68
+ #
69
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig, nil]
70
+ optional :networking_config,
71
+ -> { DockerEngine::ContainerCreateParams::Config::NetworkingConfig },
72
+ api_name: :NetworkingConfig
73
+
74
+ # @!method initialize(host_config: nil, networking_config: nil)
75
+ # Some parameter documentations has been truncated, see
76
+ # {DockerEngine::Models::ContainerCreateParams::Config} for more details.
77
+ #
78
+ # Configuration for a container that is portable between hosts.
79
+ #
80
+ # @param host_config [DockerEngine::Models::ContainerCreateParams::Config::HostConfig] Container configuration that depends on the host we are running on
81
+ #
82
+ # @param networking_config [DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig] NetworkingConfig represents the container's networking configuration for
83
+
84
+ class HostConfig < DockerEngine::Internal::Type::BaseModel
85
+ # @!attribute annotations
86
+ # Arbitrary non-identifying metadata attached to container and provided to the
87
+ # runtime when the container is started.
88
+ #
89
+ # @return [Hash{Symbol=>String}, nil]
90
+ optional :annotations, DockerEngine::Internal::Type::HashOf[String], api_name: :Annotations
91
+
92
+ # @!attribute auto_remove
93
+ # Automatically remove the container when the container's process exits. This has
94
+ # no effect if `RestartPolicy` is set.
95
+ #
96
+ # @return [Boolean, nil]
97
+ optional :auto_remove, DockerEngine::Internal::Type::Boolean, api_name: :AutoRemove
98
+
99
+ # @!attribute binds
100
+ # A list of volume bindings for this container. Each volume binding is a string in
101
+ # one of these forms:
102
+ #
103
+ # - `host-src:container-dest[:options]` to bind-mount a host path into the
104
+ # container. Both `host-src`, and `container-dest` must be an _absolute_ path.
105
+ # - `volume-name:container-dest[:options]` to bind-mount a volume managed by a
106
+ # volume driver into the container. `container-dest` must be an _absolute_ path.
107
+ #
108
+ # `options` is an optional, comma-delimited list of:
109
+ #
110
+ # - `nocopy` disables automatic copying of data from the container path to the
111
+ # volume. The `nocopy` flag only applies to named volumes.
112
+ # - `[ro|rw]` mounts a volume read-only or read-write, respectively. If omitted or
113
+ # set to `rw`, volumes are mounted read-write.
114
+ # - `[z|Z]` applies SELinux labels to allow or deny multiple containers to read
115
+ # and write to the same volume.
116
+ # - `z`: a _shared_ content label is applied to the content. This label
117
+ # indicates that multiple containers can share the volume content, for both
118
+ # reading and writing.
119
+ # - `Z`: a _private unshared_ label is applied to the content. This label
120
+ # indicates that only the current container can use a private volume. Labeling
121
+ # systems such as SELinux require proper labels to be placed on volume content
122
+ # that is mounted into a container. Without a label, the security system can
123
+ # prevent a container's processes from using the content. By default, the
124
+ # labels set by the host operating system are not modified.
125
+ # - `[[r]shared|[r]slave|[r]private]` specifies mount
126
+ # [propagation behavior](https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt).
127
+ # This only applies to bind-mounted volumes, not internal volumes or named
128
+ # volumes. Mount propagation requires the source mount point (the location where
129
+ # the source directory is mounted in the host operating system) to have the
130
+ # correct propagation properties. For shared volumes, the source mount point
131
+ # must be set to `shared`. For slave volumes, the mount must be set to either
132
+ # `shared` or `slave`.
133
+ #
134
+ # @return [Array<String>, nil]
135
+ optional :binds, DockerEngine::Internal::Type::ArrayOf[String], api_name: :Binds
136
+
137
+ # @!attribute blkio_device_read_bps
138
+ # Limit read rate (bytes per second) from a device, in the form:
139
+ #
140
+ # ```
141
+ # [{"Path": "device_path", "Rate": rate}]
142
+ # ```
143
+ #
144
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceReadBp>, nil]
145
+ optional :blkio_device_read_bps,
146
+ -> {
147
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::BlkioDeviceReadBp]
148
+ },
149
+ api_name: :BlkioDeviceReadBps
150
+
151
+ # @!attribute blkio_device_read_i_ops
152
+ # Limit read rate (IO per second) from a device, in the form:
153
+ #
154
+ # ```
155
+ # [{"Path": "device_path", "Rate": rate}]
156
+ # ```
157
+ #
158
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceReadIOp>, nil]
159
+ optional :blkio_device_read_i_ops,
160
+ -> {
161
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::BlkioDeviceReadIOp]
162
+ },
163
+ api_name: :BlkioDeviceReadIOps
164
+
165
+ # @!attribute blkio_device_write_bps
166
+ # Limit write rate (bytes per second) to a device, in the form:
167
+ #
168
+ # ```
169
+ # [{"Path": "device_path", "Rate": rate}]
170
+ # ```
171
+ #
172
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceWriteBp>, nil]
173
+ optional :blkio_device_write_bps,
174
+ -> {
175
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::BlkioDeviceWriteBp]
176
+ },
177
+ api_name: :BlkioDeviceWriteBps
178
+
179
+ # @!attribute blkio_device_write_i_ops
180
+ # Limit write rate (IO per second) to a device, in the form:
181
+ #
182
+ # ```
183
+ # [{"Path": "device_path", "Rate": rate}]
184
+ # ```
185
+ #
186
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceWriteIOp>, nil]
187
+ optional :blkio_device_write_i_ops,
188
+ -> {
189
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::BlkioDeviceWriteIOp]
190
+ },
191
+ api_name: :BlkioDeviceWriteIOps
192
+
193
+ # @!attribute blkio_weight
194
+ # Block IO weight (relative weight).
195
+ #
196
+ # @return [Integer, nil]
197
+ optional :blkio_weight, Integer, api_name: :BlkioWeight
198
+
199
+ # @!attribute blkio_weight_device
200
+ # Block IO weight (relative device weight) in the form:
201
+ #
202
+ # ```
203
+ # [{"Path": "device_path", "Weight": weight}]
204
+ # ```
205
+ #
206
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioWeightDevice>, nil]
207
+ optional :blkio_weight_device,
208
+ -> {
209
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::BlkioWeightDevice]
210
+ },
211
+ api_name: :BlkioWeightDevice
212
+
213
+ # @!attribute cap_add
214
+ # A list of kernel capabilities to add to the container. Conflicts with option
215
+ # 'Capabilities'.
216
+ #
217
+ # @return [Array<String>, nil]
218
+ optional :cap_add, DockerEngine::Internal::Type::ArrayOf[String], api_name: :CapAdd
219
+
220
+ # @!attribute cap_drop
221
+ # A list of kernel capabilities to drop from the container. Conflicts with option
222
+ # 'Capabilities'.
223
+ #
224
+ # @return [Array<String>, nil]
225
+ optional :cap_drop, DockerEngine::Internal::Type::ArrayOf[String], api_name: :CapDrop
226
+
227
+ # @!attribute cgroup
228
+ # Cgroup to use for the container.
229
+ #
230
+ # @return [String, nil]
231
+ optional :cgroup, String, api_name: :Cgroup
232
+
233
+ # @!attribute cgroupns_mode
234
+ # cgroup namespace mode for the container. Possible values are:
235
+ #
236
+ # - `"private"`: the container runs in its own private cgroup namespace
237
+ # - `"host"`: use the host system's cgroup namespace
238
+ #
239
+ # If not specified, the daemon default is used, which can either be `"private"` or
240
+ # `"host"`, depending on daemon version, kernel support and configuration.
241
+ #
242
+ # @return [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::CgroupnsMode, nil]
243
+ optional :cgroupns_mode,
244
+ enum: -> { DockerEngine::ContainerCreateParams::Config::HostConfig::CgroupnsMode },
245
+ api_name: :CgroupnsMode
246
+
247
+ # @!attribute cgroup_parent
248
+ # Path to `cgroups` under which the container's `cgroup` is created. If the path
249
+ # is not absolute, the path is considered to be relative to the `cgroups` path of
250
+ # the init process. Cgroups are created if they do not already exist.
251
+ #
252
+ # @return [String, nil]
253
+ optional :cgroup_parent, String, api_name: :CgroupParent
254
+
255
+ # @!attribute console_size
256
+ # Initial console size, as an `[height, width]` array.
257
+ #
258
+ # @return [Array<Integer>, nil]
259
+ optional :console_size,
260
+ DockerEngine::Internal::Type::ArrayOf[Integer],
261
+ api_name: :ConsoleSize,
262
+ nil?: true
263
+
264
+ # @!attribute container_id_file
265
+ # Path to a file where the container ID is written
266
+ #
267
+ # @return [String, nil]
268
+ optional :container_id_file, String, api_name: :ContainerIDFile
269
+
270
+ # @!attribute cpu_count
271
+ # The number of usable CPUs (Windows only).
272
+ #
273
+ # On Windows Server containers, the processor resource controls are mutually
274
+ # exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and
275
+ # `CPUPercent` last.
276
+ #
277
+ # @return [Integer, nil]
278
+ optional :cpu_count, Integer, api_name: :CpuCount
279
+
280
+ # @!attribute cpu_percent
281
+ # The usable percentage of the available CPUs (Windows only).
282
+ #
283
+ # On Windows Server containers, the processor resource controls are mutually
284
+ # exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and
285
+ # `CPUPercent` last.
286
+ #
287
+ # @return [Integer, nil]
288
+ optional :cpu_percent, Integer, api_name: :CpuPercent
289
+
290
+ # @!attribute cpu_period
291
+ # The length of a CPU period in microseconds.
292
+ #
293
+ # @return [Integer, nil]
294
+ optional :cpu_period, Integer, api_name: :CpuPeriod
295
+
296
+ # @!attribute cpu_quota
297
+ # Microseconds of CPU time that the container can get in a CPU period.
298
+ #
299
+ # @return [Integer, nil]
300
+ optional :cpu_quota, Integer, api_name: :CpuQuota
301
+
302
+ # @!attribute cpu_realtime_period
303
+ # The length of a CPU real-time period in microseconds. Set to 0 to allocate no
304
+ # time allocated to real-time tasks.
305
+ #
306
+ # @return [Integer, nil]
307
+ optional :cpu_realtime_period, Integer, api_name: :CpuRealtimePeriod
308
+
309
+ # @!attribute cpu_realtime_runtime
310
+ # The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no
311
+ # time allocated to real-time tasks.
312
+ #
313
+ # @return [Integer, nil]
314
+ optional :cpu_realtime_runtime, Integer, api_name: :CpuRealtimeRuntime
315
+
316
+ # @!attribute cpuset_cpus
317
+ # CPUs in which to allow execution (e.g., `0-3`, `0,1`).
318
+ #
319
+ # @return [String, nil]
320
+ optional :cpuset_cpus, String, api_name: :CpusetCpus
321
+
322
+ # @!attribute cpuset_mems
323
+ # Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on
324
+ # NUMA systems.
325
+ #
326
+ # @return [String, nil]
327
+ optional :cpuset_mems, String, api_name: :CpusetMems
328
+
329
+ # @!attribute cpu_shares
330
+ # An integer value representing this container's relative CPU weight versus other
331
+ # containers.
332
+ #
333
+ # @return [Integer, nil]
334
+ optional :cpu_shares, Integer, api_name: :CpuShares
335
+
336
+ # @!attribute device_cgroup_rules
337
+ # a list of cgroup rules to apply to the container
338
+ #
339
+ # @return [Array<String>, nil]
340
+ optional :device_cgroup_rules,
341
+ DockerEngine::Internal::Type::ArrayOf[String],
342
+ api_name: :DeviceCgroupRules
343
+
344
+ # @!attribute device_requests
345
+ # A list of requests for devices to be sent to device drivers.
346
+ #
347
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::DeviceRequest>, nil]
348
+ optional :device_requests,
349
+ -> {
350
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::DeviceRequest]
351
+ },
352
+ api_name: :DeviceRequests
353
+
354
+ # @!attribute devices
355
+ # A list of devices to add to the container.
356
+ #
357
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Device>, nil]
358
+ optional :devices,
359
+ -> {
360
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::Device]
361
+ },
362
+ api_name: :Devices
363
+
364
+ # @!attribute dns
365
+ # A list of DNS servers for the container to use.
366
+ #
367
+ # @return [Array<String>, nil]
368
+ optional :dns, DockerEngine::Internal::Type::ArrayOf[String], api_name: :Dns
369
+
370
+ # @!attribute dns_options
371
+ # A list of DNS options.
372
+ #
373
+ # @return [Array<String>, nil]
374
+ optional :dns_options, DockerEngine::Internal::Type::ArrayOf[String], api_name: :DnsOptions
375
+
376
+ # @!attribute dns_search
377
+ # A list of DNS search domains.
378
+ #
379
+ # @return [Array<String>, nil]
380
+ optional :dns_search, DockerEngine::Internal::Type::ArrayOf[String], api_name: :DnsSearch
381
+
382
+ # @!attribute extra_hosts
383
+ # A list of hostnames/IP mappings to add to the container's `/etc/hosts` file.
384
+ # Specified in the form `["hostname:IP"]`.
385
+ #
386
+ # @return [Array<String>, nil]
387
+ optional :extra_hosts, DockerEngine::Internal::Type::ArrayOf[String], api_name: :ExtraHosts
388
+
389
+ # @!attribute group_add
390
+ # A list of additional groups that the container process will run as.
391
+ #
392
+ # @return [Array<String>, nil]
393
+ optional :group_add, DockerEngine::Internal::Type::ArrayOf[String], api_name: :GroupAdd
394
+
395
+ # @!attribute init
396
+ # Run an init inside the container that forwards signals and reaps processes. This
397
+ # field is omitted if empty, and the default (as configured on the daemon) is
398
+ # used.
399
+ #
400
+ # @return [Boolean, nil]
401
+ optional :init, DockerEngine::Internal::Type::Boolean, api_name: :Init, nil?: true
402
+
403
+ # @!attribute io_maximum_bandwidth
404
+ # Maximum IO in bytes per second for the container system drive (Windows only).
405
+ #
406
+ # @return [Integer, nil]
407
+ optional :io_maximum_bandwidth, Integer, api_name: :IOMaximumBandwidth
408
+
409
+ # @!attribute io_maximum_i_ops
410
+ # Maximum IOps for the container system drive (Windows only)
411
+ #
412
+ # @return [Integer, nil]
413
+ optional :io_maximum_i_ops, Integer, api_name: :IOMaximumIOps
414
+
415
+ # @!attribute ipc_mode
416
+ # IPC sharing mode for the container. Possible values are:
417
+ #
418
+ # - `"none"`: own private IPC namespace, with /dev/shm not mounted
419
+ # - `"private"`: own private IPC namespace
420
+ # - `"shareable"`: own private IPC namespace, with a possibility to share it with
421
+ # other containers
422
+ # - `"container:<name|id>"`: join another (shareable) container's IPC namespace
423
+ # - `"host"`: use the host system's IPC namespace
424
+ #
425
+ # If not specified, daemon default is used, which can either be `"private"` or
426
+ # `"shareable"`, depending on daemon version and configuration.
427
+ #
428
+ # @return [String, nil]
429
+ optional :ipc_mode, String, api_name: :IpcMode
430
+
431
+ # @!attribute isolation
432
+ # Isolation technology of the container. (Windows only)
433
+ #
434
+ # @return [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Isolation, nil]
435
+ optional :isolation,
436
+ enum: -> { DockerEngine::ContainerCreateParams::Config::HostConfig::Isolation },
437
+ api_name: :Isolation
438
+
439
+ # @!attribute links
440
+ # A list of links for the container in the form `container_name:alias`.
441
+ #
442
+ # @return [Array<String>, nil]
443
+ optional :links, DockerEngine::Internal::Type::ArrayOf[String], api_name: :Links
444
+
445
+ # @!attribute log_config
446
+ # The logging configuration for this container
447
+ #
448
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::LogConfig, nil]
449
+ optional :log_config,
450
+ -> { DockerEngine::ContainerCreateParams::Config::HostConfig::LogConfig },
451
+ api_name: :LogConfig
452
+
453
+ # @!attribute masked_paths
454
+ # The list of paths to be masked inside the container (this overrides the default
455
+ # set of paths).
456
+ #
457
+ # @return [Array<String>, nil]
458
+ optional :masked_paths, DockerEngine::Internal::Type::ArrayOf[String], api_name: :MaskedPaths
459
+
460
+ # @!attribute memory
461
+ # Memory limit in bytes.
462
+ #
463
+ # @return [Integer, nil]
464
+ optional :memory, Integer, api_name: :Memory
465
+
466
+ # @!attribute memory_reservation
467
+ # Memory soft limit in bytes.
468
+ #
469
+ # @return [Integer, nil]
470
+ optional :memory_reservation, Integer, api_name: :MemoryReservation
471
+
472
+ # @!attribute memory_swap
473
+ # Total memory limit (memory + swap). Set as `-1` to enable unlimited swap.
474
+ #
475
+ # @return [Integer, nil]
476
+ optional :memory_swap, Integer, api_name: :MemorySwap
477
+
478
+ # @!attribute memory_swappiness
479
+ # Tune a container's memory swappiness behavior. Accepts an integer between 0
480
+ # and 100.
481
+ #
482
+ # @return [Integer, nil]
483
+ optional :memory_swappiness, Integer, api_name: :MemorySwappiness
484
+
485
+ # @!attribute mounts
486
+ # Specification for mounts to be added to the container.
487
+ #
488
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount>, nil]
489
+ optional :mounts,
490
+ -> {
491
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::Mount]
492
+ },
493
+ api_name: :Mounts
494
+
495
+ # @!attribute nano_cpus
496
+ # CPU quota in units of 10<sup>-9</sup> CPUs.
497
+ #
498
+ # @return [Integer, nil]
499
+ optional :nano_cpus, Integer, api_name: :NanoCpus
500
+
501
+ # @!attribute network_mode
502
+ # Network mode to use for this container. Supported standard values are: `bridge`,
503
+ # `host`, `none`, and `container:<name|id>`. Any other value is taken as a custom
504
+ # network's name to which this container should connect to.
505
+ #
506
+ # @return [String, nil]
507
+ optional :network_mode, String, api_name: :NetworkMode
508
+
509
+ # @!attribute oom_kill_disable
510
+ # Disable OOM Killer for the container.
511
+ #
512
+ # @return [Boolean, nil]
513
+ optional :oom_kill_disable, DockerEngine::Internal::Type::Boolean, api_name: :OomKillDisable
514
+
515
+ # @!attribute oom_score_adj
516
+ # An integer value containing the score given to the container in order to tune
517
+ # OOM killer preferences.
518
+ #
519
+ # @return [Integer, nil]
520
+ optional :oom_score_adj, Integer, api_name: :OomScoreAdj
521
+
522
+ # @!attribute pid_mode
523
+ # Set the PID (Process) Namespace mode for the container. It can be either:
524
+ #
525
+ # - `"container:<name|id>"`: joins another container's PID namespace
526
+ # - `"host"`: use the host's PID namespace inside the container
527
+ #
528
+ # @return [String, nil]
529
+ optional :pid_mode, String, api_name: :PidMode
530
+
531
+ # @!attribute pids_limit
532
+ # Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null` to not
533
+ # change.
534
+ #
535
+ # @return [Integer, nil]
536
+ optional :pids_limit, Integer, api_name: :PidsLimit, nil?: true
537
+
538
+ # @!attribute port_bindings
539
+ # PortMap describes the mapping of container ports to host ports, using the
540
+ # container's port-number and protocol as key in the format `<port>/<protocol>`,
541
+ # for example, `80/udp`.
542
+ #
543
+ # If a container's port is mapped for multiple protocols, separate entries are
544
+ # added to the mapping table.
545
+ #
546
+ # @return [Hash{Symbol=>Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::PortBinding>}, nil]
547
+ optional :port_bindings,
548
+ -> do
549
+ DockerEngine::Internal::Type::HashOf[
550
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::PortBinding]
551
+ ]
552
+ end,
553
+ api_name: :PortBindings
554
+
555
+ # @!attribute privileged
556
+ # Gives the container full access to the host.
557
+ #
558
+ # @return [Boolean, nil]
559
+ optional :privileged, DockerEngine::Internal::Type::Boolean, api_name: :Privileged
560
+
561
+ # @!attribute publish_all_ports
562
+ # Allocates an ephemeral host port for all of a container's exposed ports.
563
+ #
564
+ # Ports are de-allocated when the container stops and allocated when the container
565
+ # starts. The allocated port might be changed when restarting the container.
566
+ #
567
+ # The port is selected from the ephemeral port range that depends on the kernel.
568
+ # For example, on Linux the range is defined by
569
+ # `/proc/sys/net/ipv4/ip_local_port_range`.
570
+ #
571
+ # @return [Boolean, nil]
572
+ optional :publish_all_ports, DockerEngine::Internal::Type::Boolean, api_name: :PublishAllPorts
573
+
574
+ # @!attribute readonly_paths
575
+ # The list of paths to be set as read-only inside the container (this overrides
576
+ # the default set of paths).
577
+ #
578
+ # @return [Array<String>, nil]
579
+ optional :readonly_paths, DockerEngine::Internal::Type::ArrayOf[String], api_name: :ReadonlyPaths
580
+
581
+ # @!attribute readonly_rootfs
582
+ # Mount the container's root filesystem as read only.
583
+ #
584
+ # @return [Boolean, nil]
585
+ optional :readonly_rootfs, DockerEngine::Internal::Type::Boolean, api_name: :ReadonlyRootfs
586
+
587
+ # @!attribute restart_policy
588
+ # The behavior to apply when the container exits. The default is not to restart.
589
+ #
590
+ # An ever increasing delay (double the previous delay, starting at 100ms) is added
591
+ # before each restart to prevent flooding the server.
592
+ #
593
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::RestartPolicy, nil]
594
+ optional :restart_policy,
595
+ -> { DockerEngine::ContainerCreateParams::Config::HostConfig::RestartPolicy },
596
+ api_name: :RestartPolicy
597
+
598
+ # @!attribute runtime
599
+ # Runtime to use with this container.
600
+ #
601
+ # @return [String, nil]
602
+ optional :runtime, String, api_name: :Runtime, nil?: true
603
+
604
+ # @!attribute security_opt
605
+ # A list of string values to customize labels for MLS systems, such as SELinux.
606
+ #
607
+ # @return [Array<String>, nil]
608
+ optional :security_opt, DockerEngine::Internal::Type::ArrayOf[String], api_name: :SecurityOpt
609
+
610
+ # @!attribute shm_size
611
+ # Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.
612
+ #
613
+ # @return [Integer, nil]
614
+ optional :shm_size, Integer, api_name: :ShmSize
615
+
616
+ # @!attribute storage_opt
617
+ # Storage driver options for this container, in the form `{"size": "120G"}`.
618
+ #
619
+ # @return [Hash{Symbol=>String}, nil]
620
+ optional :storage_opt, DockerEngine::Internal::Type::HashOf[String], api_name: :StorageOpt
621
+
622
+ # @!attribute sysctls
623
+ # A list of kernel parameters (sysctls) to set in the container.
624
+ #
625
+ # This field is omitted if not set.
626
+ #
627
+ # @return [Hash{Symbol=>String}, nil]
628
+ optional :sysctls, DockerEngine::Internal::Type::HashOf[String], api_name: :Sysctls, nil?: true
629
+
630
+ # @!attribute tmpfs
631
+ # A map of container directories which should be replaced by tmpfs mounts, and
632
+ # their corresponding mount options. For example:
633
+ #
634
+ # ```
635
+ # { "/run": "rw,noexec,nosuid,size=65536k" }
636
+ # ```
637
+ #
638
+ # @return [Hash{Symbol=>String}, nil]
639
+ optional :tmpfs, DockerEngine::Internal::Type::HashOf[String], api_name: :Tmpfs
640
+
641
+ # @!attribute ulimits
642
+ # A list of resource limits to set in the container. For example:
643
+ #
644
+ # ```
645
+ # {"Name": "nofile", "Soft": 1024, "Hard": 2048}
646
+ # ```
647
+ #
648
+ # @return [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Ulimit>, nil]
649
+ optional :ulimits,
650
+ -> {
651
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::ContainerCreateParams::Config::HostConfig::Ulimit]
652
+ },
653
+ api_name: :Ulimits
654
+
655
+ # @!attribute userns_mode
656
+ # Sets the usernamespace mode for the container when usernamespace remapping
657
+ # option is enabled.
658
+ #
659
+ # @return [String, nil]
660
+ optional :userns_mode, String, api_name: :UsernsMode
661
+
662
+ # @!attribute uts_mode
663
+ # UTS namespace to use for the container.
664
+ #
665
+ # @return [String, nil]
666
+ optional :uts_mode, String, api_name: :UTSMode
667
+
668
+ # @!attribute volume_driver
669
+ # Driver that this container uses to mount volumes.
670
+ #
671
+ # @return [String, nil]
672
+ optional :volume_driver, String, api_name: :VolumeDriver
673
+
674
+ # @!attribute volumes_from
675
+ # A list of volumes to inherit from another container, specified in the form
676
+ # `<container name>[:<ro|rw>]`.
677
+ #
678
+ # @return [Array<String>, nil]
679
+ optional :volumes_from, DockerEngine::Internal::Type::ArrayOf[String], api_name: :VolumesFrom
680
+
681
+ # @!method initialize(annotations: nil, auto_remove: nil, binds: nil, blkio_device_read_bps: nil, blkio_device_read_i_ops: nil, blkio_device_write_bps: nil, blkio_device_write_i_ops: nil, blkio_weight: nil, blkio_weight_device: nil, cap_add: nil, cap_drop: nil, cgroup: nil, cgroupns_mode: nil, cgroup_parent: nil, console_size: nil, container_id_file: nil, cpu_count: nil, cpu_percent: nil, cpu_period: nil, cpu_quota: nil, cpu_realtime_period: nil, cpu_realtime_runtime: nil, cpuset_cpus: nil, cpuset_mems: nil, cpu_shares: nil, device_cgroup_rules: nil, device_requests: nil, devices: nil, dns: nil, dns_options: nil, dns_search: nil, extra_hosts: nil, group_add: nil, init: nil, io_maximum_bandwidth: nil, io_maximum_i_ops: nil, ipc_mode: nil, isolation: nil, links: nil, log_config: nil, masked_paths: nil, memory: nil, memory_reservation: nil, memory_swap: nil, memory_swappiness: nil, mounts: nil, nano_cpus: nil, network_mode: nil, oom_kill_disable: nil, oom_score_adj: nil, pid_mode: nil, pids_limit: nil, port_bindings: nil, privileged: nil, publish_all_ports: nil, readonly_paths: nil, readonly_rootfs: nil, restart_policy: nil, runtime: nil, security_opt: nil, shm_size: nil, storage_opt: nil, sysctls: nil, tmpfs: nil, ulimits: nil, userns_mode: nil, uts_mode: nil, volume_driver: nil, volumes_from: nil)
682
+ # Some parameter documentations has been truncated, see
683
+ # {DockerEngine::Models::ContainerCreateParams::Config::HostConfig} for more
684
+ # details.
685
+ #
686
+ # Container configuration that depends on the host we are running on
687
+ #
688
+ # @param annotations [Hash{Symbol=>String}] Arbitrary non-identifying metadata attached to container and
689
+ #
690
+ # @param auto_remove [Boolean] Automatically remove the container when the container's process
691
+ #
692
+ # @param binds [Array<String>] A list of volume bindings for this container. Each volume binding
693
+ #
694
+ # @param blkio_device_read_bps [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceReadBp>] Limit read rate (bytes per second) from a device, in the form:
695
+ #
696
+ # @param blkio_device_read_i_ops [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceReadIOp>] Limit read rate (IO per second) from a device, in the form:
697
+ #
698
+ # @param blkio_device_write_bps [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceWriteBp>] Limit write rate (bytes per second) to a device, in the form:
699
+ #
700
+ # @param blkio_device_write_i_ops [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioDeviceWriteIOp>] Limit write rate (IO per second) to a device, in the form:
701
+ #
702
+ # @param blkio_weight [Integer] Block IO weight (relative weight).
703
+ #
704
+ # @param blkio_weight_device [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::BlkioWeightDevice>] Block IO weight (relative device weight) in the form:
705
+ #
706
+ # @param cap_add [Array<String>] A list of kernel capabilities to add to the container. Conflicts
707
+ #
708
+ # @param cap_drop [Array<String>] A list of kernel capabilities to drop from the container. Conflicts
709
+ #
710
+ # @param cgroup [String] Cgroup to use for the container.
711
+ #
712
+ # @param cgroupns_mode [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::CgroupnsMode] cgroup namespace mode for the container. Possible values are:
713
+ #
714
+ # @param cgroup_parent [String] Path to `cgroups` under which the container's `cgroup` is created. If
715
+ #
716
+ # @param console_size [Array<Integer>, nil] Initial console size, as an `[height, width]` array.
717
+ #
718
+ # @param container_id_file [String] Path to a file where the container ID is written
719
+ #
720
+ # @param cpu_count [Integer] The number of usable CPUs (Windows only).
721
+ #
722
+ # @param cpu_percent [Integer] The usable percentage of the available CPUs (Windows only).
723
+ #
724
+ # @param cpu_period [Integer] The length of a CPU period in microseconds.
725
+ #
726
+ # @param cpu_quota [Integer] Microseconds of CPU time that the container can get in a CPU period.
727
+ #
728
+ # @param cpu_realtime_period [Integer] The length of a CPU real-time period in microseconds. Set to 0 to
729
+ #
730
+ # @param cpu_realtime_runtime [Integer] The length of a CPU real-time runtime in microseconds. Set to 0 to
731
+ #
732
+ # @param cpuset_cpus [String] CPUs in which to allow execution (e.g., `0-3`, `0,1`).
733
+ #
734
+ # @param cpuset_mems [String] Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only
735
+ #
736
+ # @param cpu_shares [Integer] An integer value representing this container's relative CPU weight
737
+ #
738
+ # @param device_cgroup_rules [Array<String>] a list of cgroup rules to apply to the container
739
+ #
740
+ # @param device_requests [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::DeviceRequest>] A list of requests for devices to be sent to device drivers.
741
+ #
742
+ # @param devices [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Device>] A list of devices to add to the container.
743
+ #
744
+ # @param dns [Array<String>] A list of DNS servers for the container to use.
745
+ #
746
+ # @param dns_options [Array<String>] A list of DNS options.
747
+ #
748
+ # @param dns_search [Array<String>] A list of DNS search domains.
749
+ #
750
+ # @param extra_hosts [Array<String>] A list of hostnames/IP mappings to add to the container's `/etc/hosts`
751
+ #
752
+ # @param group_add [Array<String>] A list of additional groups that the container process will run as.
753
+ #
754
+ # @param init [Boolean, nil] Run an init inside the container that forwards signals and reaps
755
+ #
756
+ # @param io_maximum_bandwidth [Integer] Maximum IO in bytes per second for the container system drive
757
+ #
758
+ # @param io_maximum_i_ops [Integer] Maximum IOps for the container system drive (Windows only)
759
+ #
760
+ # @param ipc_mode [String] IPC sharing mode for the container. Possible values are:
761
+ #
762
+ # @param isolation [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Isolation] Isolation technology of the container. (Windows only)
763
+ #
764
+ # @param links [Array<String>] A list of links for the container in the form `container_name:alias`.
765
+ #
766
+ # @param log_config [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::LogConfig] The logging configuration for this container
767
+ #
768
+ # @param masked_paths [Array<String>] The list of paths to be masked inside the container (this overrides
769
+ #
770
+ # @param memory [Integer] Memory limit in bytes.
771
+ #
772
+ # @param memory_reservation [Integer] Memory soft limit in bytes.
773
+ #
774
+ # @param memory_swap [Integer] Total memory limit (memory + swap). Set as `-1` to enable unlimited
775
+ #
776
+ # @param memory_swappiness [Integer] Tune a container's memory swappiness behavior. Accepts an integer
777
+ #
778
+ # @param mounts [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount>] Specification for mounts to be added to the container.
779
+ #
780
+ # @param nano_cpus [Integer] CPU quota in units of 10<sup>-9</sup> CPUs.
781
+ #
782
+ # @param network_mode [String] Network mode to use for this container. Supported standard values
783
+ #
784
+ # @param oom_kill_disable [Boolean] Disable OOM Killer for the container.
785
+ #
786
+ # @param oom_score_adj [Integer] An integer value containing the score given to the container in
787
+ #
788
+ # @param pid_mode [String] Set the PID (Process) Namespace mode for the container. It can be
789
+ #
790
+ # @param pids_limit [Integer, nil] Tune a container's PIDs limit. Set `0` or `-1` for unlimited, or `null`
791
+ #
792
+ # @param port_bindings [Hash{Symbol=>Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::PortBinding>}] PortMap describes the mapping of container ports to host ports, using the
793
+ #
794
+ # @param privileged [Boolean] Gives the container full access to the host.
795
+ #
796
+ # @param publish_all_ports [Boolean] Allocates an ephemeral host port for all of a container's
797
+ #
798
+ # @param readonly_paths [Array<String>] The list of paths to be set as read-only inside the container
799
+ #
800
+ # @param readonly_rootfs [Boolean] Mount the container's root filesystem as read only.
801
+ #
802
+ # @param restart_policy [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::RestartPolicy] The behavior to apply when the container exits. The default is not to
803
+ #
804
+ # @param runtime [String, nil] Runtime to use with this container.
805
+ #
806
+ # @param security_opt [Array<String>] A list of string values to customize labels for MLS systems, such
807
+ #
808
+ # @param shm_size [Integer] Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.
809
+ #
810
+ # @param storage_opt [Hash{Symbol=>String}] Storage driver options for this container, in the form `{"size": "120G"}`.
811
+ #
812
+ # @param sysctls [Hash{Symbol=>String}, nil] A list of kernel parameters (sysctls) to set in the container.
813
+ #
814
+ # @param tmpfs [Hash{Symbol=>String}] A map of container directories which should be replaced by tmpfs
815
+ #
816
+ # @param ulimits [Array<DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Ulimit>] A list of resource limits to set in the container. For example:
817
+ #
818
+ # @param userns_mode [String] Sets the usernamespace mode for the container when usernamespace
819
+ #
820
+ # @param uts_mode [String] UTS namespace to use for the container.
821
+ #
822
+ # @param volume_driver [String] Driver that this container uses to mount volumes.
823
+ #
824
+ # @param volumes_from [Array<String>] A list of volumes to inherit from another container, specified in
825
+
826
+ class BlkioDeviceReadBp < DockerEngine::Internal::Type::BaseModel
827
+ # @!attribute path
828
+ # Device path
829
+ #
830
+ # @return [String, nil]
831
+ optional :path, String, api_name: :Path
832
+
833
+ # @!attribute rate
834
+ # Rate
835
+ #
836
+ # @return [Integer, nil]
837
+ optional :rate, Integer, api_name: :Rate
838
+
839
+ # @!method initialize(path: nil, rate: nil)
840
+ # @param path [String] Device path
841
+ #
842
+ # @param rate [Integer] Rate
843
+ end
844
+
845
+ class BlkioDeviceReadIOp < DockerEngine::Internal::Type::BaseModel
846
+ # @!attribute path
847
+ # Device path
848
+ #
849
+ # @return [String, nil]
850
+ optional :path, String, api_name: :Path
851
+
852
+ # @!attribute rate
853
+ # Rate
854
+ #
855
+ # @return [Integer, nil]
856
+ optional :rate, Integer, api_name: :Rate
857
+
858
+ # @!method initialize(path: nil, rate: nil)
859
+ # @param path [String] Device path
860
+ #
861
+ # @param rate [Integer] Rate
862
+ end
863
+
864
+ class BlkioDeviceWriteBp < DockerEngine::Internal::Type::BaseModel
865
+ # @!attribute path
866
+ # Device path
867
+ #
868
+ # @return [String, nil]
869
+ optional :path, String, api_name: :Path
870
+
871
+ # @!attribute rate
872
+ # Rate
873
+ #
874
+ # @return [Integer, nil]
875
+ optional :rate, Integer, api_name: :Rate
876
+
877
+ # @!method initialize(path: nil, rate: nil)
878
+ # @param path [String] Device path
879
+ #
880
+ # @param rate [Integer] Rate
881
+ end
882
+
883
+ class BlkioDeviceWriteIOp < DockerEngine::Internal::Type::BaseModel
884
+ # @!attribute path
885
+ # Device path
886
+ #
887
+ # @return [String, nil]
888
+ optional :path, String, api_name: :Path
889
+
890
+ # @!attribute rate
891
+ # Rate
892
+ #
893
+ # @return [Integer, nil]
894
+ optional :rate, Integer, api_name: :Rate
895
+
896
+ # @!method initialize(path: nil, rate: nil)
897
+ # @param path [String] Device path
898
+ #
899
+ # @param rate [Integer] Rate
900
+ end
901
+
902
+ class BlkioWeightDevice < DockerEngine::Internal::Type::BaseModel
903
+ # @!attribute path
904
+ #
905
+ # @return [String, nil]
906
+ optional :path, String, api_name: :Path
907
+
908
+ # @!attribute weight
909
+ #
910
+ # @return [Integer, nil]
911
+ optional :weight, Integer, api_name: :Weight
912
+
913
+ # @!method initialize(path: nil, weight: nil)
914
+ # @param path [String]
915
+ # @param weight [Integer]
916
+ end
917
+
918
+ # cgroup namespace mode for the container. Possible values are:
919
+ #
920
+ # - `"private"`: the container runs in its own private cgroup namespace
921
+ # - `"host"`: use the host system's cgroup namespace
922
+ #
923
+ # If not specified, the daemon default is used, which can either be `"private"` or
924
+ # `"host"`, depending on daemon version, kernel support and configuration.
925
+ #
926
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig#cgroupns_mode
927
+ module CgroupnsMode
928
+ extend DockerEngine::Internal::Type::Enum
929
+
930
+ PRIVATE = :private
931
+ HOST = :host
932
+
933
+ # @!method self.values
934
+ # @return [Array<Symbol>]
935
+ end
936
+
937
+ class DeviceRequest < DockerEngine::Internal::Type::BaseModel
938
+ # @!attribute capabilities
939
+ # A list of capabilities; an OR list of AND lists of capabilities.
940
+ #
941
+ # Note that if a driver is specified the capabilities have no effect on selecting
942
+ # a driver as the driver name is used directly.
943
+ #
944
+ # Note that if no driver is specified the capabilities are used to select a driver
945
+ # with the required capabilities.
946
+ #
947
+ # @return [Array<Array<String>>, nil]
948
+ optional :capabilities,
949
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::Internal::Type::ArrayOf[String]],
950
+ api_name: :Capabilities
951
+
952
+ # @!attribute count
953
+ #
954
+ # @return [Integer, nil]
955
+ optional :count, Integer, api_name: :Count
956
+
957
+ # @!attribute device_ids
958
+ #
959
+ # @return [Array<String>, nil]
960
+ optional :device_ids, DockerEngine::Internal::Type::ArrayOf[String], api_name: :DeviceIDs
961
+
962
+ # @!attribute driver
963
+ # The name of the device driver to use for this request.
964
+ #
965
+ # Note that if this is specified the capabilities are ignored when selecting a
966
+ # device driver.
967
+ #
968
+ # @return [String, nil]
969
+ optional :driver, String, api_name: :Driver
970
+
971
+ # @!attribute options
972
+ # Driver-specific options, specified as a key/value pairs. These options are
973
+ # passed directly to the driver.
974
+ #
975
+ # @return [Hash{Symbol=>String}, nil]
976
+ optional :options, DockerEngine::Internal::Type::HashOf[String], api_name: :Options
977
+
978
+ # @!method initialize(capabilities: nil, count: nil, device_ids: nil, driver: nil, options: nil)
979
+ # Some parameter documentations has been truncated, see
980
+ # {DockerEngine::Models::ContainerCreateParams::Config::HostConfig::DeviceRequest}
981
+ # for more details.
982
+ #
983
+ # A request for devices to be sent to device drivers
984
+ #
985
+ # @param capabilities [Array<Array<String>>] A list of capabilities; an OR list of AND lists of capabilities.
986
+ #
987
+ # @param count [Integer]
988
+ #
989
+ # @param device_ids [Array<String>]
990
+ #
991
+ # @param driver [String] The name of the device driver to use for this request.
992
+ #
993
+ # @param options [Hash{Symbol=>String}] Driver-specific options, specified as a key/value pairs. These options
994
+ end
995
+
996
+ class Device < DockerEngine::Internal::Type::BaseModel
997
+ # @!attribute cgroup_permissions
998
+ #
999
+ # @return [String, nil]
1000
+ optional :cgroup_permissions, String, api_name: :CgroupPermissions
1001
+
1002
+ # @!attribute path_in_container
1003
+ #
1004
+ # @return [String, nil]
1005
+ optional :path_in_container, String, api_name: :PathInContainer
1006
+
1007
+ # @!attribute path_on_host
1008
+ #
1009
+ # @return [String, nil]
1010
+ optional :path_on_host, String, api_name: :PathOnHost
1011
+
1012
+ # @!method initialize(cgroup_permissions: nil, path_in_container: nil, path_on_host: nil)
1013
+ # A device mapping between the host and container
1014
+ #
1015
+ # @param cgroup_permissions [String]
1016
+ # @param path_in_container [String]
1017
+ # @param path_on_host [String]
1018
+ end
1019
+
1020
+ # Isolation technology of the container. (Windows only)
1021
+ #
1022
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig#isolation
1023
+ module Isolation
1024
+ extend DockerEngine::Internal::Type::Enum
1025
+
1026
+ DEFAULT = :default
1027
+ PROCESS = :process
1028
+ HYPERV = :hyperv
1029
+ EMPTY = :""
1030
+
1031
+ # @!method self.values
1032
+ # @return [Array<Symbol>]
1033
+ end
1034
+
1035
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig#log_config
1036
+ class LogConfig < DockerEngine::Internal::Type::BaseModel
1037
+ # @!attribute config
1038
+ # Driver-specific configuration options for the logging driver.
1039
+ #
1040
+ # @return [Hash{Symbol=>String}, nil]
1041
+ optional :config, DockerEngine::Internal::Type::HashOf[String], api_name: :Config
1042
+
1043
+ # @!attribute type
1044
+ # Name of the logging driver used for the container or "none" if logging is
1045
+ # disabled.
1046
+ #
1047
+ # @return [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::LogConfig::Type, nil]
1048
+ optional :type,
1049
+ enum: -> { DockerEngine::ContainerCreateParams::Config::HostConfig::LogConfig::Type },
1050
+ api_name: :Type
1051
+
1052
+ # @!method initialize(config: nil, type: nil)
1053
+ # Some parameter documentations has been truncated, see
1054
+ # {DockerEngine::Models::ContainerCreateParams::Config::HostConfig::LogConfig} for
1055
+ # more details.
1056
+ #
1057
+ # The logging configuration for this container
1058
+ #
1059
+ # @param config [Hash{Symbol=>String}] Driver-specific configuration options for the logging driver.
1060
+ #
1061
+ # @param type [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::LogConfig::Type] Name of the logging driver used for the container or "none"
1062
+
1063
+ # Name of the logging driver used for the container or "none" if logging is
1064
+ # disabled.
1065
+ #
1066
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::LogConfig#type
1067
+ module Type
1068
+ extend DockerEngine::Internal::Type::Enum
1069
+
1070
+ LOCAL = :local
1071
+ JSON_FILE = :"json-file"
1072
+ SYSLOG = :syslog
1073
+ JOURNALD = :journald
1074
+ GELF = :gelf
1075
+ FLUENTD = :fluentd
1076
+ AWSLOGS = :awslogs
1077
+ SPLUNK = :splunk
1078
+ ETWLOGS = :etwlogs
1079
+ NONE = :none
1080
+
1081
+ # @!method self.values
1082
+ # @return [Array<Symbol>]
1083
+ end
1084
+ end
1085
+
1086
+ class Mount < DockerEngine::Internal::Type::BaseModel
1087
+ # @!attribute bind_options
1088
+ # Optional configuration for the `bind` type.
1089
+ #
1090
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::BindOptions, nil]
1091
+ optional :bind_options,
1092
+ -> { DockerEngine::ContainerCreateParams::Config::HostConfig::Mount::BindOptions },
1093
+ api_name: :BindOptions
1094
+
1095
+ # @!attribute consistency
1096
+ # The consistency requirement for the mount: `default`, `consistent`, `cached`, or
1097
+ # `delegated`.
1098
+ #
1099
+ # @return [String, nil]
1100
+ optional :consistency, String, api_name: :Consistency
1101
+
1102
+ # @!attribute image_options
1103
+ # Optional configuration for the `image` type.
1104
+ #
1105
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::ImageOptions, nil]
1106
+ optional :image_options,
1107
+ -> { DockerEngine::ContainerCreateParams::Config::HostConfig::Mount::ImageOptions },
1108
+ api_name: :ImageOptions
1109
+
1110
+ # @!attribute read_only
1111
+ # Whether the mount should be read-only.
1112
+ #
1113
+ # @return [Boolean, nil]
1114
+ optional :read_only, DockerEngine::Internal::Type::Boolean, api_name: :ReadOnly
1115
+
1116
+ # @!attribute source
1117
+ # Mount source (e.g. a volume name, a host path). The source cannot be specified
1118
+ # when using `Type=tmpfs`. For `Type=bind`, the source path must either exist, or
1119
+ # the `CreateMountpoint` must be set to `true` to create the source path on the
1120
+ # host if missing.
1121
+ #
1122
+ # For `Type=npipe`, the pipe must exist prior to creating the container.
1123
+ #
1124
+ # @return [String, nil]
1125
+ optional :source, String, api_name: :Source
1126
+
1127
+ # @!attribute target
1128
+ # Container path.
1129
+ #
1130
+ # @return [String, nil]
1131
+ optional :target, String, api_name: :Target
1132
+
1133
+ # @!attribute tmpfs_options
1134
+ # Optional configuration for the `tmpfs` type.
1135
+ #
1136
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::TmpfsOptions, nil]
1137
+ optional :tmpfs_options,
1138
+ -> { DockerEngine::ContainerCreateParams::Config::HostConfig::Mount::TmpfsOptions },
1139
+ api_name: :TmpfsOptions
1140
+
1141
+ # @!attribute type
1142
+ # The mount type. Available types:
1143
+ #
1144
+ # - `bind` a mount of a file or directory from the host into the container.
1145
+ # - `cluster` a Swarm cluster volume.
1146
+ # - `image` an OCI image.
1147
+ # - `npipe` a named pipe from the host into the container.
1148
+ # - `tmpfs` a `tmpfs`.
1149
+ # - `volume` a docker volume with the given `Name`.
1150
+ #
1151
+ # @return [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::Type, nil]
1152
+ optional :type,
1153
+ enum: -> { DockerEngine::ContainerCreateParams::Config::HostConfig::Mount::Type },
1154
+ api_name: :Type
1155
+
1156
+ # @!attribute volume_options
1157
+ # Optional configuration for the `volume` type.
1158
+ #
1159
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::VolumeOptions, nil]
1160
+ optional :volume_options,
1161
+ -> { DockerEngine::ContainerCreateParams::Config::HostConfig::Mount::VolumeOptions },
1162
+ api_name: :VolumeOptions
1163
+
1164
+ # @!method initialize(bind_options: nil, consistency: nil, image_options: nil, read_only: nil, source: nil, target: nil, tmpfs_options: nil, type: nil, volume_options: nil)
1165
+ # Some parameter documentations has been truncated, see
1166
+ # {DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount} for
1167
+ # more details.
1168
+ #
1169
+ # @param bind_options [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::BindOptions] Optional configuration for the `bind` type.
1170
+ #
1171
+ # @param consistency [String] The consistency requirement for the mount: `default`, `consistent`, `cached`, or
1172
+ #
1173
+ # @param image_options [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::ImageOptions] Optional configuration for the `image` type.
1174
+ #
1175
+ # @param read_only [Boolean] Whether the mount should be read-only.
1176
+ #
1177
+ # @param source [String] Mount source (e.g. a volume name, a host path). The source cannot be
1178
+ #
1179
+ # @param target [String] Container path.
1180
+ #
1181
+ # @param tmpfs_options [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::TmpfsOptions] Optional configuration for the `tmpfs` type.
1182
+ #
1183
+ # @param type [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::Type] The mount type. Available types:
1184
+ #
1185
+ # @param volume_options [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::VolumeOptions] Optional configuration for the `volume` type.
1186
+
1187
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount#bind_options
1188
+ class BindOptions < DockerEngine::Internal::Type::BaseModel
1189
+ # @!attribute create_mountpoint
1190
+ # Create mount point on host if missing
1191
+ #
1192
+ # @return [Boolean, nil]
1193
+ optional :create_mountpoint, DockerEngine::Internal::Type::Boolean, api_name: :CreateMountpoint
1194
+
1195
+ # @!attribute non_recursive
1196
+ # Disable recursive bind mount.
1197
+ #
1198
+ # @return [Boolean, nil]
1199
+ optional :non_recursive, DockerEngine::Internal::Type::Boolean, api_name: :NonRecursive
1200
+
1201
+ # @!attribute propagation
1202
+ # A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.
1203
+ #
1204
+ # @return [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::BindOptions::Propagation, nil]
1205
+ optional :propagation,
1206
+ enum: -> {
1207
+ DockerEngine::ContainerCreateParams::Config::HostConfig::Mount::BindOptions::Propagation
1208
+ },
1209
+ api_name: :Propagation
1210
+
1211
+ # @!attribute read_only_force_recursive
1212
+ # Raise an error if the mount cannot be made recursively read-only.
1213
+ #
1214
+ # @return [Boolean, nil]
1215
+ optional :read_only_force_recursive,
1216
+ DockerEngine::Internal::Type::Boolean,
1217
+ api_name: :ReadOnlyForceRecursive
1218
+
1219
+ # @!attribute read_only_non_recursive
1220
+ # Make the mount non-recursively read-only, but still leave the mount recursive
1221
+ # (unless NonRecursive is set to `true` in conjunction).
1222
+ #
1223
+ # Added in v1.44, before that version all read-only mounts were non-recursive by
1224
+ # default. To match the previous behaviour this will default to `true` for clients
1225
+ # on versions prior to v1.44.
1226
+ #
1227
+ # @return [Boolean, nil]
1228
+ optional :read_only_non_recursive,
1229
+ DockerEngine::Internal::Type::Boolean,
1230
+ api_name: :ReadOnlyNonRecursive
1231
+
1232
+ # @!method initialize(create_mountpoint: nil, non_recursive: nil, propagation: nil, read_only_force_recursive: nil, read_only_non_recursive: nil)
1233
+ # Some parameter documentations has been truncated, see
1234
+ # {DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::BindOptions}
1235
+ # for more details.
1236
+ #
1237
+ # Optional configuration for the `bind` type.
1238
+ #
1239
+ # @param create_mountpoint [Boolean] Create mount point on host if missing
1240
+ #
1241
+ # @param non_recursive [Boolean] Disable recursive bind mount.
1242
+ #
1243
+ # @param propagation [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::BindOptions::Propagation] A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.
1244
+ #
1245
+ # @param read_only_force_recursive [Boolean] Raise an error if the mount cannot be made recursively read-only.
1246
+ #
1247
+ # @param read_only_non_recursive [Boolean] Make the mount non-recursively read-only, but still leave the mount recursive
1248
+
1249
+ # A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.
1250
+ #
1251
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::BindOptions#propagation
1252
+ module Propagation
1253
+ extend DockerEngine::Internal::Type::Enum
1254
+
1255
+ PRIVATE = :private
1256
+ RPRIVATE = :rprivate
1257
+ SHARED = :shared
1258
+ RSHARED = :rshared
1259
+ SLAVE = :slave
1260
+ RSLAVE = :rslave
1261
+
1262
+ # @!method self.values
1263
+ # @return [Array<Symbol>]
1264
+ end
1265
+ end
1266
+
1267
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount#image_options
1268
+ class ImageOptions < DockerEngine::Internal::Type::BaseModel
1269
+ # @!attribute subpath
1270
+ # Source path inside the image. Must be relative without any back traversals.
1271
+ #
1272
+ # @return [String, nil]
1273
+ optional :subpath, String, api_name: :Subpath
1274
+
1275
+ # @!method initialize(subpath: nil)
1276
+ # Optional configuration for the `image` type.
1277
+ #
1278
+ # @param subpath [String] Source path inside the image. Must be relative without any back traversals.
1279
+ end
1280
+
1281
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount#tmpfs_options
1282
+ class TmpfsOptions < DockerEngine::Internal::Type::BaseModel
1283
+ # @!attribute mode
1284
+ # The permission mode for the tmpfs mount in an integer. The value must not be in
1285
+ # octal format (e.g. 755) but rather the decimal representation of the octal value
1286
+ # (e.g. 493).
1287
+ #
1288
+ # @return [Integer, nil]
1289
+ optional :mode, Integer, api_name: :Mode
1290
+
1291
+ # @!attribute options
1292
+ # The options to be passed to the tmpfs mount. An array of arrays. Flag options
1293
+ # should be provided as 1-length arrays. Other types should be provided as as
1294
+ # 2-length arrays, where the first item is the key and the second the value.
1295
+ #
1296
+ # @return [Array<Array<String>>, nil]
1297
+ optional :options,
1298
+ DockerEngine::Internal::Type::ArrayOf[DockerEngine::Internal::Type::ArrayOf[String]],
1299
+ api_name: :Options
1300
+
1301
+ # @!attribute size_bytes
1302
+ # The size for the tmpfs mount in bytes.
1303
+ #
1304
+ # @return [Integer, nil]
1305
+ optional :size_bytes, Integer, api_name: :SizeBytes
1306
+
1307
+ # @!method initialize(mode: nil, options: nil, size_bytes: nil)
1308
+ # Some parameter documentations has been truncated, see
1309
+ # {DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::TmpfsOptions}
1310
+ # for more details.
1311
+ #
1312
+ # Optional configuration for the `tmpfs` type.
1313
+ #
1314
+ # @param mode [Integer] The permission mode for the tmpfs mount in an integer.
1315
+ #
1316
+ # @param options [Array<Array<String>>] The options to be passed to the tmpfs mount. An array of arrays.
1317
+ #
1318
+ # @param size_bytes [Integer] The size for the tmpfs mount in bytes.
1319
+ end
1320
+
1321
+ # The mount type. Available types:
1322
+ #
1323
+ # - `bind` a mount of a file or directory from the host into the container.
1324
+ # - `cluster` a Swarm cluster volume.
1325
+ # - `image` an OCI image.
1326
+ # - `npipe` a named pipe from the host into the container.
1327
+ # - `tmpfs` a `tmpfs`.
1328
+ # - `volume` a docker volume with the given `Name`.
1329
+ #
1330
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount#type
1331
+ module Type
1332
+ extend DockerEngine::Internal::Type::Enum
1333
+
1334
+ BIND = :bind
1335
+ CLUSTER = :cluster
1336
+ IMAGE = :image
1337
+ NPIPE = :npipe
1338
+ TMPFS = :tmpfs
1339
+ VOLUME = :volume
1340
+
1341
+ # @!method self.values
1342
+ # @return [Array<Symbol>]
1343
+ end
1344
+
1345
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount#volume_options
1346
+ class VolumeOptions < DockerEngine::Internal::Type::BaseModel
1347
+ # @!attribute driver_config
1348
+ # Map of driver specific options
1349
+ #
1350
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::VolumeOptions::DriverConfig, nil]
1351
+ optional :driver_config,
1352
+ -> {
1353
+ DockerEngine::ContainerCreateParams::Config::HostConfig::Mount::VolumeOptions::DriverConfig
1354
+ },
1355
+ api_name: :DriverConfig
1356
+
1357
+ # @!attribute labels
1358
+ # User-defined key/value metadata.
1359
+ #
1360
+ # @return [Hash{Symbol=>String}, nil]
1361
+ optional :labels, DockerEngine::Internal::Type::HashOf[String], api_name: :Labels
1362
+
1363
+ # @!attribute no_copy
1364
+ # Populate volume with data from the target.
1365
+ #
1366
+ # @return [Boolean, nil]
1367
+ optional :no_copy, DockerEngine::Internal::Type::Boolean, api_name: :NoCopy
1368
+
1369
+ # @!attribute subpath
1370
+ # Source path inside the volume. Must be relative without any back traversals.
1371
+ #
1372
+ # @return [String, nil]
1373
+ optional :subpath, String, api_name: :Subpath
1374
+
1375
+ # @!method initialize(driver_config: nil, labels: nil, no_copy: nil, subpath: nil)
1376
+ # Optional configuration for the `volume` type.
1377
+ #
1378
+ # @param driver_config [DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::VolumeOptions::DriverConfig] Map of driver specific options
1379
+ #
1380
+ # @param labels [Hash{Symbol=>String}] User-defined key/value metadata.
1381
+ #
1382
+ # @param no_copy [Boolean] Populate volume with data from the target.
1383
+ #
1384
+ # @param subpath [String] Source path inside the volume. Must be relative without any back traversals.
1385
+
1386
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::Mount::VolumeOptions#driver_config
1387
+ class DriverConfig < DockerEngine::Internal::Type::BaseModel
1388
+ # @!attribute name
1389
+ # Name of the driver to use to create the volume.
1390
+ #
1391
+ # @return [String, nil]
1392
+ optional :name, String, api_name: :Name
1393
+
1394
+ # @!attribute options
1395
+ # key/value map of driver specific options.
1396
+ #
1397
+ # @return [Hash{Symbol=>String}, nil]
1398
+ optional :options, DockerEngine::Internal::Type::HashOf[String], api_name: :Options
1399
+
1400
+ # @!method initialize(name: nil, options: nil)
1401
+ # Map of driver specific options
1402
+ #
1403
+ # @param name [String] Name of the driver to use to create the volume.
1404
+ #
1405
+ # @param options [Hash{Symbol=>String}] key/value map of driver specific options.
1406
+ end
1407
+ end
1408
+ end
1409
+
1410
+ class PortBinding < DockerEngine::Internal::Type::BaseModel
1411
+ # @!attribute host_ip
1412
+ # Host IP address that the container's port is mapped to.
1413
+ #
1414
+ # @return [String, nil]
1415
+ optional :host_ip, String, api_name: :HostIp
1416
+
1417
+ # @!attribute host_port
1418
+ # Host port number that the container's port is mapped to.
1419
+ #
1420
+ # @return [String, nil]
1421
+ optional :host_port, String, api_name: :HostPort
1422
+
1423
+ # @!method initialize(host_ip: nil, host_port: nil)
1424
+ # PortBinding represents a binding between a host IP address and a host port.
1425
+ #
1426
+ # @param host_ip [String] Host IP address that the container's port is mapped to.
1427
+ #
1428
+ # @param host_port [String] Host port number that the container's port is mapped to.
1429
+ end
1430
+
1431
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig#restart_policy
1432
+ class RestartPolicy < DockerEngine::Internal::Type::BaseModel
1433
+ # @!attribute maximum_retry_count
1434
+ # If `on-failure` is used, the number of times to retry before giving up.
1435
+ #
1436
+ # @return [Integer, nil]
1437
+ optional :maximum_retry_count, Integer, api_name: :MaximumRetryCount
1438
+
1439
+ # @!attribute name
1440
+ # - Empty string means not to restart
1441
+ # - `no` Do not automatically restart
1442
+ # - `always` Always restart
1443
+ # - `unless-stopped` Restart always except when the user has manually stopped the
1444
+ # container
1445
+ # - `on-failure` Restart only when the container exit code is non-zero
1446
+ #
1447
+ # @return [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::RestartPolicy::Name, nil]
1448
+ optional :name,
1449
+ enum: -> {
1450
+ DockerEngine::ContainerCreateParams::Config::HostConfig::RestartPolicy::Name
1451
+ },
1452
+ api_name: :Name
1453
+
1454
+ # @!method initialize(maximum_retry_count: nil, name: nil)
1455
+ # Some parameter documentations has been truncated, see
1456
+ # {DockerEngine::Models::ContainerCreateParams::Config::HostConfig::RestartPolicy}
1457
+ # for more details.
1458
+ #
1459
+ # The behavior to apply when the container exits. The default is not to restart.
1460
+ #
1461
+ # An ever increasing delay (double the previous delay, starting at 100ms) is added
1462
+ # before each restart to prevent flooding the server.
1463
+ #
1464
+ # @param maximum_retry_count [Integer] If `on-failure` is used, the number of times to retry before giving up.
1465
+ #
1466
+ # @param name [Symbol, DockerEngine::Models::ContainerCreateParams::Config::HostConfig::RestartPolicy::Name] - Empty string means not to restart
1467
+
1468
+ # - Empty string means not to restart
1469
+ # - `no` Do not automatically restart
1470
+ # - `always` Always restart
1471
+ # - `unless-stopped` Restart always except when the user has manually stopped the
1472
+ # container
1473
+ # - `on-failure` Restart only when the container exit code is non-zero
1474
+ #
1475
+ # @see DockerEngine::Models::ContainerCreateParams::Config::HostConfig::RestartPolicy#name
1476
+ module Name
1477
+ extend DockerEngine::Internal::Type::Enum
1478
+
1479
+ EMPTY = :""
1480
+ NO = :no
1481
+ ALWAYS = :always
1482
+ UNLESS_STOPPED = :"unless-stopped"
1483
+ ON_FAILURE = :"on-failure"
1484
+
1485
+ # @!method self.values
1486
+ # @return [Array<Symbol>]
1487
+ end
1488
+ end
1489
+
1490
+ class Ulimit < DockerEngine::Internal::Type::BaseModel
1491
+ # @!attribute hard
1492
+ # Hard limit
1493
+ #
1494
+ # @return [Integer, nil]
1495
+ optional :hard, Integer, api_name: :Hard
1496
+
1497
+ # @!attribute name
1498
+ # Name of ulimit
1499
+ #
1500
+ # @return [String, nil]
1501
+ optional :name, String, api_name: :Name
1502
+
1503
+ # @!attribute soft
1504
+ # Soft limit
1505
+ #
1506
+ # @return [Integer, nil]
1507
+ optional :soft, Integer, api_name: :Soft
1508
+
1509
+ # @!method initialize(hard: nil, name: nil, soft: nil)
1510
+ # @param hard [Integer] Hard limit
1511
+ #
1512
+ # @param name [String] Name of ulimit
1513
+ #
1514
+ # @param soft [Integer] Soft limit
1515
+ end
1516
+ end
1517
+
1518
+ class NetworkingConfig < DockerEngine::Internal::Type::BaseModel
1519
+ # @!attribute endpoints_config
1520
+ # A mapping of network name to endpoint configuration for that network. The
1521
+ # endpoint configuration can be left empty to connect to that network with no
1522
+ # particular endpoint configuration.
1523
+ #
1524
+ # @return [Hash{Symbol=>DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig}, nil]
1525
+ optional :endpoints_config,
1526
+ -> {
1527
+ DockerEngine::Internal::Type::HashOf[DockerEngine::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig]
1528
+ },
1529
+ api_name: :EndpointsConfig
1530
+
1531
+ # @!method initialize(endpoints_config: nil)
1532
+ # Some parameter documentations has been truncated, see
1533
+ # {DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig} for more
1534
+ # details.
1535
+ #
1536
+ # NetworkingConfig represents the container's networking configuration for each of
1537
+ # its interfaces. It is used for the networking configs specified in the
1538
+ # `docker create` and `docker network connect` commands.
1539
+ #
1540
+ # @param endpoints_config [Hash{Symbol=>DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig}] A mapping of network name to endpoint configuration for that network.
1541
+
1542
+ class EndpointsConfig < DockerEngine::Internal::Type::BaseModel
1543
+ # @!attribute aliases
1544
+ #
1545
+ # @return [Array<String>, nil]
1546
+ optional :aliases, DockerEngine::Internal::Type::ArrayOf[String], api_name: :Aliases
1547
+
1548
+ # @!attribute dns_names
1549
+ # List of all DNS names an endpoint has on a specific network. This list is based
1550
+ # on the container name, network aliases, container short ID, and hostname.
1551
+ #
1552
+ # These DNS names are non-fully qualified but can contain several dots. You can
1553
+ # get fully qualified DNS names by appending `.<network-name>`. For instance, if
1554
+ # container name is `my.ctr` and the network is named `testnet`, `DNSNames` will
1555
+ # contain `my.ctr` and the FQDN will be `my.ctr.testnet`.
1556
+ #
1557
+ # @return [Array<String>, nil]
1558
+ optional :dns_names, DockerEngine::Internal::Type::ArrayOf[String], api_name: :DNSNames
1559
+
1560
+ # @!attribute driver_opts
1561
+ # DriverOpts is a mapping of driver options and values. These options are passed
1562
+ # directly to the driver and are driver specific.
1563
+ #
1564
+ # @return [Hash{Symbol=>String}, nil]
1565
+ optional :driver_opts,
1566
+ DockerEngine::Internal::Type::HashOf[String],
1567
+ api_name: :DriverOpts,
1568
+ nil?: true
1569
+
1570
+ # @!attribute endpoint_id
1571
+ # Unique ID for the service endpoint in a Sandbox.
1572
+ #
1573
+ # @return [String, nil]
1574
+ optional :endpoint_id, String, api_name: :EndpointID
1575
+
1576
+ # @!attribute gateway
1577
+ # Gateway address for this network.
1578
+ #
1579
+ # @return [String, nil]
1580
+ optional :gateway, String, api_name: :Gateway
1581
+
1582
+ # @!attribute global_i_pv6_address
1583
+ # Global IPv6 address.
1584
+ #
1585
+ # @return [String, nil]
1586
+ optional :global_i_pv6_address, String, api_name: :GlobalIPv6Address
1587
+
1588
+ # @!attribute global_i_pv6_prefix_len
1589
+ # Mask length of the global IPv6 address.
1590
+ #
1591
+ # @return [Integer, nil]
1592
+ optional :global_i_pv6_prefix_len, Integer, api_name: :GlobalIPv6PrefixLen
1593
+
1594
+ # @!attribute gw_priority
1595
+ # This property determines which endpoint will provide the default gateway for a
1596
+ # container. The endpoint with the highest priority will be used. If multiple
1597
+ # endpoints have the same priority, endpoints are lexicographically sorted based
1598
+ # on their network name, and the one that sorts first is picked.
1599
+ #
1600
+ # @return [Integer, nil]
1601
+ optional :gw_priority, Integer, api_name: :GwPriority
1602
+
1603
+ # @!attribute ip_address
1604
+ # IPv4 address.
1605
+ #
1606
+ # @return [String, nil]
1607
+ optional :ip_address, String, api_name: :IPAddress
1608
+
1609
+ # @!attribute ipam_config
1610
+ # EndpointIPAMConfig represents an endpoint's IPAM configuration.
1611
+ #
1612
+ # @return [DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig::IpamConfig, nil]
1613
+ optional :ipam_config,
1614
+ -> {
1615
+ DockerEngine::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig::IpamConfig
1616
+ },
1617
+ api_name: :IPAMConfig,
1618
+ nil?: true
1619
+
1620
+ # @!attribute ip_prefix_len
1621
+ # Mask length of the IPv4 address.
1622
+ #
1623
+ # @return [Integer, nil]
1624
+ optional :ip_prefix_len, Integer, api_name: :IPPrefixLen
1625
+
1626
+ # @!attribute i_pv6_gateway
1627
+ # IPv6 gateway address.
1628
+ #
1629
+ # @return [String, nil]
1630
+ optional :i_pv6_gateway, String, api_name: :IPv6Gateway
1631
+
1632
+ # @!attribute links
1633
+ #
1634
+ # @return [Array<String>, nil]
1635
+ optional :links, DockerEngine::Internal::Type::ArrayOf[String], api_name: :Links
1636
+
1637
+ # @!attribute mac_address
1638
+ # MAC address for the endpoint on this network. The network driver might ignore
1639
+ # this parameter.
1640
+ #
1641
+ # @return [String, nil]
1642
+ optional :mac_address, String, api_name: :MacAddress
1643
+
1644
+ # @!attribute network_id
1645
+ # Unique ID of the network.
1646
+ #
1647
+ # @return [String, nil]
1648
+ optional :network_id, String, api_name: :NetworkID
1649
+
1650
+ # @!method initialize(aliases: nil, dns_names: nil, driver_opts: nil, endpoint_id: nil, gateway: nil, global_i_pv6_address: nil, global_i_pv6_prefix_len: nil, gw_priority: nil, ip_address: nil, ipam_config: nil, ip_prefix_len: nil, i_pv6_gateway: nil, links: nil, mac_address: nil, network_id: nil)
1651
+ # Some parameter documentations has been truncated, see
1652
+ # {DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig}
1653
+ # for more details.
1654
+ #
1655
+ # Configuration for a network endpoint.
1656
+ #
1657
+ # @param aliases [Array<String>]
1658
+ #
1659
+ # @param dns_names [Array<String>] List of all DNS names an endpoint has on a specific network. This
1660
+ #
1661
+ # @param driver_opts [Hash{Symbol=>String}, nil] DriverOpts is a mapping of driver options and values. These options
1662
+ #
1663
+ # @param endpoint_id [String] Unique ID for the service endpoint in a Sandbox.
1664
+ #
1665
+ # @param gateway [String] Gateway address for this network.
1666
+ #
1667
+ # @param global_i_pv6_address [String] Global IPv6 address.
1668
+ #
1669
+ # @param global_i_pv6_prefix_len [Integer] Mask length of the global IPv6 address.
1670
+ #
1671
+ # @param gw_priority [Integer] This property determines which endpoint will provide the default
1672
+ #
1673
+ # @param ip_address [String] IPv4 address.
1674
+ #
1675
+ # @param ipam_config [DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig::IpamConfig, nil] EndpointIPAMConfig represents an endpoint's IPAM configuration.
1676
+ #
1677
+ # @param ip_prefix_len [Integer] Mask length of the IPv4 address.
1678
+ #
1679
+ # @param i_pv6_gateway [String] IPv6 gateway address.
1680
+ #
1681
+ # @param links [Array<String>]
1682
+ #
1683
+ # @param mac_address [String] MAC address for the endpoint on this network. The network driver might ignore th
1684
+ #
1685
+ # @param network_id [String] Unique ID of the network.
1686
+
1687
+ # @see DockerEngine::Models::ContainerCreateParams::Config::NetworkingConfig::EndpointsConfig#ipam_config
1688
+ class IpamConfig < DockerEngine::Internal::Type::BaseModel
1689
+ # @!attribute i_pv4_address
1690
+ #
1691
+ # @return [String, nil]
1692
+ optional :i_pv4_address, String, api_name: :IPv4Address
1693
+
1694
+ # @!attribute i_pv6_address
1695
+ #
1696
+ # @return [String, nil]
1697
+ optional :i_pv6_address, String, api_name: :IPv6Address
1698
+
1699
+ # @!attribute link_local_ips
1700
+ #
1701
+ # @return [Array<String>, nil]
1702
+ optional :link_local_ips, DockerEngine::Internal::Type::ArrayOf[String], api_name: :LinkLocalIPs
1703
+
1704
+ # @!method initialize(i_pv4_address: nil, i_pv6_address: nil, link_local_ips: nil)
1705
+ # EndpointIPAMConfig represents an endpoint's IPAM configuration.
1706
+ #
1707
+ # @param i_pv4_address [String]
1708
+ # @param i_pv6_address [String]
1709
+ # @param link_local_ips [Array<String>]
1710
+ end
1711
+ end
1712
+ end
1713
+ end
1714
+ end
1715
+ end
1716
+ end