docker-engine-ruby 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +4 -2
  4. data/lib/docker_engine_ruby/client.rb +17 -1
  5. data/lib/docker_engine_ruby/models/config_list_response.rb +1 -1
  6. data/lib/docker_engine_ruby/models/config_object.rb +77 -0
  7. data/lib/docker_engine_ruby/models/config_spec.rb +68 -0
  8. data/lib/docker_engine_ruby/models/image_list_response.rb +1 -1
  9. data/lib/docker_engine_ruby/models/image_summary.rb +638 -0
  10. data/lib/docker_engine_ruby/models/info.rb +3 -3
  11. data/lib/docker_engine_ruby/models/network_create_response.rb +27 -0
  12. data/lib/docker_engine_ruby/models/network_list_response.rb +1 -1
  13. data/lib/docker_engine_ruby/models/network_summary.rb +260 -0
  14. data/lib/docker_engine_ruby/models/node.rb +3 -3
  15. data/lib/docker_engine_ruby/models/node_spec.rb +67 -0
  16. data/lib/docker_engine_ruby/models/secret.rb +3 -3
  17. data/lib/docker_engine_ruby/models/secret_spec.rb +99 -0
  18. data/lib/docker_engine_ruby/models/service.rb +3 -3
  19. data/lib/docker_engine_ruby/models/service_create_response.rb +32 -0
  20. data/lib/docker_engine_ruby/models/{spec.rb → service_spec.rb} +73 -67
  21. data/lib/docker_engine_ruby/models/service_update_response.rb +17 -0
  22. data/lib/docker_engine_ruby/models/swarm.rb +3 -3
  23. data/lib/docker_engine_ruby/models/swarm_init_params.rb +3 -3
  24. data/lib/docker_engine_ruby/models/swarm_spec.rb +270 -0
  25. data/lib/docker_engine_ruby/models/task.rb +3 -3
  26. data/lib/docker_engine_ruby/models/task_spec.rb +1439 -0
  27. data/lib/docker_engine_ruby/models.rb +23 -1
  28. data/lib/docker_engine_ruby/resources/configs.rb +6 -6
  29. data/lib/docker_engine_ruby/resources/images.rb +2 -2
  30. data/lib/docker_engine_ruby/resources/networks.rb +4 -4
  31. data/lib/docker_engine_ruby/resources/nodes.rb +1 -1
  32. data/lib/docker_engine_ruby/resources/secrets.rb +2 -2
  33. data/lib/docker_engine_ruby/resources/services.rb +6 -6
  34. data/lib/docker_engine_ruby/resources/swarm.rb +2 -2
  35. data/lib/docker_engine_ruby/version.rb +1 -1
  36. data/lib/docker_engine_ruby.rb +16 -5
  37. data/rbi/docker_engine_ruby/client.rbi +17 -0
  38. data/rbi/docker_engine_ruby/models/config_list_response.rbi +3 -1
  39. data/rbi/docker_engine_ruby/models/config_object.rbi +130 -0
  40. data/rbi/docker_engine_ruby/models/config_spec.rbi +127 -0
  41. data/rbi/docker_engine_ruby/models/image_list_response.rbi +3 -1
  42. data/rbi/docker_engine_ruby/models/image_summary.rbi +1073 -0
  43. data/rbi/docker_engine_ruby/models/info.rbi +4 -4
  44. data/rbi/docker_engine_ruby/models/network_create_response.rbi +37 -0
  45. data/rbi/docker_engine_ruby/models/network_list_response.rbi +3 -1
  46. data/rbi/docker_engine_ruby/models/network_summary.rbi +444 -0
  47. data/rbi/docker_engine_ruby/models/node.rbi +4 -4
  48. data/rbi/docker_engine_ruby/models/node_spec.rbi +126 -0
  49. data/rbi/docker_engine_ruby/models/secret.rbi +4 -4
  50. data/rbi/docker_engine_ruby/models/secret_spec.rbi +181 -0
  51. data/rbi/docker_engine_ruby/models/service.rbi +4 -4
  52. data/rbi/docker_engine_ruby/models/service_create_response.rbi +50 -0
  53. data/rbi/docker_engine_ruby/models/{spec.rbi → service_spec.rbi} +148 -104
  54. data/rbi/docker_engine_ruby/models/service_update_response.rbi +33 -0
  55. data/rbi/docker_engine_ruby/models/swarm.rbi +4 -4
  56. data/rbi/docker_engine_ruby/models/swarm_init_params.rbi +4 -4
  57. data/rbi/docker_engine_ruby/models/swarm_spec.rbi +568 -0
  58. data/rbi/docker_engine_ruby/models/task.rbi +4 -4
  59. data/rbi/docker_engine_ruby/models/task_spec.rbi +3011 -0
  60. data/rbi/docker_engine_ruby/models.rbi +23 -1
  61. data/rbi/docker_engine_ruby/resources/configs.rbi +4 -4
  62. data/rbi/docker_engine_ruby/resources/images.rbi +1 -1
  63. data/rbi/docker_engine_ruby/resources/networks.rbi +2 -2
  64. data/rbi/docker_engine_ruby/resources/nodes.rbi +1 -1
  65. data/rbi/docker_engine_ruby/resources/secrets.rbi +2 -2
  66. data/rbi/docker_engine_ruby/resources/services.rbi +4 -4
  67. data/rbi/docker_engine_ruby/resources/swarm.rbi +2 -2
  68. data/sig/docker_engine_ruby/client.rbs +6 -0
  69. data/sig/docker_engine_ruby/models/config_list_response.rbs +1 -1
  70. data/sig/docker_engine_ruby/models/config_object.rbs +64 -0
  71. data/sig/docker_engine_ruby/models/config_spec.rbs +59 -0
  72. data/sig/docker_engine_ruby/models/image_list_response.rbs +1 -1
  73. data/sig/docker_engine_ruby/models/image_summary.rbs +457 -0
  74. data/sig/docker_engine_ruby/models/info.rbs +7 -5
  75. data/sig/docker_engine_ruby/models/network_create_response.rbs +15 -0
  76. data/sig/docker_engine_ruby/models/network_list_response.rbs +1 -1
  77. data/sig/docker_engine_ruby/models/network_summary.rbs +238 -0
  78. data/sig/docker_engine_ruby/models/node.rbs +5 -5
  79. data/sig/docker_engine_ruby/models/node_spec.rbs +70 -0
  80. data/sig/docker_engine_ruby/models/secret.rbs +5 -5
  81. data/sig/docker_engine_ruby/models/secret_spec.rbs +82 -0
  82. data/sig/docker_engine_ruby/models/service.rbs +7 -5
  83. data/sig/docker_engine_ruby/models/service_create_response.rbs +17 -0
  84. data/sig/docker_engine_ruby/models/{spec.rbs → service_spec.rbs} +107 -103
  85. data/sig/docker_engine_ruby/models/service_update_response.rbs +15 -0
  86. data/sig/docker_engine_ruby/models/swarm.rbs +5 -5
  87. data/sig/docker_engine_ruby/models/swarm_init_params.rbs +5 -5
  88. data/sig/docker_engine_ruby/models/swarm_spec.rbs +293 -0
  89. data/sig/docker_engine_ruby/models/task.rbs +5 -5
  90. data/sig/docker_engine_ruby/models/task_spec.rbs +1480 -0
  91. data/sig/docker_engine_ruby/models.rbs +23 -1
  92. data/sig/docker_engine_ruby/resources/configs.rbs +3 -3
  93. data/sig/docker_engine_ruby/resources/networks.rbs +1 -1
  94. data/sig/docker_engine_ruby/resources/nodes.rbs +1 -1
  95. data/sig/docker_engine_ruby/resources/secrets.rbs +2 -2
  96. data/sig/docker_engine_ruby/resources/services.rbs +4 -4
  97. data/sig/docker_engine_ruby/resources/swarm.rbs +2 -2
  98. metadata +37 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f78dc8453efab79727468b50e6091d8a7d3cef22cc06a047cdcbb7808b1045e4
