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.
- checksums.yaml +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +17 -0
- data/README.md +230 -0
- data/SECURITY.md +27 -0
- data/lib/docker_engine/client.rb +77 -0
- data/lib/docker_engine/errors.rb +228 -0
- data/lib/docker_engine/file_part.rb +58 -0
- data/lib/docker_engine/internal/transport/base_client.rb +567 -0
- data/lib/docker_engine/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/docker_engine/internal/type/array_of.rb +168 -0
- data/lib/docker_engine/internal/type/base_model.rb +529 -0
- data/lib/docker_engine/internal/type/base_page.rb +55 -0
- data/lib/docker_engine/internal/type/boolean.rb +77 -0
- data/lib/docker_engine/internal/type/converter.rb +327 -0
- data/lib/docker_engine/internal/type/enum.rb +131 -0
- data/lib/docker_engine/internal/type/file_input.rb +111 -0
- data/lib/docker_engine/internal/type/hash_of.rb +188 -0
- data/lib/docker_engine/internal/type/request_parameters.rb +42 -0
- data/lib/docker_engine/internal/type/union.rb +243 -0
- data/lib/docker_engine/internal/type/unknown.rb +81 -0
- data/lib/docker_engine/internal/util.rb +920 -0
- data/lib/docker_engine/internal.rb +20 -0
- data/lib/docker_engine/models/auth_login_params.rb +32 -0
- data/lib/docker_engine/models/auth_response.rb +27 -0
- data/lib/docker_engine/models/config.rb +307 -0
- data/lib/docker_engine/models/container.rb +2489 -0
- data/lib/docker_engine/models/container_create_params.rb +1716 -0
- data/lib/docker_engine/models/container_delete_params.rb +38 -0
- data/lib/docker_engine/models/container_inspect_params.rb +22 -0
- data/lib/docker_engine/models/container_kill_params.rb +25 -0
- data/lib/docker_engine/models/container_list_params.rb +70 -0
- data/lib/docker_engine/models/container_list_response.rb +8 -0
- data/lib/docker_engine/models/container_logs_params.rb +74 -0
- data/lib/docker_engine/models/container_start_params.rb +27 -0
- data/lib/docker_engine/models/container_stop_params.rb +33 -0
- data/lib/docker_engine/models/create_request.rb +348 -0
- data/lib/docker_engine/models/create_response.rb +27 -0
- data/lib/docker_engine/models/error.rb +18 -0
- data/lib/docker_engine/models/image.rb +1393 -0
- data/lib/docker_engine/models/image_delete_params.rb +43 -0
- data/lib/docker_engine/models/image_delete_response.rb +28 -0
- data/lib/docker_engine/models/image_inspect_params.rb +22 -0
- data/lib/docker_engine/models/image_list_params.rb +68 -0
- data/lib/docker_engine/models/image_list_response.rb +8 -0
- data/lib/docker_engine/models/image_pull_params.rb +115 -0
- data/lib/docker_engine/models/network.rb +253 -0
- data/lib/docker_engine/models/network_create_params.rb +210 -0
- data/lib/docker_engine/models/network_create_response.rb +27 -0
- data/lib/docker_engine/models/network_delete_params.rb +14 -0
- data/lib/docker_engine/models/network_inspect_params.rb +30 -0
- data/lib/docker_engine/models/network_inspect_response.rb +131 -0
- data/lib/docker_engine/models/network_list_params.rb +40 -0
- data/lib/docker_engine/models/network_list_response.rb +8 -0
- data/lib/docker_engine/models/service.rb +520 -0
- data/lib/docker_engine/models/service_create_params.rb +34 -0
- data/lib/docker_engine/models/service_create_response.rb +32 -0
- data/lib/docker_engine/models/service_delete_params.rb +14 -0
- data/lib/docker_engine/models/service_inspect_params.rb +22 -0
- data/lib/docker_engine/models/service_list_params.rb +41 -0
- data/lib/docker_engine/models/service_list_response.rb +8 -0
- data/lib/docker_engine/models/spec.rb +2302 -0
- data/lib/docker_engine/models/summary.rb +763 -0
- data/lib/docker_engine/models/system_info_params.rb +14 -0
- data/lib/docker_engine/models/system_info_response.rb +1879 -0
- data/lib/docker_engine/models/system_ping_params.rb +14 -0
- data/lib/docker_engine/models/system_ping_response.rb +7 -0
- data/lib/docker_engine/models/system_version_params.rb +14 -0
- data/lib/docker_engine/models/system_version_response.rb +164 -0
- data/lib/docker_engine/models/volume.rb +650 -0
- data/lib/docker_engine/models/volume_create_params.rb +14 -0
- data/lib/docker_engine/models/volume_delete_params.rb +22 -0
- data/lib/docker_engine/models/volume_inspect_params.rb +14 -0
- data/lib/docker_engine/models/volume_list_params.rb +34 -0
- data/lib/docker_engine/models/volume_list_response.rb +34 -0
- data/lib/docker_engine/models.rb +121 -0
- data/lib/docker_engine/request_options.rb +77 -0
- data/lib/docker_engine/resources/auth.rb +38 -0
- data/lib/docker_engine/resources/containers.rb +258 -0
- data/lib/docker_engine/resources/images.rb +156 -0
- data/lib/docker_engine/resources/networks.rb +139 -0
- data/lib/docker_engine/resources/services.rb +113 -0
- data/lib/docker_engine/resources/system.rb +70 -0
- data/lib/docker_engine/resources/volumes.rb +105 -0
- data/lib/docker_engine/version.rb +5 -0
- data/lib/docker_engine.rb +114 -0
- data/manifest.yaml +17 -0
- data/rbi/docker_engine/client.rbi +56 -0
- data/rbi/docker_engine/errors.rbi +205 -0
- data/rbi/docker_engine/file_part.rbi +37 -0
- data/rbi/docker_engine/internal/transport/base_client.rbi +300 -0
- data/rbi/docker_engine/internal/transport/pooled_net_requester.rbi +84 -0
- data/rbi/docker_engine/internal/type/array_of.rbi +104 -0
- data/rbi/docker_engine/internal/type/base_model.rbi +314 -0
- data/rbi/docker_engine/internal/type/base_page.rbi +43 -0
- data/rbi/docker_engine/internal/type/boolean.rbi +58 -0
- data/rbi/docker_engine/internal/type/converter.rbi +222 -0
- data/rbi/docker_engine/internal/type/enum.rbi +82 -0
- data/rbi/docker_engine/internal/type/file_input.rbi +59 -0
- data/rbi/docker_engine/internal/type/hash_of.rbi +104 -0
- data/rbi/docker_engine/internal/type/request_parameters.rbi +31 -0
- data/rbi/docker_engine/internal/type/union.rbi +128 -0
- data/rbi/docker_engine/internal/type/unknown.rbi +58 -0
- data/rbi/docker_engine/internal/util.rbi +487 -0
- data/rbi/docker_engine/internal.rbi +18 -0
- data/rbi/docker_engine/models/auth_login_params.rbi +62 -0
- data/rbi/docker_engine/models/auth_response.rbi +39 -0
- data/rbi/docker_engine/models/config.rbi +442 -0
- data/rbi/docker_engine/models/container.rbi +4575 -0
- data/rbi/docker_engine/models/container_create_params.rbi +3297 -0
- data/rbi/docker_engine/models/container_delete_params.rbi +71 -0
- data/rbi/docker_engine/models/container_inspect_params.rbi +46 -0
- data/rbi/docker_engine/models/container_kill_params.rbi +46 -0
- data/rbi/docker_engine/models/container_list_params.rbi +124 -0
- data/rbi/docker_engine/models/container_list_response.rbi +11 -0
- data/rbi/docker_engine/models/container_logs_params.rbi +117 -0
- data/rbi/docker_engine/models/container_start_params.rbi +50 -0
- data/rbi/docker_engine/models/container_stop_params.rbi +60 -0
- data/rbi/docker_engine/models/create_request.rbi +702 -0
- data/rbi/docker_engine/models/create_response.rbi +36 -0
- data/rbi/docker_engine/models/error.rbi +28 -0
- data/rbi/docker_engine/models/image.rbi +2323 -0
- data/rbi/docker_engine/models/image_delete_params.rbi +75 -0
- data/rbi/docker_engine/models/image_delete_response.rbi +52 -0
- data/rbi/docker_engine/models/image_inspect_params.rbi +49 -0
- data/rbi/docker_engine/models/image_list_params.rbi +112 -0
- data/rbi/docker_engine/models/image_list_response.rbi +11 -0
- data/rbi/docker_engine/models/image_pull_params.rbi +186 -0
- data/rbi/docker_engine/models/network.rbi +419 -0
- data/rbi/docker_engine/models/network_create_params.rbi +362 -0
- data/rbi/docker_engine/models/network_create_response.rbi +37 -0
- data/rbi/docker_engine/models/network_delete_params.rbi +32 -0
- data/rbi/docker_engine/models/network_inspect_params.rbi +60 -0
- data/rbi/docker_engine/models/network_inspect_response.rbi +329 -0
- data/rbi/docker_engine/models/network_list_params.rbi +76 -0
- data/rbi/docker_engine/models/network_list_response.rbi +11 -0
- data/rbi/docker_engine/models/service.rbi +1076 -0
- data/rbi/docker_engine/models/service_create_params.rbi +77 -0
- data/rbi/docker_engine/models/service_create_response.rbi +50 -0
- data/rbi/docker_engine/models/service_delete_params.rbi +32 -0
- data/rbi/docker_engine/models/service_inspect_params.rbi +49 -0
- data/rbi/docker_engine/models/service_list_params.rbi +76 -0
- data/rbi/docker_engine/models/service_list_response.rbi +11 -0
- data/rbi/docker_engine/models/spec.rbi +4587 -0
- data/rbi/docker_engine/models/summary.rbi +1298 -0
- data/rbi/docker_engine/models/system_info_params.rbi +29 -0
- data/rbi/docker_engine/models/system_info_response.rbi +3587 -0
- data/rbi/docker_engine/models/system_ping_params.rbi +29 -0
- data/rbi/docker_engine/models/system_ping_response.rbi +7 -0
- data/rbi/docker_engine/models/system_version_params.rbi +32 -0
- data/rbi/docker_engine/models/system_version_response.rbi +282 -0
- data/rbi/docker_engine/models/volume.rbi +1218 -0
- data/rbi/docker_engine/models/volume_create_params.rbi +32 -0
- data/rbi/docker_engine/models/volume_delete_params.rbi +46 -0
- data/rbi/docker_engine/models/volume_inspect_params.rbi +32 -0
- data/rbi/docker_engine/models/volume_list_params.rbi +61 -0
- data/rbi/docker_engine/models/volume_list_response.rbi +55 -0
- data/rbi/docker_engine/models.rbi +83 -0
- data/rbi/docker_engine/request_options.rbi +59 -0
- data/rbi/docker_engine/resources/auth.rbi +30 -0
- data/rbi/docker_engine/resources/containers.rbi +231 -0
- data/rbi/docker_engine/resources/images.rbi +164 -0
- data/rbi/docker_engine/resources/networks.rbi +133 -0
- data/rbi/docker_engine/resources/services.rbi +88 -0
- data/rbi/docker_engine/resources/system.rbi +40 -0
- data/rbi/docker_engine/resources/volumes.rbi +80 -0
- data/rbi/docker_engine/version.rbi +5 -0
- data/sig/docker_engine/client.rbs +33 -0
- data/sig/docker_engine/errors.rbs +117 -0
- data/sig/docker_engine/file_part.rbs +21 -0
- data/sig/docker_engine/internal/transport/base_client.rbs +131 -0
- data/sig/docker_engine/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/docker_engine/internal/type/array_of.rbs +48 -0
- data/sig/docker_engine/internal/type/base_model.rbs +104 -0
- data/sig/docker_engine/internal/type/base_page.rbs +24 -0
- data/sig/docker_engine/internal/type/boolean.rbs +26 -0
- data/sig/docker_engine/internal/type/converter.rbs +79 -0
- data/sig/docker_engine/internal/type/enum.rbs +32 -0
- data/sig/docker_engine/internal/type/file_input.rbs +25 -0
- data/sig/docker_engine/internal/type/hash_of.rbs +48 -0
- data/sig/docker_engine/internal/type/request_parameters.rbs +19 -0
- data/sig/docker_engine/internal/type/union.rbs +52 -0
- data/sig/docker_engine/internal/type/unknown.rbs +26 -0
- data/sig/docker_engine/internal/util.rbs +185 -0
- data/sig/docker_engine/internal.rbs +9 -0
- data/sig/docker_engine/models/auth_login_params.rbs +38 -0
- data/sig/docker_engine/models/auth_response.rbs +17 -0
- data/sig/docker_engine/models/config.rbs +225 -0
- data/sig/docker_engine/models/container.rbs +1973 -0
- data/sig/docker_engine/models/container_create_params.rbs +1352 -0
- data/sig/docker_engine/models/container_delete_params.rbs +38 -0
- data/sig/docker_engine/models/container_inspect_params.rbs +25 -0
- data/sig/docker_engine/models/container_kill_params.rbs +25 -0
- data/sig/docker_engine/models/container_list_params.rbs +44 -0
- data/sig/docker_engine/models/container_list_response.rbs +7 -0
- data/sig/docker_engine/models/container_logs_params.rbs +70 -0
- data/sig/docker_engine/models/container_start_params.rbs +25 -0
- data/sig/docker_engine/models/container_stop_params.rbs +32 -0
- data/sig/docker_engine/models/create_request.rbs +255 -0
- data/sig/docker_engine/models/create_response.rbs +15 -0
- data/sig/docker_engine/models/error.rbs +13 -0
- data/sig/docker_engine/models/image.rbs +1038 -0
- data/sig/docker_engine/models/image_delete_params.rbs +38 -0
- data/sig/docker_engine/models/image_delete_response.rbs +24 -0
- data/sig/docker_engine/models/image_inspect_params.rbs +25 -0
- data/sig/docker_engine/models/image_list_params.rbs +56 -0
- data/sig/docker_engine/models/image_list_response.rbs +7 -0
- data/sig/docker_engine/models/image_pull_params.rbs +84 -0
- data/sig/docker_engine/models/network.rbs +236 -0
- data/sig/docker_engine/models/network_create_params.rbs +203 -0
- data/sig/docker_engine/models/network_create_response.rbs +15 -0
- data/sig/docker_engine/models/network_delete_params.rbs +15 -0
- data/sig/docker_engine/models/network_inspect_params.rbs +32 -0
- data/sig/docker_engine/models/network_inspect_response.rbs +149 -0
- data/sig/docker_engine/models/network_list_params.rbs +25 -0
- data/sig/docker_engine/models/network_list_response.rbs +7 -0
- data/sig/docker_engine/models/service.rbs +471 -0
- data/sig/docker_engine/models/service_create_params.rbs +38 -0
- data/sig/docker_engine/models/service_create_response.rbs +17 -0
- data/sig/docker_engine/models/service_delete_params.rbs +15 -0
- data/sig/docker_engine/models/service_inspect_params.rbs +26 -0
- data/sig/docker_engine/models/service_list_params.rbs +32 -0
- data/sig/docker_engine/models/service_list_response.rbs +7 -0
- data/sig/docker_engine/models/spec.rbs +1984 -0
- data/sig/docker_engine/models/summary.rbs +634 -0
- data/sig/docker_engine/models/system_info_params.rbs +15 -0
- data/sig/docker_engine/models/system_info_response.rbs +1380 -0
- data/sig/docker_engine/models/system_ping_params.rbs +15 -0
- data/sig/docker_engine/models/system_ping_response.rbs +5 -0
- data/sig/docker_engine/models/system_version_params.rbs +15 -0
- data/sig/docker_engine/models/system_version_response.rbs +127 -0
- data/sig/docker_engine/models/volume.rbs +478 -0
- data/sig/docker_engine/models/volume_create_params.rbs +15 -0
- data/sig/docker_engine/models/volume_delete_params.rbs +25 -0
- data/sig/docker_engine/models/volume_inspect_params.rbs +15 -0
- data/sig/docker_engine/models/volume_list_params.rbs +25 -0
- data/sig/docker_engine/models/volume_list_response.rbs +28 -0
- data/sig/docker_engine/models.rbs +81 -0
- data/sig/docker_engine/request_options.rbs +36 -0
- data/sig/docker_engine/resources/auth.rbs +14 -0
- data/sig/docker_engine/resources/containers.rbs +67 -0
- data/sig/docker_engine/resources/images.rbs +43 -0
- data/sig/docker_engine/resources/networks.rbs +41 -0
- data/sig/docker_engine/resources/services.rbs +30 -0
- data/sig/docker_engine/resources/system.rbs +17 -0
- data/sig/docker_engine/resources/volumes.rbs +28 -0
- data/sig/docker_engine/version.rbs +3 -0
- metadata +319 -0
|
@@ -0,0 +1,4587 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module DockerEngine
|
|
4
|
+
module Models
|
|
5
|
+
class Spec < DockerEngine::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(DockerEngine::Spec, DockerEngine::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Properties that can be configured to access and load balance a service.
|
|
12
|
+
sig { returns(T.nilable(DockerEngine::Spec::EndpointSpec)) }
|
|
13
|
+
attr_reader :endpoint_spec
|
|
14
|
+
|
|
15
|
+
sig do
|
|
16
|
+
params(endpoint_spec: DockerEngine::Spec::EndpointSpec::OrHash).void
|
|
17
|
+
end
|
|
18
|
+
attr_writer :endpoint_spec
|
|
19
|
+
|
|
20
|
+
# User-defined key/value metadata.
|
|
21
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
22
|
+
attr_reader :labels
|
|
23
|
+
|
|
24
|
+
sig { params(labels: T::Hash[Symbol, String]).void }
|
|
25
|
+
attr_writer :labels
|
|
26
|
+
|
|
27
|
+
# Scheduling mode for the service.
|
|
28
|
+
sig { returns(T.nilable(DockerEngine::Spec::Mode)) }
|
|
29
|
+
attr_reader :mode
|
|
30
|
+
|
|
31
|
+
sig { params(mode: DockerEngine::Spec::Mode::OrHash).void }
|
|
32
|
+
attr_writer :mode
|
|
33
|
+
|
|
34
|
+
# Name of the service.
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_reader :name
|
|
37
|
+
|
|
38
|
+
sig { params(name: String).void }
|
|
39
|
+
attr_writer :name
|
|
40
|
+
|
|
41
|
+
# Specifies which networks the service should attach to.
|
|
42
|
+
#
|
|
43
|
+
# Deprecated: This field is deprecated since v1.44. The Networks field in TaskSpec
|
|
44
|
+
# should be used instead.
|
|
45
|
+
sig { returns(T.nilable(T::Array[DockerEngine::Spec::Network])) }
|
|
46
|
+
attr_reader :networks
|
|
47
|
+
|
|
48
|
+
sig do
|
|
49
|
+
params(networks: T::Array[DockerEngine::Spec::Network::OrHash]).void
|
|
50
|
+
end
|
|
51
|
+
attr_writer :networks
|
|
52
|
+
|
|
53
|
+
# Specification for the rollback strategy of the service.
|
|
54
|
+
sig { returns(T.nilable(DockerEngine::Spec::RollbackConfig)) }
|
|
55
|
+
attr_reader :rollback_config
|
|
56
|
+
|
|
57
|
+
sig do
|
|
58
|
+
params(rollback_config: DockerEngine::Spec::RollbackConfig::OrHash).void
|
|
59
|
+
end
|
|
60
|
+
attr_writer :rollback_config
|
|
61
|
+
|
|
62
|
+
# User modifiable task configuration.
|
|
63
|
+
sig { returns(T.nilable(DockerEngine::Spec::TaskTemplate)) }
|
|
64
|
+
attr_reader :task_template
|
|
65
|
+
|
|
66
|
+
sig do
|
|
67
|
+
params(task_template: DockerEngine::Spec::TaskTemplate::OrHash).void
|
|
68
|
+
end
|
|
69
|
+
attr_writer :task_template
|
|
70
|
+
|
|
71
|
+
# Specification for the update strategy of the service.
|
|
72
|
+
sig { returns(T.nilable(DockerEngine::Spec::UpdateConfig)) }
|
|
73
|
+
attr_reader :update_config
|
|
74
|
+
|
|
75
|
+
sig do
|
|
76
|
+
params(update_config: DockerEngine::Spec::UpdateConfig::OrHash).void
|
|
77
|
+
end
|
|
78
|
+
attr_writer :update_config
|
|
79
|
+
|
|
80
|
+
# User modifiable configuration for a service.
|
|
81
|
+
sig do
|
|
82
|
+
params(
|
|
83
|
+
endpoint_spec: DockerEngine::Spec::EndpointSpec::OrHash,
|
|
84
|
+
labels: T::Hash[Symbol, String],
|
|
85
|
+
mode: DockerEngine::Spec::Mode::OrHash,
|
|
86
|
+
name: String,
|
|
87
|
+
networks: T::Array[DockerEngine::Spec::Network::OrHash],
|
|
88
|
+
rollback_config: DockerEngine::Spec::RollbackConfig::OrHash,
|
|
89
|
+
task_template: DockerEngine::Spec::TaskTemplate::OrHash,
|
|
90
|
+
update_config: DockerEngine::Spec::UpdateConfig::OrHash
|
|
91
|
+
).returns(T.attached_class)
|
|
92
|
+
end
|
|
93
|
+
def self.new(
|
|
94
|
+
# Properties that can be configured to access and load balance a service.
|
|
95
|
+
endpoint_spec: nil,
|
|
96
|
+
# User-defined key/value metadata.
|
|
97
|
+
labels: nil,
|
|
98
|
+
# Scheduling mode for the service.
|
|
99
|
+
mode: nil,
|
|
100
|
+
# Name of the service.
|
|
101
|
+
name: nil,
|
|
102
|
+
# Specifies which networks the service should attach to.
|
|
103
|
+
#
|
|
104
|
+
# Deprecated: This field is deprecated since v1.44. The Networks field in TaskSpec
|
|
105
|
+
# should be used instead.
|
|
106
|
+
networks: nil,
|
|
107
|
+
# Specification for the rollback strategy of the service.
|
|
108
|
+
rollback_config: nil,
|
|
109
|
+
# User modifiable task configuration.
|
|
110
|
+
task_template: nil,
|
|
111
|
+
# Specification for the update strategy of the service.
|
|
112
|
+
update_config: nil
|
|
113
|
+
)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
sig do
|
|
117
|
+
override.returns(
|
|
118
|
+
{
|
|
119
|
+
endpoint_spec: DockerEngine::Spec::EndpointSpec,
|
|
120
|
+
labels: T::Hash[Symbol, String],
|
|
121
|
+
mode: DockerEngine::Spec::Mode,
|
|
122
|
+
name: String,
|
|
123
|
+
networks: T::Array[DockerEngine::Spec::Network],
|
|
124
|
+
rollback_config: DockerEngine::Spec::RollbackConfig,
|
|
125
|
+
task_template: DockerEngine::Spec::TaskTemplate,
|
|
126
|
+
update_config: DockerEngine::Spec::UpdateConfig
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
def to_hash
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
class EndpointSpec < DockerEngine::Internal::Type::BaseModel
|
|
134
|
+
OrHash =
|
|
135
|
+
T.type_alias do
|
|
136
|
+
T.any(
|
|
137
|
+
DockerEngine::Spec::EndpointSpec,
|
|
138
|
+
DockerEngine::Internal::AnyHash
|
|
139
|
+
)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# The mode of resolution to use for internal load balancing between tasks.
|
|
143
|
+
sig do
|
|
144
|
+
returns(T.nilable(DockerEngine::Spec::EndpointSpec::Mode::OrSymbol))
|
|
145
|
+
end
|
|
146
|
+
attr_reader :mode
|
|
147
|
+
|
|
148
|
+
sig do
|
|
149
|
+
params(mode: DockerEngine::Spec::EndpointSpec::Mode::OrSymbol).void
|
|
150
|
+
end
|
|
151
|
+
attr_writer :mode
|
|
152
|
+
|
|
153
|
+
# List of exposed ports that this service is accessible on from the outside. Ports
|
|
154
|
+
# can only be provided if `vip` resolution mode is used.
|
|
155
|
+
sig do
|
|
156
|
+
returns(T.nilable(T::Array[DockerEngine::Spec::EndpointSpec::Port]))
|
|
157
|
+
end
|
|
158
|
+
attr_reader :ports
|
|
159
|
+
|
|
160
|
+
sig do
|
|
161
|
+
params(
|
|
162
|
+
ports: T::Array[DockerEngine::Spec::EndpointSpec::Port::OrHash]
|
|
163
|
+
).void
|
|
164
|
+
end
|
|
165
|
+
attr_writer :ports
|
|
166
|
+
|
|
167
|
+
# Properties that can be configured to access and load balance a service.
|
|
168
|
+
sig do
|
|
169
|
+
params(
|
|
170
|
+
mode: DockerEngine::Spec::EndpointSpec::Mode::OrSymbol,
|
|
171
|
+
ports: T::Array[DockerEngine::Spec::EndpointSpec::Port::OrHash]
|
|
172
|
+
).returns(T.attached_class)
|
|
173
|
+
end
|
|
174
|
+
def self.new(
|
|
175
|
+
# The mode of resolution to use for internal load balancing between tasks.
|
|
176
|
+
mode: nil,
|
|
177
|
+
# List of exposed ports that this service is accessible on from the outside. Ports
|
|
178
|
+
# can only be provided if `vip` resolution mode is used.
|
|
179
|
+
ports: nil
|
|
180
|
+
)
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
sig do
|
|
184
|
+
override.returns(
|
|
185
|
+
{
|
|
186
|
+
mode: DockerEngine::Spec::EndpointSpec::Mode::OrSymbol,
|
|
187
|
+
ports: T::Array[DockerEngine::Spec::EndpointSpec::Port]
|
|
188
|
+
}
|
|
189
|
+
)
|
|
190
|
+
end
|
|
191
|
+
def to_hash
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# The mode of resolution to use for internal load balancing between tasks.
|
|
195
|
+
module Mode
|
|
196
|
+
extend DockerEngine::Internal::Type::Enum
|
|
197
|
+
|
|
198
|
+
TaggedSymbol =
|
|
199
|
+
T.type_alias do
|
|
200
|
+
T.all(Symbol, DockerEngine::Spec::EndpointSpec::Mode)
|
|
201
|
+
end
|
|
202
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
203
|
+
|
|
204
|
+
VIP =
|
|
205
|
+
T.let(:vip, DockerEngine::Spec::EndpointSpec::Mode::TaggedSymbol)
|
|
206
|
+
DNSRR =
|
|
207
|
+
T.let(:dnsrr, DockerEngine::Spec::EndpointSpec::Mode::TaggedSymbol)
|
|
208
|
+
|
|
209
|
+
sig do
|
|
210
|
+
override.returns(
|
|
211
|
+
T::Array[DockerEngine::Spec::EndpointSpec::Mode::TaggedSymbol]
|
|
212
|
+
)
|
|
213
|
+
end
|
|
214
|
+
def self.values
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
class Port < DockerEngine::Internal::Type::BaseModel
|
|
219
|
+
OrHash =
|
|
220
|
+
T.type_alias do
|
|
221
|
+
T.any(
|
|
222
|
+
DockerEngine::Spec::EndpointSpec::Port,
|
|
223
|
+
DockerEngine::Internal::AnyHash
|
|
224
|
+
)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
sig { returns(T.nilable(String)) }
|
|
228
|
+
attr_reader :name
|
|
229
|
+
|
|
230
|
+
sig { params(name: String).void }
|
|
231
|
+
attr_writer :name
|
|
232
|
+
|
|
233
|
+
sig do
|
|
234
|
+
returns(
|
|
235
|
+
T.nilable(
|
|
236
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::OrSymbol
|
|
237
|
+
)
|
|
238
|
+
)
|
|
239
|
+
end
|
|
240
|
+
attr_reader :protocol
|
|
241
|
+
|
|
242
|
+
sig do
|
|
243
|
+
params(
|
|
244
|
+
protocol:
|
|
245
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::OrSymbol
|
|
246
|
+
).void
|
|
247
|
+
end
|
|
248
|
+
attr_writer :protocol
|
|
249
|
+
|
|
250
|
+
# The port on the swarm hosts.
|
|
251
|
+
sig { returns(T.nilable(Integer)) }
|
|
252
|
+
attr_reader :published_port
|
|
253
|
+
|
|
254
|
+
sig { params(published_port: Integer).void }
|
|
255
|
+
attr_writer :published_port
|
|
256
|
+
|
|
257
|
+
# The mode in which port is published.
|
|
258
|
+
#
|
|
259
|
+
# <p><br /></p>
|
|
260
|
+
#
|
|
261
|
+
# - "ingress" makes the target port accessible on every node, regardless of
|
|
262
|
+
# whether there is a task for the service running on that node or not.
|
|
263
|
+
# - "host" bypasses the routing mesh and publish the port directly on the swarm
|
|
264
|
+
# node where that service is running.
|
|
265
|
+
sig do
|
|
266
|
+
returns(
|
|
267
|
+
T.nilable(
|
|
268
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode::OrSymbol
|
|
269
|
+
)
|
|
270
|
+
)
|
|
271
|
+
end
|
|
272
|
+
attr_reader :publish_mode
|
|
273
|
+
|
|
274
|
+
sig do
|
|
275
|
+
params(
|
|
276
|
+
publish_mode:
|
|
277
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode::OrSymbol
|
|
278
|
+
).void
|
|
279
|
+
end
|
|
280
|
+
attr_writer :publish_mode
|
|
281
|
+
|
|
282
|
+
# The port inside the container.
|
|
283
|
+
sig { returns(T.nilable(Integer)) }
|
|
284
|
+
attr_reader :target_port
|
|
285
|
+
|
|
286
|
+
sig { params(target_port: Integer).void }
|
|
287
|
+
attr_writer :target_port
|
|
288
|
+
|
|
289
|
+
sig do
|
|
290
|
+
params(
|
|
291
|
+
name: String,
|
|
292
|
+
protocol:
|
|
293
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::OrSymbol,
|
|
294
|
+
published_port: Integer,
|
|
295
|
+
publish_mode:
|
|
296
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode::OrSymbol,
|
|
297
|
+
target_port: Integer
|
|
298
|
+
).returns(T.attached_class)
|
|
299
|
+
end
|
|
300
|
+
def self.new(
|
|
301
|
+
name: nil,
|
|
302
|
+
protocol: nil,
|
|
303
|
+
# The port on the swarm hosts.
|
|
304
|
+
published_port: nil,
|
|
305
|
+
# The mode in which port is published.
|
|
306
|
+
#
|
|
307
|
+
# <p><br /></p>
|
|
308
|
+
#
|
|
309
|
+
# - "ingress" makes the target port accessible on every node, regardless of
|
|
310
|
+
# whether there is a task for the service running on that node or not.
|
|
311
|
+
# - "host" bypasses the routing mesh and publish the port directly on the swarm
|
|
312
|
+
# node where that service is running.
|
|
313
|
+
publish_mode: nil,
|
|
314
|
+
# The port inside the container.
|
|
315
|
+
target_port: nil
|
|
316
|
+
)
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
sig do
|
|
320
|
+
override.returns(
|
|
321
|
+
{
|
|
322
|
+
name: String,
|
|
323
|
+
protocol:
|
|
324
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::OrSymbol,
|
|
325
|
+
published_port: Integer,
|
|
326
|
+
publish_mode:
|
|
327
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode::OrSymbol,
|
|
328
|
+
target_port: Integer
|
|
329
|
+
}
|
|
330
|
+
)
|
|
331
|
+
end
|
|
332
|
+
def to_hash
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
module Protocol
|
|
336
|
+
extend DockerEngine::Internal::Type::Enum
|
|
337
|
+
|
|
338
|
+
TaggedSymbol =
|
|
339
|
+
T.type_alias do
|
|
340
|
+
T.all(Symbol, DockerEngine::Spec::EndpointSpec::Port::Protocol)
|
|
341
|
+
end
|
|
342
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
343
|
+
|
|
344
|
+
TCP =
|
|
345
|
+
T.let(
|
|
346
|
+
:tcp,
|
|
347
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::TaggedSymbol
|
|
348
|
+
)
|
|
349
|
+
UDP =
|
|
350
|
+
T.let(
|
|
351
|
+
:udp,
|
|
352
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::TaggedSymbol
|
|
353
|
+
)
|
|
354
|
+
SCTP =
|
|
355
|
+
T.let(
|
|
356
|
+
:sctp,
|
|
357
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::TaggedSymbol
|
|
358
|
+
)
|
|
359
|
+
|
|
360
|
+
sig do
|
|
361
|
+
override.returns(
|
|
362
|
+
T::Array[
|
|
363
|
+
DockerEngine::Spec::EndpointSpec::Port::Protocol::TaggedSymbol
|
|
364
|
+
]
|
|
365
|
+
)
|
|
366
|
+
end
|
|
367
|
+
def self.values
|
|
368
|
+
end
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
# The mode in which port is published.
|
|
372
|
+
#
|
|
373
|
+
# <p><br /></p>
|
|
374
|
+
#
|
|
375
|
+
# - "ingress" makes the target port accessible on every node, regardless of
|
|
376
|
+
# whether there is a task for the service running on that node or not.
|
|
377
|
+
# - "host" bypasses the routing mesh and publish the port directly on the swarm
|
|
378
|
+
# node where that service is running.
|
|
379
|
+
module PublishMode
|
|
380
|
+
extend DockerEngine::Internal::Type::Enum
|
|
381
|
+
|
|
382
|
+
TaggedSymbol =
|
|
383
|
+
T.type_alias do
|
|
384
|
+
T.all(
|
|
385
|
+
Symbol,
|
|
386
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode
|
|
387
|
+
)
|
|
388
|
+
end
|
|
389
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
390
|
+
|
|
391
|
+
INGRESS =
|
|
392
|
+
T.let(
|
|
393
|
+
:ingress,
|
|
394
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode::TaggedSymbol
|
|
395
|
+
)
|
|
396
|
+
HOST =
|
|
397
|
+
T.let(
|
|
398
|
+
:host,
|
|
399
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode::TaggedSymbol
|
|
400
|
+
)
|
|
401
|
+
|
|
402
|
+
sig do
|
|
403
|
+
override.returns(
|
|
404
|
+
T::Array[
|
|
405
|
+
DockerEngine::Spec::EndpointSpec::Port::PublishMode::TaggedSymbol
|
|
406
|
+
]
|
|
407
|
+
)
|
|
408
|
+
end
|
|
409
|
+
def self.values
|
|
410
|
+
end
|
|
411
|
+
end
|
|
412
|
+
end
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
class Mode < DockerEngine::Internal::Type::BaseModel
|
|
416
|
+
OrHash =
|
|
417
|
+
T.type_alias do
|
|
418
|
+
T.any(DockerEngine::Spec::Mode, DockerEngine::Internal::AnyHash)
|
|
419
|
+
end
|
|
420
|
+
|
|
421
|
+
sig { returns(T.nilable(T.anything)) }
|
|
422
|
+
attr_reader :global
|
|
423
|
+
|
|
424
|
+
sig { params(global: T.anything).void }
|
|
425
|
+
attr_writer :global
|
|
426
|
+
|
|
427
|
+
# The mode used for services which run a task to the completed state on each valid
|
|
428
|
+
# node.
|
|
429
|
+
sig { returns(T.nilable(T.anything)) }
|
|
430
|
+
attr_reader :global_job
|
|
431
|
+
|
|
432
|
+
sig { params(global_job: T.anything).void }
|
|
433
|
+
attr_writer :global_job
|
|
434
|
+
|
|
435
|
+
sig { returns(T.nilable(DockerEngine::Spec::Mode::Replicated)) }
|
|
436
|
+
attr_reader :replicated
|
|
437
|
+
|
|
438
|
+
sig do
|
|
439
|
+
params(replicated: DockerEngine::Spec::Mode::Replicated::OrHash).void
|
|
440
|
+
end
|
|
441
|
+
attr_writer :replicated
|
|
442
|
+
|
|
443
|
+
# The mode used for services with a finite number of tasks that run to a completed
|
|
444
|
+
# state.
|
|
445
|
+
sig { returns(T.nilable(DockerEngine::Spec::Mode::ReplicatedJob)) }
|
|
446
|
+
attr_reader :replicated_job
|
|
447
|
+
|
|
448
|
+
sig do
|
|
449
|
+
params(
|
|
450
|
+
replicated_job: DockerEngine::Spec::Mode::ReplicatedJob::OrHash
|
|
451
|
+
).void
|
|
452
|
+
end
|
|
453
|
+
attr_writer :replicated_job
|
|
454
|
+
|
|
455
|
+
# Scheduling mode for the service.
|
|
456
|
+
sig do
|
|
457
|
+
params(
|
|
458
|
+
global: T.anything,
|
|
459
|
+
global_job: T.anything,
|
|
460
|
+
replicated: DockerEngine::Spec::Mode::Replicated::OrHash,
|
|
461
|
+
replicated_job: DockerEngine::Spec::Mode::ReplicatedJob::OrHash
|
|
462
|
+
).returns(T.attached_class)
|
|
463
|
+
end
|
|
464
|
+
def self.new(
|
|
465
|
+
global: nil,
|
|
466
|
+
# The mode used for services which run a task to the completed state on each valid
|
|
467
|
+
# node.
|
|
468
|
+
global_job: nil,
|
|
469
|
+
replicated: nil,
|
|
470
|
+
# The mode used for services with a finite number of tasks that run to a completed
|
|
471
|
+
# state.
|
|
472
|
+
replicated_job: nil
|
|
473
|
+
)
|
|
474
|
+
end
|
|
475
|
+
|
|
476
|
+
sig do
|
|
477
|
+
override.returns(
|
|
478
|
+
{
|
|
479
|
+
global: T.anything,
|
|
480
|
+
global_job: T.anything,
|
|
481
|
+
replicated: DockerEngine::Spec::Mode::Replicated,
|
|
482
|
+
replicated_job: DockerEngine::Spec::Mode::ReplicatedJob
|
|
483
|
+
}
|
|
484
|
+
)
|
|
485
|
+
end
|
|
486
|
+
def to_hash
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
class Replicated < DockerEngine::Internal::Type::BaseModel
|
|
490
|
+
OrHash =
|
|
491
|
+
T.type_alias do
|
|
492
|
+
T.any(
|
|
493
|
+
DockerEngine::Spec::Mode::Replicated,
|
|
494
|
+
DockerEngine::Internal::AnyHash
|
|
495
|
+
)
|
|
496
|
+
end
|
|
497
|
+
|
|
498
|
+
sig { returns(T.nilable(Integer)) }
|
|
499
|
+
attr_reader :replicas
|
|
500
|
+
|
|
501
|
+
sig { params(replicas: Integer).void }
|
|
502
|
+
attr_writer :replicas
|
|
503
|
+
|
|
504
|
+
sig { params(replicas: Integer).returns(T.attached_class) }
|
|
505
|
+
def self.new(replicas: nil)
|
|
506
|
+
end
|
|
507
|
+
|
|
508
|
+
sig { override.returns({ replicas: Integer }) }
|
|
509
|
+
def to_hash
|
|
510
|
+
end
|
|
511
|
+
end
|
|
512
|
+
|
|
513
|
+
class ReplicatedJob < DockerEngine::Internal::Type::BaseModel
|
|
514
|
+
OrHash =
|
|
515
|
+
T.type_alias do
|
|
516
|
+
T.any(
|
|
517
|
+
DockerEngine::Spec::Mode::ReplicatedJob,
|
|
518
|
+
DockerEngine::Internal::AnyHash
|
|
519
|
+
)
|
|
520
|
+
end
|
|
521
|
+
|
|
522
|
+
# The maximum number of replicas to run simultaneously.
|
|
523
|
+
sig { returns(T.nilable(Integer)) }
|
|
524
|
+
attr_reader :max_concurrent
|
|
525
|
+
|
|
526
|
+
sig { params(max_concurrent: Integer).void }
|
|
527
|
+
attr_writer :max_concurrent
|
|
528
|
+
|
|
529
|
+
# The total number of replicas desired to reach the Completed state. If unset,
|
|
530
|
+
# will default to the value of `MaxConcurrent`
|
|
531
|
+
sig { returns(T.nilable(Integer)) }
|
|
532
|
+
attr_reader :total_completions
|
|
533
|
+
|
|
534
|
+
sig { params(total_completions: Integer).void }
|
|
535
|
+
attr_writer :total_completions
|
|
536
|
+
|
|
537
|
+
# The mode used for services with a finite number of tasks that run to a completed
|
|
538
|
+
# state.
|
|
539
|
+
sig do
|
|
540
|
+
params(max_concurrent: Integer, total_completions: Integer).returns(
|
|
541
|
+
T.attached_class
|
|
542
|
+
)
|
|
543
|
+
end
|
|
544
|
+
def self.new(
|
|
545
|
+
# The maximum number of replicas to run simultaneously.
|
|
546
|
+
max_concurrent: nil,
|
|
547
|
+
# The total number of replicas desired to reach the Completed state. If unset,
|
|
548
|
+
# will default to the value of `MaxConcurrent`
|
|
549
|
+
total_completions: nil
|
|
550
|
+
)
|
|
551
|
+
end
|
|
552
|
+
|
|
553
|
+
sig do
|
|
554
|
+
override.returns(
|
|
555
|
+
{ max_concurrent: Integer, total_completions: Integer }
|
|
556
|
+
)
|
|
557
|
+
end
|
|
558
|
+
def to_hash
|
|
559
|
+
end
|
|
560
|
+
end
|
|
561
|
+
end
|
|
562
|
+
|
|
563
|
+
class Network < DockerEngine::Internal::Type::BaseModel
|
|
564
|
+
OrHash =
|
|
565
|
+
T.type_alias do
|
|
566
|
+
T.any(DockerEngine::Spec::Network, DockerEngine::Internal::AnyHash)
|
|
567
|
+
end
|
|
568
|
+
|
|
569
|
+
# Discoverable alternate names for the service on this network.
|
|
570
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
571
|
+
attr_reader :aliases
|
|
572
|
+
|
|
573
|
+
sig { params(aliases: T::Array[String]).void }
|
|
574
|
+
attr_writer :aliases
|
|
575
|
+
|
|
576
|
+
# Driver attachment options for the network target.
|
|
577
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
578
|
+
attr_reader :driver_opts
|
|
579
|
+
|
|
580
|
+
sig { params(driver_opts: T::Hash[Symbol, String]).void }
|
|
581
|
+
attr_writer :driver_opts
|
|
582
|
+
|
|
583
|
+
# The target network for attachment. Must be a network name or ID.
|
|
584
|
+
sig { returns(T.nilable(String)) }
|
|
585
|
+
attr_reader :target
|
|
586
|
+
|
|
587
|
+
sig { params(target: String).void }
|
|
588
|
+
attr_writer :target
|
|
589
|
+
|
|
590
|
+
# Specifies how a service should be attached to a particular network.
|
|
591
|
+
sig do
|
|
592
|
+
params(
|
|
593
|
+
aliases: T::Array[String],
|
|
594
|
+
driver_opts: T::Hash[Symbol, String],
|
|
595
|
+
target: String
|
|
596
|
+
).returns(T.attached_class)
|
|
597
|
+
end
|
|
598
|
+
def self.new(
|
|
599
|
+
# Discoverable alternate names for the service on this network.
|
|
600
|
+
aliases: nil,
|
|
601
|
+
# Driver attachment options for the network target.
|
|
602
|
+
driver_opts: nil,
|
|
603
|
+
# The target network for attachment. Must be a network name or ID.
|
|
604
|
+
target: nil
|
|
605
|
+
)
|
|
606
|
+
end
|
|
607
|
+
|
|
608
|
+
sig do
|
|
609
|
+
override.returns(
|
|
610
|
+
{
|
|
611
|
+
aliases: T::Array[String],
|
|
612
|
+
driver_opts: T::Hash[Symbol, String],
|
|
613
|
+
target: String
|
|
614
|
+
}
|
|
615
|
+
)
|
|
616
|
+
end
|
|
617
|
+
def to_hash
|
|
618
|
+
end
|
|
619
|
+
end
|
|
620
|
+
|
|
621
|
+
class RollbackConfig < DockerEngine::Internal::Type::BaseModel
|
|
622
|
+
OrHash =
|
|
623
|
+
T.type_alias do
|
|
624
|
+
T.any(
|
|
625
|
+
DockerEngine::Spec::RollbackConfig,
|
|
626
|
+
DockerEngine::Internal::AnyHash
|
|
627
|
+
)
|
|
628
|
+
end
|
|
629
|
+
|
|
630
|
+
# Amount of time between rollback iterations, in nanoseconds.
|
|
631
|
+
sig { returns(T.nilable(Integer)) }
|
|
632
|
+
attr_reader :delay
|
|
633
|
+
|
|
634
|
+
sig { params(delay: Integer).void }
|
|
635
|
+
attr_writer :delay
|
|
636
|
+
|
|
637
|
+
# Action to take if an rolled back task fails to run, or stops running during the
|
|
638
|
+
# rollback.
|
|
639
|
+
sig do
|
|
640
|
+
returns(
|
|
641
|
+
T.nilable(
|
|
642
|
+
DockerEngine::Spec::RollbackConfig::FailureAction::OrSymbol
|
|
643
|
+
)
|
|
644
|
+
)
|
|
645
|
+
end
|
|
646
|
+
attr_reader :failure_action
|
|
647
|
+
|
|
648
|
+
sig do
|
|
649
|
+
params(
|
|
650
|
+
failure_action:
|
|
651
|
+
DockerEngine::Spec::RollbackConfig::FailureAction::OrSymbol
|
|
652
|
+
).void
|
|
653
|
+
end
|
|
654
|
+
attr_writer :failure_action
|
|
655
|
+
|
|
656
|
+
# The fraction of tasks that may fail during a rollback before the failure action
|
|
657
|
+
# is invoked, specified as a floating point number between 0 and 1.
|
|
658
|
+
sig { returns(T.nilable(Float)) }
|
|
659
|
+
attr_reader :max_failure_ratio
|
|
660
|
+
|
|
661
|
+
sig { params(max_failure_ratio: Float).void }
|
|
662
|
+
attr_writer :max_failure_ratio
|
|
663
|
+
|
|
664
|
+
# Amount of time to monitor each rolled back task for failures, in nanoseconds.
|
|
665
|
+
sig { returns(T.nilable(Integer)) }
|
|
666
|
+
attr_reader :monitor
|
|
667
|
+
|
|
668
|
+
sig { params(monitor: Integer).void }
|
|
669
|
+
attr_writer :monitor
|
|
670
|
+
|
|
671
|
+
# The order of operations when rolling back a task. Either the old task is shut
|
|
672
|
+
# down before the new task is started, or the new task is started before the old
|
|
673
|
+
# task is shut down.
|
|
674
|
+
sig do
|
|
675
|
+
returns(
|
|
676
|
+
T.nilable(DockerEngine::Spec::RollbackConfig::Order::OrSymbol)
|
|
677
|
+
)
|
|
678
|
+
end
|
|
679
|
+
attr_reader :order
|
|
680
|
+
|
|
681
|
+
sig do
|
|
682
|
+
params(
|
|
683
|
+
order: DockerEngine::Spec::RollbackConfig::Order::OrSymbol
|
|
684
|
+
).void
|
|
685
|
+
end
|
|
686
|
+
attr_writer :order
|
|
687
|
+
|
|
688
|
+
# Maximum number of tasks to be rolled back in one iteration (0 means unlimited
|
|
689
|
+
# parallelism).
|
|
690
|
+
sig { returns(T.nilable(Integer)) }
|
|
691
|
+
attr_reader :parallelism
|
|
692
|
+
|
|
693
|
+
sig { params(parallelism: Integer).void }
|
|
694
|
+
attr_writer :parallelism
|
|
695
|
+
|
|
696
|
+
# Specification for the rollback strategy of the service.
|
|
697
|
+
sig do
|
|
698
|
+
params(
|
|
699
|
+
delay: Integer,
|
|
700
|
+
failure_action:
|
|
701
|
+
DockerEngine::Spec::RollbackConfig::FailureAction::OrSymbol,
|
|
702
|
+
max_failure_ratio: Float,
|
|
703
|
+
monitor: Integer,
|
|
704
|
+
order: DockerEngine::Spec::RollbackConfig::Order::OrSymbol,
|
|
705
|
+
parallelism: Integer
|
|
706
|
+
).returns(T.attached_class)
|
|
707
|
+
end
|
|
708
|
+
def self.new(
|
|
709
|
+
# Amount of time between rollback iterations, in nanoseconds.
|
|
710
|
+
delay: nil,
|
|
711
|
+
# Action to take if an rolled back task fails to run, or stops running during the
|
|
712
|
+
# rollback.
|
|
713
|
+
failure_action: nil,
|
|
714
|
+
# The fraction of tasks that may fail during a rollback before the failure action
|
|
715
|
+
# is invoked, specified as a floating point number between 0 and 1.
|
|
716
|
+
max_failure_ratio: nil,
|
|
717
|
+
# Amount of time to monitor each rolled back task for failures, in nanoseconds.
|
|
718
|
+
monitor: nil,
|
|
719
|
+
# The order of operations when rolling back a task. Either the old task is shut
|
|
720
|
+
# down before the new task is started, or the new task is started before the old
|
|
721
|
+
# task is shut down.
|
|
722
|
+
order: nil,
|
|
723
|
+
# Maximum number of tasks to be rolled back in one iteration (0 means unlimited
|
|
724
|
+
# parallelism).
|
|
725
|
+
parallelism: nil
|
|
726
|
+
)
|
|
727
|
+
end
|
|
728
|
+
|
|
729
|
+
sig do
|
|
730
|
+
override.returns(
|
|
731
|
+
{
|
|
732
|
+
delay: Integer,
|
|
733
|
+
failure_action:
|
|
734
|
+
DockerEngine::Spec::RollbackConfig::FailureAction::OrSymbol,
|
|
735
|
+
max_failure_ratio: Float,
|
|
736
|
+
monitor: Integer,
|
|
737
|
+
order: DockerEngine::Spec::RollbackConfig::Order::OrSymbol,
|
|
738
|
+
parallelism: Integer
|
|
739
|
+
}
|
|
740
|
+
)
|
|
741
|
+
end
|
|
742
|
+
def to_hash
|
|
743
|
+
end
|
|
744
|
+
|
|
745
|
+
# Action to take if an rolled back task fails to run, or stops running during the
|
|
746
|
+
# rollback.
|
|
747
|
+
module FailureAction
|
|
748
|
+
extend DockerEngine::Internal::Type::Enum
|
|
749
|
+
|
|
750
|
+
TaggedSymbol =
|
|
751
|
+
T.type_alias do
|
|
752
|
+
T.all(Symbol, DockerEngine::Spec::RollbackConfig::FailureAction)
|
|
753
|
+
end
|
|
754
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
755
|
+
|
|
756
|
+
CONTINUE =
|
|
757
|
+
T.let(
|
|
758
|
+
:continue,
|
|
759
|
+
DockerEngine::Spec::RollbackConfig::FailureAction::TaggedSymbol
|
|
760
|
+
)
|
|
761
|
+
PAUSE =
|
|
762
|
+
T.let(
|
|
763
|
+
:pause,
|
|
764
|
+
DockerEngine::Spec::RollbackConfig::FailureAction::TaggedSymbol
|
|
765
|
+
)
|
|
766
|
+
|
|
767
|
+
sig do
|
|
768
|
+
override.returns(
|
|
769
|
+
T::Array[
|
|
770
|
+
DockerEngine::Spec::RollbackConfig::FailureAction::TaggedSymbol
|
|
771
|
+
]
|
|
772
|
+
)
|
|
773
|
+
end
|
|
774
|
+
def self.values
|
|
775
|
+
end
|
|
776
|
+
end
|
|
777
|
+
|
|
778
|
+
# The order of operations when rolling back a task. Either the old task is shut
|
|
779
|
+
# down before the new task is started, or the new task is started before the old
|
|
780
|
+
# task is shut down.
|
|
781
|
+
module Order
|
|
782
|
+
extend DockerEngine::Internal::Type::Enum
|
|
783
|
+
|
|
784
|
+
TaggedSymbol =
|
|
785
|
+
T.type_alias do
|
|
786
|
+
T.all(Symbol, DockerEngine::Spec::RollbackConfig::Order)
|
|
787
|
+
end
|
|
788
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
789
|
+
|
|
790
|
+
STOP_FIRST =
|
|
791
|
+
T.let(
|
|
792
|
+
:"stop-first",
|
|
793
|
+
DockerEngine::Spec::RollbackConfig::Order::TaggedSymbol
|
|
794
|
+
)
|
|
795
|
+
START_FIRST =
|
|
796
|
+
T.let(
|
|
797
|
+
:"start-first",
|
|
798
|
+
DockerEngine::Spec::RollbackConfig::Order::TaggedSymbol
|
|
799
|
+
)
|
|
800
|
+
|
|
801
|
+
sig do
|
|
802
|
+
override.returns(
|
|
803
|
+
T::Array[DockerEngine::Spec::RollbackConfig::Order::TaggedSymbol]
|
|
804
|
+
)
|
|
805
|
+
end
|
|
806
|
+
def self.values
|
|
807
|
+
end
|
|
808
|
+
end
|
|
809
|
+
end
|
|
810
|
+
|
|
811
|
+
class TaskTemplate < DockerEngine::Internal::Type::BaseModel
|
|
812
|
+
OrHash =
|
|
813
|
+
T.type_alias do
|
|
814
|
+
T.any(
|
|
815
|
+
DockerEngine::Spec::TaskTemplate,
|
|
816
|
+
DockerEngine::Internal::AnyHash
|
|
817
|
+
)
|
|
818
|
+
end
|
|
819
|
+
|
|
820
|
+
# Container spec for the service.
|
|
821
|
+
#
|
|
822
|
+
# <p><br /></p>
|
|
823
|
+
#
|
|
824
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
825
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
826
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
827
|
+
sig do
|
|
828
|
+
returns(T.nilable(DockerEngine::Spec::TaskTemplate::ContainerSpec))
|
|
829
|
+
end
|
|
830
|
+
attr_reader :container_spec
|
|
831
|
+
|
|
832
|
+
sig do
|
|
833
|
+
params(
|
|
834
|
+
container_spec:
|
|
835
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::OrHash
|
|
836
|
+
).void
|
|
837
|
+
end
|
|
838
|
+
attr_writer :container_spec
|
|
839
|
+
|
|
840
|
+
# A counter that triggers an update even if no relevant parameters have been
|
|
841
|
+
# changed.
|
|
842
|
+
sig { returns(T.nilable(Integer)) }
|
|
843
|
+
attr_reader :force_update
|
|
844
|
+
|
|
845
|
+
sig { params(force_update: Integer).void }
|
|
846
|
+
attr_writer :force_update
|
|
847
|
+
|
|
848
|
+
# Specifies the log driver to use for tasks created from this spec. If not
|
|
849
|
+
# present, the default one for the swarm will be used, finally falling back to the
|
|
850
|
+
# engine default if not specified.
|
|
851
|
+
sig { returns(T.nilable(DockerEngine::Spec::TaskTemplate::LogDriver)) }
|
|
852
|
+
attr_reader :log_driver
|
|
853
|
+
|
|
854
|
+
sig do
|
|
855
|
+
params(
|
|
856
|
+
log_driver: DockerEngine::Spec::TaskTemplate::LogDriver::OrHash
|
|
857
|
+
).void
|
|
858
|
+
end
|
|
859
|
+
attr_writer :log_driver
|
|
860
|
+
|
|
861
|
+
# Read-only spec type for non-swarm containers attached to swarm overlay networks.
|
|
862
|
+
#
|
|
863
|
+
# <p><br /></p>
|
|
864
|
+
#
|
|
865
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
866
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
867
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
868
|
+
sig do
|
|
869
|
+
returns(
|
|
870
|
+
T.nilable(DockerEngine::Spec::TaskTemplate::NetworkAttachmentSpec)
|
|
871
|
+
)
|
|
872
|
+
end
|
|
873
|
+
attr_reader :network_attachment_spec
|
|
874
|
+
|
|
875
|
+
sig do
|
|
876
|
+
params(
|
|
877
|
+
network_attachment_spec:
|
|
878
|
+
DockerEngine::Spec::TaskTemplate::NetworkAttachmentSpec::OrHash
|
|
879
|
+
).void
|
|
880
|
+
end
|
|
881
|
+
attr_writer :network_attachment_spec
|
|
882
|
+
|
|
883
|
+
# Specifies which networks the service should attach to.
|
|
884
|
+
sig do
|
|
885
|
+
returns(
|
|
886
|
+
T.nilable(T::Array[DockerEngine::Spec::TaskTemplate::Network])
|
|
887
|
+
)
|
|
888
|
+
end
|
|
889
|
+
attr_reader :networks
|
|
890
|
+
|
|
891
|
+
sig do
|
|
892
|
+
params(
|
|
893
|
+
networks:
|
|
894
|
+
T::Array[DockerEngine::Spec::TaskTemplate::Network::OrHash]
|
|
895
|
+
).void
|
|
896
|
+
end
|
|
897
|
+
attr_writer :networks
|
|
898
|
+
|
|
899
|
+
sig { returns(T.nilable(DockerEngine::Spec::TaskTemplate::Placement)) }
|
|
900
|
+
attr_reader :placement
|
|
901
|
+
|
|
902
|
+
sig do
|
|
903
|
+
params(
|
|
904
|
+
placement: DockerEngine::Spec::TaskTemplate::Placement::OrHash
|
|
905
|
+
).void
|
|
906
|
+
end
|
|
907
|
+
attr_writer :placement
|
|
908
|
+
|
|
909
|
+
# Plugin spec for the service. _(Experimental release only.)_
|
|
910
|
+
#
|
|
911
|
+
# <p><br /></p>
|
|
912
|
+
#
|
|
913
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
914
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
915
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
916
|
+
sig { returns(T.nilable(DockerEngine::Spec::TaskTemplate::PluginSpec)) }
|
|
917
|
+
attr_reader :plugin_spec
|
|
918
|
+
|
|
919
|
+
sig do
|
|
920
|
+
params(
|
|
921
|
+
plugin_spec: DockerEngine::Spec::TaskTemplate::PluginSpec::OrHash
|
|
922
|
+
).void
|
|
923
|
+
end
|
|
924
|
+
attr_writer :plugin_spec
|
|
925
|
+
|
|
926
|
+
# Resource requirements which apply to each individual container created as part
|
|
927
|
+
# of the service.
|
|
928
|
+
sig { returns(T.nilable(DockerEngine::Spec::TaskTemplate::Resources)) }
|
|
929
|
+
attr_reader :resources
|
|
930
|
+
|
|
931
|
+
sig do
|
|
932
|
+
params(
|
|
933
|
+
resources: DockerEngine::Spec::TaskTemplate::Resources::OrHash
|
|
934
|
+
).void
|
|
935
|
+
end
|
|
936
|
+
attr_writer :resources
|
|
937
|
+
|
|
938
|
+
# Specification for the restart policy which applies to containers created as part
|
|
939
|
+
# of this service.
|
|
940
|
+
sig do
|
|
941
|
+
returns(T.nilable(DockerEngine::Spec::TaskTemplate::RestartPolicy))
|
|
942
|
+
end
|
|
943
|
+
attr_reader :restart_policy
|
|
944
|
+
|
|
945
|
+
sig do
|
|
946
|
+
params(
|
|
947
|
+
restart_policy:
|
|
948
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::OrHash
|
|
949
|
+
).void
|
|
950
|
+
end
|
|
951
|
+
attr_writer :restart_policy
|
|
952
|
+
|
|
953
|
+
# Runtime is the type of runtime specified for the task executor.
|
|
954
|
+
sig { returns(T.nilable(String)) }
|
|
955
|
+
attr_reader :runtime
|
|
956
|
+
|
|
957
|
+
sig { params(runtime: String).void }
|
|
958
|
+
attr_writer :runtime
|
|
959
|
+
|
|
960
|
+
# User modifiable task configuration.
|
|
961
|
+
sig do
|
|
962
|
+
params(
|
|
963
|
+
container_spec:
|
|
964
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::OrHash,
|
|
965
|
+
force_update: Integer,
|
|
966
|
+
log_driver: DockerEngine::Spec::TaskTemplate::LogDriver::OrHash,
|
|
967
|
+
network_attachment_spec:
|
|
968
|
+
DockerEngine::Spec::TaskTemplate::NetworkAttachmentSpec::OrHash,
|
|
969
|
+
networks:
|
|
970
|
+
T::Array[DockerEngine::Spec::TaskTemplate::Network::OrHash],
|
|
971
|
+
placement: DockerEngine::Spec::TaskTemplate::Placement::OrHash,
|
|
972
|
+
plugin_spec: DockerEngine::Spec::TaskTemplate::PluginSpec::OrHash,
|
|
973
|
+
resources: DockerEngine::Spec::TaskTemplate::Resources::OrHash,
|
|
974
|
+
restart_policy:
|
|
975
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::OrHash,
|
|
976
|
+
runtime: String
|
|
977
|
+
).returns(T.attached_class)
|
|
978
|
+
end
|
|
979
|
+
def self.new(
|
|
980
|
+
# Container spec for the service.
|
|
981
|
+
#
|
|
982
|
+
# <p><br /></p>
|
|
983
|
+
#
|
|
984
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
985
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
986
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
987
|
+
container_spec: nil,
|
|
988
|
+
# A counter that triggers an update even if no relevant parameters have been
|
|
989
|
+
# changed.
|
|
990
|
+
force_update: nil,
|
|
991
|
+
# Specifies the log driver to use for tasks created from this spec. If not
|
|
992
|
+
# present, the default one for the swarm will be used, finally falling back to the
|
|
993
|
+
# engine default if not specified.
|
|
994
|
+
log_driver: nil,
|
|
995
|
+
# Read-only spec type for non-swarm containers attached to swarm overlay networks.
|
|
996
|
+
#
|
|
997
|
+
# <p><br /></p>
|
|
998
|
+
#
|
|
999
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
1000
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
1001
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
1002
|
+
network_attachment_spec: nil,
|
|
1003
|
+
# Specifies which networks the service should attach to.
|
|
1004
|
+
networks: nil,
|
|
1005
|
+
placement: nil,
|
|
1006
|
+
# Plugin spec for the service. _(Experimental release only.)_
|
|
1007
|
+
#
|
|
1008
|
+
# <p><br /></p>
|
|
1009
|
+
#
|
|
1010
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
1011
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
1012
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
1013
|
+
plugin_spec: nil,
|
|
1014
|
+
# Resource requirements which apply to each individual container created as part
|
|
1015
|
+
# of the service.
|
|
1016
|
+
resources: nil,
|
|
1017
|
+
# Specification for the restart policy which applies to containers created as part
|
|
1018
|
+
# of this service.
|
|
1019
|
+
restart_policy: nil,
|
|
1020
|
+
# Runtime is the type of runtime specified for the task executor.
|
|
1021
|
+
runtime: nil
|
|
1022
|
+
)
|
|
1023
|
+
end
|
|
1024
|
+
|
|
1025
|
+
sig do
|
|
1026
|
+
override.returns(
|
|
1027
|
+
{
|
|
1028
|
+
container_spec: DockerEngine::Spec::TaskTemplate::ContainerSpec,
|
|
1029
|
+
force_update: Integer,
|
|
1030
|
+
log_driver: DockerEngine::Spec::TaskTemplate::LogDriver,
|
|
1031
|
+
network_attachment_spec:
|
|
1032
|
+
DockerEngine::Spec::TaskTemplate::NetworkAttachmentSpec,
|
|
1033
|
+
networks: T::Array[DockerEngine::Spec::TaskTemplate::Network],
|
|
1034
|
+
placement: DockerEngine::Spec::TaskTemplate::Placement,
|
|
1035
|
+
plugin_spec: DockerEngine::Spec::TaskTemplate::PluginSpec,
|
|
1036
|
+
resources: DockerEngine::Spec::TaskTemplate::Resources,
|
|
1037
|
+
restart_policy: DockerEngine::Spec::TaskTemplate::RestartPolicy,
|
|
1038
|
+
runtime: String
|
|
1039
|
+
}
|
|
1040
|
+
)
|
|
1041
|
+
end
|
|
1042
|
+
def to_hash
|
|
1043
|
+
end
|
|
1044
|
+
|
|
1045
|
+
class ContainerSpec < DockerEngine::Internal::Type::BaseModel
|
|
1046
|
+
OrHash =
|
|
1047
|
+
T.type_alias do
|
|
1048
|
+
T.any(
|
|
1049
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec,
|
|
1050
|
+
DockerEngine::Internal::AnyHash
|
|
1051
|
+
)
|
|
1052
|
+
end
|
|
1053
|
+
|
|
1054
|
+
# Arguments to the command.
|
|
1055
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1056
|
+
attr_reader :args
|
|
1057
|
+
|
|
1058
|
+
sig { params(args: T::Array[String]).void }
|
|
1059
|
+
attr_writer :args
|
|
1060
|
+
|
|
1061
|
+
# A list of kernel capabilities to add to the default set for the container.
|
|
1062
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1063
|
+
attr_reader :capability_add
|
|
1064
|
+
|
|
1065
|
+
sig { params(capability_add: T::Array[String]).void }
|
|
1066
|
+
attr_writer :capability_add
|
|
1067
|
+
|
|
1068
|
+
# A list of kernel capabilities to drop from the default set for the container.
|
|
1069
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1070
|
+
attr_reader :capability_drop
|
|
1071
|
+
|
|
1072
|
+
sig { params(capability_drop: T::Array[String]).void }
|
|
1073
|
+
attr_writer :capability_drop
|
|
1074
|
+
|
|
1075
|
+
# The command to be run in the image.
|
|
1076
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1077
|
+
attr_reader :command
|
|
1078
|
+
|
|
1079
|
+
sig { params(command: T::Array[String]).void }
|
|
1080
|
+
attr_writer :command
|
|
1081
|
+
|
|
1082
|
+
# Configs contains references to zero or more configs that will be exposed to the
|
|
1083
|
+
# service.
|
|
1084
|
+
sig do
|
|
1085
|
+
returns(
|
|
1086
|
+
T.nilable(
|
|
1087
|
+
T::Array[
|
|
1088
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config
|
|
1089
|
+
]
|
|
1090
|
+
)
|
|
1091
|
+
)
|
|
1092
|
+
end
|
|
1093
|
+
attr_reader :configs
|
|
1094
|
+
|
|
1095
|
+
sig do
|
|
1096
|
+
params(
|
|
1097
|
+
configs:
|
|
1098
|
+
T::Array[
|
|
1099
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config::OrHash
|
|
1100
|
+
]
|
|
1101
|
+
).void
|
|
1102
|
+
end
|
|
1103
|
+
attr_writer :configs
|
|
1104
|
+
|
|
1105
|
+
# The working directory for commands to run in.
|
|
1106
|
+
sig { returns(T.nilable(String)) }
|
|
1107
|
+
attr_reader :dir
|
|
1108
|
+
|
|
1109
|
+
sig { params(dir: String).void }
|
|
1110
|
+
attr_writer :dir
|
|
1111
|
+
|
|
1112
|
+
# Specification for DNS related configurations in resolver configuration file
|
|
1113
|
+
# (`resolv.conf`).
|
|
1114
|
+
sig do
|
|
1115
|
+
returns(
|
|
1116
|
+
T.nilable(
|
|
1117
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::DNSConfig
|
|
1118
|
+
)
|
|
1119
|
+
)
|
|
1120
|
+
end
|
|
1121
|
+
attr_reader :dns_config
|
|
1122
|
+
|
|
1123
|
+
sig do
|
|
1124
|
+
params(
|
|
1125
|
+
dns_config:
|
|
1126
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::DNSConfig::OrHash
|
|
1127
|
+
).void
|
|
1128
|
+
end
|
|
1129
|
+
attr_writer :dns_config
|
|
1130
|
+
|
|
1131
|
+
# A list of environment variables in the form `VAR=value`.
|
|
1132
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1133
|
+
attr_reader :env
|
|
1134
|
+
|
|
1135
|
+
sig { params(env: T::Array[String]).void }
|
|
1136
|
+
attr_writer :env
|
|
1137
|
+
|
|
1138
|
+
# A list of additional groups that the container process will run as.
|
|
1139
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1140
|
+
attr_reader :groups
|
|
1141
|
+
|
|
1142
|
+
sig { params(groups: T::Array[String]).void }
|
|
1143
|
+
attr_writer :groups
|
|
1144
|
+
|
|
1145
|
+
# A test to perform to check that the container is healthy. Healthcheck commands
|
|
1146
|
+
# should be side-effect free.
|
|
1147
|
+
sig do
|
|
1148
|
+
returns(
|
|
1149
|
+
T.nilable(
|
|
1150
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::HealthCheck
|
|
1151
|
+
)
|
|
1152
|
+
)
|
|
1153
|
+
end
|
|
1154
|
+
attr_reader :health_check
|
|
1155
|
+
|
|
1156
|
+
sig do
|
|
1157
|
+
params(
|
|
1158
|
+
health_check:
|
|
1159
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::HealthCheck::OrHash
|
|
1160
|
+
).void
|
|
1161
|
+
end
|
|
1162
|
+
attr_writer :health_check
|
|
1163
|
+
|
|
1164
|
+
# The hostname to use for the container, as a valid
|
|
1165
|
+
# [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname.
|
|
1166
|
+
sig { returns(T.nilable(String)) }
|
|
1167
|
+
attr_reader :hostname
|
|
1168
|
+
|
|
1169
|
+
sig { params(hostname: String).void }
|
|
1170
|
+
attr_writer :hostname
|
|
1171
|
+
|
|
1172
|
+
# A list of hostname/IP mappings to add to the container's `hosts` file. The
|
|
1173
|
+
# format of extra hosts is specified in the
|
|
1174
|
+
# [hosts(5)](http://man7.org/linux/man-pages/man5/hosts.5.html) man page:
|
|
1175
|
+
#
|
|
1176
|
+
# IP_address canonical_hostname [aliases...]
|
|
1177
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1178
|
+
attr_reader :hosts
|
|
1179
|
+
|
|
1180
|
+
sig { params(hosts: T::Array[String]).void }
|
|
1181
|
+
attr_writer :hosts
|
|
1182
|
+
|
|
1183
|
+
# The image name to use for the container
|
|
1184
|
+
sig { returns(T.nilable(String)) }
|
|
1185
|
+
attr_reader :image
|
|
1186
|
+
|
|
1187
|
+
sig { params(image: String).void }
|
|
1188
|
+
attr_writer :image
|
|
1189
|
+
|
|
1190
|
+
# Run an init inside the container that forwards signals and reaps processes. This
|
|
1191
|
+
# field is omitted if empty, and the default (as configured on the daemon) is
|
|
1192
|
+
# used.
|
|
1193
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
1194
|
+
attr_accessor :init
|
|
1195
|
+
|
|
1196
|
+
# Isolation technology of the containers running the service. (Windows only)
|
|
1197
|
+
sig do
|
|
1198
|
+
returns(
|
|
1199
|
+
T.nilable(
|
|
1200
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::OrSymbol
|
|
1201
|
+
)
|
|
1202
|
+
)
|
|
1203
|
+
end
|
|
1204
|
+
attr_reader :isolation
|
|
1205
|
+
|
|
1206
|
+
sig do
|
|
1207
|
+
params(
|
|
1208
|
+
isolation:
|
|
1209
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::OrSymbol
|
|
1210
|
+
).void
|
|
1211
|
+
end
|
|
1212
|
+
attr_writer :isolation
|
|
1213
|
+
|
|
1214
|
+
# User-defined key/value data.
|
|
1215
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
1216
|
+
attr_reader :labels
|
|
1217
|
+
|
|
1218
|
+
sig { params(labels: T::Hash[Symbol, String]).void }
|
|
1219
|
+
attr_writer :labels
|
|
1220
|
+
|
|
1221
|
+
# Specification for mounts to be added to containers created as part of the
|
|
1222
|
+
# service.
|
|
1223
|
+
sig do
|
|
1224
|
+
returns(
|
|
1225
|
+
T.nilable(
|
|
1226
|
+
T::Array[DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount]
|
|
1227
|
+
)
|
|
1228
|
+
)
|
|
1229
|
+
end
|
|
1230
|
+
attr_reader :mounts
|
|
1231
|
+
|
|
1232
|
+
sig do
|
|
1233
|
+
params(
|
|
1234
|
+
mounts:
|
|
1235
|
+
T::Array[
|
|
1236
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::OrHash
|
|
1237
|
+
]
|
|
1238
|
+
).void
|
|
1239
|
+
end
|
|
1240
|
+
attr_writer :mounts
|
|
1241
|
+
|
|
1242
|
+
# An integer value containing the score given to the container in order to tune
|
|
1243
|
+
# OOM killer preferences.
|
|
1244
|
+
sig { returns(T.nilable(Integer)) }
|
|
1245
|
+
attr_reader :oom_score_adj
|
|
1246
|
+
|
|
1247
|
+
sig { params(oom_score_adj: Integer).void }
|
|
1248
|
+
attr_writer :oom_score_adj
|
|
1249
|
+
|
|
1250
|
+
# Open `stdin`
|
|
1251
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
1252
|
+
attr_reader :open_stdin
|
|
1253
|
+
|
|
1254
|
+
sig { params(open_stdin: T::Boolean).void }
|
|
1255
|
+
attr_writer :open_stdin
|
|
1256
|
+
|
|
1257
|
+
# Security options for the container
|
|
1258
|
+
sig do
|
|
1259
|
+
returns(
|
|
1260
|
+
T.nilable(
|
|
1261
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges
|
|
1262
|
+
)
|
|
1263
|
+
)
|
|
1264
|
+
end
|
|
1265
|
+
attr_reader :privileges
|
|
1266
|
+
|
|
1267
|
+
sig do
|
|
1268
|
+
params(
|
|
1269
|
+
privileges:
|
|
1270
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::OrHash
|
|
1271
|
+
).void
|
|
1272
|
+
end
|
|
1273
|
+
attr_writer :privileges
|
|
1274
|
+
|
|
1275
|
+
# Mount the container's root filesystem as read only.
|
|
1276
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
1277
|
+
attr_reader :read_only
|
|
1278
|
+
|
|
1279
|
+
sig { params(read_only: T::Boolean).void }
|
|
1280
|
+
attr_writer :read_only
|
|
1281
|
+
|
|
1282
|
+
# Secrets contains references to zero or more secrets that will be exposed to the
|
|
1283
|
+
# service.
|
|
1284
|
+
sig do
|
|
1285
|
+
returns(
|
|
1286
|
+
T.nilable(
|
|
1287
|
+
T::Array[
|
|
1288
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret
|
|
1289
|
+
]
|
|
1290
|
+
)
|
|
1291
|
+
)
|
|
1292
|
+
end
|
|
1293
|
+
attr_reader :secrets
|
|
1294
|
+
|
|
1295
|
+
sig do
|
|
1296
|
+
params(
|
|
1297
|
+
secrets:
|
|
1298
|
+
T::Array[
|
|
1299
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret::OrHash
|
|
1300
|
+
]
|
|
1301
|
+
).void
|
|
1302
|
+
end
|
|
1303
|
+
attr_writer :secrets
|
|
1304
|
+
|
|
1305
|
+
# Amount of time to wait for the container to terminate before forcefully killing
|
|
1306
|
+
# it.
|
|
1307
|
+
sig { returns(T.nilable(Integer)) }
|
|
1308
|
+
attr_reader :stop_grace_period
|
|
1309
|
+
|
|
1310
|
+
sig { params(stop_grace_period: Integer).void }
|
|
1311
|
+
attr_writer :stop_grace_period
|
|
1312
|
+
|
|
1313
|
+
# Signal to stop the container.
|
|
1314
|
+
sig { returns(T.nilable(String)) }
|
|
1315
|
+
attr_reader :stop_signal
|
|
1316
|
+
|
|
1317
|
+
sig { params(stop_signal: String).void }
|
|
1318
|
+
attr_writer :stop_signal
|
|
1319
|
+
|
|
1320
|
+
# Set kernel namedspaced parameters (sysctls) in the container. The Sysctls option
|
|
1321
|
+
# on services accepts the same sysctls as the are supported on containers. Note
|
|
1322
|
+
# that while the same sysctls are supported, no guarantees or checks are made
|
|
1323
|
+
# about their suitability for a clustered environment, and it's up to the user to
|
|
1324
|
+
# determine whether a given sysctl will work properly in a Service.
|
|
1325
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
1326
|
+
attr_reader :sysctls
|
|
1327
|
+
|
|
1328
|
+
sig { params(sysctls: T::Hash[Symbol, String]).void }
|
|
1329
|
+
attr_writer :sysctls
|
|
1330
|
+
|
|
1331
|
+
# Whether a pseudo-TTY should be allocated.
|
|
1332
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
1333
|
+
attr_reader :tty
|
|
1334
|
+
|
|
1335
|
+
sig { params(tty: T::Boolean).void }
|
|
1336
|
+
attr_writer :tty
|
|
1337
|
+
|
|
1338
|
+
# A list of resource limits to set in the container. For example:
|
|
1339
|
+
# `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
|
|
1340
|
+
sig do
|
|
1341
|
+
returns(
|
|
1342
|
+
T.nilable(
|
|
1343
|
+
T::Array[
|
|
1344
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Ulimit
|
|
1345
|
+
]
|
|
1346
|
+
)
|
|
1347
|
+
)
|
|
1348
|
+
end
|
|
1349
|
+
attr_reader :ulimits
|
|
1350
|
+
|
|
1351
|
+
sig do
|
|
1352
|
+
params(
|
|
1353
|
+
ulimits:
|
|
1354
|
+
T::Array[
|
|
1355
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Ulimit::OrHash
|
|
1356
|
+
]
|
|
1357
|
+
).void
|
|
1358
|
+
end
|
|
1359
|
+
attr_writer :ulimits
|
|
1360
|
+
|
|
1361
|
+
# The user inside the container.
|
|
1362
|
+
sig { returns(T.nilable(String)) }
|
|
1363
|
+
attr_reader :user
|
|
1364
|
+
|
|
1365
|
+
sig { params(user: String).void }
|
|
1366
|
+
attr_writer :user
|
|
1367
|
+
|
|
1368
|
+
# Container spec for the service.
|
|
1369
|
+
#
|
|
1370
|
+
# <p><br /></p>
|
|
1371
|
+
#
|
|
1372
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
1373
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
1374
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
1375
|
+
sig do
|
|
1376
|
+
params(
|
|
1377
|
+
args: T::Array[String],
|
|
1378
|
+
capability_add: T::Array[String],
|
|
1379
|
+
capability_drop: T::Array[String],
|
|
1380
|
+
command: T::Array[String],
|
|
1381
|
+
configs:
|
|
1382
|
+
T::Array[
|
|
1383
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config::OrHash
|
|
1384
|
+
],
|
|
1385
|
+
dir: String,
|
|
1386
|
+
dns_config:
|
|
1387
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::DNSConfig::OrHash,
|
|
1388
|
+
env: T::Array[String],
|
|
1389
|
+
groups: T::Array[String],
|
|
1390
|
+
health_check:
|
|
1391
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::HealthCheck::OrHash,
|
|
1392
|
+
hostname: String,
|
|
1393
|
+
hosts: T::Array[String],
|
|
1394
|
+
image: String,
|
|
1395
|
+
init: T.nilable(T::Boolean),
|
|
1396
|
+
isolation:
|
|
1397
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::OrSymbol,
|
|
1398
|
+
labels: T::Hash[Symbol, String],
|
|
1399
|
+
mounts:
|
|
1400
|
+
T::Array[
|
|
1401
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::OrHash
|
|
1402
|
+
],
|
|
1403
|
+
oom_score_adj: Integer,
|
|
1404
|
+
open_stdin: T::Boolean,
|
|
1405
|
+
privileges:
|
|
1406
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::OrHash,
|
|
1407
|
+
read_only: T::Boolean,
|
|
1408
|
+
secrets:
|
|
1409
|
+
T::Array[
|
|
1410
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret::OrHash
|
|
1411
|
+
],
|
|
1412
|
+
stop_grace_period: Integer,
|
|
1413
|
+
stop_signal: String,
|
|
1414
|
+
sysctls: T::Hash[Symbol, String],
|
|
1415
|
+
tty: T::Boolean,
|
|
1416
|
+
ulimits:
|
|
1417
|
+
T::Array[
|
|
1418
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Ulimit::OrHash
|
|
1419
|
+
],
|
|
1420
|
+
user: String
|
|
1421
|
+
).returns(T.attached_class)
|
|
1422
|
+
end
|
|
1423
|
+
def self.new(
|
|
1424
|
+
# Arguments to the command.
|
|
1425
|
+
args: nil,
|
|
1426
|
+
# A list of kernel capabilities to add to the default set for the container.
|
|
1427
|
+
capability_add: nil,
|
|
1428
|
+
# A list of kernel capabilities to drop from the default set for the container.
|
|
1429
|
+
capability_drop: nil,
|
|
1430
|
+
# The command to be run in the image.
|
|
1431
|
+
command: nil,
|
|
1432
|
+
# Configs contains references to zero or more configs that will be exposed to the
|
|
1433
|
+
# service.
|
|
1434
|
+
configs: nil,
|
|
1435
|
+
# The working directory for commands to run in.
|
|
1436
|
+
dir: nil,
|
|
1437
|
+
# Specification for DNS related configurations in resolver configuration file
|
|
1438
|
+
# (`resolv.conf`).
|
|
1439
|
+
dns_config: nil,
|
|
1440
|
+
# A list of environment variables in the form `VAR=value`.
|
|
1441
|
+
env: nil,
|
|
1442
|
+
# A list of additional groups that the container process will run as.
|
|
1443
|
+
groups: nil,
|
|
1444
|
+
# A test to perform to check that the container is healthy. Healthcheck commands
|
|
1445
|
+
# should be side-effect free.
|
|
1446
|
+
health_check: nil,
|
|
1447
|
+
# The hostname to use for the container, as a valid
|
|
1448
|
+
# [RFC 1123](https://tools.ietf.org/html/rfc1123) hostname.
|
|
1449
|
+
hostname: nil,
|
|
1450
|
+
# A list of hostname/IP mappings to add to the container's `hosts` file. The
|
|
1451
|
+
# format of extra hosts is specified in the
|
|
1452
|
+
# [hosts(5)](http://man7.org/linux/man-pages/man5/hosts.5.html) man page:
|
|
1453
|
+
#
|
|
1454
|
+
# IP_address canonical_hostname [aliases...]
|
|
1455
|
+
hosts: nil,
|
|
1456
|
+
# The image name to use for the container
|
|
1457
|
+
image: nil,
|
|
1458
|
+
# Run an init inside the container that forwards signals and reaps processes. This
|
|
1459
|
+
# field is omitted if empty, and the default (as configured on the daemon) is
|
|
1460
|
+
# used.
|
|
1461
|
+
init: nil,
|
|
1462
|
+
# Isolation technology of the containers running the service. (Windows only)
|
|
1463
|
+
isolation: nil,
|
|
1464
|
+
# User-defined key/value data.
|
|
1465
|
+
labels: nil,
|
|
1466
|
+
# Specification for mounts to be added to containers created as part of the
|
|
1467
|
+
# service.
|
|
1468
|
+
mounts: nil,
|
|
1469
|
+
# An integer value containing the score given to the container in order to tune
|
|
1470
|
+
# OOM killer preferences.
|
|
1471
|
+
oom_score_adj: nil,
|
|
1472
|
+
# Open `stdin`
|
|
1473
|
+
open_stdin: nil,
|
|
1474
|
+
# Security options for the container
|
|
1475
|
+
privileges: nil,
|
|
1476
|
+
# Mount the container's root filesystem as read only.
|
|
1477
|
+
read_only: nil,
|
|
1478
|
+
# Secrets contains references to zero or more secrets that will be exposed to the
|
|
1479
|
+
# service.
|
|
1480
|
+
secrets: nil,
|
|
1481
|
+
# Amount of time to wait for the container to terminate before forcefully killing
|
|
1482
|
+
# it.
|
|
1483
|
+
stop_grace_period: nil,
|
|
1484
|
+
# Signal to stop the container.
|
|
1485
|
+
stop_signal: nil,
|
|
1486
|
+
# Set kernel namedspaced parameters (sysctls) in the container. The Sysctls option
|
|
1487
|
+
# on services accepts the same sysctls as the are supported on containers. Note
|
|
1488
|
+
# that while the same sysctls are supported, no guarantees or checks are made
|
|
1489
|
+
# about their suitability for a clustered environment, and it's up to the user to
|
|
1490
|
+
# determine whether a given sysctl will work properly in a Service.
|
|
1491
|
+
sysctls: nil,
|
|
1492
|
+
# Whether a pseudo-TTY should be allocated.
|
|
1493
|
+
tty: nil,
|
|
1494
|
+
# A list of resource limits to set in the container. For example:
|
|
1495
|
+
# `{"Name": "nofile", "Soft": 1024, "Hard": 2048}`"
|
|
1496
|
+
ulimits: nil,
|
|
1497
|
+
# The user inside the container.
|
|
1498
|
+
user: nil
|
|
1499
|
+
)
|
|
1500
|
+
end
|
|
1501
|
+
|
|
1502
|
+
sig do
|
|
1503
|
+
override.returns(
|
|
1504
|
+
{
|
|
1505
|
+
args: T::Array[String],
|
|
1506
|
+
capability_add: T::Array[String],
|
|
1507
|
+
capability_drop: T::Array[String],
|
|
1508
|
+
command: T::Array[String],
|
|
1509
|
+
configs:
|
|
1510
|
+
T::Array[
|
|
1511
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config
|
|
1512
|
+
],
|
|
1513
|
+
dir: String,
|
|
1514
|
+
dns_config:
|
|
1515
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::DNSConfig,
|
|
1516
|
+
env: T::Array[String],
|
|
1517
|
+
groups: T::Array[String],
|
|
1518
|
+
health_check:
|
|
1519
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::HealthCheck,
|
|
1520
|
+
hostname: String,
|
|
1521
|
+
hosts: T::Array[String],
|
|
1522
|
+
image: String,
|
|
1523
|
+
init: T.nilable(T::Boolean),
|
|
1524
|
+
isolation:
|
|
1525
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::OrSymbol,
|
|
1526
|
+
labels: T::Hash[Symbol, String],
|
|
1527
|
+
mounts:
|
|
1528
|
+
T::Array[
|
|
1529
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount
|
|
1530
|
+
],
|
|
1531
|
+
oom_score_adj: Integer,
|
|
1532
|
+
open_stdin: T::Boolean,
|
|
1533
|
+
privileges:
|
|
1534
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges,
|
|
1535
|
+
read_only: T::Boolean,
|
|
1536
|
+
secrets:
|
|
1537
|
+
T::Array[
|
|
1538
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret
|
|
1539
|
+
],
|
|
1540
|
+
stop_grace_period: Integer,
|
|
1541
|
+
stop_signal: String,
|
|
1542
|
+
sysctls: T::Hash[Symbol, String],
|
|
1543
|
+
tty: T::Boolean,
|
|
1544
|
+
ulimits:
|
|
1545
|
+
T::Array[
|
|
1546
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Ulimit
|
|
1547
|
+
],
|
|
1548
|
+
user: String
|
|
1549
|
+
}
|
|
1550
|
+
)
|
|
1551
|
+
end
|
|
1552
|
+
def to_hash
|
|
1553
|
+
end
|
|
1554
|
+
|
|
1555
|
+
class Config < DockerEngine::Internal::Type::BaseModel
|
|
1556
|
+
OrHash =
|
|
1557
|
+
T.type_alias do
|
|
1558
|
+
T.any(
|
|
1559
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config,
|
|
1560
|
+
DockerEngine::Internal::AnyHash
|
|
1561
|
+
)
|
|
1562
|
+
end
|
|
1563
|
+
|
|
1564
|
+
# ConfigID represents the ID of the specific config that we're referencing.
|
|
1565
|
+
sig { returns(T.nilable(String)) }
|
|
1566
|
+
attr_reader :config_id
|
|
1567
|
+
|
|
1568
|
+
sig { params(config_id: String).void }
|
|
1569
|
+
attr_writer :config_id
|
|
1570
|
+
|
|
1571
|
+
# ConfigName is the name of the config that this references, but this is just
|
|
1572
|
+
# provided for lookup/display purposes. The config in the reference will be
|
|
1573
|
+
# identified by its ID.
|
|
1574
|
+
sig { returns(T.nilable(String)) }
|
|
1575
|
+
attr_reader :config_name
|
|
1576
|
+
|
|
1577
|
+
sig { params(config_name: String).void }
|
|
1578
|
+
attr_writer :config_name
|
|
1579
|
+
|
|
1580
|
+
# File represents a specific target that is backed by a file.
|
|
1581
|
+
#
|
|
1582
|
+
# <p><br /><p>
|
|
1583
|
+
#
|
|
1584
|
+
# > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
|
|
1585
|
+
sig do
|
|
1586
|
+
returns(
|
|
1587
|
+
T.nilable(
|
|
1588
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config::File
|
|
1589
|
+
)
|
|
1590
|
+
)
|
|
1591
|
+
end
|
|
1592
|
+
attr_reader :file
|
|
1593
|
+
|
|
1594
|
+
sig do
|
|
1595
|
+
params(
|
|
1596
|
+
file:
|
|
1597
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config::File::OrHash
|
|
1598
|
+
).void
|
|
1599
|
+
end
|
|
1600
|
+
attr_writer :file
|
|
1601
|
+
|
|
1602
|
+
# Runtime represents a target that is not mounted into the container but is used
|
|
1603
|
+
# by the task
|
|
1604
|
+
#
|
|
1605
|
+
# <p><br /><p>
|
|
1606
|
+
#
|
|
1607
|
+
# > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
|
|
1608
|
+
sig { returns(T.nilable(T.anything)) }
|
|
1609
|
+
attr_reader :runtime
|
|
1610
|
+
|
|
1611
|
+
sig { params(runtime: T.anything).void }
|
|
1612
|
+
attr_writer :runtime
|
|
1613
|
+
|
|
1614
|
+
sig do
|
|
1615
|
+
params(
|
|
1616
|
+
config_id: String,
|
|
1617
|
+
config_name: String,
|
|
1618
|
+
file:
|
|
1619
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config::File::OrHash,
|
|
1620
|
+
runtime: T.anything
|
|
1621
|
+
).returns(T.attached_class)
|
|
1622
|
+
end
|
|
1623
|
+
def self.new(
|
|
1624
|
+
# ConfigID represents the ID of the specific config that we're referencing.
|
|
1625
|
+
config_id: nil,
|
|
1626
|
+
# ConfigName is the name of the config that this references, but this is just
|
|
1627
|
+
# provided for lookup/display purposes. The config in the reference will be
|
|
1628
|
+
# identified by its ID.
|
|
1629
|
+
config_name: nil,
|
|
1630
|
+
# File represents a specific target that is backed by a file.
|
|
1631
|
+
#
|
|
1632
|
+
# <p><br /><p>
|
|
1633
|
+
#
|
|
1634
|
+
# > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
|
|
1635
|
+
file: nil,
|
|
1636
|
+
# Runtime represents a target that is not mounted into the container but is used
|
|
1637
|
+
# by the task
|
|
1638
|
+
#
|
|
1639
|
+
# <p><br /><p>
|
|
1640
|
+
#
|
|
1641
|
+
# > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
|
|
1642
|
+
runtime: nil
|
|
1643
|
+
)
|
|
1644
|
+
end
|
|
1645
|
+
|
|
1646
|
+
sig do
|
|
1647
|
+
override.returns(
|
|
1648
|
+
{
|
|
1649
|
+
config_id: String,
|
|
1650
|
+
config_name: String,
|
|
1651
|
+
file:
|
|
1652
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config::File,
|
|
1653
|
+
runtime: T.anything
|
|
1654
|
+
}
|
|
1655
|
+
)
|
|
1656
|
+
end
|
|
1657
|
+
def to_hash
|
|
1658
|
+
end
|
|
1659
|
+
|
|
1660
|
+
class File < DockerEngine::Internal::Type::BaseModel
|
|
1661
|
+
OrHash =
|
|
1662
|
+
T.type_alias do
|
|
1663
|
+
T.any(
|
|
1664
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Config::File,
|
|
1665
|
+
DockerEngine::Internal::AnyHash
|
|
1666
|
+
)
|
|
1667
|
+
end
|
|
1668
|
+
|
|
1669
|
+
# GID represents the file GID.
|
|
1670
|
+
sig { returns(T.nilable(String)) }
|
|
1671
|
+
attr_reader :gid
|
|
1672
|
+
|
|
1673
|
+
sig { params(gid: String).void }
|
|
1674
|
+
attr_writer :gid
|
|
1675
|
+
|
|
1676
|
+
# Mode represents the FileMode of the file.
|
|
1677
|
+
sig { returns(T.nilable(Integer)) }
|
|
1678
|
+
attr_reader :mode
|
|
1679
|
+
|
|
1680
|
+
sig { params(mode: Integer).void }
|
|
1681
|
+
attr_writer :mode
|
|
1682
|
+
|
|
1683
|
+
# Name represents the final filename in the filesystem.
|
|
1684
|
+
sig { returns(T.nilable(String)) }
|
|
1685
|
+
attr_reader :name
|
|
1686
|
+
|
|
1687
|
+
sig { params(name: String).void }
|
|
1688
|
+
attr_writer :name
|
|
1689
|
+
|
|
1690
|
+
# UID represents the file UID.
|
|
1691
|
+
sig { returns(T.nilable(String)) }
|
|
1692
|
+
attr_reader :uid
|
|
1693
|
+
|
|
1694
|
+
sig { params(uid: String).void }
|
|
1695
|
+
attr_writer :uid
|
|
1696
|
+
|
|
1697
|
+
# File represents a specific target that is backed by a file.
|
|
1698
|
+
#
|
|
1699
|
+
# <p><br /><p>
|
|
1700
|
+
#
|
|
1701
|
+
# > **Note**: `Configs.File` and `Configs.Runtime` are mutually exclusive
|
|
1702
|
+
sig do
|
|
1703
|
+
params(
|
|
1704
|
+
gid: String,
|
|
1705
|
+
mode: Integer,
|
|
1706
|
+
name: String,
|
|
1707
|
+
uid: String
|
|
1708
|
+
).returns(T.attached_class)
|
|
1709
|
+
end
|
|
1710
|
+
def self.new(
|
|
1711
|
+
# GID represents the file GID.
|
|
1712
|
+
gid: nil,
|
|
1713
|
+
# Mode represents the FileMode of the file.
|
|
1714
|
+
mode: nil,
|
|
1715
|
+
# Name represents the final filename in the filesystem.
|
|
1716
|
+
name: nil,
|
|
1717
|
+
# UID represents the file UID.
|
|
1718
|
+
uid: nil
|
|
1719
|
+
)
|
|
1720
|
+
end
|
|
1721
|
+
|
|
1722
|
+
sig do
|
|
1723
|
+
override.returns(
|
|
1724
|
+
{ gid: String, mode: Integer, name: String, uid: String }
|
|
1725
|
+
)
|
|
1726
|
+
end
|
|
1727
|
+
def to_hash
|
|
1728
|
+
end
|
|
1729
|
+
end
|
|
1730
|
+
end
|
|
1731
|
+
|
|
1732
|
+
class DNSConfig < DockerEngine::Internal::Type::BaseModel
|
|
1733
|
+
OrHash =
|
|
1734
|
+
T.type_alias do
|
|
1735
|
+
T.any(
|
|
1736
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::DNSConfig,
|
|
1737
|
+
DockerEngine::Internal::AnyHash
|
|
1738
|
+
)
|
|
1739
|
+
end
|
|
1740
|
+
|
|
1741
|
+
# The IP addresses of the name servers.
|
|
1742
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1743
|
+
attr_reader :nameservers
|
|
1744
|
+
|
|
1745
|
+
sig { params(nameservers: T::Array[String]).void }
|
|
1746
|
+
attr_writer :nameservers
|
|
1747
|
+
|
|
1748
|
+
# A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`,
|
|
1749
|
+
# etc.).
|
|
1750
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1751
|
+
attr_reader :options
|
|
1752
|
+
|
|
1753
|
+
sig { params(options: T::Array[String]).void }
|
|
1754
|
+
attr_writer :options
|
|
1755
|
+
|
|
1756
|
+
# A search list for host-name lookup.
|
|
1757
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1758
|
+
attr_reader :search
|
|
1759
|
+
|
|
1760
|
+
sig { params(search: T::Array[String]).void }
|
|
1761
|
+
attr_writer :search
|
|
1762
|
+
|
|
1763
|
+
# Specification for DNS related configurations in resolver configuration file
|
|
1764
|
+
# (`resolv.conf`).
|
|
1765
|
+
sig do
|
|
1766
|
+
params(
|
|
1767
|
+
nameservers: T::Array[String],
|
|
1768
|
+
options: T::Array[String],
|
|
1769
|
+
search: T::Array[String]
|
|
1770
|
+
).returns(T.attached_class)
|
|
1771
|
+
end
|
|
1772
|
+
def self.new(
|
|
1773
|
+
# The IP addresses of the name servers.
|
|
1774
|
+
nameservers: nil,
|
|
1775
|
+
# A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`,
|
|
1776
|
+
# etc.).
|
|
1777
|
+
options: nil,
|
|
1778
|
+
# A search list for host-name lookup.
|
|
1779
|
+
search: nil
|
|
1780
|
+
)
|
|
1781
|
+
end
|
|
1782
|
+
|
|
1783
|
+
sig do
|
|
1784
|
+
override.returns(
|
|
1785
|
+
{
|
|
1786
|
+
nameservers: T::Array[String],
|
|
1787
|
+
options: T::Array[String],
|
|
1788
|
+
search: T::Array[String]
|
|
1789
|
+
}
|
|
1790
|
+
)
|
|
1791
|
+
end
|
|
1792
|
+
def to_hash
|
|
1793
|
+
end
|
|
1794
|
+
end
|
|
1795
|
+
|
|
1796
|
+
class HealthCheck < DockerEngine::Internal::Type::BaseModel
|
|
1797
|
+
OrHash =
|
|
1798
|
+
T.type_alias do
|
|
1799
|
+
T.any(
|
|
1800
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::HealthCheck,
|
|
1801
|
+
DockerEngine::Internal::AnyHash
|
|
1802
|
+
)
|
|
1803
|
+
end
|
|
1804
|
+
|
|
1805
|
+
# The time to wait between checks in nanoseconds. It should be 0 or at least
|
|
1806
|
+
# 1000000 (1 ms). 0 means inherit.
|
|
1807
|
+
sig { returns(T.nilable(Integer)) }
|
|
1808
|
+
attr_reader :interval
|
|
1809
|
+
|
|
1810
|
+
sig { params(interval: Integer).void }
|
|
1811
|
+
attr_writer :interval
|
|
1812
|
+
|
|
1813
|
+
# The number of consecutive failures needed to consider a container as unhealthy.
|
|
1814
|
+
# 0 means inherit.
|
|
1815
|
+
sig { returns(T.nilable(Integer)) }
|
|
1816
|
+
attr_reader :retries
|
|
1817
|
+
|
|
1818
|
+
sig { params(retries: Integer).void }
|
|
1819
|
+
attr_writer :retries
|
|
1820
|
+
|
|
1821
|
+
# The time to wait between checks in nanoseconds during the start period. It
|
|
1822
|
+
# should be 0 or at least 1000000 (1 ms). 0 means inherit.
|
|
1823
|
+
sig { returns(T.nilable(Integer)) }
|
|
1824
|
+
attr_reader :start_interval
|
|
1825
|
+
|
|
1826
|
+
sig { params(start_interval: Integer).void }
|
|
1827
|
+
attr_writer :start_interval
|
|
1828
|
+
|
|
1829
|
+
# Start period for the container to initialize before starting health-retries
|
|
1830
|
+
# countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means
|
|
1831
|
+
# inherit.
|
|
1832
|
+
sig { returns(T.nilable(Integer)) }
|
|
1833
|
+
attr_reader :start_period
|
|
1834
|
+
|
|
1835
|
+
sig { params(start_period: Integer).void }
|
|
1836
|
+
attr_writer :start_period
|
|
1837
|
+
|
|
1838
|
+
# The test to perform. Possible values are:
|
|
1839
|
+
#
|
|
1840
|
+
# - `[]` inherit healthcheck from image or parent image
|
|
1841
|
+
# - `["NONE"]` disable healthcheck
|
|
1842
|
+
# - `["CMD", args...]` exec arguments directly
|
|
1843
|
+
# - `["CMD-SHELL", command]` run command with system's default shell
|
|
1844
|
+
#
|
|
1845
|
+
# A non-zero exit code indicates a failed healthcheck:
|
|
1846
|
+
#
|
|
1847
|
+
# - `0` healthy
|
|
1848
|
+
# - `1` unhealthy
|
|
1849
|
+
# - `2` reserved (treated as unhealthy)
|
|
1850
|
+
# - other values: error running probe
|
|
1851
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
1852
|
+
attr_reader :test_
|
|
1853
|
+
|
|
1854
|
+
sig { params(test_: T::Array[String]).void }
|
|
1855
|
+
attr_writer :test_
|
|
1856
|
+
|
|
1857
|
+
# The time to wait before considering the check to have hung. It should be 0 or at
|
|
1858
|
+
# least 1000000 (1 ms). 0 means inherit.
|
|
1859
|
+
#
|
|
1860
|
+
# If the health check command does not complete within this timeout, the check is
|
|
1861
|
+
# considered failed and the health check process is forcibly terminated without a
|
|
1862
|
+
# graceful shutdown.
|
|
1863
|
+
sig { returns(T.nilable(Integer)) }
|
|
1864
|
+
attr_reader :timeout
|
|
1865
|
+
|
|
1866
|
+
sig { params(timeout: Integer).void }
|
|
1867
|
+
attr_writer :timeout
|
|
1868
|
+
|
|
1869
|
+
# A test to perform to check that the container is healthy. Healthcheck commands
|
|
1870
|
+
# should be side-effect free.
|
|
1871
|
+
sig do
|
|
1872
|
+
params(
|
|
1873
|
+
interval: Integer,
|
|
1874
|
+
retries: Integer,
|
|
1875
|
+
start_interval: Integer,
|
|
1876
|
+
start_period: Integer,
|
|
1877
|
+
test_: T::Array[String],
|
|
1878
|
+
timeout: Integer
|
|
1879
|
+
).returns(T.attached_class)
|
|
1880
|
+
end
|
|
1881
|
+
def self.new(
|
|
1882
|
+
# The time to wait between checks in nanoseconds. It should be 0 or at least
|
|
1883
|
+
# 1000000 (1 ms). 0 means inherit.
|
|
1884
|
+
interval: nil,
|
|
1885
|
+
# The number of consecutive failures needed to consider a container as unhealthy.
|
|
1886
|
+
# 0 means inherit.
|
|
1887
|
+
retries: nil,
|
|
1888
|
+
# The time to wait between checks in nanoseconds during the start period. It
|
|
1889
|
+
# should be 0 or at least 1000000 (1 ms). 0 means inherit.
|
|
1890
|
+
start_interval: nil,
|
|
1891
|
+
# Start period for the container to initialize before starting health-retries
|
|
1892
|
+
# countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means
|
|
1893
|
+
# inherit.
|
|
1894
|
+
start_period: nil,
|
|
1895
|
+
# The test to perform. Possible values are:
|
|
1896
|
+
#
|
|
1897
|
+
# - `[]` inherit healthcheck from image or parent image
|
|
1898
|
+
# - `["NONE"]` disable healthcheck
|
|
1899
|
+
# - `["CMD", args...]` exec arguments directly
|
|
1900
|
+
# - `["CMD-SHELL", command]` run command with system's default shell
|
|
1901
|
+
#
|
|
1902
|
+
# A non-zero exit code indicates a failed healthcheck:
|
|
1903
|
+
#
|
|
1904
|
+
# - `0` healthy
|
|
1905
|
+
# - `1` unhealthy
|
|
1906
|
+
# - `2` reserved (treated as unhealthy)
|
|
1907
|
+
# - other values: error running probe
|
|
1908
|
+
test_: nil,
|
|
1909
|
+
# The time to wait before considering the check to have hung. It should be 0 or at
|
|
1910
|
+
# least 1000000 (1 ms). 0 means inherit.
|
|
1911
|
+
#
|
|
1912
|
+
# If the health check command does not complete within this timeout, the check is
|
|
1913
|
+
# considered failed and the health check process is forcibly terminated without a
|
|
1914
|
+
# graceful shutdown.
|
|
1915
|
+
timeout: nil
|
|
1916
|
+
)
|
|
1917
|
+
end
|
|
1918
|
+
|
|
1919
|
+
sig do
|
|
1920
|
+
override.returns(
|
|
1921
|
+
{
|
|
1922
|
+
interval: Integer,
|
|
1923
|
+
retries: Integer,
|
|
1924
|
+
start_interval: Integer,
|
|
1925
|
+
start_period: Integer,
|
|
1926
|
+
test_: T::Array[String],
|
|
1927
|
+
timeout: Integer
|
|
1928
|
+
}
|
|
1929
|
+
)
|
|
1930
|
+
end
|
|
1931
|
+
def to_hash
|
|
1932
|
+
end
|
|
1933
|
+
end
|
|
1934
|
+
|
|
1935
|
+
# Isolation technology of the containers running the service. (Windows only)
|
|
1936
|
+
module Isolation
|
|
1937
|
+
extend DockerEngine::Internal::Type::Enum
|
|
1938
|
+
|
|
1939
|
+
TaggedSymbol =
|
|
1940
|
+
T.type_alias do
|
|
1941
|
+
T.all(
|
|
1942
|
+
Symbol,
|
|
1943
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation
|
|
1944
|
+
)
|
|
1945
|
+
end
|
|
1946
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1947
|
+
|
|
1948
|
+
DEFAULT =
|
|
1949
|
+
T.let(
|
|
1950
|
+
:default,
|
|
1951
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::TaggedSymbol
|
|
1952
|
+
)
|
|
1953
|
+
PROCESS =
|
|
1954
|
+
T.let(
|
|
1955
|
+
:process,
|
|
1956
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::TaggedSymbol
|
|
1957
|
+
)
|
|
1958
|
+
HYPERV =
|
|
1959
|
+
T.let(
|
|
1960
|
+
:hyperv,
|
|
1961
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::TaggedSymbol
|
|
1962
|
+
)
|
|
1963
|
+
EMPTY =
|
|
1964
|
+
T.let(
|
|
1965
|
+
:"",
|
|
1966
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::TaggedSymbol
|
|
1967
|
+
)
|
|
1968
|
+
|
|
1969
|
+
sig do
|
|
1970
|
+
override.returns(
|
|
1971
|
+
T::Array[
|
|
1972
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Isolation::TaggedSymbol
|
|
1973
|
+
]
|
|
1974
|
+
)
|
|
1975
|
+
end
|
|
1976
|
+
def self.values
|
|
1977
|
+
end
|
|
1978
|
+
end
|
|
1979
|
+
|
|
1980
|
+
class Mount < DockerEngine::Internal::Type::BaseModel
|
|
1981
|
+
OrHash =
|
|
1982
|
+
T.type_alias do
|
|
1983
|
+
T.any(
|
|
1984
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount,
|
|
1985
|
+
DockerEngine::Internal::AnyHash
|
|
1986
|
+
)
|
|
1987
|
+
end
|
|
1988
|
+
|
|
1989
|
+
# Optional configuration for the `bind` type.
|
|
1990
|
+
sig do
|
|
1991
|
+
returns(
|
|
1992
|
+
T.nilable(
|
|
1993
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions
|
|
1994
|
+
)
|
|
1995
|
+
)
|
|
1996
|
+
end
|
|
1997
|
+
attr_reader :bind_options
|
|
1998
|
+
|
|
1999
|
+
sig do
|
|
2000
|
+
params(
|
|
2001
|
+
bind_options:
|
|
2002
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::OrHash
|
|
2003
|
+
).void
|
|
2004
|
+
end
|
|
2005
|
+
attr_writer :bind_options
|
|
2006
|
+
|
|
2007
|
+
# The consistency requirement for the mount: `default`, `consistent`, `cached`, or
|
|
2008
|
+
# `delegated`.
|
|
2009
|
+
sig { returns(T.nilable(String)) }
|
|
2010
|
+
attr_reader :consistency
|
|
2011
|
+
|
|
2012
|
+
sig { params(consistency: String).void }
|
|
2013
|
+
attr_writer :consistency
|
|
2014
|
+
|
|
2015
|
+
# Optional configuration for the `image` type.
|
|
2016
|
+
sig do
|
|
2017
|
+
returns(
|
|
2018
|
+
T.nilable(
|
|
2019
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::ImageOptions
|
|
2020
|
+
)
|
|
2021
|
+
)
|
|
2022
|
+
end
|
|
2023
|
+
attr_reader :image_options
|
|
2024
|
+
|
|
2025
|
+
sig do
|
|
2026
|
+
params(
|
|
2027
|
+
image_options:
|
|
2028
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::ImageOptions::OrHash
|
|
2029
|
+
).void
|
|
2030
|
+
end
|
|
2031
|
+
attr_writer :image_options
|
|
2032
|
+
|
|
2033
|
+
# Whether the mount should be read-only.
|
|
2034
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
2035
|
+
attr_reader :read_only
|
|
2036
|
+
|
|
2037
|
+
sig { params(read_only: T::Boolean).void }
|
|
2038
|
+
attr_writer :read_only
|
|
2039
|
+
|
|
2040
|
+
# Mount source (e.g. a volume name, a host path). The source cannot be specified
|
|
2041
|
+
# when using `Type=tmpfs`. For `Type=bind`, the source path must either exist, or
|
|
2042
|
+
# the `CreateMountpoint` must be set to `true` to create the source path on the
|
|
2043
|
+
# host if missing.
|
|
2044
|
+
#
|
|
2045
|
+
# For `Type=npipe`, the pipe must exist prior to creating the container.
|
|
2046
|
+
sig { returns(T.nilable(String)) }
|
|
2047
|
+
attr_reader :source
|
|
2048
|
+
|
|
2049
|
+
sig { params(source: String).void }
|
|
2050
|
+
attr_writer :source
|
|
2051
|
+
|
|
2052
|
+
# Container path.
|
|
2053
|
+
sig { returns(T.nilable(String)) }
|
|
2054
|
+
attr_reader :target
|
|
2055
|
+
|
|
2056
|
+
sig { params(target: String).void }
|
|
2057
|
+
attr_writer :target
|
|
2058
|
+
|
|
2059
|
+
# Optional configuration for the `tmpfs` type.
|
|
2060
|
+
sig do
|
|
2061
|
+
returns(
|
|
2062
|
+
T.nilable(
|
|
2063
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::TmpfsOptions
|
|
2064
|
+
)
|
|
2065
|
+
)
|
|
2066
|
+
end
|
|
2067
|
+
attr_reader :tmpfs_options
|
|
2068
|
+
|
|
2069
|
+
sig do
|
|
2070
|
+
params(
|
|
2071
|
+
tmpfs_options:
|
|
2072
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::TmpfsOptions::OrHash
|
|
2073
|
+
).void
|
|
2074
|
+
end
|
|
2075
|
+
attr_writer :tmpfs_options
|
|
2076
|
+
|
|
2077
|
+
# The mount type. Available types:
|
|
2078
|
+
#
|
|
2079
|
+
# - `bind` a mount of a file or directory from the host into the container.
|
|
2080
|
+
# - `cluster` a Swarm cluster volume.
|
|
2081
|
+
# - `image` an OCI image.
|
|
2082
|
+
# - `npipe` a named pipe from the host into the container.
|
|
2083
|
+
# - `tmpfs` a `tmpfs`.
|
|
2084
|
+
# - `volume` a docker volume with the given `Name`.
|
|
2085
|
+
sig do
|
|
2086
|
+
returns(
|
|
2087
|
+
T.nilable(
|
|
2088
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::OrSymbol
|
|
2089
|
+
)
|
|
2090
|
+
)
|
|
2091
|
+
end
|
|
2092
|
+
attr_reader :type
|
|
2093
|
+
|
|
2094
|
+
sig do
|
|
2095
|
+
params(
|
|
2096
|
+
type:
|
|
2097
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::OrSymbol
|
|
2098
|
+
).void
|
|
2099
|
+
end
|
|
2100
|
+
attr_writer :type
|
|
2101
|
+
|
|
2102
|
+
# Optional configuration for the `volume` type.
|
|
2103
|
+
sig do
|
|
2104
|
+
returns(
|
|
2105
|
+
T.nilable(
|
|
2106
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions
|
|
2107
|
+
)
|
|
2108
|
+
)
|
|
2109
|
+
end
|
|
2110
|
+
attr_reader :volume_options
|
|
2111
|
+
|
|
2112
|
+
sig do
|
|
2113
|
+
params(
|
|
2114
|
+
volume_options:
|
|
2115
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions::OrHash
|
|
2116
|
+
).void
|
|
2117
|
+
end
|
|
2118
|
+
attr_writer :volume_options
|
|
2119
|
+
|
|
2120
|
+
sig do
|
|
2121
|
+
params(
|
|
2122
|
+
bind_options:
|
|
2123
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::OrHash,
|
|
2124
|
+
consistency: String,
|
|
2125
|
+
image_options:
|
|
2126
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::ImageOptions::OrHash,
|
|
2127
|
+
read_only: T::Boolean,
|
|
2128
|
+
source: String,
|
|
2129
|
+
target: String,
|
|
2130
|
+
tmpfs_options:
|
|
2131
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::TmpfsOptions::OrHash,
|
|
2132
|
+
type:
|
|
2133
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::OrSymbol,
|
|
2134
|
+
volume_options:
|
|
2135
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions::OrHash
|
|
2136
|
+
).returns(T.attached_class)
|
|
2137
|
+
end
|
|
2138
|
+
def self.new(
|
|
2139
|
+
# Optional configuration for the `bind` type.
|
|
2140
|
+
bind_options: nil,
|
|
2141
|
+
# The consistency requirement for the mount: `default`, `consistent`, `cached`, or
|
|
2142
|
+
# `delegated`.
|
|
2143
|
+
consistency: nil,
|
|
2144
|
+
# Optional configuration for the `image` type.
|
|
2145
|
+
image_options: nil,
|
|
2146
|
+
# Whether the mount should be read-only.
|
|
2147
|
+
read_only: nil,
|
|
2148
|
+
# Mount source (e.g. a volume name, a host path). The source cannot be specified
|
|
2149
|
+
# when using `Type=tmpfs`. For `Type=bind`, the source path must either exist, or
|
|
2150
|
+
# the `CreateMountpoint` must be set to `true` to create the source path on the
|
|
2151
|
+
# host if missing.
|
|
2152
|
+
#
|
|
2153
|
+
# For `Type=npipe`, the pipe must exist prior to creating the container.
|
|
2154
|
+
source: nil,
|
|
2155
|
+
# Container path.
|
|
2156
|
+
target: nil,
|
|
2157
|
+
# Optional configuration for the `tmpfs` type.
|
|
2158
|
+
tmpfs_options: nil,
|
|
2159
|
+
# The mount type. Available types:
|
|
2160
|
+
#
|
|
2161
|
+
# - `bind` a mount of a file or directory from the host into the container.
|
|
2162
|
+
# - `cluster` a Swarm cluster volume.
|
|
2163
|
+
# - `image` an OCI image.
|
|
2164
|
+
# - `npipe` a named pipe from the host into the container.
|
|
2165
|
+
# - `tmpfs` a `tmpfs`.
|
|
2166
|
+
# - `volume` a docker volume with the given `Name`.
|
|
2167
|
+
type: nil,
|
|
2168
|
+
# Optional configuration for the `volume` type.
|
|
2169
|
+
volume_options: nil
|
|
2170
|
+
)
|
|
2171
|
+
end
|
|
2172
|
+
|
|
2173
|
+
sig do
|
|
2174
|
+
override.returns(
|
|
2175
|
+
{
|
|
2176
|
+
bind_options:
|
|
2177
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions,
|
|
2178
|
+
consistency: String,
|
|
2179
|
+
image_options:
|
|
2180
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::ImageOptions,
|
|
2181
|
+
read_only: T::Boolean,
|
|
2182
|
+
source: String,
|
|
2183
|
+
target: String,
|
|
2184
|
+
tmpfs_options:
|
|
2185
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::TmpfsOptions,
|
|
2186
|
+
type:
|
|
2187
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::OrSymbol,
|
|
2188
|
+
volume_options:
|
|
2189
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions
|
|
2190
|
+
}
|
|
2191
|
+
)
|
|
2192
|
+
end
|
|
2193
|
+
def to_hash
|
|
2194
|
+
end
|
|
2195
|
+
|
|
2196
|
+
class BindOptions < DockerEngine::Internal::Type::BaseModel
|
|
2197
|
+
OrHash =
|
|
2198
|
+
T.type_alias do
|
|
2199
|
+
T.any(
|
|
2200
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions,
|
|
2201
|
+
DockerEngine::Internal::AnyHash
|
|
2202
|
+
)
|
|
2203
|
+
end
|
|
2204
|
+
|
|
2205
|
+
# Create mount point on host if missing
|
|
2206
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
2207
|
+
attr_reader :create_mountpoint
|
|
2208
|
+
|
|
2209
|
+
sig { params(create_mountpoint: T::Boolean).void }
|
|
2210
|
+
attr_writer :create_mountpoint
|
|
2211
|
+
|
|
2212
|
+
# Disable recursive bind mount.
|
|
2213
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
2214
|
+
attr_reader :non_recursive
|
|
2215
|
+
|
|
2216
|
+
sig { params(non_recursive: T::Boolean).void }
|
|
2217
|
+
attr_writer :non_recursive
|
|
2218
|
+
|
|
2219
|
+
# A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.
|
|
2220
|
+
sig do
|
|
2221
|
+
returns(
|
|
2222
|
+
T.nilable(
|
|
2223
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::OrSymbol
|
|
2224
|
+
)
|
|
2225
|
+
)
|
|
2226
|
+
end
|
|
2227
|
+
attr_reader :propagation
|
|
2228
|
+
|
|
2229
|
+
sig do
|
|
2230
|
+
params(
|
|
2231
|
+
propagation:
|
|
2232
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::OrSymbol
|
|
2233
|
+
).void
|
|
2234
|
+
end
|
|
2235
|
+
attr_writer :propagation
|
|
2236
|
+
|
|
2237
|
+
# Raise an error if the mount cannot be made recursively read-only.
|
|
2238
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
2239
|
+
attr_reader :read_only_force_recursive
|
|
2240
|
+
|
|
2241
|
+
sig { params(read_only_force_recursive: T::Boolean).void }
|
|
2242
|
+
attr_writer :read_only_force_recursive
|
|
2243
|
+
|
|
2244
|
+
# Make the mount non-recursively read-only, but still leave the mount recursive
|
|
2245
|
+
# (unless NonRecursive is set to `true` in conjunction).
|
|
2246
|
+
#
|
|
2247
|
+
# Added in v1.44, before that version all read-only mounts were non-recursive by
|
|
2248
|
+
# default. To match the previous behaviour this will default to `true` for clients
|
|
2249
|
+
# on versions prior to v1.44.
|
|
2250
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
2251
|
+
attr_reader :read_only_non_recursive
|
|
2252
|
+
|
|
2253
|
+
sig { params(read_only_non_recursive: T::Boolean).void }
|
|
2254
|
+
attr_writer :read_only_non_recursive
|
|
2255
|
+
|
|
2256
|
+
# Optional configuration for the `bind` type.
|
|
2257
|
+
sig do
|
|
2258
|
+
params(
|
|
2259
|
+
create_mountpoint: T::Boolean,
|
|
2260
|
+
non_recursive: T::Boolean,
|
|
2261
|
+
propagation:
|
|
2262
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::OrSymbol,
|
|
2263
|
+
read_only_force_recursive: T::Boolean,
|
|
2264
|
+
read_only_non_recursive: T::Boolean
|
|
2265
|
+
).returns(T.attached_class)
|
|
2266
|
+
end
|
|
2267
|
+
def self.new(
|
|
2268
|
+
# Create mount point on host if missing
|
|
2269
|
+
create_mountpoint: nil,
|
|
2270
|
+
# Disable recursive bind mount.
|
|
2271
|
+
non_recursive: nil,
|
|
2272
|
+
# A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.
|
|
2273
|
+
propagation: nil,
|
|
2274
|
+
# Raise an error if the mount cannot be made recursively read-only.
|
|
2275
|
+
read_only_force_recursive: nil,
|
|
2276
|
+
# Make the mount non-recursively read-only, but still leave the mount recursive
|
|
2277
|
+
# (unless NonRecursive is set to `true` in conjunction).
|
|
2278
|
+
#
|
|
2279
|
+
# Added in v1.44, before that version all read-only mounts were non-recursive by
|
|
2280
|
+
# default. To match the previous behaviour this will default to `true` for clients
|
|
2281
|
+
# on versions prior to v1.44.
|
|
2282
|
+
read_only_non_recursive: nil
|
|
2283
|
+
)
|
|
2284
|
+
end
|
|
2285
|
+
|
|
2286
|
+
sig do
|
|
2287
|
+
override.returns(
|
|
2288
|
+
{
|
|
2289
|
+
create_mountpoint: T::Boolean,
|
|
2290
|
+
non_recursive: T::Boolean,
|
|
2291
|
+
propagation:
|
|
2292
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::OrSymbol,
|
|
2293
|
+
read_only_force_recursive: T::Boolean,
|
|
2294
|
+
read_only_non_recursive: T::Boolean
|
|
2295
|
+
}
|
|
2296
|
+
)
|
|
2297
|
+
end
|
|
2298
|
+
def to_hash
|
|
2299
|
+
end
|
|
2300
|
+
|
|
2301
|
+
# A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.
|
|
2302
|
+
module Propagation
|
|
2303
|
+
extend DockerEngine::Internal::Type::Enum
|
|
2304
|
+
|
|
2305
|
+
TaggedSymbol =
|
|
2306
|
+
T.type_alias do
|
|
2307
|
+
T.all(
|
|
2308
|
+
Symbol,
|
|
2309
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation
|
|
2310
|
+
)
|
|
2311
|
+
end
|
|
2312
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2313
|
+
|
|
2314
|
+
PRIVATE =
|
|
2315
|
+
T.let(
|
|
2316
|
+
:private,
|
|
2317
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::TaggedSymbol
|
|
2318
|
+
)
|
|
2319
|
+
RPRIVATE =
|
|
2320
|
+
T.let(
|
|
2321
|
+
:rprivate,
|
|
2322
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::TaggedSymbol
|
|
2323
|
+
)
|
|
2324
|
+
SHARED =
|
|
2325
|
+
T.let(
|
|
2326
|
+
:shared,
|
|
2327
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::TaggedSymbol
|
|
2328
|
+
)
|
|
2329
|
+
RSHARED =
|
|
2330
|
+
T.let(
|
|
2331
|
+
:rshared,
|
|
2332
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::TaggedSymbol
|
|
2333
|
+
)
|
|
2334
|
+
SLAVE =
|
|
2335
|
+
T.let(
|
|
2336
|
+
:slave,
|
|
2337
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::TaggedSymbol
|
|
2338
|
+
)
|
|
2339
|
+
RSLAVE =
|
|
2340
|
+
T.let(
|
|
2341
|
+
:rslave,
|
|
2342
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::TaggedSymbol
|
|
2343
|
+
)
|
|
2344
|
+
|
|
2345
|
+
sig do
|
|
2346
|
+
override.returns(
|
|
2347
|
+
T::Array[
|
|
2348
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::BindOptions::Propagation::TaggedSymbol
|
|
2349
|
+
]
|
|
2350
|
+
)
|
|
2351
|
+
end
|
|
2352
|
+
def self.values
|
|
2353
|
+
end
|
|
2354
|
+
end
|
|
2355
|
+
end
|
|
2356
|
+
|
|
2357
|
+
class ImageOptions < DockerEngine::Internal::Type::BaseModel
|
|
2358
|
+
OrHash =
|
|
2359
|
+
T.type_alias do
|
|
2360
|
+
T.any(
|
|
2361
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::ImageOptions,
|
|
2362
|
+
DockerEngine::Internal::AnyHash
|
|
2363
|
+
)
|
|
2364
|
+
end
|
|
2365
|
+
|
|
2366
|
+
# Source path inside the image. Must be relative without any back traversals.
|
|
2367
|
+
sig { returns(T.nilable(String)) }
|
|
2368
|
+
attr_reader :subpath
|
|
2369
|
+
|
|
2370
|
+
sig { params(subpath: String).void }
|
|
2371
|
+
attr_writer :subpath
|
|
2372
|
+
|
|
2373
|
+
# Optional configuration for the `image` type.
|
|
2374
|
+
sig { params(subpath: String).returns(T.attached_class) }
|
|
2375
|
+
def self.new(
|
|
2376
|
+
# Source path inside the image. Must be relative without any back traversals.
|
|
2377
|
+
subpath: nil
|
|
2378
|
+
)
|
|
2379
|
+
end
|
|
2380
|
+
|
|
2381
|
+
sig { override.returns({ subpath: String }) }
|
|
2382
|
+
def to_hash
|
|
2383
|
+
end
|
|
2384
|
+
end
|
|
2385
|
+
|
|
2386
|
+
class TmpfsOptions < DockerEngine::Internal::Type::BaseModel
|
|
2387
|
+
OrHash =
|
|
2388
|
+
T.type_alias do
|
|
2389
|
+
T.any(
|
|
2390
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::TmpfsOptions,
|
|
2391
|
+
DockerEngine::Internal::AnyHash
|
|
2392
|
+
)
|
|
2393
|
+
end
|
|
2394
|
+
|
|
2395
|
+
# The permission mode for the tmpfs mount in an integer. The value must not be in
|
|
2396
|
+
# octal format (e.g. 755) but rather the decimal representation of the octal value
|
|
2397
|
+
# (e.g. 493).
|
|
2398
|
+
sig { returns(T.nilable(Integer)) }
|
|
2399
|
+
attr_reader :mode
|
|
2400
|
+
|
|
2401
|
+
sig { params(mode: Integer).void }
|
|
2402
|
+
attr_writer :mode
|
|
2403
|
+
|
|
2404
|
+
# The options to be passed to the tmpfs mount. An array of arrays. Flag options
|
|
2405
|
+
# should be provided as 1-length arrays. Other types should be provided as as
|
|
2406
|
+
# 2-length arrays, where the first item is the key and the second the value.
|
|
2407
|
+
sig { returns(T.nilable(T::Array[T::Array[String]])) }
|
|
2408
|
+
attr_reader :options
|
|
2409
|
+
|
|
2410
|
+
sig { params(options: T::Array[T::Array[String]]).void }
|
|
2411
|
+
attr_writer :options
|
|
2412
|
+
|
|
2413
|
+
# The size for the tmpfs mount in bytes.
|
|
2414
|
+
sig { returns(T.nilable(Integer)) }
|
|
2415
|
+
attr_reader :size_bytes
|
|
2416
|
+
|
|
2417
|
+
sig { params(size_bytes: Integer).void }
|
|
2418
|
+
attr_writer :size_bytes
|
|
2419
|
+
|
|
2420
|
+
# Optional configuration for the `tmpfs` type.
|
|
2421
|
+
sig do
|
|
2422
|
+
params(
|
|
2423
|
+
mode: Integer,
|
|
2424
|
+
options: T::Array[T::Array[String]],
|
|
2425
|
+
size_bytes: Integer
|
|
2426
|
+
).returns(T.attached_class)
|
|
2427
|
+
end
|
|
2428
|
+
def self.new(
|
|
2429
|
+
# The permission mode for the tmpfs mount in an integer. The value must not be in
|
|
2430
|
+
# octal format (e.g. 755) but rather the decimal representation of the octal value
|
|
2431
|
+
# (e.g. 493).
|
|
2432
|
+
mode: nil,
|
|
2433
|
+
# The options to be passed to the tmpfs mount. An array of arrays. Flag options
|
|
2434
|
+
# should be provided as 1-length arrays. Other types should be provided as as
|
|
2435
|
+
# 2-length arrays, where the first item is the key and the second the value.
|
|
2436
|
+
options: nil,
|
|
2437
|
+
# The size for the tmpfs mount in bytes.
|
|
2438
|
+
size_bytes: nil
|
|
2439
|
+
)
|
|
2440
|
+
end
|
|
2441
|
+
|
|
2442
|
+
sig do
|
|
2443
|
+
override.returns(
|
|
2444
|
+
{
|
|
2445
|
+
mode: Integer,
|
|
2446
|
+
options: T::Array[T::Array[String]],
|
|
2447
|
+
size_bytes: Integer
|
|
2448
|
+
}
|
|
2449
|
+
)
|
|
2450
|
+
end
|
|
2451
|
+
def to_hash
|
|
2452
|
+
end
|
|
2453
|
+
end
|
|
2454
|
+
|
|
2455
|
+
# The mount type. Available types:
|
|
2456
|
+
#
|
|
2457
|
+
# - `bind` a mount of a file or directory from the host into the container.
|
|
2458
|
+
# - `cluster` a Swarm cluster volume.
|
|
2459
|
+
# - `image` an OCI image.
|
|
2460
|
+
# - `npipe` a named pipe from the host into the container.
|
|
2461
|
+
# - `tmpfs` a `tmpfs`.
|
|
2462
|
+
# - `volume` a docker volume with the given `Name`.
|
|
2463
|
+
module Type
|
|
2464
|
+
extend DockerEngine::Internal::Type::Enum
|
|
2465
|
+
|
|
2466
|
+
TaggedSymbol =
|
|
2467
|
+
T.type_alias do
|
|
2468
|
+
T.all(
|
|
2469
|
+
Symbol,
|
|
2470
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type
|
|
2471
|
+
)
|
|
2472
|
+
end
|
|
2473
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2474
|
+
|
|
2475
|
+
BIND =
|
|
2476
|
+
T.let(
|
|
2477
|
+
:bind,
|
|
2478
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::TaggedSymbol
|
|
2479
|
+
)
|
|
2480
|
+
CLUSTER =
|
|
2481
|
+
T.let(
|
|
2482
|
+
:cluster,
|
|
2483
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::TaggedSymbol
|
|
2484
|
+
)
|
|
2485
|
+
IMAGE =
|
|
2486
|
+
T.let(
|
|
2487
|
+
:image,
|
|
2488
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::TaggedSymbol
|
|
2489
|
+
)
|
|
2490
|
+
NPIPE =
|
|
2491
|
+
T.let(
|
|
2492
|
+
:npipe,
|
|
2493
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::TaggedSymbol
|
|
2494
|
+
)
|
|
2495
|
+
TMPFS =
|
|
2496
|
+
T.let(
|
|
2497
|
+
:tmpfs,
|
|
2498
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::TaggedSymbol
|
|
2499
|
+
)
|
|
2500
|
+
VOLUME =
|
|
2501
|
+
T.let(
|
|
2502
|
+
:volume,
|
|
2503
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::TaggedSymbol
|
|
2504
|
+
)
|
|
2505
|
+
|
|
2506
|
+
sig do
|
|
2507
|
+
override.returns(
|
|
2508
|
+
T::Array[
|
|
2509
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::Type::TaggedSymbol
|
|
2510
|
+
]
|
|
2511
|
+
)
|
|
2512
|
+
end
|
|
2513
|
+
def self.values
|
|
2514
|
+
end
|
|
2515
|
+
end
|
|
2516
|
+
|
|
2517
|
+
class VolumeOptions < DockerEngine::Internal::Type::BaseModel
|
|
2518
|
+
OrHash =
|
|
2519
|
+
T.type_alias do
|
|
2520
|
+
T.any(
|
|
2521
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions,
|
|
2522
|
+
DockerEngine::Internal::AnyHash
|
|
2523
|
+
)
|
|
2524
|
+
end
|
|
2525
|
+
|
|
2526
|
+
# Map of driver specific options
|
|
2527
|
+
sig do
|
|
2528
|
+
returns(
|
|
2529
|
+
T.nilable(
|
|
2530
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions::DriverConfig
|
|
2531
|
+
)
|
|
2532
|
+
)
|
|
2533
|
+
end
|
|
2534
|
+
attr_reader :driver_config
|
|
2535
|
+
|
|
2536
|
+
sig do
|
|
2537
|
+
params(
|
|
2538
|
+
driver_config:
|
|
2539
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions::DriverConfig::OrHash
|
|
2540
|
+
).void
|
|
2541
|
+
end
|
|
2542
|
+
attr_writer :driver_config
|
|
2543
|
+
|
|
2544
|
+
# User-defined key/value metadata.
|
|
2545
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
2546
|
+
attr_reader :labels
|
|
2547
|
+
|
|
2548
|
+
sig { params(labels: T::Hash[Symbol, String]).void }
|
|
2549
|
+
attr_writer :labels
|
|
2550
|
+
|
|
2551
|
+
# Populate volume with data from the target.
|
|
2552
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
2553
|
+
attr_reader :no_copy
|
|
2554
|
+
|
|
2555
|
+
sig { params(no_copy: T::Boolean).void }
|
|
2556
|
+
attr_writer :no_copy
|
|
2557
|
+
|
|
2558
|
+
# Source path inside the volume. Must be relative without any back traversals.
|
|
2559
|
+
sig { returns(T.nilable(String)) }
|
|
2560
|
+
attr_reader :subpath
|
|
2561
|
+
|
|
2562
|
+
sig { params(subpath: String).void }
|
|
2563
|
+
attr_writer :subpath
|
|
2564
|
+
|
|
2565
|
+
# Optional configuration for the `volume` type.
|
|
2566
|
+
sig do
|
|
2567
|
+
params(
|
|
2568
|
+
driver_config:
|
|
2569
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions::DriverConfig::OrHash,
|
|
2570
|
+
labels: T::Hash[Symbol, String],
|
|
2571
|
+
no_copy: T::Boolean,
|
|
2572
|
+
subpath: String
|
|
2573
|
+
).returns(T.attached_class)
|
|
2574
|
+
end
|
|
2575
|
+
def self.new(
|
|
2576
|
+
# Map of driver specific options
|
|
2577
|
+
driver_config: nil,
|
|
2578
|
+
# User-defined key/value metadata.
|
|
2579
|
+
labels: nil,
|
|
2580
|
+
# Populate volume with data from the target.
|
|
2581
|
+
no_copy: nil,
|
|
2582
|
+
# Source path inside the volume. Must be relative without any back traversals.
|
|
2583
|
+
subpath: nil
|
|
2584
|
+
)
|
|
2585
|
+
end
|
|
2586
|
+
|
|
2587
|
+
sig do
|
|
2588
|
+
override.returns(
|
|
2589
|
+
{
|
|
2590
|
+
driver_config:
|
|
2591
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions::DriverConfig,
|
|
2592
|
+
labels: T::Hash[Symbol, String],
|
|
2593
|
+
no_copy: T::Boolean,
|
|
2594
|
+
subpath: String
|
|
2595
|
+
}
|
|
2596
|
+
)
|
|
2597
|
+
end
|
|
2598
|
+
def to_hash
|
|
2599
|
+
end
|
|
2600
|
+
|
|
2601
|
+
class DriverConfig < DockerEngine::Internal::Type::BaseModel
|
|
2602
|
+
OrHash =
|
|
2603
|
+
T.type_alias do
|
|
2604
|
+
T.any(
|
|
2605
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Mount::VolumeOptions::DriverConfig,
|
|
2606
|
+
DockerEngine::Internal::AnyHash
|
|
2607
|
+
)
|
|
2608
|
+
end
|
|
2609
|
+
|
|
2610
|
+
# Name of the driver to use to create the volume.
|
|
2611
|
+
sig { returns(T.nilable(String)) }
|
|
2612
|
+
attr_reader :name
|
|
2613
|
+
|
|
2614
|
+
sig { params(name: String).void }
|
|
2615
|
+
attr_writer :name
|
|
2616
|
+
|
|
2617
|
+
# key/value map of driver specific options.
|
|
2618
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
2619
|
+
attr_reader :options
|
|
2620
|
+
|
|
2621
|
+
sig { params(options: T::Hash[Symbol, String]).void }
|
|
2622
|
+
attr_writer :options
|
|
2623
|
+
|
|
2624
|
+
# Map of driver specific options
|
|
2625
|
+
sig do
|
|
2626
|
+
params(
|
|
2627
|
+
name: String,
|
|
2628
|
+
options: T::Hash[Symbol, String]
|
|
2629
|
+
).returns(T.attached_class)
|
|
2630
|
+
end
|
|
2631
|
+
def self.new(
|
|
2632
|
+
# Name of the driver to use to create the volume.
|
|
2633
|
+
name: nil,
|
|
2634
|
+
# key/value map of driver specific options.
|
|
2635
|
+
options: nil
|
|
2636
|
+
)
|
|
2637
|
+
end
|
|
2638
|
+
|
|
2639
|
+
sig do
|
|
2640
|
+
override.returns(
|
|
2641
|
+
{ name: String, options: T::Hash[Symbol, String] }
|
|
2642
|
+
)
|
|
2643
|
+
end
|
|
2644
|
+
def to_hash
|
|
2645
|
+
end
|
|
2646
|
+
end
|
|
2647
|
+
end
|
|
2648
|
+
end
|
|
2649
|
+
|
|
2650
|
+
class Privileges < DockerEngine::Internal::Type::BaseModel
|
|
2651
|
+
OrHash =
|
|
2652
|
+
T.type_alias do
|
|
2653
|
+
T.any(
|
|
2654
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges,
|
|
2655
|
+
DockerEngine::Internal::AnyHash
|
|
2656
|
+
)
|
|
2657
|
+
end
|
|
2658
|
+
|
|
2659
|
+
# Options for configuring AppArmor on the container
|
|
2660
|
+
sig do
|
|
2661
|
+
returns(
|
|
2662
|
+
T.nilable(
|
|
2663
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor
|
|
2664
|
+
)
|
|
2665
|
+
)
|
|
2666
|
+
end
|
|
2667
|
+
attr_reader :app_armor
|
|
2668
|
+
|
|
2669
|
+
sig do
|
|
2670
|
+
params(
|
|
2671
|
+
app_armor:
|
|
2672
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::OrHash
|
|
2673
|
+
).void
|
|
2674
|
+
end
|
|
2675
|
+
attr_writer :app_armor
|
|
2676
|
+
|
|
2677
|
+
# CredentialSpec for managed service account (Windows only)
|
|
2678
|
+
sig do
|
|
2679
|
+
returns(
|
|
2680
|
+
T.nilable(
|
|
2681
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::CredentialSpec
|
|
2682
|
+
)
|
|
2683
|
+
)
|
|
2684
|
+
end
|
|
2685
|
+
attr_reader :credential_spec
|
|
2686
|
+
|
|
2687
|
+
sig do
|
|
2688
|
+
params(
|
|
2689
|
+
credential_spec:
|
|
2690
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::CredentialSpec::OrHash
|
|
2691
|
+
).void
|
|
2692
|
+
end
|
|
2693
|
+
attr_writer :credential_spec
|
|
2694
|
+
|
|
2695
|
+
# Configuration of the no_new_privs bit in the container
|
|
2696
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
2697
|
+
attr_reader :no_new_privileges
|
|
2698
|
+
|
|
2699
|
+
sig { params(no_new_privileges: T::Boolean).void }
|
|
2700
|
+
attr_writer :no_new_privileges
|
|
2701
|
+
|
|
2702
|
+
# Options for configuring seccomp on the container
|
|
2703
|
+
sig do
|
|
2704
|
+
returns(
|
|
2705
|
+
T.nilable(
|
|
2706
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp
|
|
2707
|
+
)
|
|
2708
|
+
)
|
|
2709
|
+
end
|
|
2710
|
+
attr_reader :seccomp
|
|
2711
|
+
|
|
2712
|
+
sig do
|
|
2713
|
+
params(
|
|
2714
|
+
seccomp:
|
|
2715
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::OrHash
|
|
2716
|
+
).void
|
|
2717
|
+
end
|
|
2718
|
+
attr_writer :seccomp
|
|
2719
|
+
|
|
2720
|
+
# SELinux labels of the container
|
|
2721
|
+
sig do
|
|
2722
|
+
returns(
|
|
2723
|
+
T.nilable(
|
|
2724
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::SeLinuxContext
|
|
2725
|
+
)
|
|
2726
|
+
)
|
|
2727
|
+
end
|
|
2728
|
+
attr_reader :se_linux_context
|
|
2729
|
+
|
|
2730
|
+
sig do
|
|
2731
|
+
params(
|
|
2732
|
+
se_linux_context:
|
|
2733
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::SeLinuxContext::OrHash
|
|
2734
|
+
).void
|
|
2735
|
+
end
|
|
2736
|
+
attr_writer :se_linux_context
|
|
2737
|
+
|
|
2738
|
+
# Security options for the container
|
|
2739
|
+
sig do
|
|
2740
|
+
params(
|
|
2741
|
+
app_armor:
|
|
2742
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::OrHash,
|
|
2743
|
+
credential_spec:
|
|
2744
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::CredentialSpec::OrHash,
|
|
2745
|
+
no_new_privileges: T::Boolean,
|
|
2746
|
+
seccomp:
|
|
2747
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::OrHash,
|
|
2748
|
+
se_linux_context:
|
|
2749
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::SeLinuxContext::OrHash
|
|
2750
|
+
).returns(T.attached_class)
|
|
2751
|
+
end
|
|
2752
|
+
def self.new(
|
|
2753
|
+
# Options for configuring AppArmor on the container
|
|
2754
|
+
app_armor: nil,
|
|
2755
|
+
# CredentialSpec for managed service account (Windows only)
|
|
2756
|
+
credential_spec: nil,
|
|
2757
|
+
# Configuration of the no_new_privs bit in the container
|
|
2758
|
+
no_new_privileges: nil,
|
|
2759
|
+
# Options for configuring seccomp on the container
|
|
2760
|
+
seccomp: nil,
|
|
2761
|
+
# SELinux labels of the container
|
|
2762
|
+
se_linux_context: nil
|
|
2763
|
+
)
|
|
2764
|
+
end
|
|
2765
|
+
|
|
2766
|
+
sig do
|
|
2767
|
+
override.returns(
|
|
2768
|
+
{
|
|
2769
|
+
app_armor:
|
|
2770
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor,
|
|
2771
|
+
credential_spec:
|
|
2772
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::CredentialSpec,
|
|
2773
|
+
no_new_privileges: T::Boolean,
|
|
2774
|
+
seccomp:
|
|
2775
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp,
|
|
2776
|
+
se_linux_context:
|
|
2777
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::SeLinuxContext
|
|
2778
|
+
}
|
|
2779
|
+
)
|
|
2780
|
+
end
|
|
2781
|
+
def to_hash
|
|
2782
|
+
end
|
|
2783
|
+
|
|
2784
|
+
class AppArmor < DockerEngine::Internal::Type::BaseModel
|
|
2785
|
+
OrHash =
|
|
2786
|
+
T.type_alias do
|
|
2787
|
+
T.any(
|
|
2788
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor,
|
|
2789
|
+
DockerEngine::Internal::AnyHash
|
|
2790
|
+
)
|
|
2791
|
+
end
|
|
2792
|
+
|
|
2793
|
+
sig do
|
|
2794
|
+
returns(
|
|
2795
|
+
T.nilable(
|
|
2796
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode::OrSymbol
|
|
2797
|
+
)
|
|
2798
|
+
)
|
|
2799
|
+
end
|
|
2800
|
+
attr_reader :mode
|
|
2801
|
+
|
|
2802
|
+
sig do
|
|
2803
|
+
params(
|
|
2804
|
+
mode:
|
|
2805
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode::OrSymbol
|
|
2806
|
+
).void
|
|
2807
|
+
end
|
|
2808
|
+
attr_writer :mode
|
|
2809
|
+
|
|
2810
|
+
# Options for configuring AppArmor on the container
|
|
2811
|
+
sig do
|
|
2812
|
+
params(
|
|
2813
|
+
mode:
|
|
2814
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode::OrSymbol
|
|
2815
|
+
).returns(T.attached_class)
|
|
2816
|
+
end
|
|
2817
|
+
def self.new(mode: nil)
|
|
2818
|
+
end
|
|
2819
|
+
|
|
2820
|
+
sig do
|
|
2821
|
+
override.returns(
|
|
2822
|
+
{
|
|
2823
|
+
mode:
|
|
2824
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode::OrSymbol
|
|
2825
|
+
}
|
|
2826
|
+
)
|
|
2827
|
+
end
|
|
2828
|
+
def to_hash
|
|
2829
|
+
end
|
|
2830
|
+
|
|
2831
|
+
module Mode
|
|
2832
|
+
extend DockerEngine::Internal::Type::Enum
|
|
2833
|
+
|
|
2834
|
+
TaggedSymbol =
|
|
2835
|
+
T.type_alias do
|
|
2836
|
+
T.all(
|
|
2837
|
+
Symbol,
|
|
2838
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode
|
|
2839
|
+
)
|
|
2840
|
+
end
|
|
2841
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
2842
|
+
|
|
2843
|
+
DEFAULT =
|
|
2844
|
+
T.let(
|
|
2845
|
+
:default,
|
|
2846
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode::TaggedSymbol
|
|
2847
|
+
)
|
|
2848
|
+
DISABLED =
|
|
2849
|
+
T.let(
|
|
2850
|
+
:disabled,
|
|
2851
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode::TaggedSymbol
|
|
2852
|
+
)
|
|
2853
|
+
|
|
2854
|
+
sig do
|
|
2855
|
+
override.returns(
|
|
2856
|
+
T::Array[
|
|
2857
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::AppArmor::Mode::TaggedSymbol
|
|
2858
|
+
]
|
|
2859
|
+
)
|
|
2860
|
+
end
|
|
2861
|
+
def self.values
|
|
2862
|
+
end
|
|
2863
|
+
end
|
|
2864
|
+
end
|
|
2865
|
+
|
|
2866
|
+
class CredentialSpec < DockerEngine::Internal::Type::BaseModel
|
|
2867
|
+
OrHash =
|
|
2868
|
+
T.type_alias do
|
|
2869
|
+
T.any(
|
|
2870
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::CredentialSpec,
|
|
2871
|
+
DockerEngine::Internal::AnyHash
|
|
2872
|
+
)
|
|
2873
|
+
end
|
|
2874
|
+
|
|
2875
|
+
# Load credential spec from a Swarm Config with the given ID. The specified config
|
|
2876
|
+
# must also be present in the Configs field with the Runtime property set.
|
|
2877
|
+
#
|
|
2878
|
+
# <p><br /></p>
|
|
2879
|
+
#
|
|
2880
|
+
# > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and
|
|
2881
|
+
# > `CredentialSpec.Config` are mutually exclusive.
|
|
2882
|
+
sig { returns(T.nilable(String)) }
|
|
2883
|
+
attr_reader :config
|
|
2884
|
+
|
|
2885
|
+
sig { params(config: String).void }
|
|
2886
|
+
attr_writer :config
|
|
2887
|
+
|
|
2888
|
+
# Load credential spec from this file. The file is read by the daemon, and must be
|
|
2889
|
+
# present in the `CredentialSpecs` subdirectory in the docker data directory,
|
|
2890
|
+
# which defaults to `C:\ProgramData\Docker\` on Windows.
|
|
2891
|
+
#
|
|
2892
|
+
# For example, specifying `spec.json` loads
|
|
2893
|
+
# `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
|
|
2894
|
+
#
|
|
2895
|
+
# <p><br /></p>
|
|
2896
|
+
#
|
|
2897
|
+
# > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and
|
|
2898
|
+
# > `CredentialSpec.Config` are mutually exclusive.
|
|
2899
|
+
sig { returns(T.nilable(String)) }
|
|
2900
|
+
attr_reader :file
|
|
2901
|
+
|
|
2902
|
+
sig { params(file: String).void }
|
|
2903
|
+
attr_writer :file
|
|
2904
|
+
|
|
2905
|
+
# Load credential spec from this value in the Windows registry. The specified
|
|
2906
|
+
# registry value must be located in:
|
|
2907
|
+
#
|
|
2908
|
+
# `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
|
|
2909
|
+
#
|
|
2910
|
+
# <p><br /></p>
|
|
2911
|
+
#
|
|
2912
|
+
# > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and
|
|
2913
|
+
# > `CredentialSpec.Config` are mutually exclusive.
|
|
2914
|
+
sig { returns(T.nilable(String)) }
|
|
2915
|
+
attr_reader :registry
|
|
2916
|
+
|
|
2917
|
+
sig { params(registry: String).void }
|
|
2918
|
+
attr_writer :registry
|
|
2919
|
+
|
|
2920
|
+
# CredentialSpec for managed service account (Windows only)
|
|
2921
|
+
sig do
|
|
2922
|
+
params(config: String, file: String, registry: String).returns(
|
|
2923
|
+
T.attached_class
|
|
2924
|
+
)
|
|
2925
|
+
end
|
|
2926
|
+
def self.new(
|
|
2927
|
+
# Load credential spec from a Swarm Config with the given ID. The specified config
|
|
2928
|
+
# must also be present in the Configs field with the Runtime property set.
|
|
2929
|
+
#
|
|
2930
|
+
# <p><br /></p>
|
|
2931
|
+
#
|
|
2932
|
+
# > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and
|
|
2933
|
+
# > `CredentialSpec.Config` are mutually exclusive.
|
|
2934
|
+
config: nil,
|
|
2935
|
+
# Load credential spec from this file. The file is read by the daemon, and must be
|
|
2936
|
+
# present in the `CredentialSpecs` subdirectory in the docker data directory,
|
|
2937
|
+
# which defaults to `C:\ProgramData\Docker\` on Windows.
|
|
2938
|
+
#
|
|
2939
|
+
# For example, specifying `spec.json` loads
|
|
2940
|
+
# `C:\ProgramData\Docker\CredentialSpecs\spec.json`.
|
|
2941
|
+
#
|
|
2942
|
+
# <p><br /></p>
|
|
2943
|
+
#
|
|
2944
|
+
# > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and
|
|
2945
|
+
# > `CredentialSpec.Config` are mutually exclusive.
|
|
2946
|
+
file: nil,
|
|
2947
|
+
# Load credential spec from this value in the Windows registry. The specified
|
|
2948
|
+
# registry value must be located in:
|
|
2949
|
+
#
|
|
2950
|
+
# `HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs`
|
|
2951
|
+
#
|
|
2952
|
+
# <p><br /></p>
|
|
2953
|
+
#
|
|
2954
|
+
# > **Note**: `CredentialSpec.File`, `CredentialSpec.Registry`, and
|
|
2955
|
+
# > `CredentialSpec.Config` are mutually exclusive.
|
|
2956
|
+
registry: nil
|
|
2957
|
+
)
|
|
2958
|
+
end
|
|
2959
|
+
|
|
2960
|
+
sig do
|
|
2961
|
+
override.returns(
|
|
2962
|
+
{ config: String, file: String, registry: String }
|
|
2963
|
+
)
|
|
2964
|
+
end
|
|
2965
|
+
def to_hash
|
|
2966
|
+
end
|
|
2967
|
+
end
|
|
2968
|
+
|
|
2969
|
+
class Seccomp < DockerEngine::Internal::Type::BaseModel
|
|
2970
|
+
OrHash =
|
|
2971
|
+
T.type_alias do
|
|
2972
|
+
T.any(
|
|
2973
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp,
|
|
2974
|
+
DockerEngine::Internal::AnyHash
|
|
2975
|
+
)
|
|
2976
|
+
end
|
|
2977
|
+
|
|
2978
|
+
sig do
|
|
2979
|
+
returns(
|
|
2980
|
+
T.nilable(
|
|
2981
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::OrSymbol
|
|
2982
|
+
)
|
|
2983
|
+
)
|
|
2984
|
+
end
|
|
2985
|
+
attr_reader :mode
|
|
2986
|
+
|
|
2987
|
+
sig do
|
|
2988
|
+
params(
|
|
2989
|
+
mode:
|
|
2990
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::OrSymbol
|
|
2991
|
+
).void
|
|
2992
|
+
end
|
|
2993
|
+
attr_writer :mode
|
|
2994
|
+
|
|
2995
|
+
# The custom seccomp profile as a json object
|
|
2996
|
+
sig { returns(T.nilable(String)) }
|
|
2997
|
+
attr_reader :profile
|
|
2998
|
+
|
|
2999
|
+
sig { params(profile: String).void }
|
|
3000
|
+
attr_writer :profile
|
|
3001
|
+
|
|
3002
|
+
# Options for configuring seccomp on the container
|
|
3003
|
+
sig do
|
|
3004
|
+
params(
|
|
3005
|
+
mode:
|
|
3006
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::OrSymbol,
|
|
3007
|
+
profile: String
|
|
3008
|
+
).returns(T.attached_class)
|
|
3009
|
+
end
|
|
3010
|
+
def self.new(
|
|
3011
|
+
mode: nil,
|
|
3012
|
+
# The custom seccomp profile as a json object
|
|
3013
|
+
profile: nil
|
|
3014
|
+
)
|
|
3015
|
+
end
|
|
3016
|
+
|
|
3017
|
+
sig do
|
|
3018
|
+
override.returns(
|
|
3019
|
+
{
|
|
3020
|
+
mode:
|
|
3021
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::OrSymbol,
|
|
3022
|
+
profile: String
|
|
3023
|
+
}
|
|
3024
|
+
)
|
|
3025
|
+
end
|
|
3026
|
+
def to_hash
|
|
3027
|
+
end
|
|
3028
|
+
|
|
3029
|
+
module Mode
|
|
3030
|
+
extend DockerEngine::Internal::Type::Enum
|
|
3031
|
+
|
|
3032
|
+
TaggedSymbol =
|
|
3033
|
+
T.type_alias do
|
|
3034
|
+
T.all(
|
|
3035
|
+
Symbol,
|
|
3036
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode
|
|
3037
|
+
)
|
|
3038
|
+
end
|
|
3039
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
3040
|
+
|
|
3041
|
+
DEFAULT =
|
|
3042
|
+
T.let(
|
|
3043
|
+
:default,
|
|
3044
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::TaggedSymbol
|
|
3045
|
+
)
|
|
3046
|
+
UNCONFINED =
|
|
3047
|
+
T.let(
|
|
3048
|
+
:unconfined,
|
|
3049
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::TaggedSymbol
|
|
3050
|
+
)
|
|
3051
|
+
CUSTOM =
|
|
3052
|
+
T.let(
|
|
3053
|
+
:custom,
|
|
3054
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::TaggedSymbol
|
|
3055
|
+
)
|
|
3056
|
+
|
|
3057
|
+
sig do
|
|
3058
|
+
override.returns(
|
|
3059
|
+
T::Array[
|
|
3060
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::Seccomp::Mode::TaggedSymbol
|
|
3061
|
+
]
|
|
3062
|
+
)
|
|
3063
|
+
end
|
|
3064
|
+
def self.values
|
|
3065
|
+
end
|
|
3066
|
+
end
|
|
3067
|
+
end
|
|
3068
|
+
|
|
3069
|
+
class SeLinuxContext < DockerEngine::Internal::Type::BaseModel
|
|
3070
|
+
OrHash =
|
|
3071
|
+
T.type_alias do
|
|
3072
|
+
T.any(
|
|
3073
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Privileges::SeLinuxContext,
|
|
3074
|
+
DockerEngine::Internal::AnyHash
|
|
3075
|
+
)
|
|
3076
|
+
end
|
|
3077
|
+
|
|
3078
|
+
# Disable SELinux
|
|
3079
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
3080
|
+
attr_reader :disable
|
|
3081
|
+
|
|
3082
|
+
sig { params(disable: T::Boolean).void }
|
|
3083
|
+
attr_writer :disable
|
|
3084
|
+
|
|
3085
|
+
# SELinux level label
|
|
3086
|
+
sig { returns(T.nilable(String)) }
|
|
3087
|
+
attr_reader :level
|
|
3088
|
+
|
|
3089
|
+
sig { params(level: String).void }
|
|
3090
|
+
attr_writer :level
|
|
3091
|
+
|
|
3092
|
+
# SELinux role label
|
|
3093
|
+
sig { returns(T.nilable(String)) }
|
|
3094
|
+
attr_reader :role
|
|
3095
|
+
|
|
3096
|
+
sig { params(role: String).void }
|
|
3097
|
+
attr_writer :role
|
|
3098
|
+
|
|
3099
|
+
# SELinux type label
|
|
3100
|
+
sig { returns(T.nilable(String)) }
|
|
3101
|
+
attr_reader :type
|
|
3102
|
+
|
|
3103
|
+
sig { params(type: String).void }
|
|
3104
|
+
attr_writer :type
|
|
3105
|
+
|
|
3106
|
+
# SELinux user label
|
|
3107
|
+
sig { returns(T.nilable(String)) }
|
|
3108
|
+
attr_reader :user
|
|
3109
|
+
|
|
3110
|
+
sig { params(user: String).void }
|
|
3111
|
+
attr_writer :user
|
|
3112
|
+
|
|
3113
|
+
# SELinux labels of the container
|
|
3114
|
+
sig do
|
|
3115
|
+
params(
|
|
3116
|
+
disable: T::Boolean,
|
|
3117
|
+
level: String,
|
|
3118
|
+
role: String,
|
|
3119
|
+
type: String,
|
|
3120
|
+
user: String
|
|
3121
|
+
).returns(T.attached_class)
|
|
3122
|
+
end
|
|
3123
|
+
def self.new(
|
|
3124
|
+
# Disable SELinux
|
|
3125
|
+
disable: nil,
|
|
3126
|
+
# SELinux level label
|
|
3127
|
+
level: nil,
|
|
3128
|
+
# SELinux role label
|
|
3129
|
+
role: nil,
|
|
3130
|
+
# SELinux type label
|
|
3131
|
+
type: nil,
|
|
3132
|
+
# SELinux user label
|
|
3133
|
+
user: nil
|
|
3134
|
+
)
|
|
3135
|
+
end
|
|
3136
|
+
|
|
3137
|
+
sig do
|
|
3138
|
+
override.returns(
|
|
3139
|
+
{
|
|
3140
|
+
disable: T::Boolean,
|
|
3141
|
+
level: String,
|
|
3142
|
+
role: String,
|
|
3143
|
+
type: String,
|
|
3144
|
+
user: String
|
|
3145
|
+
}
|
|
3146
|
+
)
|
|
3147
|
+
end
|
|
3148
|
+
def to_hash
|
|
3149
|
+
end
|
|
3150
|
+
end
|
|
3151
|
+
end
|
|
3152
|
+
|
|
3153
|
+
class Secret < DockerEngine::Internal::Type::BaseModel
|
|
3154
|
+
OrHash =
|
|
3155
|
+
T.type_alias do
|
|
3156
|
+
T.any(
|
|
3157
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret,
|
|
3158
|
+
DockerEngine::Internal::AnyHash
|
|
3159
|
+
)
|
|
3160
|
+
end
|
|
3161
|
+
|
|
3162
|
+
# File represents a specific target that is backed by a file.
|
|
3163
|
+
sig do
|
|
3164
|
+
returns(
|
|
3165
|
+
T.nilable(
|
|
3166
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret::File
|
|
3167
|
+
)
|
|
3168
|
+
)
|
|
3169
|
+
end
|
|
3170
|
+
attr_reader :file
|
|
3171
|
+
|
|
3172
|
+
sig do
|
|
3173
|
+
params(
|
|
3174
|
+
file:
|
|
3175
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret::File::OrHash
|
|
3176
|
+
).void
|
|
3177
|
+
end
|
|
3178
|
+
attr_writer :file
|
|
3179
|
+
|
|
3180
|
+
# SecretID represents the ID of the specific secret that we're referencing.
|
|
3181
|
+
sig { returns(T.nilable(String)) }
|
|
3182
|
+
attr_reader :secret_id
|
|
3183
|
+
|
|
3184
|
+
sig { params(secret_id: String).void }
|
|
3185
|
+
attr_writer :secret_id
|
|
3186
|
+
|
|
3187
|
+
# SecretName is the name of the secret that this references, but this is just
|
|
3188
|
+
# provided for lookup/display purposes. The secret in the reference will be
|
|
3189
|
+
# identified by its ID.
|
|
3190
|
+
sig { returns(T.nilable(String)) }
|
|
3191
|
+
attr_reader :secret_name
|
|
3192
|
+
|
|
3193
|
+
sig { params(secret_name: String).void }
|
|
3194
|
+
attr_writer :secret_name
|
|
3195
|
+
|
|
3196
|
+
sig do
|
|
3197
|
+
params(
|
|
3198
|
+
file:
|
|
3199
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret::File::OrHash,
|
|
3200
|
+
secret_id: String,
|
|
3201
|
+
secret_name: String
|
|
3202
|
+
).returns(T.attached_class)
|
|
3203
|
+
end
|
|
3204
|
+
def self.new(
|
|
3205
|
+
# File represents a specific target that is backed by a file.
|
|
3206
|
+
file: nil,
|
|
3207
|
+
# SecretID represents the ID of the specific secret that we're referencing.
|
|
3208
|
+
secret_id: nil,
|
|
3209
|
+
# SecretName is the name of the secret that this references, but this is just
|
|
3210
|
+
# provided for lookup/display purposes. The secret in the reference will be
|
|
3211
|
+
# identified by its ID.
|
|
3212
|
+
secret_name: nil
|
|
3213
|
+
)
|
|
3214
|
+
end
|
|
3215
|
+
|
|
3216
|
+
sig do
|
|
3217
|
+
override.returns(
|
|
3218
|
+
{
|
|
3219
|
+
file:
|
|
3220
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret::File,
|
|
3221
|
+
secret_id: String,
|
|
3222
|
+
secret_name: String
|
|
3223
|
+
}
|
|
3224
|
+
)
|
|
3225
|
+
end
|
|
3226
|
+
def to_hash
|
|
3227
|
+
end
|
|
3228
|
+
|
|
3229
|
+
class File < DockerEngine::Internal::Type::BaseModel
|
|
3230
|
+
OrHash =
|
|
3231
|
+
T.type_alias do
|
|
3232
|
+
T.any(
|
|
3233
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Secret::File,
|
|
3234
|
+
DockerEngine::Internal::AnyHash
|
|
3235
|
+
)
|
|
3236
|
+
end
|
|
3237
|
+
|
|
3238
|
+
# GID represents the file GID.
|
|
3239
|
+
sig { returns(T.nilable(String)) }
|
|
3240
|
+
attr_reader :gid
|
|
3241
|
+
|
|
3242
|
+
sig { params(gid: String).void }
|
|
3243
|
+
attr_writer :gid
|
|
3244
|
+
|
|
3245
|
+
# Mode represents the FileMode of the file.
|
|
3246
|
+
sig { returns(T.nilable(Integer)) }
|
|
3247
|
+
attr_reader :mode
|
|
3248
|
+
|
|
3249
|
+
sig { params(mode: Integer).void }
|
|
3250
|
+
attr_writer :mode
|
|
3251
|
+
|
|
3252
|
+
# Name represents the final filename in the filesystem.
|
|
3253
|
+
sig { returns(T.nilable(String)) }
|
|
3254
|
+
attr_reader :name
|
|
3255
|
+
|
|
3256
|
+
sig { params(name: String).void }
|
|
3257
|
+
attr_writer :name
|
|
3258
|
+
|
|
3259
|
+
# UID represents the file UID.
|
|
3260
|
+
sig { returns(T.nilable(String)) }
|
|
3261
|
+
attr_reader :uid
|
|
3262
|
+
|
|
3263
|
+
sig { params(uid: String).void }
|
|
3264
|
+
attr_writer :uid
|
|
3265
|
+
|
|
3266
|
+
# File represents a specific target that is backed by a file.
|
|
3267
|
+
sig do
|
|
3268
|
+
params(
|
|
3269
|
+
gid: String,
|
|
3270
|
+
mode: Integer,
|
|
3271
|
+
name: String,
|
|
3272
|
+
uid: String
|
|
3273
|
+
).returns(T.attached_class)
|
|
3274
|
+
end
|
|
3275
|
+
def self.new(
|
|
3276
|
+
# GID represents the file GID.
|
|
3277
|
+
gid: nil,
|
|
3278
|
+
# Mode represents the FileMode of the file.
|
|
3279
|
+
mode: nil,
|
|
3280
|
+
# Name represents the final filename in the filesystem.
|
|
3281
|
+
name: nil,
|
|
3282
|
+
# UID represents the file UID.
|
|
3283
|
+
uid: nil
|
|
3284
|
+
)
|
|
3285
|
+
end
|
|
3286
|
+
|
|
3287
|
+
sig do
|
|
3288
|
+
override.returns(
|
|
3289
|
+
{ gid: String, mode: Integer, name: String, uid: String }
|
|
3290
|
+
)
|
|
3291
|
+
end
|
|
3292
|
+
def to_hash
|
|
3293
|
+
end
|
|
3294
|
+
end
|
|
3295
|
+
end
|
|
3296
|
+
|
|
3297
|
+
class Ulimit < DockerEngine::Internal::Type::BaseModel
|
|
3298
|
+
OrHash =
|
|
3299
|
+
T.type_alias do
|
|
3300
|
+
T.any(
|
|
3301
|
+
DockerEngine::Spec::TaskTemplate::ContainerSpec::Ulimit,
|
|
3302
|
+
DockerEngine::Internal::AnyHash
|
|
3303
|
+
)
|
|
3304
|
+
end
|
|
3305
|
+
|
|
3306
|
+
# Hard limit
|
|
3307
|
+
sig { returns(T.nilable(Integer)) }
|
|
3308
|
+
attr_reader :hard
|
|
3309
|
+
|
|
3310
|
+
sig { params(hard: Integer).void }
|
|
3311
|
+
attr_writer :hard
|
|
3312
|
+
|
|
3313
|
+
# Name of ulimit
|
|
3314
|
+
sig { returns(T.nilable(String)) }
|
|
3315
|
+
attr_reader :name
|
|
3316
|
+
|
|
3317
|
+
sig { params(name: String).void }
|
|
3318
|
+
attr_writer :name
|
|
3319
|
+
|
|
3320
|
+
# Soft limit
|
|
3321
|
+
sig { returns(T.nilable(Integer)) }
|
|
3322
|
+
attr_reader :soft
|
|
3323
|
+
|
|
3324
|
+
sig { params(soft: Integer).void }
|
|
3325
|
+
attr_writer :soft
|
|
3326
|
+
|
|
3327
|
+
sig do
|
|
3328
|
+
params(hard: Integer, name: String, soft: Integer).returns(
|
|
3329
|
+
T.attached_class
|
|
3330
|
+
)
|
|
3331
|
+
end
|
|
3332
|
+
def self.new(
|
|
3333
|
+
# Hard limit
|
|
3334
|
+
hard: nil,
|
|
3335
|
+
# Name of ulimit
|
|
3336
|
+
name: nil,
|
|
3337
|
+
# Soft limit
|
|
3338
|
+
soft: nil
|
|
3339
|
+
)
|
|
3340
|
+
end
|
|
3341
|
+
|
|
3342
|
+
sig do
|
|
3343
|
+
override.returns({ hard: Integer, name: String, soft: Integer })
|
|
3344
|
+
end
|
|
3345
|
+
def to_hash
|
|
3346
|
+
end
|
|
3347
|
+
end
|
|
3348
|
+
end
|
|
3349
|
+
|
|
3350
|
+
class LogDriver < DockerEngine::Internal::Type::BaseModel
|
|
3351
|
+
OrHash =
|
|
3352
|
+
T.type_alias do
|
|
3353
|
+
T.any(
|
|
3354
|
+
DockerEngine::Spec::TaskTemplate::LogDriver,
|
|
3355
|
+
DockerEngine::Internal::AnyHash
|
|
3356
|
+
)
|
|
3357
|
+
end
|
|
3358
|
+
|
|
3359
|
+
sig { returns(T.nilable(String)) }
|
|
3360
|
+
attr_reader :name
|
|
3361
|
+
|
|
3362
|
+
sig { params(name: String).void }
|
|
3363
|
+
attr_writer :name
|
|
3364
|
+
|
|
3365
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
3366
|
+
attr_reader :options
|
|
3367
|
+
|
|
3368
|
+
sig { params(options: T::Hash[Symbol, String]).void }
|
|
3369
|
+
attr_writer :options
|
|
3370
|
+
|
|
3371
|
+
# Specifies the log driver to use for tasks created from this spec. If not
|
|
3372
|
+
# present, the default one for the swarm will be used, finally falling back to the
|
|
3373
|
+
# engine default if not specified.
|
|
3374
|
+
sig do
|
|
3375
|
+
params(name: String, options: T::Hash[Symbol, String]).returns(
|
|
3376
|
+
T.attached_class
|
|
3377
|
+
)
|
|
3378
|
+
end
|
|
3379
|
+
def self.new(name: nil, options: nil)
|
|
3380
|
+
end
|
|
3381
|
+
|
|
3382
|
+
sig do
|
|
3383
|
+
override.returns({ name: String, options: T::Hash[Symbol, String] })
|
|
3384
|
+
end
|
|
3385
|
+
def to_hash
|
|
3386
|
+
end
|
|
3387
|
+
end
|
|
3388
|
+
|
|
3389
|
+
class NetworkAttachmentSpec < DockerEngine::Internal::Type::BaseModel
|
|
3390
|
+
OrHash =
|
|
3391
|
+
T.type_alias do
|
|
3392
|
+
T.any(
|
|
3393
|
+
DockerEngine::Spec::TaskTemplate::NetworkAttachmentSpec,
|
|
3394
|
+
DockerEngine::Internal::AnyHash
|
|
3395
|
+
)
|
|
3396
|
+
end
|
|
3397
|
+
|
|
3398
|
+
# ID of the container represented by this task
|
|
3399
|
+
sig { returns(T.nilable(String)) }
|
|
3400
|
+
attr_reader :container_id
|
|
3401
|
+
|
|
3402
|
+
sig { params(container_id: String).void }
|
|
3403
|
+
attr_writer :container_id
|
|
3404
|
+
|
|
3405
|
+
# Read-only spec type for non-swarm containers attached to swarm overlay networks.
|
|
3406
|
+
#
|
|
3407
|
+
# <p><br /></p>
|
|
3408
|
+
#
|
|
3409
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
3410
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
3411
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
3412
|
+
sig { params(container_id: String).returns(T.attached_class) }
|
|
3413
|
+
def self.new(
|
|
3414
|
+
# ID of the container represented by this task
|
|
3415
|
+
container_id: nil
|
|
3416
|
+
)
|
|
3417
|
+
end
|
|
3418
|
+
|
|
3419
|
+
sig { override.returns({ container_id: String }) }
|
|
3420
|
+
def to_hash
|
|
3421
|
+
end
|
|
3422
|
+
end
|
|
3423
|
+
|
|
3424
|
+
class Network < DockerEngine::Internal::Type::BaseModel
|
|
3425
|
+
OrHash =
|
|
3426
|
+
T.type_alias do
|
|
3427
|
+
T.any(
|
|
3428
|
+
DockerEngine::Spec::TaskTemplate::Network,
|
|
3429
|
+
DockerEngine::Internal::AnyHash
|
|
3430
|
+
)
|
|
3431
|
+
end
|
|
3432
|
+
|
|
3433
|
+
# Discoverable alternate names for the service on this network.
|
|
3434
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
3435
|
+
attr_reader :aliases
|
|
3436
|
+
|
|
3437
|
+
sig { params(aliases: T::Array[String]).void }
|
|
3438
|
+
attr_writer :aliases
|
|
3439
|
+
|
|
3440
|
+
# Driver attachment options for the network target.
|
|
3441
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
|
3442
|
+
attr_reader :driver_opts
|
|
3443
|
+
|
|
3444
|
+
sig { params(driver_opts: T::Hash[Symbol, String]).void }
|
|
3445
|
+
attr_writer :driver_opts
|
|
3446
|
+
|
|
3447
|
+
# The target network for attachment. Must be a network name or ID.
|
|
3448
|
+
sig { returns(T.nilable(String)) }
|
|
3449
|
+
attr_reader :target
|
|
3450
|
+
|
|
3451
|
+
sig { params(target: String).void }
|
|
3452
|
+
attr_writer :target
|
|
3453
|
+
|
|
3454
|
+
# Specifies how a service should be attached to a particular network.
|
|
3455
|
+
sig do
|
|
3456
|
+
params(
|
|
3457
|
+
aliases: T::Array[String],
|
|
3458
|
+
driver_opts: T::Hash[Symbol, String],
|
|
3459
|
+
target: String
|
|
3460
|
+
).returns(T.attached_class)
|
|
3461
|
+
end
|
|
3462
|
+
def self.new(
|
|
3463
|
+
# Discoverable alternate names for the service on this network.
|
|
3464
|
+
aliases: nil,
|
|
3465
|
+
# Driver attachment options for the network target.
|
|
3466
|
+
driver_opts: nil,
|
|
3467
|
+
# The target network for attachment. Must be a network name or ID.
|
|
3468
|
+
target: nil
|
|
3469
|
+
)
|
|
3470
|
+
end
|
|
3471
|
+
|
|
3472
|
+
sig do
|
|
3473
|
+
override.returns(
|
|
3474
|
+
{
|
|
3475
|
+
aliases: T::Array[String],
|
|
3476
|
+
driver_opts: T::Hash[Symbol, String],
|
|
3477
|
+
target: String
|
|
3478
|
+
}
|
|
3479
|
+
)
|
|
3480
|
+
end
|
|
3481
|
+
def to_hash
|
|
3482
|
+
end
|
|
3483
|
+
end
|
|
3484
|
+
|
|
3485
|
+
class Placement < DockerEngine::Internal::Type::BaseModel
|
|
3486
|
+
OrHash =
|
|
3487
|
+
T.type_alias do
|
|
3488
|
+
T.any(
|
|
3489
|
+
DockerEngine::Spec::TaskTemplate::Placement,
|
|
3490
|
+
DockerEngine::Internal::AnyHash
|
|
3491
|
+
)
|
|
3492
|
+
end
|
|
3493
|
+
|
|
3494
|
+
# An array of constraint expressions to limit the set of nodes where a task can be
|
|
3495
|
+
# scheduled. Constraint expressions can either use a _match_ (`==`) or _exclude_
|
|
3496
|
+
# (`!=`) rule. Multiple constraints find nodes that satisfy every expression (AND
|
|
3497
|
+
# match). Constraints can match node or Docker Engine labels as follows:
|
|
3498
|
+
#
|
|
3499
|
+
# | node attribute | matches | example |
|
|
3500
|
+
# | -------------------- | ------------------------------ | --------------------------------------------- |
|
|
3501
|
+
# | `node.id` | Node ID | `node.id==2ivku8v2gvtg4` |
|
|
3502
|
+
# | `node.hostname` | Node hostname | `node.hostname!=node-2` |
|
|
3503
|
+
# | `node.role` | Node role (`manager`/`worker`) | `node.role==manager` |
|
|
3504
|
+
# | `node.platform.os` | Node operating system | `node.platform.os==windows` |
|
|
3505
|
+
# | `node.platform.arch` | Node architecture | `node.platform.arch==x86_64` |
|
|
3506
|
+
# | `node.labels` | User-defined node labels | `node.labels.security==high` |
|
|
3507
|
+
# | `engine.labels` | Docker Engine's labels | `engine.labels.operatingsystem==ubuntu-24.04` |
|
|
3508
|
+
#
|
|
3509
|
+
# `engine.labels` apply to Docker Engine labels like operating system, drivers,
|
|
3510
|
+
# etc. Swarm administrators add `node.labels` for operational purposes by using
|
|
3511
|
+
# the [`node update endpoint`](#operation/NodeUpdate).
|
|
3512
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
3513
|
+
attr_reader :constraints
|
|
3514
|
+
|
|
3515
|
+
sig { params(constraints: T::Array[String]).void }
|
|
3516
|
+
attr_writer :constraints
|
|
3517
|
+
|
|
3518
|
+
# Maximum number of replicas for per node (default value is 0, which is unlimited)
|
|
3519
|
+
sig { returns(T.nilable(Integer)) }
|
|
3520
|
+
attr_reader :max_replicas
|
|
3521
|
+
|
|
3522
|
+
sig { params(max_replicas: Integer).void }
|
|
3523
|
+
attr_writer :max_replicas
|
|
3524
|
+
|
|
3525
|
+
# Platforms stores all the platforms that the service's image can run on. This
|
|
3526
|
+
# field is used in the platform filter for scheduling. If empty, then the platform
|
|
3527
|
+
# filter is off, meaning there are no scheduling restrictions.
|
|
3528
|
+
sig do
|
|
3529
|
+
returns(
|
|
3530
|
+
T.nilable(
|
|
3531
|
+
T::Array[DockerEngine::Spec::TaskTemplate::Placement::Platform]
|
|
3532
|
+
)
|
|
3533
|
+
)
|
|
3534
|
+
end
|
|
3535
|
+
attr_reader :platforms
|
|
3536
|
+
|
|
3537
|
+
sig do
|
|
3538
|
+
params(
|
|
3539
|
+
platforms:
|
|
3540
|
+
T::Array[
|
|
3541
|
+
DockerEngine::Spec::TaskTemplate::Placement::Platform::OrHash
|
|
3542
|
+
]
|
|
3543
|
+
).void
|
|
3544
|
+
end
|
|
3545
|
+
attr_writer :platforms
|
|
3546
|
+
|
|
3547
|
+
# Preferences provide a way to make the scheduler aware of factors such as
|
|
3548
|
+
# topology. They are provided in order from highest to lowest precedence.
|
|
3549
|
+
sig do
|
|
3550
|
+
returns(
|
|
3551
|
+
T.nilable(
|
|
3552
|
+
T::Array[
|
|
3553
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference
|
|
3554
|
+
]
|
|
3555
|
+
)
|
|
3556
|
+
)
|
|
3557
|
+
end
|
|
3558
|
+
attr_reader :preferences
|
|
3559
|
+
|
|
3560
|
+
sig do
|
|
3561
|
+
params(
|
|
3562
|
+
preferences:
|
|
3563
|
+
T::Array[
|
|
3564
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference::OrHash
|
|
3565
|
+
]
|
|
3566
|
+
).void
|
|
3567
|
+
end
|
|
3568
|
+
attr_writer :preferences
|
|
3569
|
+
|
|
3570
|
+
sig do
|
|
3571
|
+
params(
|
|
3572
|
+
constraints: T::Array[String],
|
|
3573
|
+
max_replicas: Integer,
|
|
3574
|
+
platforms:
|
|
3575
|
+
T::Array[
|
|
3576
|
+
DockerEngine::Spec::TaskTemplate::Placement::Platform::OrHash
|
|
3577
|
+
],
|
|
3578
|
+
preferences:
|
|
3579
|
+
T::Array[
|
|
3580
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference::OrHash
|
|
3581
|
+
]
|
|
3582
|
+
).returns(T.attached_class)
|
|
3583
|
+
end
|
|
3584
|
+
def self.new(
|
|
3585
|
+
# An array of constraint expressions to limit the set of nodes where a task can be
|
|
3586
|
+
# scheduled. Constraint expressions can either use a _match_ (`==`) or _exclude_
|
|
3587
|
+
# (`!=`) rule. Multiple constraints find nodes that satisfy every expression (AND
|
|
3588
|
+
# match). Constraints can match node or Docker Engine labels as follows:
|
|
3589
|
+
#
|
|
3590
|
+
# | node attribute | matches | example |
|
|
3591
|
+
# | -------------------- | ------------------------------ | --------------------------------------------- |
|
|
3592
|
+
# | `node.id` | Node ID | `node.id==2ivku8v2gvtg4` |
|
|
3593
|
+
# | `node.hostname` | Node hostname | `node.hostname!=node-2` |
|
|
3594
|
+
# | `node.role` | Node role (`manager`/`worker`) | `node.role==manager` |
|
|
3595
|
+
# | `node.platform.os` | Node operating system | `node.platform.os==windows` |
|
|
3596
|
+
# | `node.platform.arch` | Node architecture | `node.platform.arch==x86_64` |
|
|
3597
|
+
# | `node.labels` | User-defined node labels | `node.labels.security==high` |
|
|
3598
|
+
# | `engine.labels` | Docker Engine's labels | `engine.labels.operatingsystem==ubuntu-24.04` |
|
|
3599
|
+
#
|
|
3600
|
+
# `engine.labels` apply to Docker Engine labels like operating system, drivers,
|
|
3601
|
+
# etc. Swarm administrators add `node.labels` for operational purposes by using
|
|
3602
|
+
# the [`node update endpoint`](#operation/NodeUpdate).
|
|
3603
|
+
constraints: nil,
|
|
3604
|
+
# Maximum number of replicas for per node (default value is 0, which is unlimited)
|
|
3605
|
+
max_replicas: nil,
|
|
3606
|
+
# Platforms stores all the platforms that the service's image can run on. This
|
|
3607
|
+
# field is used in the platform filter for scheduling. If empty, then the platform
|
|
3608
|
+
# filter is off, meaning there are no scheduling restrictions.
|
|
3609
|
+
platforms: nil,
|
|
3610
|
+
# Preferences provide a way to make the scheduler aware of factors such as
|
|
3611
|
+
# topology. They are provided in order from highest to lowest precedence.
|
|
3612
|
+
preferences: nil
|
|
3613
|
+
)
|
|
3614
|
+
end
|
|
3615
|
+
|
|
3616
|
+
sig do
|
|
3617
|
+
override.returns(
|
|
3618
|
+
{
|
|
3619
|
+
constraints: T::Array[String],
|
|
3620
|
+
max_replicas: Integer,
|
|
3621
|
+
platforms:
|
|
3622
|
+
T::Array[
|
|
3623
|
+
DockerEngine::Spec::TaskTemplate::Placement::Platform
|
|
3624
|
+
],
|
|
3625
|
+
preferences:
|
|
3626
|
+
T::Array[
|
|
3627
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference
|
|
3628
|
+
]
|
|
3629
|
+
}
|
|
3630
|
+
)
|
|
3631
|
+
end
|
|
3632
|
+
def to_hash
|
|
3633
|
+
end
|
|
3634
|
+
|
|
3635
|
+
class Platform < DockerEngine::Internal::Type::BaseModel
|
|
3636
|
+
OrHash =
|
|
3637
|
+
T.type_alias do
|
|
3638
|
+
T.any(
|
|
3639
|
+
DockerEngine::Spec::TaskTemplate::Placement::Platform,
|
|
3640
|
+
DockerEngine::Internal::AnyHash
|
|
3641
|
+
)
|
|
3642
|
+
end
|
|
3643
|
+
|
|
3644
|
+
# Architecture represents the hardware architecture (for example, `x86_64`).
|
|
3645
|
+
sig { returns(T.nilable(String)) }
|
|
3646
|
+
attr_reader :architecture
|
|
3647
|
+
|
|
3648
|
+
sig { params(architecture: String).void }
|
|
3649
|
+
attr_writer :architecture
|
|
3650
|
+
|
|
3651
|
+
# OS represents the Operating System (for example, `linux` or `windows`).
|
|
3652
|
+
sig { returns(T.nilable(String)) }
|
|
3653
|
+
attr_reader :os
|
|
3654
|
+
|
|
3655
|
+
sig { params(os: String).void }
|
|
3656
|
+
attr_writer :os
|
|
3657
|
+
|
|
3658
|
+
# Platform represents the platform (Arch/OS).
|
|
3659
|
+
sig do
|
|
3660
|
+
params(architecture: String, os: String).returns(T.attached_class)
|
|
3661
|
+
end
|
|
3662
|
+
def self.new(
|
|
3663
|
+
# Architecture represents the hardware architecture (for example, `x86_64`).
|
|
3664
|
+
architecture: nil,
|
|
3665
|
+
# OS represents the Operating System (for example, `linux` or `windows`).
|
|
3666
|
+
os: nil
|
|
3667
|
+
)
|
|
3668
|
+
end
|
|
3669
|
+
|
|
3670
|
+
sig { override.returns({ architecture: String, os: String }) }
|
|
3671
|
+
def to_hash
|
|
3672
|
+
end
|
|
3673
|
+
end
|
|
3674
|
+
|
|
3675
|
+
class Preference < DockerEngine::Internal::Type::BaseModel
|
|
3676
|
+
OrHash =
|
|
3677
|
+
T.type_alias do
|
|
3678
|
+
T.any(
|
|
3679
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference,
|
|
3680
|
+
DockerEngine::Internal::AnyHash
|
|
3681
|
+
)
|
|
3682
|
+
end
|
|
3683
|
+
|
|
3684
|
+
sig do
|
|
3685
|
+
returns(
|
|
3686
|
+
T.nilable(
|
|
3687
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference::Spread
|
|
3688
|
+
)
|
|
3689
|
+
)
|
|
3690
|
+
end
|
|
3691
|
+
attr_reader :spread
|
|
3692
|
+
|
|
3693
|
+
sig do
|
|
3694
|
+
params(
|
|
3695
|
+
spread:
|
|
3696
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference::Spread::OrHash
|
|
3697
|
+
).void
|
|
3698
|
+
end
|
|
3699
|
+
attr_writer :spread
|
|
3700
|
+
|
|
3701
|
+
sig do
|
|
3702
|
+
params(
|
|
3703
|
+
spread:
|
|
3704
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference::Spread::OrHash
|
|
3705
|
+
).returns(T.attached_class)
|
|
3706
|
+
end
|
|
3707
|
+
def self.new(spread: nil)
|
|
3708
|
+
end
|
|
3709
|
+
|
|
3710
|
+
sig do
|
|
3711
|
+
override.returns(
|
|
3712
|
+
{
|
|
3713
|
+
spread:
|
|
3714
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference::Spread
|
|
3715
|
+
}
|
|
3716
|
+
)
|
|
3717
|
+
end
|
|
3718
|
+
def to_hash
|
|
3719
|
+
end
|
|
3720
|
+
|
|
3721
|
+
class Spread < DockerEngine::Internal::Type::BaseModel
|
|
3722
|
+
OrHash =
|
|
3723
|
+
T.type_alias do
|
|
3724
|
+
T.any(
|
|
3725
|
+
DockerEngine::Spec::TaskTemplate::Placement::Preference::Spread,
|
|
3726
|
+
DockerEngine::Internal::AnyHash
|
|
3727
|
+
)
|
|
3728
|
+
end
|
|
3729
|
+
|
|
3730
|
+
# label descriptor, such as `engine.labels.az`.
|
|
3731
|
+
sig { returns(T.nilable(String)) }
|
|
3732
|
+
attr_reader :spread_descriptor
|
|
3733
|
+
|
|
3734
|
+
sig { params(spread_descriptor: String).void }
|
|
3735
|
+
attr_writer :spread_descriptor
|
|
3736
|
+
|
|
3737
|
+
sig do
|
|
3738
|
+
params(spread_descriptor: String).returns(T.attached_class)
|
|
3739
|
+
end
|
|
3740
|
+
def self.new(
|
|
3741
|
+
# label descriptor, such as `engine.labels.az`.
|
|
3742
|
+
spread_descriptor: nil
|
|
3743
|
+
)
|
|
3744
|
+
end
|
|
3745
|
+
|
|
3746
|
+
sig { override.returns({ spread_descriptor: String }) }
|
|
3747
|
+
def to_hash
|
|
3748
|
+
end
|
|
3749
|
+
end
|
|
3750
|
+
end
|
|
3751
|
+
end
|
|
3752
|
+
|
|
3753
|
+
class PluginSpec < DockerEngine::Internal::Type::BaseModel
|
|
3754
|
+
OrHash =
|
|
3755
|
+
T.type_alias do
|
|
3756
|
+
T.any(
|
|
3757
|
+
DockerEngine::Spec::TaskTemplate::PluginSpec,
|
|
3758
|
+
DockerEngine::Internal::AnyHash
|
|
3759
|
+
)
|
|
3760
|
+
end
|
|
3761
|
+
|
|
3762
|
+
# Disable the plugin once scheduled.
|
|
3763
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
3764
|
+
attr_reader :disabled
|
|
3765
|
+
|
|
3766
|
+
sig { params(disabled: T::Boolean).void }
|
|
3767
|
+
attr_writer :disabled
|
|
3768
|
+
|
|
3769
|
+
# The name or 'alias' to use for the plugin.
|
|
3770
|
+
sig { returns(T.nilable(String)) }
|
|
3771
|
+
attr_reader :name
|
|
3772
|
+
|
|
3773
|
+
sig { params(name: String).void }
|
|
3774
|
+
attr_writer :name
|
|
3775
|
+
|
|
3776
|
+
sig do
|
|
3777
|
+
returns(
|
|
3778
|
+
T.nilable(
|
|
3779
|
+
T::Array[
|
|
3780
|
+
DockerEngine::Spec::TaskTemplate::PluginSpec::PluginPrivilege
|
|
3781
|
+
]
|
|
3782
|
+
)
|
|
3783
|
+
)
|
|
3784
|
+
end
|
|
3785
|
+
attr_reader :plugin_privilege
|
|
3786
|
+
|
|
3787
|
+
sig do
|
|
3788
|
+
params(
|
|
3789
|
+
plugin_privilege:
|
|
3790
|
+
T::Array[
|
|
3791
|
+
DockerEngine::Spec::TaskTemplate::PluginSpec::PluginPrivilege::OrHash
|
|
3792
|
+
]
|
|
3793
|
+
).void
|
|
3794
|
+
end
|
|
3795
|
+
attr_writer :plugin_privilege
|
|
3796
|
+
|
|
3797
|
+
# The plugin image reference to use.
|
|
3798
|
+
sig { returns(T.nilable(String)) }
|
|
3799
|
+
attr_reader :remote
|
|
3800
|
+
|
|
3801
|
+
sig { params(remote: String).void }
|
|
3802
|
+
attr_writer :remote
|
|
3803
|
+
|
|
3804
|
+
# Plugin spec for the service. _(Experimental release only.)_
|
|
3805
|
+
#
|
|
3806
|
+
# <p><br /></p>
|
|
3807
|
+
#
|
|
3808
|
+
# > **Note**: ContainerSpec, NetworkAttachmentSpec, and PluginSpec are mutually
|
|
3809
|
+
# > exclusive. PluginSpec is only used when the Runtime field is set to `plugin`.
|
|
3810
|
+
# > NetworkAttachmentSpec is used when the Runtime field is set to `attachment`.
|
|
3811
|
+
sig do
|
|
3812
|
+
params(
|
|
3813
|
+
disabled: T::Boolean,
|
|
3814
|
+
name: String,
|
|
3815
|
+
plugin_privilege:
|
|
3816
|
+
T::Array[
|
|
3817
|
+
DockerEngine::Spec::TaskTemplate::PluginSpec::PluginPrivilege::OrHash
|
|
3818
|
+
],
|
|
3819
|
+
remote: String
|
|
3820
|
+
).returns(T.attached_class)
|
|
3821
|
+
end
|
|
3822
|
+
def self.new(
|
|
3823
|
+
# Disable the plugin once scheduled.
|
|
3824
|
+
disabled: nil,
|
|
3825
|
+
# The name or 'alias' to use for the plugin.
|
|
3826
|
+
name: nil,
|
|
3827
|
+
plugin_privilege: nil,
|
|
3828
|
+
# The plugin image reference to use.
|
|
3829
|
+
remote: nil
|
|
3830
|
+
)
|
|
3831
|
+
end
|
|
3832
|
+
|
|
3833
|
+
sig do
|
|
3834
|
+
override.returns(
|
|
3835
|
+
{
|
|
3836
|
+
disabled: T::Boolean,
|
|
3837
|
+
name: String,
|
|
3838
|
+
plugin_privilege:
|
|
3839
|
+
T::Array[
|
|
3840
|
+
DockerEngine::Spec::TaskTemplate::PluginSpec::PluginPrivilege
|
|
3841
|
+
],
|
|
3842
|
+
remote: String
|
|
3843
|
+
}
|
|
3844
|
+
)
|
|
3845
|
+
end
|
|
3846
|
+
def to_hash
|
|
3847
|
+
end
|
|
3848
|
+
|
|
3849
|
+
class PluginPrivilege < DockerEngine::Internal::Type::BaseModel
|
|
3850
|
+
OrHash =
|
|
3851
|
+
T.type_alias do
|
|
3852
|
+
T.any(
|
|
3853
|
+
DockerEngine::Spec::TaskTemplate::PluginSpec::PluginPrivilege,
|
|
3854
|
+
DockerEngine::Internal::AnyHash
|
|
3855
|
+
)
|
|
3856
|
+
end
|
|
3857
|
+
|
|
3858
|
+
sig { returns(T.nilable(String)) }
|
|
3859
|
+
attr_reader :description
|
|
3860
|
+
|
|
3861
|
+
sig { params(description: String).void }
|
|
3862
|
+
attr_writer :description
|
|
3863
|
+
|
|
3864
|
+
sig { returns(T.nilable(String)) }
|
|
3865
|
+
attr_reader :name
|
|
3866
|
+
|
|
3867
|
+
sig { params(name: String).void }
|
|
3868
|
+
attr_writer :name
|
|
3869
|
+
|
|
3870
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
3871
|
+
attr_reader :value
|
|
3872
|
+
|
|
3873
|
+
sig { params(value: T::Array[String]).void }
|
|
3874
|
+
attr_writer :value
|
|
3875
|
+
|
|
3876
|
+
# Describes a permission the user has to accept upon installing the plugin.
|
|
3877
|
+
sig do
|
|
3878
|
+
params(
|
|
3879
|
+
description: String,
|
|
3880
|
+
name: String,
|
|
3881
|
+
value: T::Array[String]
|
|
3882
|
+
).returns(T.attached_class)
|
|
3883
|
+
end
|
|
3884
|
+
def self.new(description: nil, name: nil, value: nil)
|
|
3885
|
+
end
|
|
3886
|
+
|
|
3887
|
+
sig do
|
|
3888
|
+
override.returns(
|
|
3889
|
+
{ description: String, name: String, value: T::Array[String] }
|
|
3890
|
+
)
|
|
3891
|
+
end
|
|
3892
|
+
def to_hash
|
|
3893
|
+
end
|
|
3894
|
+
end
|
|
3895
|
+
end
|
|
3896
|
+
|
|
3897
|
+
class Resources < DockerEngine::Internal::Type::BaseModel
|
|
3898
|
+
OrHash =
|
|
3899
|
+
T.type_alias do
|
|
3900
|
+
T.any(
|
|
3901
|
+
DockerEngine::Spec::TaskTemplate::Resources,
|
|
3902
|
+
DockerEngine::Internal::AnyHash
|
|
3903
|
+
)
|
|
3904
|
+
end
|
|
3905
|
+
|
|
3906
|
+
# An object describing a limit on resources which can be requested by a task.
|
|
3907
|
+
sig do
|
|
3908
|
+
returns(
|
|
3909
|
+
T.nilable(DockerEngine::Spec::TaskTemplate::Resources::Limits)
|
|
3910
|
+
)
|
|
3911
|
+
end
|
|
3912
|
+
attr_reader :limits
|
|
3913
|
+
|
|
3914
|
+
sig do
|
|
3915
|
+
params(
|
|
3916
|
+
limits:
|
|
3917
|
+
DockerEngine::Spec::TaskTemplate::Resources::Limits::OrHash
|
|
3918
|
+
).void
|
|
3919
|
+
end
|
|
3920
|
+
attr_writer :limits
|
|
3921
|
+
|
|
3922
|
+
# Tune the service's containers' memory swappiness (0 to 100). If not specified,
|
|
3923
|
+
# defaults to the containers' OS' default, generally 60, or whatever value was
|
|
3924
|
+
# predefined in the image. Set to -1 to unset a previously set value.
|
|
3925
|
+
sig { returns(T.nilable(Integer)) }
|
|
3926
|
+
attr_accessor :memory_swappiness
|
|
3927
|
+
|
|
3928
|
+
# An object describing the resources which can be advertised by a node and
|
|
3929
|
+
# requested by a task.
|
|
3930
|
+
sig do
|
|
3931
|
+
returns(
|
|
3932
|
+
T.nilable(
|
|
3933
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations
|
|
3934
|
+
)
|
|
3935
|
+
)
|
|
3936
|
+
end
|
|
3937
|
+
attr_reader :reservations
|
|
3938
|
+
|
|
3939
|
+
sig do
|
|
3940
|
+
params(
|
|
3941
|
+
reservations:
|
|
3942
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::OrHash
|
|
3943
|
+
).void
|
|
3944
|
+
end
|
|
3945
|
+
attr_writer :reservations
|
|
3946
|
+
|
|
3947
|
+
# Amount of swap in bytes - can only be used together with a memory limit. If not
|
|
3948
|
+
# specified, the default behaviour is to grant a swap space twice as big as the
|
|
3949
|
+
# memory limit. Set to -1 to enable unlimited swap.
|
|
3950
|
+
sig { returns(T.nilable(Integer)) }
|
|
3951
|
+
attr_accessor :swap_bytes
|
|
3952
|
+
|
|
3953
|
+
# Resource requirements which apply to each individual container created as part
|
|
3954
|
+
# of the service.
|
|
3955
|
+
sig do
|
|
3956
|
+
params(
|
|
3957
|
+
limits:
|
|
3958
|
+
DockerEngine::Spec::TaskTemplate::Resources::Limits::OrHash,
|
|
3959
|
+
memory_swappiness: T.nilable(Integer),
|
|
3960
|
+
reservations:
|
|
3961
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::OrHash,
|
|
3962
|
+
swap_bytes: T.nilable(Integer)
|
|
3963
|
+
).returns(T.attached_class)
|
|
3964
|
+
end
|
|
3965
|
+
def self.new(
|
|
3966
|
+
# An object describing a limit on resources which can be requested by a task.
|
|
3967
|
+
limits: nil,
|
|
3968
|
+
# Tune the service's containers' memory swappiness (0 to 100). If not specified,
|
|
3969
|
+
# defaults to the containers' OS' default, generally 60, or whatever value was
|
|
3970
|
+
# predefined in the image. Set to -1 to unset a previously set value.
|
|
3971
|
+
memory_swappiness: nil,
|
|
3972
|
+
# An object describing the resources which can be advertised by a node and
|
|
3973
|
+
# requested by a task.
|
|
3974
|
+
reservations: nil,
|
|
3975
|
+
# Amount of swap in bytes - can only be used together with a memory limit. If not
|
|
3976
|
+
# specified, the default behaviour is to grant a swap space twice as big as the
|
|
3977
|
+
# memory limit. Set to -1 to enable unlimited swap.
|
|
3978
|
+
swap_bytes: nil
|
|
3979
|
+
)
|
|
3980
|
+
end
|
|
3981
|
+
|
|
3982
|
+
sig do
|
|
3983
|
+
override.returns(
|
|
3984
|
+
{
|
|
3985
|
+
limits: DockerEngine::Spec::TaskTemplate::Resources::Limits,
|
|
3986
|
+
memory_swappiness: T.nilable(Integer),
|
|
3987
|
+
reservations:
|
|
3988
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations,
|
|
3989
|
+
swap_bytes: T.nilable(Integer)
|
|
3990
|
+
}
|
|
3991
|
+
)
|
|
3992
|
+
end
|
|
3993
|
+
def to_hash
|
|
3994
|
+
end
|
|
3995
|
+
|
|
3996
|
+
class Limits < DockerEngine::Internal::Type::BaseModel
|
|
3997
|
+
OrHash =
|
|
3998
|
+
T.type_alias do
|
|
3999
|
+
T.any(
|
|
4000
|
+
DockerEngine::Spec::TaskTemplate::Resources::Limits,
|
|
4001
|
+
DockerEngine::Internal::AnyHash
|
|
4002
|
+
)
|
|
4003
|
+
end
|
|
4004
|
+
|
|
4005
|
+
sig { returns(T.nilable(Integer)) }
|
|
4006
|
+
attr_reader :memory_bytes
|
|
4007
|
+
|
|
4008
|
+
sig { params(memory_bytes: Integer).void }
|
|
4009
|
+
attr_writer :memory_bytes
|
|
4010
|
+
|
|
4011
|
+
sig { returns(T.nilable(Integer)) }
|
|
4012
|
+
attr_reader :nano_cpus
|
|
4013
|
+
|
|
4014
|
+
sig { params(nano_cpus: Integer).void }
|
|
4015
|
+
attr_writer :nano_cpus
|
|
4016
|
+
|
|
4017
|
+
# Limits the maximum number of PIDs in the container. Set `0` for unlimited.
|
|
4018
|
+
sig { returns(T.nilable(Integer)) }
|
|
4019
|
+
attr_reader :pids
|
|
4020
|
+
|
|
4021
|
+
sig { params(pids: Integer).void }
|
|
4022
|
+
attr_writer :pids
|
|
4023
|
+
|
|
4024
|
+
# An object describing a limit on resources which can be requested by a task.
|
|
4025
|
+
sig do
|
|
4026
|
+
params(
|
|
4027
|
+
memory_bytes: Integer,
|
|
4028
|
+
nano_cpus: Integer,
|
|
4029
|
+
pids: Integer
|
|
4030
|
+
).returns(T.attached_class)
|
|
4031
|
+
end
|
|
4032
|
+
def self.new(
|
|
4033
|
+
memory_bytes: nil,
|
|
4034
|
+
nano_cpus: nil,
|
|
4035
|
+
# Limits the maximum number of PIDs in the container. Set `0` for unlimited.
|
|
4036
|
+
pids: nil
|
|
4037
|
+
)
|
|
4038
|
+
end
|
|
4039
|
+
|
|
4040
|
+
sig do
|
|
4041
|
+
override.returns(
|
|
4042
|
+
{ memory_bytes: Integer, nano_cpus: Integer, pids: Integer }
|
|
4043
|
+
)
|
|
4044
|
+
end
|
|
4045
|
+
def to_hash
|
|
4046
|
+
end
|
|
4047
|
+
end
|
|
4048
|
+
|
|
4049
|
+
class Reservations < DockerEngine::Internal::Type::BaseModel
|
|
4050
|
+
OrHash =
|
|
4051
|
+
T.type_alias do
|
|
4052
|
+
T.any(
|
|
4053
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations,
|
|
4054
|
+
DockerEngine::Internal::AnyHash
|
|
4055
|
+
)
|
|
4056
|
+
end
|
|
4057
|
+
|
|
4058
|
+
# User-defined resources can be either Integer resources (e.g, `SSD=3`) or String
|
|
4059
|
+
# resources (e.g, `GPU=UUID1`).
|
|
4060
|
+
sig do
|
|
4061
|
+
returns(
|
|
4062
|
+
T.nilable(
|
|
4063
|
+
T::Array[
|
|
4064
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource
|
|
4065
|
+
]
|
|
4066
|
+
)
|
|
4067
|
+
)
|
|
4068
|
+
end
|
|
4069
|
+
attr_reader :generic_resources
|
|
4070
|
+
|
|
4071
|
+
sig do
|
|
4072
|
+
params(
|
|
4073
|
+
generic_resources:
|
|
4074
|
+
T::Array[
|
|
4075
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::OrHash
|
|
4076
|
+
]
|
|
4077
|
+
).void
|
|
4078
|
+
end
|
|
4079
|
+
attr_writer :generic_resources
|
|
4080
|
+
|
|
4081
|
+
sig { returns(T.nilable(Integer)) }
|
|
4082
|
+
attr_reader :memory_bytes
|
|
4083
|
+
|
|
4084
|
+
sig { params(memory_bytes: Integer).void }
|
|
4085
|
+
attr_writer :memory_bytes
|
|
4086
|
+
|
|
4087
|
+
sig { returns(T.nilable(Integer)) }
|
|
4088
|
+
attr_reader :nano_cpus
|
|
4089
|
+
|
|
4090
|
+
sig { params(nano_cpus: Integer).void }
|
|
4091
|
+
attr_writer :nano_cpus
|
|
4092
|
+
|
|
4093
|
+
# An object describing the resources which can be advertised by a node and
|
|
4094
|
+
# requested by a task.
|
|
4095
|
+
sig do
|
|
4096
|
+
params(
|
|
4097
|
+
generic_resources:
|
|
4098
|
+
T::Array[
|
|
4099
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::OrHash
|
|
4100
|
+
],
|
|
4101
|
+
memory_bytes: Integer,
|
|
4102
|
+
nano_cpus: Integer
|
|
4103
|
+
).returns(T.attached_class)
|
|
4104
|
+
end
|
|
4105
|
+
def self.new(
|
|
4106
|
+
# User-defined resources can be either Integer resources (e.g, `SSD=3`) or String
|
|
4107
|
+
# resources (e.g, `GPU=UUID1`).
|
|
4108
|
+
generic_resources: nil,
|
|
4109
|
+
memory_bytes: nil,
|
|
4110
|
+
nano_cpus: nil
|
|
4111
|
+
)
|
|
4112
|
+
end
|
|
4113
|
+
|
|
4114
|
+
sig do
|
|
4115
|
+
override.returns(
|
|
4116
|
+
{
|
|
4117
|
+
generic_resources:
|
|
4118
|
+
T::Array[
|
|
4119
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource
|
|
4120
|
+
],
|
|
4121
|
+
memory_bytes: Integer,
|
|
4122
|
+
nano_cpus: Integer
|
|
4123
|
+
}
|
|
4124
|
+
)
|
|
4125
|
+
end
|
|
4126
|
+
def to_hash
|
|
4127
|
+
end
|
|
4128
|
+
|
|
4129
|
+
class GenericResource < DockerEngine::Internal::Type::BaseModel
|
|
4130
|
+
OrHash =
|
|
4131
|
+
T.type_alias do
|
|
4132
|
+
T.any(
|
|
4133
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource,
|
|
4134
|
+
DockerEngine::Internal::AnyHash
|
|
4135
|
+
)
|
|
4136
|
+
end
|
|
4137
|
+
|
|
4138
|
+
sig do
|
|
4139
|
+
returns(
|
|
4140
|
+
T.nilable(
|
|
4141
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::DiscreteResourceSpec
|
|
4142
|
+
)
|
|
4143
|
+
)
|
|
4144
|
+
end
|
|
4145
|
+
attr_reader :discrete_resource_spec
|
|
4146
|
+
|
|
4147
|
+
sig do
|
|
4148
|
+
params(
|
|
4149
|
+
discrete_resource_spec:
|
|
4150
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::DiscreteResourceSpec::OrHash
|
|
4151
|
+
).void
|
|
4152
|
+
end
|
|
4153
|
+
attr_writer :discrete_resource_spec
|
|
4154
|
+
|
|
4155
|
+
sig do
|
|
4156
|
+
returns(
|
|
4157
|
+
T.nilable(
|
|
4158
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::NamedResourceSpec
|
|
4159
|
+
)
|
|
4160
|
+
)
|
|
4161
|
+
end
|
|
4162
|
+
attr_reader :named_resource_spec
|
|
4163
|
+
|
|
4164
|
+
sig do
|
|
4165
|
+
params(
|
|
4166
|
+
named_resource_spec:
|
|
4167
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::NamedResourceSpec::OrHash
|
|
4168
|
+
).void
|
|
4169
|
+
end
|
|
4170
|
+
attr_writer :named_resource_spec
|
|
4171
|
+
|
|
4172
|
+
sig do
|
|
4173
|
+
params(
|
|
4174
|
+
discrete_resource_spec:
|
|
4175
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::DiscreteResourceSpec::OrHash,
|
|
4176
|
+
named_resource_spec:
|
|
4177
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::NamedResourceSpec::OrHash
|
|
4178
|
+
).returns(T.attached_class)
|
|
4179
|
+
end
|
|
4180
|
+
def self.new(
|
|
4181
|
+
discrete_resource_spec: nil,
|
|
4182
|
+
named_resource_spec: nil
|
|
4183
|
+
)
|
|
4184
|
+
end
|
|
4185
|
+
|
|
4186
|
+
sig do
|
|
4187
|
+
override.returns(
|
|
4188
|
+
{
|
|
4189
|
+
discrete_resource_spec:
|
|
4190
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::DiscreteResourceSpec,
|
|
4191
|
+
named_resource_spec:
|
|
4192
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::NamedResourceSpec
|
|
4193
|
+
}
|
|
4194
|
+
)
|
|
4195
|
+
end
|
|
4196
|
+
def to_hash
|
|
4197
|
+
end
|
|
4198
|
+
|
|
4199
|
+
class DiscreteResourceSpec < DockerEngine::Internal::Type::BaseModel
|
|
4200
|
+
OrHash =
|
|
4201
|
+
T.type_alias do
|
|
4202
|
+
T.any(
|
|
4203
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::DiscreteResourceSpec,
|
|
4204
|
+
DockerEngine::Internal::AnyHash
|
|
4205
|
+
)
|
|
4206
|
+
end
|
|
4207
|
+
|
|
4208
|
+
sig { returns(T.nilable(String)) }
|
|
4209
|
+
attr_reader :kind
|
|
4210
|
+
|
|
4211
|
+
sig { params(kind: String).void }
|
|
4212
|
+
attr_writer :kind
|
|
4213
|
+
|
|
4214
|
+
sig { returns(T.nilable(Integer)) }
|
|
4215
|
+
attr_reader :value
|
|
4216
|
+
|
|
4217
|
+
sig { params(value: Integer).void }
|
|
4218
|
+
attr_writer :value
|
|
4219
|
+
|
|
4220
|
+
sig do
|
|
4221
|
+
params(kind: String, value: Integer).returns(T.attached_class)
|
|
4222
|
+
end
|
|
4223
|
+
def self.new(kind: nil, value: nil)
|
|
4224
|
+
end
|
|
4225
|
+
|
|
4226
|
+
sig { override.returns({ kind: String, value: Integer }) }
|
|
4227
|
+
def to_hash
|
|
4228
|
+
end
|
|
4229
|
+
end
|
|
4230
|
+
|
|
4231
|
+
class NamedResourceSpec < DockerEngine::Internal::Type::BaseModel
|
|
4232
|
+
OrHash =
|
|
4233
|
+
T.type_alias do
|
|
4234
|
+
T.any(
|
|
4235
|
+
DockerEngine::Spec::TaskTemplate::Resources::Reservations::GenericResource::NamedResourceSpec,
|
|
4236
|
+
DockerEngine::Internal::AnyHash
|
|
4237
|
+
)
|
|
4238
|
+
end
|
|
4239
|
+
|
|
4240
|
+
sig { returns(T.nilable(String)) }
|
|
4241
|
+
attr_reader :kind
|
|
4242
|
+
|
|
4243
|
+
sig { params(kind: String).void }
|
|
4244
|
+
attr_writer :kind
|
|
4245
|
+
|
|
4246
|
+
sig { returns(T.nilable(String)) }
|
|
4247
|
+
attr_reader :value
|
|
4248
|
+
|
|
4249
|
+
sig { params(value: String).void }
|
|
4250
|
+
attr_writer :value
|
|
4251
|
+
|
|
4252
|
+
sig do
|
|
4253
|
+
params(kind: String, value: String).returns(T.attached_class)
|
|
4254
|
+
end
|
|
4255
|
+
def self.new(kind: nil, value: nil)
|
|
4256
|
+
end
|
|
4257
|
+
|
|
4258
|
+
sig { override.returns({ kind: String, value: String }) }
|
|
4259
|
+
def to_hash
|
|
4260
|
+
end
|
|
4261
|
+
end
|
|
4262
|
+
end
|
|
4263
|
+
end
|
|
4264
|
+
end
|
|
4265
|
+
|
|
4266
|
+
class RestartPolicy < DockerEngine::Internal::Type::BaseModel
|
|
4267
|
+
OrHash =
|
|
4268
|
+
T.type_alias do
|
|
4269
|
+
T.any(
|
|
4270
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy,
|
|
4271
|
+
DockerEngine::Internal::AnyHash
|
|
4272
|
+
)
|
|
4273
|
+
end
|
|
4274
|
+
|
|
4275
|
+
# Condition for restart.
|
|
4276
|
+
sig do
|
|
4277
|
+
returns(
|
|
4278
|
+
T.nilable(
|
|
4279
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::OrSymbol
|
|
4280
|
+
)
|
|
4281
|
+
)
|
|
4282
|
+
end
|
|
4283
|
+
attr_reader :condition
|
|
4284
|
+
|
|
4285
|
+
sig do
|
|
4286
|
+
params(
|
|
4287
|
+
condition:
|
|
4288
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::OrSymbol
|
|
4289
|
+
).void
|
|
4290
|
+
end
|
|
4291
|
+
attr_writer :condition
|
|
4292
|
+
|
|
4293
|
+
# Delay between restart attempts.
|
|
4294
|
+
sig { returns(T.nilable(Integer)) }
|
|
4295
|
+
attr_reader :delay
|
|
4296
|
+
|
|
4297
|
+
sig { params(delay: Integer).void }
|
|
4298
|
+
attr_writer :delay
|
|
4299
|
+
|
|
4300
|
+
# Maximum attempts to restart a given container before giving up (default value is
|
|
4301
|
+
# 0, which is ignored).
|
|
4302
|
+
sig { returns(T.nilable(Integer)) }
|
|
4303
|
+
attr_reader :max_attempts
|
|
4304
|
+
|
|
4305
|
+
sig { params(max_attempts: Integer).void }
|
|
4306
|
+
attr_writer :max_attempts
|
|
4307
|
+
|
|
4308
|
+
# Windows is the time window used to evaluate the restart policy (default value is
|
|
4309
|
+
# 0, which is unbounded).
|
|
4310
|
+
sig { returns(T.nilable(Integer)) }
|
|
4311
|
+
attr_reader :window
|
|
4312
|
+
|
|
4313
|
+
sig { params(window: Integer).void }
|
|
4314
|
+
attr_writer :window
|
|
4315
|
+
|
|
4316
|
+
# Specification for the restart policy which applies to containers created as part
|
|
4317
|
+
# of this service.
|
|
4318
|
+
sig do
|
|
4319
|
+
params(
|
|
4320
|
+
condition:
|
|
4321
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::OrSymbol,
|
|
4322
|
+
delay: Integer,
|
|
4323
|
+
max_attempts: Integer,
|
|
4324
|
+
window: Integer
|
|
4325
|
+
).returns(T.attached_class)
|
|
4326
|
+
end
|
|
4327
|
+
def self.new(
|
|
4328
|
+
# Condition for restart.
|
|
4329
|
+
condition: nil,
|
|
4330
|
+
# Delay between restart attempts.
|
|
4331
|
+
delay: nil,
|
|
4332
|
+
# Maximum attempts to restart a given container before giving up (default value is
|
|
4333
|
+
# 0, which is ignored).
|
|
4334
|
+
max_attempts: nil,
|
|
4335
|
+
# Windows is the time window used to evaluate the restart policy (default value is
|
|
4336
|
+
# 0, which is unbounded).
|
|
4337
|
+
window: nil
|
|
4338
|
+
)
|
|
4339
|
+
end
|
|
4340
|
+
|
|
4341
|
+
sig do
|
|
4342
|
+
override.returns(
|
|
4343
|
+
{
|
|
4344
|
+
condition:
|
|
4345
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::OrSymbol,
|
|
4346
|
+
delay: Integer,
|
|
4347
|
+
max_attempts: Integer,
|
|
4348
|
+
window: Integer
|
|
4349
|
+
}
|
|
4350
|
+
)
|
|
4351
|
+
end
|
|
4352
|
+
def to_hash
|
|
4353
|
+
end
|
|
4354
|
+
|
|
4355
|
+
# Condition for restart.
|
|
4356
|
+
module Condition
|
|
4357
|
+
extend DockerEngine::Internal::Type::Enum
|
|
4358
|
+
|
|
4359
|
+
TaggedSymbol =
|
|
4360
|
+
T.type_alias do
|
|
4361
|
+
T.all(
|
|
4362
|
+
Symbol,
|
|
4363
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition
|
|
4364
|
+
)
|
|
4365
|
+
end
|
|
4366
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
4367
|
+
|
|
4368
|
+
NONE =
|
|
4369
|
+
T.let(
|
|
4370
|
+
:none,
|
|
4371
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::TaggedSymbol
|
|
4372
|
+
)
|
|
4373
|
+
ON_FAILURE =
|
|
4374
|
+
T.let(
|
|
4375
|
+
:"on-failure",
|
|
4376
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::TaggedSymbol
|
|
4377
|
+
)
|
|
4378
|
+
ANY =
|
|
4379
|
+
T.let(
|
|
4380
|
+
:any,
|
|
4381
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::TaggedSymbol
|
|
4382
|
+
)
|
|
4383
|
+
|
|
4384
|
+
sig do
|
|
4385
|
+
override.returns(
|
|
4386
|
+
T::Array[
|
|
4387
|
+
DockerEngine::Spec::TaskTemplate::RestartPolicy::Condition::TaggedSymbol
|
|
4388
|
+
]
|
|
4389
|
+
)
|
|
4390
|
+
end
|
|
4391
|
+
def self.values
|
|
4392
|
+
end
|
|
4393
|
+
end
|
|
4394
|
+
end
|
|
4395
|
+
end
|
|
4396
|
+
|
|
4397
|
+
class UpdateConfig < DockerEngine::Internal::Type::BaseModel
|
|
4398
|
+
OrHash =
|
|
4399
|
+
T.type_alias do
|
|
4400
|
+
T.any(
|
|
4401
|
+
DockerEngine::Spec::UpdateConfig,
|
|
4402
|
+
DockerEngine::Internal::AnyHash
|
|
4403
|
+
)
|
|
4404
|
+
end
|
|
4405
|
+
|
|
4406
|
+
# Amount of time between updates, in nanoseconds.
|
|
4407
|
+
sig { returns(T.nilable(Integer)) }
|
|
4408
|
+
attr_reader :delay
|
|
4409
|
+
|
|
4410
|
+
sig { params(delay: Integer).void }
|
|
4411
|
+
attr_writer :delay
|
|
4412
|
+
|
|
4413
|
+
# Action to take if an updated task fails to run, or stops running during the
|
|
4414
|
+
# update.
|
|
4415
|
+
sig do
|
|
4416
|
+
returns(
|
|
4417
|
+
T.nilable(DockerEngine::Spec::UpdateConfig::FailureAction::OrSymbol)
|
|
4418
|
+
)
|
|
4419
|
+
end
|
|
4420
|
+
attr_reader :failure_action
|
|
4421
|
+
|
|
4422
|
+
sig do
|
|
4423
|
+
params(
|
|
4424
|
+
failure_action:
|
|
4425
|
+
DockerEngine::Spec::UpdateConfig::FailureAction::OrSymbol
|
|
4426
|
+
).void
|
|
4427
|
+
end
|
|
4428
|
+
attr_writer :failure_action
|
|
4429
|
+
|
|
4430
|
+
# The fraction of tasks that may fail during an update before the failure action
|
|
4431
|
+
# is invoked, specified as a floating point number between 0 and 1.
|
|
4432
|
+
sig { returns(T.nilable(Float)) }
|
|
4433
|
+
attr_reader :max_failure_ratio
|
|
4434
|
+
|
|
4435
|
+
sig { params(max_failure_ratio: Float).void }
|
|
4436
|
+
attr_writer :max_failure_ratio
|
|
4437
|
+
|
|
4438
|
+
# Amount of time to monitor each updated task for failures, in nanoseconds.
|
|
4439
|
+
sig { returns(T.nilable(Integer)) }
|
|
4440
|
+
attr_reader :monitor
|
|
4441
|
+
|
|
4442
|
+
sig { params(monitor: Integer).void }
|
|
4443
|
+
attr_writer :monitor
|
|
4444
|
+
|
|
4445
|
+
# The order of operations when rolling out an updated task. Either the old task is
|
|
4446
|
+
# shut down before the new task is started, or the new task is started before the
|
|
4447
|
+
# old task is shut down.
|
|
4448
|
+
sig do
|
|
4449
|
+
returns(T.nilable(DockerEngine::Spec::UpdateConfig::Order::OrSymbol))
|
|
4450
|
+
end
|
|
4451
|
+
attr_reader :order
|
|
4452
|
+
|
|
4453
|
+
sig do
|
|
4454
|
+
params(order: DockerEngine::Spec::UpdateConfig::Order::OrSymbol).void
|
|
4455
|
+
end
|
|
4456
|
+
attr_writer :order
|
|
4457
|
+
|
|
4458
|
+
# Maximum number of tasks to be updated in one iteration (0 means unlimited
|
|
4459
|
+
# parallelism).
|
|
4460
|
+
sig { returns(T.nilable(Integer)) }
|
|
4461
|
+
attr_reader :parallelism
|
|
4462
|
+
|
|
4463
|
+
sig { params(parallelism: Integer).void }
|
|
4464
|
+
attr_writer :parallelism
|
|
4465
|
+
|
|
4466
|
+
# Specification for the update strategy of the service.
|
|
4467
|
+
sig do
|
|
4468
|
+
params(
|
|
4469
|
+
delay: Integer,
|
|
4470
|
+
failure_action:
|
|
4471
|
+
DockerEngine::Spec::UpdateConfig::FailureAction::OrSymbol,
|
|
4472
|
+
max_failure_ratio: Float,
|
|
4473
|
+
monitor: Integer,
|
|
4474
|
+
order: DockerEngine::Spec::UpdateConfig::Order::OrSymbol,
|
|
4475
|
+
parallelism: Integer
|
|
4476
|
+
).returns(T.attached_class)
|
|
4477
|
+
end
|
|
4478
|
+
def self.new(
|
|
4479
|
+
# Amount of time between updates, in nanoseconds.
|
|
4480
|
+
delay: nil,
|
|
4481
|
+
# Action to take if an updated task fails to run, or stops running during the
|
|
4482
|
+
# update.
|
|
4483
|
+
failure_action: nil,
|
|
4484
|
+
# The fraction of tasks that may fail during an update before the failure action
|
|
4485
|
+
# is invoked, specified as a floating point number between 0 and 1.
|
|
4486
|
+
max_failure_ratio: nil,
|
|
4487
|
+
# Amount of time to monitor each updated task for failures, in nanoseconds.
|
|
4488
|
+
monitor: nil,
|
|
4489
|
+
# The order of operations when rolling out an updated task. Either the old task is
|
|
4490
|
+
# shut down before the new task is started, or the new task is started before the
|
|
4491
|
+
# old task is shut down.
|
|
4492
|
+
order: nil,
|
|
4493
|
+
# Maximum number of tasks to be updated in one iteration (0 means unlimited
|
|
4494
|
+
# parallelism).
|
|
4495
|
+
parallelism: nil
|
|
4496
|
+
)
|
|
4497
|
+
end
|
|
4498
|
+
|
|
4499
|
+
sig do
|
|
4500
|
+
override.returns(
|
|
4501
|
+
{
|
|
4502
|
+
delay: Integer,
|
|
4503
|
+
failure_action:
|
|
4504
|
+
DockerEngine::Spec::UpdateConfig::FailureAction::OrSymbol,
|
|
4505
|
+
max_failure_ratio: Float,
|
|
4506
|
+
monitor: Integer,
|
|
4507
|
+
order: DockerEngine::Spec::UpdateConfig::Order::OrSymbol,
|
|
4508
|
+
parallelism: Integer
|
|
4509
|
+
}
|
|
4510
|
+
)
|
|
4511
|
+
end
|
|
4512
|
+
def to_hash
|
|
4513
|
+
end
|
|
4514
|
+
|
|
4515
|
+
# Action to take if an updated task fails to run, or stops running during the
|
|
4516
|
+
# update.
|
|
4517
|
+
module FailureAction
|
|
4518
|
+
extend DockerEngine::Internal::Type::Enum
|
|
4519
|
+
|
|
4520
|
+
TaggedSymbol =
|
|
4521
|
+
T.type_alias do
|
|
4522
|
+
T.all(Symbol, DockerEngine::Spec::UpdateConfig::FailureAction)
|
|
4523
|
+
end
|
|
4524
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
4525
|
+
|
|
4526
|
+
CONTINUE =
|
|
4527
|
+
T.let(
|
|
4528
|
+
:continue,
|
|
4529
|
+
DockerEngine::Spec::UpdateConfig::FailureAction::TaggedSymbol
|
|
4530
|
+
)
|
|
4531
|
+
PAUSE =
|
|
4532
|
+
T.let(
|
|
4533
|
+
:pause,
|
|
4534
|
+
DockerEngine::Spec::UpdateConfig::FailureAction::TaggedSymbol
|
|
4535
|
+
)
|
|
4536
|
+
ROLLBACK =
|
|
4537
|
+
T.let(
|
|
4538
|
+
:rollback,
|
|
4539
|
+
DockerEngine::Spec::UpdateConfig::FailureAction::TaggedSymbol
|
|
4540
|
+
)
|
|
4541
|
+
|
|
4542
|
+
sig do
|
|
4543
|
+
override.returns(
|
|
4544
|
+
T::Array[
|
|
4545
|
+
DockerEngine::Spec::UpdateConfig::FailureAction::TaggedSymbol
|
|
4546
|
+
]
|
|
4547
|
+
)
|
|
4548
|
+
end
|
|
4549
|
+
def self.values
|
|
4550
|
+
end
|
|
4551
|
+
end
|
|
4552
|
+
|
|
4553
|
+
# The order of operations when rolling out an updated task. Either the old task is
|
|
4554
|
+
# shut down before the new task is started, or the new task is started before the
|
|
4555
|
+
# old task is shut down.
|
|
4556
|
+
module Order
|
|
4557
|
+
extend DockerEngine::Internal::Type::Enum
|
|
4558
|
+
|
|
4559
|
+
TaggedSymbol =
|
|
4560
|
+
T.type_alias do
|
|
4561
|
+
T.all(Symbol, DockerEngine::Spec::UpdateConfig::Order)
|
|
4562
|
+
end
|
|
4563
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
4564
|
+
|
|
4565
|
+
STOP_FIRST =
|
|
4566
|
+
T.let(
|
|
4567
|
+
:"stop-first",
|
|
4568
|
+
DockerEngine::Spec::UpdateConfig::Order::TaggedSymbol
|
|
4569
|
+
)
|
|
4570
|
+
START_FIRST =
|
|
4571
|
+
T.let(
|
|
4572
|
+
:"start-first",
|
|
4573
|
+
DockerEngine::Spec::UpdateConfig::Order::TaggedSymbol
|
|
4574
|
+
)
|
|
4575
|
+
|
|
4576
|
+
sig do
|
|
4577
|
+
override.returns(
|
|
4578
|
+
T::Array[DockerEngine::Spec::UpdateConfig::Order::TaggedSymbol]
|
|
4579
|
+
)
|
|
4580
|
+
end
|
|
4581
|
+
def self.values
|
|
4582
|
+
end
|
|
4583
|
+
end
|
|
4584
|
+
end
|
|
4585
|
+
end
|
|
4586
|
+
end
|
|
4587
|
+
end
|