4
- data.tar.gz: 9009a343906becf39113ec45723addd83081a8a36974d522503c0312a8bc950e
3
+ metadata.gz: 52ca02c95ffae865b5b2b52a7737171e99326e721cdc2980c9af02ec8da5cf00
4
+ data.tar.gz: cacdcb4c85c548710eee62b1e0aa6b1558741a8b4aa55caed22bbf3bd4f0e27f
5
5
  SHA512:
6
- metadata.gz: ae1821616cb9099d1bdfe5da4bfd6a5d75c32845de2085a1b3d563ce044e0b00cd2a3c32b6c443c22dd52c9ad9eba561bb1bd5f0bc5fffc32df6529ce0dbd512
7
- data.tar.gz: d62a770c572dc3b72b8a9003e4ae1e0697e331f05db2497f8c46c2234d1a2d6b12a7d886690bff3639c8afaf255237085804f314a96d88b10cde6816d0b586ee
6
+ metadata.gz: 3c02c00f7df591a54a8aa1d87f8c6b3b35709b722f41aa74217d7867097b5be43613a2cc5fe3638d337a72c974ab64366cdaf5b840f12527a22ae37537a64240
7
+ data.tar.gz: c8edc019d3636ba434d96def88e597a6419e6ea10257976baa12d7c8c1fb38243b80d3e7329531c3122760a8b452bb8e9c70dcf8b5ecf0af3986dd6162c5da40
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.0 (2026-02-14)
4
+
5
+ Full Changelog: [v0.4.0...v0.5.0](https://github.com/Hexlet/docker-ruby/compare/v0.4.0...v0.5.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([a44163c](https://github.com/Hexlet/docker-ruby/commit/a44163cdccd707282795ba0dfccc5c8647bb42ce))
10
+
11
+ ## 0.4.0 (2026-02-14)
12
+
13
+ Full Changelog: [v0.3.0...v0.4.0](https://github.com/Hexlet/docker-ruby/compare/v0.3.0...v0.4.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** api update ([e1cc95d](https://github.com/Hexlet/docker-ruby/commit/e1cc95d21c91190631ca08e76e27543893d7a801))
18
+
3
19
  ## 0.3.0 (2026-02-14)
4
20
 
5
21
  Full Changelog: [v0.2.2...v0.3.0](https://github.com/Hexlet/docker-ruby/compare/v0.2.2...v0.3.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "docker-engine-ruby", "~> 0.3.0"
20
+ gem "docker-engine-ruby", "~> 0.5.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -28,7 +28,9 @@ gem "docker-engine-ruby", "~> 0.3.0"
28
28
  require "bundler/setup"
29
29
  require "docker_engine_ruby"
30
30
 
31
- docker = DockerEngineRuby::Client.new
31
+ docker = DockerEngineRuby::Client.new(
32
+ environment: "production_tls" # defaults to "production"
33
+ )
32
34
 
33
35
  create_response = docker.containers.create(name: "sample-container")
34
36
 
@@ -15,6 +15,11 @@ module DockerEngineRuby
15
15
  # Default max retry delay in seconds.
16
16
  DEFAULT_MAX_RETRY_DELAY = 8.0
17
17
 
18
+ # rubocop:disable Style/MutableConstant
19
+ # @type [Hash{Symbol=>String}]
20
+ ENVIRONMENTS = {production: "http://localhost:2375", production_tls: "https://localhost:2376"}
21
+ # rubocop:enable Style/MutableConstant
22
+
18
23
  # @return [DockerEngineRuby::Resources::Auth]
19
24
  attr_reader :auth
20
25
 
@@ -62,6 +67,13 @@ module DockerEngineRuby
62
67
 
63
68
  # Creates and returns a new client for interacting with the API.
64
69
  #
70
+ # @param environment [:production, :production_tls, nil] Specifies the environment to use for the API.
71
+ #
72
+ # Each environment maps to a different base URL:
73
+ #
74
+ # - `production` corresponds to `http://localhost:2375`
75
+ # - `production_tls` corresponds to `https://localhost:2376`
76
+ #
65
77
  # @param base_url [String, nil] Override the default base URL for the API, e.g.,
66
78
  # `"https://api.example.com/v2/"`. Defaults to `ENV["DOCKER_BASE_URL"]`
67
79
  #
@@ -73,13 +85,17 @@ module DockerEngineRuby
73
85
  #
74
86
  # @param max_retry_delay [Float]
75
87
  def initialize(
88
+ environment: nil,
76
89
  base_url: ENV["DOCKER_BASE_URL"],
77
90
  max_retries: self.class::DEFAULT_MAX_RETRIES,
78
91
  timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
79
92
  initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY,
80
93
  max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY
81
94
  )
82
- base_url ||= "http://localhost:2375"
95
+ base_url ||= DockerEngineRuby::Client::ENVIRONMENTS.fetch(environment&.to_sym || :production) do
96
+ message = "environment must be one of #{DockerEngineRuby::Client::ENVIRONMENTS.keys}, got #{environment}"
97
+ raise ArgumentError.new(message)
98
+ end
83
99
 
84
100
  super(
85
101
  base_url: base_url,
@@ -3,6 +3,6 @@
3
3
  module DockerEngineRuby
4
4
  module Models
5
5
  # @type [DockerEngineRuby::Internal::Type::Converter]
6
- ConfigListResponse = DockerEngineRuby::Internal::Type::ArrayOf[-> { DockerEngineRuby::Config }]
6
+ ConfigListResponse = DockerEngineRuby::Internal::Type::ArrayOf[-> { DockerEngineRuby::ConfigObject }]
7
7
  end
8
8
  end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DockerEngineRuby
4
+ module Models
5
+ # @see DockerEngineRuby::Resources::Configs#inspect_
6
+ class ConfigObject < DockerEngineRuby::Internal::Type::BaseModel
7
+ # @!attribute created_at
8
+ #
9
+ # @return [Time, nil]
10
+ optional :created_at, Time, api_name: :CreatedAt
11
+
12
+ # @!attribute id
13
+ #
14
+ # @return [String, nil]
15
+ optional :id, String, api_name: :ID
16
+
17
+ # @!attribute spec
18
+ #
19
+ # @return [DockerEngineRuby::Models::ConfigSpec, nil]
20
+ optional :spec, -> { DockerEngineRuby::ConfigSpec }, api_name: :Spec
21
+
22
+ # @!attribute updated_at
23
+ #
24
+ # @return [Time, nil]
25
+ optional :updated_at, Time, api_name: :UpdatedAt
26
+
27
+ # @!attribute version
28
+ # The version number of the object such as node, service, etc. This is needed to
29
+ # avoid conflicting writes. The client must send the version number along with the
30
+ # modified specification when updating these objects.
31
+ #
32
+ # This approach ensures safe concurrency and determinism in that the change on the
33
+ # object may not be applied if the version number has changed from the last read.
34
+ # In other words, if two update requests specify the same base version, only one
35
+ # of the requests can succeed. As a result, two separate update requests that
36
+ # happen at the same time will not unintentionally overwrite each other.
37
+ #
38
+ # @return [DockerEngineRuby::Models::ConfigObject::Version, nil]
39
+ optional :version, -> { DockerEngineRuby::ConfigObject::Version }, api_name: :Version
40
+
41
+ # @!method initialize(created_at: nil, id: nil, spec: nil, updated_at: nil, version: nil)
42
+ # Some parameter documentations has been truncated, see
43
+ # {DockerEngineRuby::Models::ConfigObject} for more details.
44
+ #
45
+ # @param created_at [Time]
46
+ #
47
+ # @param id [String]
48
+ #
49
+ # @param spec [DockerEngineRuby::Models::ConfigSpec]
50
+ #
51
+ # @param updated_at [Time]
52
+ #
53
+ # @param version [DockerEngineRuby::Models::ConfigObject::Version] The version number of the object such as node, service, etc. This is needed
54
+
55
+ # @see DockerEngineRuby::Models::ConfigObject#version
56
+ class Version < DockerEngineRuby::Internal::Type::BaseModel
57
+ # @!attribute index
58
+ #
59
+ # @return [Integer, nil]
60
+ optional :index, Integer, api_name: :Index
61
+
62
+ # @!method initialize(index: nil)
63
+ # The version number of the object such as node, service, etc. This is needed to
64
+ # avoid conflicting writes. The client must send the version number along with the
65
+ # modified specification when updating these objects.
66
+ #
67
+ # This approach ensures safe concurrency and determinism in that the change on the
68
+ # object may not be applied if the version number has changed from the last read.
69
+ # In other words, if two update requests specify the same base version, only one
70
+ # of the requests can succeed. As a result, two separate update requests that
71
+ # happen at the same time will not unintentionally overwrite each other.
72
+ #
73
+ # @param index [Integer]
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DockerEngineRuby
4
+ module Models
5
+ class ConfigSpec < DockerEngineRuby::Internal::Type::BaseModel
6
+ # @!attribute data
7
+ # Data is the data to store as a config, formatted as a standard base64-encoded
8
+ # ([RFC 4648](https://tools.ietf.org/html/rfc4648#section-4)) string. The maximum
9
+ # allowed size is 1000KB, as defined in
10
+ # [MaxConfigSize](https://pkg.go.dev/github.com/moby/swarmkit/v2
11
+ #
12
+ # @return [String, nil]
13
+ optional :data, String, api_name: :Data
14
+
15
+ # @!attribute labels
16
+ # User-defined key/value metadata.
17
+ #
18
+ # @return [Hash{Symbol=>String}, nil]
19
+ optional :labels, DockerEngineRuby::Internal::Type::HashOf[String], api_name: :Labels
20
+
21
+ # @!attribute name
22
+ # User-defined name of the config.
23
+ #
24
+ # @return [String, nil]
25
+ optional :name, String, api_name: :Name
26
+
27
+ # @!attribute templating
28
+ # Driver represents a driver (network, logging, secrets).
29
+ #
30
+ # @return [DockerEngineRuby::Models::ConfigSpec::Templating, nil]
31
+ optional :templating, -> { DockerEngineRuby::ConfigSpec::Templating }, api_name: :Templating
32
+
33
+ # @!method initialize(data: nil, labels: nil, name: nil, templating: nil)
34
+ # Some parameter documentations has been truncated, see
35
+ # {DockerEngineRuby::Models::ConfigSpec} for more details.
36
+ #
37
+ # @param data [String] Data is the data to store as a config, formatted as a standard base64-encoded
38
+ #
39
+ # @param labels [Hash{Symbol=>String}] User-defined key/value metadata.
40
+ #
41
+ # @param name [String] User-defined name of the config.
42
+ #
43
+ # @param templating [DockerEngineRuby::Models::ConfigSpec::Templating] Driver represents a driver (network, logging, secrets).
44
+
45
+ # @see DockerEngineRuby::Models::ConfigSpec#templating
46
+ class Templating < DockerEngineRuby::Internal::Type::BaseModel
47
+ # @!attribute name
48
+ # Name of the driver.
49
+ #
50
+ # @return [String]
51
+ required :name, String, api_name: :Name
52
+
53
+ # @!attribute options
54
+ # Key/value map of driver-specific options.
55
+ #
56
+ # @return [Hash{Symbol=>String}, nil]
57
+ optional :options, DockerEngineRuby::Internal::Type::HashOf[String], api_name: :Options
58
+
59
+ # @!method initialize(name:, options: nil)
60
+ # Driver represents a driver (network, logging, secrets).
61
+ #
62
+ # @param name [String] Name of the driver.
63
+ #
64
+ # @param options [Hash{Symbol=>String}] Key/value map of driver-specific options.
65
+ end
66
+ end
67
+ end
68
+ end
@@ -3,6 +3,6 @@
3
3
  module DockerEngineRuby
4
4
  module Models
5
5
  # @type [DockerEngineRuby::Internal::Type::Converter]
6
- ImageListResponse = DockerEngineRuby::Internal::Type::ArrayOf[-> { DockerEngineRuby::Summary }]
6
+ ImageListResponse = DockerEngineRuby::Internal::Type::ArrayOf[-> { DockerEngineRuby::ImageSummary }]
7
7
  end
8
8
  end