From 044f4422ef1948051a5b212650f8d368e7953ebc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 10 Aug 2025 02:20:53 +0000 Subject: [PATCH 001/100] chore: collect metadata from type DSL --- lib/vers/internal/type/array_of.rb | 1 + lib/vers/internal/type/base_model.rb | 4 +- lib/vers/internal/type/converter.rb | 27 +++++++++++++ lib/vers/internal/type/hash_of.rb | 1 + lib/vers/internal/type/union.rb | 16 ++++---- rbi/vers/internal/type/converter.rbi | 46 ++++++++++++++++++++++ rbi/vers/internal/type/union.rbi | 9 ++++- sig/vers/internal/type/converter.rbs | 17 ++++++++ sig/vers/internal/type/union.rbs | 4 +- test/vers/internal/type/base_model_test.rb | 32 +++++++++++++++ 10 files changed, 145 insertions(+), 12 deletions(-) diff --git a/lib/vers/internal/type/array_of.rb b/lib/vers/internal/type/array_of.rb index a7450c0..265ffe0 100644 --- a/lib/vers/internal/type/array_of.rb +++ b/lib/vers/internal/type/array_of.rb @@ -148,6 +148,7 @@ def to_sorbet_type # @option spec [Boolean] :"nil?" def initialize(type_info, spec = {}) @item_type_fn = Vers::Internal::Type::Converter.type_info(type_info || spec) + @meta = Vers::Internal::Type::Converter.meta_info(type_info, spec) @nilable = spec.fetch(:nil?, false) end diff --git a/lib/vers/internal/type/base_model.rb b/lib/vers/internal/type/base_model.rb index 7c40b49..20797d9 100644 --- a/lib/vers/internal/type/base_model.rb +++ b/lib/vers/internal/type/base_model.rb @@ -52,6 +52,7 @@ def fields # # @option spec [Boolean] :"nil?" private def add_field(name_sym, required:, type_info:, spec:) + meta = Vers::Internal::Type::Converter.meta_info(type_info, spec) type_fn, info = case type_info in Proc | Vers::Internal::Type::Converter | Class @@ -74,7 +75,8 @@ def fields required: required, nilable: nilable, const: const, - type_fn: type_fn + type_fn: type_fn, + meta: meta } define_method(setter) do |value| diff --git a/lib/vers/internal/type/converter.rb b/lib/vers/internal/type/converter.rb index 1305170..9db6d39 100644 --- a/lib/vers/internal/type/converter.rb +++ b/lib/vers/internal/type/converter.rb @@ -98,6 +98,33 @@ def type_info(spec) end end + # @api private + # + # @param type_info [Hash{Symbol=>Object}, Proc, Vers::Internal::Type::Converter, Class] . + # + # @option type_info [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const + # + # @option type_info [Proc] :enum + # + # @option type_info [Proc] :union + # + # @option type_info [Boolean] :"nil?" + # + # @param spec [Hash{Symbol=>Object}, Proc, Vers::Internal::Type::Converter, Class] . + # + # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const + # + # @option spec [Proc] :enum + # + # @option spec [Proc] :union + # + # @option spec [Boolean] :"nil?" + # + # @return [Hash{Symbol=>Object}] + def meta_info(type_info, spec) + [spec, type_info].grep(Hash).first.to_h.except(:const, :enum, :union, :nil?) + end + # @api private # # @param translate_names [Boolean] diff --git a/lib/vers/internal/type/hash_of.rb b/lib/vers/internal/type/hash_of.rb index f2733a9..62b7cfe 100644 --- a/lib/vers/internal/type/hash_of.rb +++ b/lib/vers/internal/type/hash_of.rb @@ -168,6 +168,7 @@ def to_sorbet_type # @option spec [Boolean] :"nil?" def initialize(type_info, spec = {}) @item_type_fn = Vers::Internal::Type::Converter.type_info(type_info || spec) + @meta = Vers::Internal::Type::Converter.meta_info(type_info, spec) @nilable = spec.fetch(:nil?, false) end diff --git a/lib/vers/internal/type/union.rb b/lib/vers/internal/type/union.rb index 204ad9d..ab02798 100644 --- a/lib/vers/internal/type/union.rb +++ b/lib/vers/internal/type/union.rb @@ -23,20 +23,20 @@ module Union # # All of the specified variant info for this union. # - # @return [Array] + # @return [ArrayObject})>] private def known_variants = (@known_variants ||= []) # @api private # - # @return [Array] + # @return [ArrayObject})>] protected def derefed_variants - known_variants.map { |key, variant_fn| [key, variant_fn.call] } + known_variants.map { |key, variant_fn, meta| [key, variant_fn.call, meta] } end # All of the specified variants for this union. # # @return [Array] - def variants = derefed_variants.map(&:last) + def variants = derefed_variants.map { _2 } # @api private # @@ -62,12 +62,13 @@ def variants = derefed_variants.map(&:last) # # @option spec [Boolean] :"nil?" private def variant(key, spec = nil) + meta = Vers::Internal::Type::Converter.meta_info(nil, spec) variant_info = case key in Symbol - [key, Vers::Internal::Type::Converter.type_info(spec)] + [key, Vers::Internal::Type::Converter.type_info(spec), meta] in Proc | Vers::Internal::Type::Converter | Class | Hash - [nil, Vers::Internal::Type::Converter.type_info(key)] + [nil, Vers::Internal::Type::Converter.type_info(key), meta] end known_variants << variant_info @@ -90,7 +91,8 @@ def variants = derefed_variants.map(&:last) return nil if key == Vers::Internal::OMIT key = key.to_sym if key.is_a?(String) - known_variants.find { |k,| k == key }&.last&.call + _, found = known_variants.find { |k,| k == key } + found&.call else nil end diff --git a/rbi/vers/internal/type/converter.rbi b/rbi/vers/internal/type/converter.rbi index 0e7ec64..7aa69d0 100644 --- a/rbi/vers/internal/type/converter.rbi +++ b/rbi/vers/internal/type/converter.rbi @@ -86,6 +86,52 @@ module Vers def self.type_info(spec) end + # @api private + sig do + params( + type_info: + T.any( + { + const: + T.nilable( + T.any(NilClass, T::Boolean, Integer, Float, Symbol) + ), + enum: + T.nilable( + T.proc.returns(Vers::Internal::Type::Converter::Input) + ), + union: + T.nilable( + T.proc.returns(Vers::Internal::Type::Converter::Input) + ) + }, + T.proc.returns(Vers::Internal::Type::Converter::Input), + Vers::Internal::Type::Converter::Input + ), + spec: + T.any( + { + const: + T.nilable( + T.any(NilClass, T::Boolean, Integer, Float, Symbol) + ), + enum: + T.nilable( + T.proc.returns(Vers::Internal::Type::Converter::Input) + ), + union: + T.nilable( + T.proc.returns(Vers::Internal::Type::Converter::Input) + ) + }, + T.proc.returns(Vers::Internal::Type::Converter::Input), + Vers::Internal::Type::Converter::Input + ) + ).returns(Vers::Internal::AnyHash) + end + def self.meta_info(type_info, spec) + end + # @api private sig do params(translate_names: T::Boolean).returns( diff --git a/rbi/vers/internal/type/union.rbi b/rbi/vers/internal/type/union.rbi index 903fb6f..2fc0f04 100644 --- a/rbi/vers/internal/type/union.rbi +++ b/rbi/vers/internal/type/union.rbi @@ -16,7 +16,8 @@ module Vers T::Array[ [ T.nilable(Symbol), - T.proc.returns(Vers::Internal::Type::Converter::Input) + T.proc.returns(Vers::Internal::Type::Converter::Input), + Vers::Internal::AnyHash ] ] ) @@ -25,7 +26,11 @@ module Vers end # @api private - sig { returns(T::Array[[T.nilable(Symbol), T.anything]]) } + sig do + returns( + T::Array[[T.nilable(Symbol), T.anything, Vers::Internal::AnyHash]] + ) + end protected def derefed_variants end diff --git a/sig/vers/internal/type/converter.rbs b/sig/vers/internal/type/converter.rbs index 59dc4a8..58f43c9 100644 --- a/sig/vers/internal/type/converter.rbs +++ b/sig/vers/internal/type/converter.rbs @@ -39,6 +39,23 @@ module Vers | Vers::Internal::Type::Converter::input spec ) -> (^-> top) + def self.meta_info: ( + { + const: (nil | bool | Integer | Float | Symbol)?, + enum: ^-> Vers::Internal::Type::Converter::input?, + union: ^-> Vers::Internal::Type::Converter::input? + } + | ^-> Vers::Internal::Type::Converter::input + | Vers::Internal::Type::Converter::input type_info, + { + const: (nil | bool | Integer | Float | Symbol)?, + enum: ^-> Vers::Internal::Type::Converter::input?, + union: ^-> Vers::Internal::Type::Converter::input? + } + | ^-> Vers::Internal::Type::Converter::input + | Vers::Internal::Type::Converter::input spec + ) -> ::Hash[Symbol, top] + def self.new_coerce_state: ( ?translate_names: bool ) -> Vers::Internal::Type::Converter::coerce_state diff --git a/sig/vers/internal/type/union.rbs b/sig/vers/internal/type/union.rbs index b392ab3..28521c3 100644 --- a/sig/vers/internal/type/union.rbs +++ b/sig/vers/internal/type/union.rbs @@ -5,9 +5,9 @@ module Vers include Vers::Internal::Type::Converter include Vers::Internal::Util::SorbetRuntimeSupport - private def self.known_variants: -> ::Array[[Symbol?, (^-> Vers::Internal::Type::Converter::input)]] + private def self.known_variants: -> ::Array[[Symbol?, (^-> Vers::Internal::Type::Converter::input), ::Hash[Symbol, top]]] - def self.derefed_variants: -> ::Array[[Symbol?, top]] + def self.derefed_variants: -> ::Array[[Symbol?, top, ::Hash[Symbol, top]]] def self.variants: -> ::Array[top] diff --git a/test/vers/internal/type/base_model_test.rb b/test/vers/internal/type/base_model_test.rb index 8e284ad..483328b 100644 --- a/test/vers/internal/type/base_model_test.rb +++ b/test/vers/internal/type/base_model_test.rb @@ -687,3 +687,35 @@ def test_equality end end end + +class Vers::Test::MetaInfoTest < Minitest::Test + A1 = Vers::Internal::Type::ArrayOf[Integer, nil?: true, doc: "dog"] + H1 = Vers::Internal::Type::HashOf[-> { String }, nil?: true, doc: "dawg"] + + class M1 < Vers::Internal::Type::BaseModel + required :a, Integer, doc: "dog" + optional :b, -> { String }, nil?: true, doc: "dawg" + end + + module U1 + extend Vers::Internal::Type::Union + + variant -> { Integer }, const: 2, doc: "dog" + variant -> { String }, doc: "dawg" + end + + def test_meta_retrieval + m1 = A1.instance_variable_get(:@meta) + m2 = H1.instance_variable_get(:@meta) + assert_equal({doc: "dog"}, m1) + assert_equal({doc: "dawg"}, m2) + + ma, mb = M1.fields.fetch_values(:a, :b) + assert_equal({doc: "dog"}, ma.fetch(:meta)) + assert_equal({doc: "dawg"}, mb.fetch(:meta)) + + ua, ub = U1.send(:known_variants).map(&:last) + assert_equal({doc: "dog"}, ua) + assert_equal({doc: "dawg"}, ub) + end +end From 78697f1f9aff2ff34a8d4cd8aa4d4819dcc0787f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 9 Aug 2025 05:48:51 +0000 Subject: [PATCH 002/100] chore(internal): update comment in script --- scripts/test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/test b/scripts/test index 8e5d35c..e0dc137 100755 --- a/scripts/test +++ b/scripts/test @@ -43,7 +43,7 @@ elif ! prism_is_running ; then echo -e "To run the server, pass in the path or url of your OpenAPI" echo -e "spec to the prism command:" echo - echo -e " \$ ${YELLOW}npm exec --package=@stoplight/prism-cli@~5.3.2 -- prism mock path/to/your.openapi.yml${NC}" + echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" echo exit 1 From bcd7ba0e16e062ec7965497950dc6f0082420cb7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 9 Aug 2025 05:43:14 +0000 Subject: [PATCH 003/100] chore: update @stainless-api/prism-cli to v5.15.0 --- scripts/mock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mock b/scripts/mock index d2814ae..0b28f6e 100755 --- a/scripts/mock +++ b/scripts/mock @@ -21,7 +21,7 @@ echo "==> Starting mock server with URL ${URL}" # Run prism mock on the given spec if [ "$1" == "--daemon" ]; then - npm exec --package=@stainless-api/prism-cli@5.8.5 -- prism mock "$URL" &> .prism.log & + npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & # Wait for server to come online echo -n "Waiting for server" @@ -37,5 +37,5 @@ if [ "$1" == "--daemon" ]; then echo else - npm exec --package=@stainless-api/prism-cli@5.8.5 -- prism mock "$URL" + npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" fi From fb8f26853146601300e5c4447266b35a239a4ea6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 1 Aug 2025 05:48:39 +0000 Subject: [PATCH 004/100] chore(internal): increase visibility of internal helper method --- lib/vers/internal/transport/base_client.rb | 2 +- rbi/vers/internal/transport/base_client.rbi | 2 +- sig/vers/internal/transport/base_client.rbs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/vers/internal/transport/base_client.rb b/lib/vers/internal/transport/base_client.rb index 71fd8b4..48ea25c 100644 --- a/lib/vers/internal/transport/base_client.rb +++ b/lib/vers/internal/transport/base_client.rb @@ -362,7 +362,7 @@ def initialize( # # @raise [Vers::Errors::APIError] # @return [Array(Integer, Net::HTTPResponse, Enumerable)] - private def send_request(request, redirect_count:, retry_count:, send_retry_header:) + def send_request(request, redirect_count:, retry_count:, send_retry_header:) url, headers, max_retries, timeout = request.fetch_values(:url, :headers, :max_retries, :timeout) input = {**request.except(:timeout), deadline: Vers::Internal::Util.monotonic_secs + timeout} diff --git a/rbi/vers/internal/transport/base_client.rbi b/rbi/vers/internal/transport/base_client.rbi index d22cfb6..7aa51f0 100644 --- a/rbi/vers/internal/transport/base_client.rbi +++ b/rbi/vers/internal/transport/base_client.rbi @@ -213,7 +213,7 @@ module Vers send_retry_header: T::Boolean ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]]) end - private def send_request( + def send_request( request, redirect_count:, retry_count:, diff --git a/sig/vers/internal/transport/base_client.rbs b/sig/vers/internal/transport/base_client.rbs index 56c986e..d79a5fb 100644 --- a/sig/vers/internal/transport/base_client.rbs +++ b/sig/vers/internal/transport/base_client.rbs @@ -99,7 +99,7 @@ module Vers retry_count: Integer ) -> Float - private def send_request: ( + def send_request: ( Vers::Internal::Transport::BaseClient::request_input request, redirect_count: Integer, retry_count: Integer, From 039c06d60b1c1cafdd551120432e3829dfac30de Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 14:51:24 +0000 Subject: [PATCH 005/100] chore: sync repo --- .release-please-manifest.json | 2 +- CHANGELOG.md | 19 ------------------- Gemfile.lock | 2 +- README.md | 2 +- lib/vers/version.rb | 2 +- 5 files changed, 4 insertions(+), 23 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f14b480..ba6c348 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.2" + ".": "0.1.0-alpha.1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 61756a8..01b7042 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,24 +1,5 @@ # Changelog -## 0.1.0-alpha.2 (2025-07-31) - -Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/hdresearch/vers-sdk-ruby/compare/v0.1.0-alpha.1...v0.1.0-alpha.2) - -### Features - -* **api:** api update ([fdf4078](https://github.com/hdresearch/vers-sdk-ruby/commit/fdf4078f7876b120fa9fd711babc0fe6f3c92e74)) -* **api:** api update ([26f35d1](https://github.com/hdresearch/vers-sdk-ruby/commit/26f35d1c2974669362ba71eb5eaea62edb3717a6)) -* **api:** api update ([b715dd4](https://github.com/hdresearch/vers-sdk-ruby/commit/b715dd4f217afaeb55a0f47708253de71596f2b4)) - - -### Chores - -* configure new SDK language ([448290c](https://github.com/hdresearch/vers-sdk-ruby/commit/448290cdcbad5845ba725e87fb8f110c22571d73)) -* configure new SDK language ([0ab31bc](https://github.com/hdresearch/vers-sdk-ruby/commit/0ab31bc21c4c1b154835ac352d18d32a8f5ee894)) -* **internal:** codegen related update ([6d401d5](https://github.com/hdresearch/vers-sdk-ruby/commit/6d401d5a27091794727e9b428e3ec8019750d26b)) -* update SDK settings ([630143f](https://github.com/hdresearch/vers-sdk-ruby/commit/630143f471608cd02ab71bd2cd747b1e8e01a237)) -* update SDK settings ([bd5f2ca](https://github.com/hdresearch/vers-sdk-ruby/commit/bd5f2cae65d670a56c629fec5bc22d6c1927923e)) - ## 0.1.0-alpha.1 (2025-07-18) Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/hdresearch/vers-sdk-ruby/compare/v0.0.1-alpha.0...v0.1.0-alpha.1) diff --git a/Gemfile.lock b/Gemfile.lock index 98601cb..aabad1d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - vers (0.1.0.pre.alpha.2) + vers (0.1.0.pre.alpha.1) connection_pool GEM diff --git a/README.md b/README.md index 81d930b..ba0ccf5 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "vers", "~> 0.1.0.pre.alpha.2" +gem "vers", "~> 0.1.0.pre.alpha.1" ``` diff --git a/lib/vers/version.rb b/lib/vers/version.rb index 48da648..f9ef1ff 100644 --- a/lib/vers/version.rb +++ b/lib/vers/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Vers - VERSION = "0.1.0.pre.alpha.2" + VERSION = "0.1.0.pre.alpha.1" end From 04f7787343664078bd42d2b7dd6fd8e2d140815f Mon Sep 17 00:00:00 2001 From: Arden Sebexen <167637495+asebexen@users.noreply.github.com> Date: Thu, 31 Jul 2025 10:51:09 -0400 Subject: [PATCH 006/100] Merge pull request #8 from hdresearch/release-please--branches--main--changes--next release: 0.1.0-alpha.2 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 19 +++++++++++++++++++ Gemfile.lock | 2 +- README.md | 2 +- lib/vers/version.rb | 2 +- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index ba6c348..f14b480 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.1" + ".": "0.1.0-alpha.2" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 01b7042..61756a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## 0.1.0-alpha.2 (2025-07-31) + +Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/hdresearch/vers-sdk-ruby/compare/v0.1.0-alpha.1...v0.1.0-alpha.2) + +### Features + +* **api:** api update ([fdf4078](https://github.com/hdresearch/vers-sdk-ruby/commit/fdf4078f7876b120fa9fd711babc0fe6f3c92e74)) +* **api:** api update ([26f35d1](https://github.com/hdresearch/vers-sdk-ruby/commit/26f35d1c2974669362ba71eb5eaea62edb3717a6)) +* **api:** api update ([b715dd4](https://github.com/hdresearch/vers-sdk-ruby/commit/b715dd4f217afaeb55a0f47708253de71596f2b4)) + + +### Chores + +* configure new SDK language ([448290c](https://github.com/hdresearch/vers-sdk-ruby/commit/448290cdcbad5845ba725e87fb8f110c22571d73)) +* configure new SDK language ([0ab31bc](https://github.com/hdresearch/vers-sdk-ruby/commit/0ab31bc21c4c1b154835ac352d18d32a8f5ee894)) +* **internal:** codegen related update ([6d401d5](https://github.com/hdresearch/vers-sdk-ruby/commit/6d401d5a27091794727e9b428e3ec8019750d26b)) +* update SDK settings ([630143f](https://github.com/hdresearch/vers-sdk-ruby/commit/630143f471608cd02ab71bd2cd747b1e8e01a237)) +* update SDK settings ([bd5f2ca](https://github.com/hdresearch/vers-sdk-ruby/commit/bd5f2cae65d670a56c629fec5bc22d6c1927923e)) + ## 0.1.0-alpha.1 (2025-07-18) Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/hdresearch/vers-sdk-ruby/compare/v0.0.1-alpha.0...v0.1.0-alpha.1) diff --git a/Gemfile.lock b/Gemfile.lock index aabad1d..98601cb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - vers (0.1.0.pre.alpha.1) + vers (0.1.0.pre.alpha.2) connection_pool GEM diff --git a/README.md b/README.md index ba0ccf5..81d930b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "vers", "~> 0.1.0.pre.alpha.1" +gem "vers", "~> 0.1.0.pre.alpha.2" ``` diff --git a/lib/vers/version.rb b/lib/vers/version.rb index f9ef1ff..48da648 100644 --- a/lib/vers/version.rb +++ b/lib/vers/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Vers - VERSION = "0.1.0.pre.alpha.1" + VERSION = "0.1.0.pre.alpha.2" end From eed56ef375f4843eed4e3af57367dd26239061d9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 02:23:59 +0000 Subject: [PATCH 007/100] chore(internal): codegen related update --- test/vers/resources/api/cluster_test.rb | 12 ++++++------ test/vers/resources/api/health_test.rb | 2 +- test/vers/resources/api/rootfs_test.rb | 6 +++--- test/vers/resources/api/telemetry_test.rb | 2 +- test/vers/resources/api/vm_test.rb | 14 +++++++------- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/test/vers/resources/api/cluster_test.rb b/test/vers/resources/api/cluster_test.rb index 3aa2178..77f2f5d 100644 --- a/test/vers/resources/api/cluster_test.rb +++ b/test/vers/resources/api/cluster_test.rb @@ -4,7 +4,7 @@ class Vers::Test::Resources::API::ClusterTest < Vers::Test::ResourceTest def test_create_required_params - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.cluster.create(cluster_type: :new, params: {}) @@ -24,7 +24,7 @@ def test_create_required_params end def test_retrieve - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.cluster.retrieve("cluster_id_or_alias") @@ -44,7 +44,7 @@ def test_retrieve end def test_update - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.cluster.update("cluster_id_or_alias") @@ -64,7 +64,7 @@ def test_update end def test_list - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.cluster.list @@ -84,7 +84,7 @@ def test_list end def test_delete - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.cluster.delete("cluster_id_or_alias") @@ -104,7 +104,7 @@ def test_delete end def test_get_ssh_key - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.cluster.get_ssh_key("cluster_id_or_alias") diff --git a/test/vers/resources/api/health_test.rb b/test/vers/resources/api/health_test.rb index 93e457a..bdf0df9 100644 --- a/test/vers/resources/api/health_test.rb +++ b/test/vers/resources/api/health_test.rb @@ -4,7 +4,7 @@ class Vers::Test::Resources::API::HealthTest < Vers::Test::ResourceTest def test_check - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.health.check diff --git a/test/vers/resources/api/rootfs_test.rb b/test/vers/resources/api/rootfs_test.rb index 942c73a..6fb3a4d 100644 --- a/test/vers/resources/api/rootfs_test.rb +++ b/test/vers/resources/api/rootfs_test.rb @@ -4,7 +4,7 @@ class Vers::Test::Resources::API::RootfsTest < Vers::Test::ResourceTest def test_list - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.rootfs.list @@ -24,7 +24,7 @@ def test_list end def test_delete - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.rootfs.delete("rootfs_id") @@ -44,7 +44,7 @@ def test_delete end def test_upload - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.rootfs.upload("rootfs_id") diff --git a/test/vers/resources/api/telemetry_test.rb b/test/vers/resources/api/telemetry_test.rb index 61c26ee..4320edc 100644 --- a/test/vers/resources/api/telemetry_test.rb +++ b/test/vers/resources/api/telemetry_test.rb @@ -4,7 +4,7 @@ class Vers::Test::Resources::API::TelemetryTest < Vers::Test::ResourceTest def test_get_info - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.telemetry.get_info diff --git a/test/vers/resources/api/vm_test.rb b/test/vers/resources/api/vm_test.rb index f830d3a..22ef5cc 100644 --- a/test/vers/resources/api/vm_test.rb +++ b/test/vers/resources/api/vm_test.rb @@ -4,7 +4,7 @@ class Vers::Test::Resources::API::VmTest < Vers::Test::ResourceTest def test_retrieve - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.vm.retrieve("vm_id_or_alias") @@ -24,7 +24,7 @@ def test_retrieve end def test_update - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.vm.update("vm_id_or_alias") @@ -44,7 +44,7 @@ def test_update end def test_list - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.vm.list @@ -64,7 +64,7 @@ def test_list end def test_delete_required_params - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.vm.delete("vm_id_or_alias", recursive: true) @@ -84,7 +84,7 @@ def test_delete_required_params end def test_branch - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.vm.branch("vm_id_or_alias") @@ -104,7 +104,7 @@ def test_branch end def test_commit - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.vm.commit("vm_id_or_alias") @@ -124,7 +124,7 @@ def test_commit end def test_get_ssh_key - skip("skipped: tests are disabled for the time being") + skip("Prism tests are disabled") response = @vers.api.vm.get_ssh_key("vm_id_or_alias") From f25708d4a743ffc54d69dcf31a1fd92d20b928ae Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 14 Aug 2025 22:23:27 +0000 Subject: [PATCH 008/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models/api/cluster_create_request.rb | 8 ++++---- rbi/vers/models/api/cluster_create_request.rbi | 8 ++++---- sig/vers/models/api/cluster_create_request.rbs | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.stats.yml b/.stats.yml index 81f9064..5fedfcc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-10d4e7c414a5a3c63ff31c5fc49c2908517483a1c41c3121063b254c89964c14.yml -openapi_spec_hash: bb4c6c93af5288bf9955190d94d6e802 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-c1ec22bce44e5cb673f6abf4220170e9c50c4c07b20094c71726e47d44766855.yml +openapi_spec_hash: c35bec7842a7e41e80a7d1577b066c37 config_hash: 2cba7ea212435f78850a896a330802c9 diff --git a/lib/vers/models/api/cluster_create_request.rb b/lib/vers/models/api/cluster_create_request.rb index e71c40f..84604c5 100644 --- a/lib/vers/models/api/cluster_create_request.rb +++ b/lib/vers/models/api/cluster_create_request.rb @@ -133,10 +133,10 @@ module ClusterType # @see Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams#params class Params < Vers::Internal::Type::BaseModel - # @!attribute commit_key + # @!attribute commit_id # # @return [String] - required :commit_key, String + required :commit_id, String # @!attribute cluster_alias # @@ -153,8 +153,8 @@ class Params < Vers::Internal::Type::BaseModel # @return [String, nil] optional :vm_alias, String, nil?: true - # @!method initialize(commit_key:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil) - # @param commit_key [String] + # @!method initialize(commit_id:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil) + # @param commit_id [String] # @param cluster_alias [String, nil] # @param fs_size_cluster_mib [Integer, nil] # @param vm_alias [String, nil] diff --git a/rbi/vers/models/api/cluster_create_request.rbi b/rbi/vers/models/api/cluster_create_request.rbi index 045fe48..1eedd9f 100644 --- a/rbi/vers/models/api/cluster_create_request.rbi +++ b/rbi/vers/models/api/cluster_create_request.rbi @@ -272,7 +272,7 @@ module Vers end sig { returns(String) } - attr_accessor :commit_key + attr_accessor :commit_id sig { returns(T.nilable(String)) } attr_accessor :cluster_alias @@ -285,14 +285,14 @@ module Vers sig do params( - commit_key: String, + commit_id: String, cluster_alias: T.nilable(String), fs_size_cluster_mib: T.nilable(Integer), vm_alias: T.nilable(String) ).returns(T.attached_class) end def self.new( - commit_key:, + commit_id:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil @@ -302,7 +302,7 @@ module Vers sig do override.returns( { - commit_key: String, + commit_id: String, cluster_alias: T.nilable(String), fs_size_cluster_mib: T.nilable(Integer), vm_alias: T.nilable(String) diff --git a/sig/vers/models/api/cluster_create_request.rbs b/sig/vers/models/api/cluster_create_request.rbs index 97dcf5f..cbe15b0 100644 --- a/sig/vers/models/api/cluster_create_request.rbs +++ b/sig/vers/models/api/cluster_create_request.rbs @@ -125,14 +125,14 @@ module Vers type params = { - commit_key: String, + commit_id: String, cluster_alias: String?, fs_size_cluster_mib: Integer?, vm_alias: String? } class Params < Vers::Internal::Type::BaseModel - attr_accessor commit_key: String + attr_accessor commit_id: String attr_accessor cluster_alias: String? @@ -141,14 +141,14 @@ module Vers attr_accessor vm_alias: String? def initialize: ( - commit_key: String, + commit_id: String, ?cluster_alias: String?, ?fs_size_cluster_mib: Integer?, ?vm_alias: String? ) -> void def to_hash: -> { - commit_key: String, + commit_id: String, cluster_alias: String?, fs_size_cluster_mib: Integer?, vm_alias: String? From 6fdb93355d47a1e4e8a3fb8646fe691f1e40f456 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 15 Aug 2025 15:56:33 +0000 Subject: [PATCH 009/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models/api/cluster_create_request.rb | 8 ++++---- rbi/vers/models/api/cluster_create_request.rbi | 8 ++++---- sig/vers/models/api/cluster_create_request.rbs | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5fedfcc..81f9064 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-c1ec22bce44e5cb673f6abf4220170e9c50c4c07b20094c71726e47d44766855.yml -openapi_spec_hash: c35bec7842a7e41e80a7d1577b066c37 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-10d4e7c414a5a3c63ff31c5fc49c2908517483a1c41c3121063b254c89964c14.yml +openapi_spec_hash: bb4c6c93af5288bf9955190d94d6e802 config_hash: 2cba7ea212435f78850a896a330802c9 diff --git a/lib/vers/models/api/cluster_create_request.rb b/lib/vers/models/api/cluster_create_request.rb index 84604c5..e71c40f 100644 --- a/lib/vers/models/api/cluster_create_request.rb +++ b/lib/vers/models/api/cluster_create_request.rb @@ -133,10 +133,10 @@ module ClusterType # @see Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams#params class Params < Vers::Internal::Type::BaseModel - # @!attribute commit_id + # @!attribute commit_key # # @return [String] - required :commit_id, String + required :commit_key, String # @!attribute cluster_alias # @@ -153,8 +153,8 @@ class Params < Vers::Internal::Type::BaseModel # @return [String, nil] optional :vm_alias, String, nil?: true - # @!method initialize(commit_id:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil) - # @param commit_id [String] + # @!method initialize(commit_key:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil) + # @param commit_key [String] # @param cluster_alias [String, nil] # @param fs_size_cluster_mib [Integer, nil] # @param vm_alias [String, nil] diff --git a/rbi/vers/models/api/cluster_create_request.rbi b/rbi/vers/models/api/cluster_create_request.rbi index 1eedd9f..045fe48 100644 --- a/rbi/vers/models/api/cluster_create_request.rbi +++ b/rbi/vers/models/api/cluster_create_request.rbi @@ -272,7 +272,7 @@ module Vers end sig { returns(String) } - attr_accessor :commit_id + attr_accessor :commit_key sig { returns(T.nilable(String)) } attr_accessor :cluster_alias @@ -285,14 +285,14 @@ module Vers sig do params( - commit_id: String, + commit_key: String, cluster_alias: T.nilable(String), fs_size_cluster_mib: T.nilable(Integer), vm_alias: T.nilable(String) ).returns(T.attached_class) end def self.new( - commit_id:, + commit_key:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil @@ -302,7 +302,7 @@ module Vers sig do override.returns( { - commit_id: String, + commit_key: String, cluster_alias: T.nilable(String), fs_size_cluster_mib: T.nilable(Integer), vm_alias: T.nilable(String) diff --git a/sig/vers/models/api/cluster_create_request.rbs b/sig/vers/models/api/cluster_create_request.rbs index cbe15b0..97dcf5f 100644 --- a/sig/vers/models/api/cluster_create_request.rbs +++ b/sig/vers/models/api/cluster_create_request.rbs @@ -125,14 +125,14 @@ module Vers type params = { - commit_id: String, + commit_key: String, cluster_alias: String?, fs_size_cluster_mib: Integer?, vm_alias: String? } class Params < Vers::Internal::Type::BaseModel - attr_accessor commit_id: String + attr_accessor commit_key: String attr_accessor cluster_alias: String? @@ -141,14 +141,14 @@ module Vers attr_accessor vm_alias: String? def initialize: ( - commit_id: String, + commit_key: String, ?cluster_alias: String?, ?fs_size_cluster_mib: Integer?, ?vm_alias: String? ) -> void def to_hash: -> { - commit_id: String, + commit_key: String, cluster_alias: String?, fs_size_cluster_mib: Integer?, vm_alias: String? From fa59039affa570785adb1923061c4760f8db9424 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 07:41:03 +0000 Subject: [PATCH 010/100] fix: bump sorbet version and fix new type errors from the breaking change --- .rubocop.yml | 2 +- Gemfile.lock | 88 +++++++++++-------- .../transport/pooled_net_requester.rb | 10 +-- lib/vers/internal/util.rb | 2 +- lib/vers/models/api/cluster_create_request.rb | 5 +- rbi/vers/errors.rbi | 4 +- test/vers/internal/type/base_model_test.rb | 6 ++ test/vers/internal/util_test.rb | 6 +- 8 files changed, 66 insertions(+), 57 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index a2e4428..814b047 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -149,7 +149,7 @@ Naming/ClassAndModuleCamelCase: Naming/MethodParameterName: Enabled: false -Naming/PredicateName: +Naming/PredicatePrefix: Exclude: - "**/*.rbi" diff --git a/Gemfile.lock b/Gemfile.lock index 98601cb..6da1733 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -17,7 +17,7 @@ PATH GEM remote: https://rubygems.org/ specs: - activesupport (8.0.2) + activesupport (8.0.2.1) base64 benchmark (>= 0.3) bigdecimal @@ -33,45 +33,50 @@ GEM addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) ast (2.4.3) - async (2.24.0) + async (2.27.3) console (~> 1.29) fiber-annotation - io-event (~> 1.9) + io-event (~> 1.11) metrics (~> 0.12) traces (~> 0.15) - base64 (0.2.0) - benchmark (0.4.0) - bigdecimal (3.1.9) + base64 (0.3.0) + benchmark (0.4.1) + bigdecimal (3.2.2) concurrent-ruby (1.3.5) connection_pool (2.5.3) - console (1.30.2) + console (1.33.0) fiber-annotation fiber-local (~> 1.1) json crack (1.0.0) bigdecimal rexml - csv (3.3.4) - drb (2.2.1) + csv (3.3.5) + drb (2.2.3) erubi (1.13.1) + ffi (1.17.2-aarch64-linux-gnu) + ffi (1.17.2-aarch64-linux-musl) + ffi (1.17.2-arm64-darwin) + ffi (1.17.2-x86_64-darwin) ffi (1.17.2-x86_64-linux-gnu) + ffi (1.17.2-x86_64-linux-musl) fiber-annotation (0.2.0) fiber-local (1.1.0) fiber-storage fiber-storage (1.0.1) fileutils (1.7.3) - hashdiff (1.1.2) + hashdiff (1.2.0) i18n (1.14.7) concurrent-ruby (~> 1.0) - io-event (1.10.0) - json (2.11.3) - language_server-protocol (3.17.0.4) + io-event (1.11.2) + json (2.13.2) + language_server-protocol (3.17.0.5) lint_roller (1.1.0) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - metrics (0.12.2) + metrics (0.13.0) minitest (5.25.5) minitest-focus (1.4.0) minitest (>= 4, < 6) @@ -84,7 +89,7 @@ GEM mutex_m (0.3.0) netrc (0.11.0) parallel (1.27.0) - parser (3.3.8.0) + parser (3.3.9.0) ast (~> 2.4.1) racc prettier_print (1.2.1) @@ -92,20 +97,19 @@ GEM public_suffix (6.0.2) racc (1.8.1) rainbow (3.1.1) - rake (13.2.1) + rake (13.3.0) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbi (0.3.2) + rbi (0.3.6) prism (~> 1.0) rbs (>= 3.4.4) - sorbet-runtime (>= 0.5.9204) - rbs (3.9.2) + rbs (3.9.4) logger redcarpet (3.6.1) - regexp_parser (2.10.0) + regexp_parser (2.11.2) rexml (3.4.1) - rubocop (1.75.5) + rubocop (1.79.2) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -113,25 +117,28 @@ GEM parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.44.0, < 2.0) + rubocop-ast (>= 1.46.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.44.1) + rubocop-ast (1.46.0) parser (>= 3.3.7.2) prism (~> 1.4) ruby-progressbar (1.13.0) securerandom (0.4.1) - sorbet (0.5.12067) - sorbet-static (= 0.5.12067) - sorbet-runtime (0.5.12067) - sorbet-static (0.5.12067-x86_64-linux) - sorbet-static-and-runtime (0.5.12067) - sorbet (= 0.5.12067) - sorbet-runtime (= 0.5.12067) - spoom (1.6.1) + sorbet (0.5.12424) + sorbet-static (= 0.5.12424) + sorbet-runtime (0.5.12424) + sorbet-static (0.5.12424-aarch64-linux) + sorbet-static (0.5.12424-universal-darwin) + sorbet-static (0.5.12424-x86_64-linux) + sorbet-static-and-runtime (0.5.12424) + sorbet (= 0.5.12424) + sorbet-runtime (= 0.5.12424) + spoom (1.6.3) erubi (>= 1.10.0) prism (>= 0.28.0) - rbi (>= 0.2.3) + rbi (>= 0.3.3) + rexml (>= 3.2.6) sorbet-static-and-runtime (>= 0.5.10187) thor (>= 0.19.2) steep (1.10.0) @@ -152,7 +159,7 @@ GEM terminal-table (>= 2, < 5) uri (>= 0.12.0) strscan (3.1.5) - syntax_tree (6.2.0) + syntax_tree (6.3.0) prettier_print (>= 1.2.0) tapioca (0.16.11) benchmark @@ -166,11 +173,11 @@ GEM yard-sorbet terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) - thor (1.3.2) - traces (0.15.2) + thor (1.4.0) + traces (0.17.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) + unicode-display_width (3.1.5) unicode-emoji (~> 4.0, >= 4.0.4) unicode-emoji (4.0.4) uri (1.0.3) @@ -185,7 +192,14 @@ GEM yard PLATFORMS - x86_64-linux + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm64-darwin + universal-darwin + x86_64-darwin + x86_64-linux-gnu + x86_64-linux-musl DEPENDENCIES async diff --git a/lib/vers/internal/transport/pooled_net_requester.rb b/lib/vers/internal/transport/pooled_net_requester.rb index d4e682d..32b7a56 100644 --- a/lib/vers/internal/transport/pooled_net_requester.rb +++ b/lib/vers/internal/transport/pooled_net_requester.rb @@ -193,15 +193,7 @@ def initialize(size: self.class::DEFAULT_MAX_CONNECTIONS) end define_sorbet_constant!(:Request) do - T.type_alias do - { - method: Symbol, - url: URI::Generic, - headers: T::Hash[String, String], - body: T.anything, - deadline: Float - } - end + T.type_alias { {method: Symbol, url: URI::Generic, headers: T::Hash[String, String], body: T.anything, deadline: Float} } end end end diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index ea0a17a..e7e9688 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -244,7 +244,7 @@ class << self # # @return [String] def uri_origin(uri) - "#{uri.scheme}://#{uri.host}#{uri.port == uri.default_port ? '' : ":#{uri.port}"}" + "#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}" end # @api private diff --git a/lib/vers/models/api/cluster_create_request.rb b/lib/vers/models/api/cluster_create_request.rb index e71c40f..1cb8adb 100644 --- a/lib/vers/models/api/cluster_create_request.rb +++ b/lib/vers/models/api/cluster_create_request.rb @@ -107,10 +107,7 @@ class ClusterFromCommitParams < Vers::Internal::Type::BaseModel # @!attribute cluster_type # # @return [Symbol, Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType] - required :cluster_type, - enum: -> { - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType - } + required :cluster_type, enum: -> { Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType } # @!attribute params # diff --git a/rbi/vers/errors.rbi b/rbi/vers/errors.rbi index ea0dcfb..56af957 100644 --- a/rbi/vers/errors.rbi +++ b/rbi/vers/errors.rbi @@ -59,10 +59,10 @@ module Vers end class APIConnectionError < Vers::Errors::APIError - sig { void } + sig { returns(NilClass) } attr_accessor :status - sig { void } + sig { returns(NilClass) } attr_accessor :body # @api private diff --git a/test/vers/internal/type/base_model_test.rb b/test/vers/internal/type/base_model_test.rb index 483328b..0899675 100644 --- a/test/vers/internal/type/base_model_test.rb +++ b/test/vers/internal/type/base_model_test.rb @@ -157,6 +157,7 @@ def test_dump_retry class Vers::Test::EnumModelTest < Minitest::Test class E0 include Vers::Internal::Type::Enum + attr_reader :values def initialize(*values) = (@values = values) @@ -476,6 +477,7 @@ def initialize(*variants) = variants.each { variant(_1) } module U1 extend Vers::Internal::Type::Union + variant const: :a variant const: 2 end @@ -492,6 +494,7 @@ class M2 < Vers::Internal::Type::BaseModel module U2 extend Vers::Internal::Type::Union + discriminator :type variant :a, M1 @@ -500,6 +503,7 @@ module U2 module U3 extend Vers::Internal::Type::Union + discriminator :type variant :a, M1 @@ -508,6 +512,7 @@ module U3 module U4 extend Vers::Internal::Type::Union + discriminator :type variant String @@ -601,6 +606,7 @@ def test_coerce class Vers::Test::BaseModelQoLTest < Minitest::Test class E0 include Vers::Internal::Type::Enum + attr_reader :values def initialize(*values) = (@values = values) diff --git a/test/vers/internal/util_test.rb b/test/vers/internal/util_test.rb index 1ae9d19..4ad7119 100644 --- a/test/vers/internal/util_test.rb +++ b/test/vers/internal/util_test.rb @@ -320,9 +320,9 @@ def test_rewind_chain end def test_external_iteration - it = [1, 2, 3].to_enum - first = it.next - fused = Vers::Internal::Util.fused_enum(it, external: true) + iter = [1, 2, 3].to_enum + first = iter.next + fused = Vers::Internal::Util.fused_enum(iter, external: true) assert_equal(1, first) assert_equal([2, 3], fused.to_a) From a0a461ee4439b09d5f1c10eb1fa10d5852fe52d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 18:32:41 +0000 Subject: [PATCH 011/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models/api/cluster_create_request.rb | 8 ++++---- rbi/vers/models/api/cluster_create_request.rbi | 8 ++++---- sig/vers/models/api/cluster_create_request.rbs | 8 ++++---- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.stats.yml b/.stats.yml index 81f9064..5fedfcc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-10d4e7c414a5a3c63ff31c5fc49c2908517483a1c41c3121063b254c89964c14.yml -openapi_spec_hash: bb4c6c93af5288bf9955190d94d6e802 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-c1ec22bce44e5cb673f6abf4220170e9c50c4c07b20094c71726e47d44766855.yml +openapi_spec_hash: c35bec7842a7e41e80a7d1577b066c37 config_hash: 2cba7ea212435f78850a896a330802c9 diff --git a/lib/vers/models/api/cluster_create_request.rb b/lib/vers/models/api/cluster_create_request.rb index 1cb8adb..b8547df 100644 --- a/lib/vers/models/api/cluster_create_request.rb +++ b/lib/vers/models/api/cluster_create_request.rb @@ -130,10 +130,10 @@ module ClusterType # @see Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams#params class Params < Vers::Internal::Type::BaseModel - # @!attribute commit_key + # @!attribute commit_id # # @return [String] - required :commit_key, String + required :commit_id, String # @!attribute cluster_alias # @@ -150,8 +150,8 @@ class Params < Vers::Internal::Type::BaseModel # @return [String, nil] optional :vm_alias, String, nil?: true - # @!method initialize(commit_key:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil) - # @param commit_key [String] + # @!method initialize(commit_id:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil) + # @param commit_id [String] # @param cluster_alias [String, nil] # @param fs_size_cluster_mib [Integer, nil] # @param vm_alias [String, nil] diff --git a/rbi/vers/models/api/cluster_create_request.rbi b/rbi/vers/models/api/cluster_create_request.rbi index 045fe48..1eedd9f 100644 --- a/rbi/vers/models/api/cluster_create_request.rbi +++ b/rbi/vers/models/api/cluster_create_request.rbi @@ -272,7 +272,7 @@ module Vers end sig { returns(String) } - attr_accessor :commit_key + attr_accessor :commit_id sig { returns(T.nilable(String)) } attr_accessor :cluster_alias @@ -285,14 +285,14 @@ module Vers sig do params( - commit_key: String, + commit_id: String, cluster_alias: T.nilable(String), fs_size_cluster_mib: T.nilable(Integer), vm_alias: T.nilable(String) ).returns(T.attached_class) end def self.new( - commit_key:, + commit_id:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil @@ -302,7 +302,7 @@ module Vers sig do override.returns( { - commit_key: String, + commit_id: String, cluster_alias: T.nilable(String), fs_size_cluster_mib: T.nilable(Integer), vm_alias: T.nilable(String) diff --git a/sig/vers/models/api/cluster_create_request.rbs b/sig/vers/models/api/cluster_create_request.rbs index 97dcf5f..cbe15b0 100644 --- a/sig/vers/models/api/cluster_create_request.rbs +++ b/sig/vers/models/api/cluster_create_request.rbs @@ -125,14 +125,14 @@ module Vers type params = { - commit_key: String, + commit_id: String, cluster_alias: String?, fs_size_cluster_mib: Integer?, vm_alias: String? } class Params < Vers::Internal::Type::BaseModel - attr_accessor commit_key: String + attr_accessor commit_id: String attr_accessor cluster_alias: String? @@ -141,14 +141,14 @@ module Vers attr_accessor vm_alias: String? def initialize: ( - commit_key: String, + commit_id: String, ?cluster_alias: String?, ?fs_size_cluster_mib: Integer?, ?vm_alias: String? ) -> void def to_hash: -> { - commit_key: String, + commit_id: String, cluster_alias: String?, fs_size_cluster_mib: Integer?, vm_alias: String? From 47432739732d14b8589e9947ec3377e8c0b4af6c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 21:07:01 +0000 Subject: [PATCH 012/100] feat(api): api update --- .stats.yml | 4 +- lib/vers/models/api/telemetry_dto.rb | 74 +++++++++++++++----- rbi/vers/models/api/telemetry_dto.rbi | 84 ++++++++++++++++------- sig/vers/models/api/telemetry_dto.rbs | 78 ++++++++++++++------- test/vers/resources/api/telemetry_test.rb | 18 +++-- 5 files changed, 183 insertions(+), 75 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5fedfcc..6e107fa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-c1ec22bce44e5cb673f6abf4220170e9c50c4c07b20094c71726e47d44766855.yml -openapi_spec_hash: c35bec7842a7e41e80a7d1577b066c37 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-dddadc74237fd5aa837e0eb969f9aec7fbc97a28f26e3b00e79bbdf4ea2a864e.yml +openapi_spec_hash: 786793a4eae899da9b994b4bf7ff8b7e config_hash: 2cba7ea212435f78850a896a330802c9 diff --git a/lib/vers/models/api/telemetry_dto.rb b/lib/vers/models/api/telemetry_dto.rb index b2bf8e1..581db17 100644 --- a/lib/vers/models/api/telemetry_dto.rb +++ b/lib/vers/models/api/telemetry_dto.rb @@ -10,35 +10,65 @@ class TelemetryDto < Vers::Internal::Type::BaseModel # @return [String] required :id, String - # @!attribute fs_mib_current + # @!attribute cpu_cores_available # # @return [Integer] - required :fs_mib_current, Integer + required :cpu_cores_available, Integer - # @!attribute fs_mib_max + # @!attribute cpu_cores_margin # # @return [Integer] - required :fs_mib_max, Integer + required :cpu_cores_margin, Integer - # @!attribute mem_mib_current + # @!attribute cpu_cores_total # # @return [Integer] - required :mem_mib_current, Integer + required :cpu_cores_total, Integer - # @!attribute mem_mib_max + # @!attribute cpu_cores_used # # @return [Integer] - required :mem_mib_max, Integer + required :cpu_cores_used, Integer - # @!attribute vcpu_current + # @!attribute disk_data_mib_available # # @return [Integer] - required :vcpu_current, Integer + required :disk_data_mib_available, Integer - # @!attribute vcpu_max + # @!attribute disk_data_mib_total # # @return [Integer] - required :vcpu_max, Integer + required :disk_data_mib_total, Integer + + # @!attribute disk_vm_mib_available + # + # @return [Integer] + required :disk_vm_mib_available, Integer + + # @!attribute disk_vm_mib_total + # + # @return [Integer] + required :disk_vm_mib_total, Integer + + # @!attribute memory_mib_available + # + # @return [Integer] + required :memory_mib_available, Integer + + # @!attribute memory_mib_margin + # + # @return [Integer] + required :memory_mib_margin, Integer + + # @!attribute memory_mib_total + # + # @return [Integer] + required :memory_mib_total, Integer + + # @!attribute memory_mib_used + # + # @return [Integer] + required :memory_mib_used, Integer # @!attribute vm_network_count_in_use # @@ -50,14 +80,20 @@ class TelemetryDto < Vers::Internal::Type::BaseModel # @return [Integer] required :vm_network_count_total, Integer - # @!method initialize(id:, fs_mib_current:, fs_mib_max:, mem_mib_current:, mem_mib_max:, vcpu_current:, vcpu_max:, vm_network_count_in_use:, vm_network_count_total:) + # @!method initialize(id:, cpu_cores_available:, cpu_cores_margin:, cpu_cores_total:, cpu_cores_used:, disk_data_mib_available:, disk_data_mib_total:, disk_vm_mib_available:, disk_vm_mib_total:, memory_mib_available:, memory_mib_margin:, memory_mib_total:, memory_mib_used:, vm_network_count_in_use:, vm_network_count_total:) # @param id [String] - # @param fs_mib_current [Integer] - # @param fs_mib_max [Integer] - # @param mem_mib_current [Integer] - # @param mem_mib_max [Integer] - # @param vcpu_current [Integer] - # @param vcpu_max [Integer] + # @param cpu_cores_available [Integer] + # @param cpu_cores_margin [Integer] + # @param cpu_cores_total [Integer] + # @param cpu_cores_used [Integer] + # @param disk_data_mib_available [Integer] + # @param disk_data_mib_total [Integer] + # @param disk_vm_mib_available [Integer] + # @param disk_vm_mib_total [Integer] + # @param memory_mib_available [Integer] + # @param memory_mib_margin [Integer] + # @param memory_mib_total [Integer] + # @param memory_mib_used [Integer] # @param vm_network_count_in_use [Integer] # @param vm_network_count_total [Integer] end diff --git a/rbi/vers/models/api/telemetry_dto.rbi b/rbi/vers/models/api/telemetry_dto.rbi index 02ae9d6..e772846 100644 --- a/rbi/vers/models/api/telemetry_dto.rbi +++ b/rbi/vers/models/api/telemetry_dto.rbi @@ -13,22 +13,40 @@ module Vers attr_accessor :id sig { returns(Integer) } - attr_accessor :fs_mib_current + attr_accessor :cpu_cores_available sig { returns(Integer) } - attr_accessor :fs_mib_max + attr_accessor :cpu_cores_margin sig { returns(Integer) } - attr_accessor :mem_mib_current + attr_accessor :cpu_cores_total sig { returns(Integer) } - attr_accessor :mem_mib_max + attr_accessor :cpu_cores_used sig { returns(Integer) } - attr_accessor :vcpu_current + attr_accessor :disk_data_mib_available sig { returns(Integer) } - attr_accessor :vcpu_max + attr_accessor :disk_data_mib_total + + sig { returns(Integer) } + attr_accessor :disk_vm_mib_available + + sig { returns(Integer) } + attr_accessor :disk_vm_mib_total + + sig { returns(Integer) } + attr_accessor :memory_mib_available + + sig { returns(Integer) } + attr_accessor :memory_mib_margin + + sig { returns(Integer) } + attr_accessor :memory_mib_total + + sig { returns(Integer) } + attr_accessor :memory_mib_used sig { returns(Integer) } attr_accessor :vm_network_count_in_use @@ -39,24 +57,36 @@ module Vers sig do params( id: String, - fs_mib_current: Integer, - fs_mib_max: Integer, - mem_mib_current: Integer, - mem_mib_max: Integer, - vcpu_current: Integer, - vcpu_max: Integer, + cpu_cores_available: Integer, + cpu_cores_margin: Integer, + cpu_cores_total: Integer, + cpu_cores_used: Integer, + disk_data_mib_available: Integer, + disk_data_mib_total: Integer, + disk_vm_mib_available: Integer, + disk_vm_mib_total: Integer, + memory_mib_available: Integer, + memory_mib_margin: Integer, + memory_mib_total: Integer, + memory_mib_used: Integer, vm_network_count_in_use: Integer, vm_network_count_total: Integer ).returns(T.attached_class) end def self.new( id:, - fs_mib_current:, - fs_mib_max:, - mem_mib_current:, - mem_mib_max:, - vcpu_current:, - vcpu_max:, + cpu_cores_available:, + cpu_cores_margin:, + cpu_cores_total:, + cpu_cores_used:, + disk_data_mib_available:, + disk_data_mib_total:, + disk_vm_mib_available:, + disk_vm_mib_total:, + memory_mib_available:, + memory_mib_margin:, + memory_mib_total:, + memory_mib_used:, vm_network_count_in_use:, vm_network_count_total: ) @@ -66,12 +96,18 @@ module Vers override.returns( { id: String, - fs_mib_current: Integer, - fs_mib_max: Integer, - mem_mib_current: Integer, - mem_mib_max: Integer, - vcpu_current: Integer, - vcpu_max: Integer, + cpu_cores_available: Integer, + cpu_cores_margin: Integer, + cpu_cores_total: Integer, + cpu_cores_used: Integer, + disk_data_mib_available: Integer, + disk_data_mib_total: Integer, + disk_vm_mib_available: Integer, + disk_vm_mib_total: Integer, + memory_mib_available: Integer, + memory_mib_margin: Integer, + memory_mib_total: Integer, + memory_mib_used: Integer, vm_network_count_in_use: Integer, vm_network_count_total: Integer } diff --git a/sig/vers/models/api/telemetry_dto.rbs b/sig/vers/models/api/telemetry_dto.rbs index 14db211..751ff13 100644 --- a/sig/vers/models/api/telemetry_dto.rbs +++ b/sig/vers/models/api/telemetry_dto.rbs @@ -4,12 +4,18 @@ module Vers type telemetry_dto = { id: String, - fs_mib_current: Integer, - fs_mib_max: Integer, - mem_mib_current: Integer, - mem_mib_max: Integer, - vcpu_current: Integer, - vcpu_max: Integer, + cpu_cores_available: Integer, + cpu_cores_margin: Integer, + cpu_cores_total: Integer, + cpu_cores_used: Integer, + disk_data_mib_available: Integer, + disk_data_mib_total: Integer, + disk_vm_mib_available: Integer, + disk_vm_mib_total: Integer, + memory_mib_available: Integer, + memory_mib_margin: Integer, + memory_mib_total: Integer, + memory_mib_used: Integer, vm_network_count_in_use: Integer, vm_network_count_total: Integer } @@ -17,17 +23,29 @@ module Vers class TelemetryDto < Vers::Internal::Type::BaseModel attr_accessor id: String - attr_accessor fs_mib_current: Integer + attr_accessor cpu_cores_available: Integer - attr_accessor fs_mib_max: Integer + attr_accessor cpu_cores_margin: Integer - attr_accessor mem_mib_current: Integer + attr_accessor cpu_cores_total: Integer - attr_accessor mem_mib_max: Integer + attr_accessor cpu_cores_used: Integer - attr_accessor vcpu_current: Integer + attr_accessor disk_data_mib_available: Integer - attr_accessor vcpu_max: Integer + attr_accessor disk_data_mib_total: Integer + + attr_accessor disk_vm_mib_available: Integer + + attr_accessor disk_vm_mib_total: Integer + + attr_accessor memory_mib_available: Integer + + attr_accessor memory_mib_margin: Integer + + attr_accessor memory_mib_total: Integer + + attr_accessor memory_mib_used: Integer attr_accessor vm_network_count_in_use: Integer @@ -35,24 +53,36 @@ module Vers def initialize: ( id: String, - fs_mib_current: Integer, - fs_mib_max: Integer, - mem_mib_current: Integer, - mem_mib_max: Integer, - vcpu_current: Integer, - vcpu_max: Integer, + cpu_cores_available: Integer, + cpu_cores_margin: Integer, + cpu_cores_total: Integer, + cpu_cores_used: Integer, + disk_data_mib_available: Integer, + disk_data_mib_total: Integer, + disk_vm_mib_available: Integer, + disk_vm_mib_total: Integer, + memory_mib_available: Integer, + memory_mib_margin: Integer, + memory_mib_total: Integer, + memory_mib_used: Integer, vm_network_count_in_use: Integer, vm_network_count_total: Integer ) -> void def to_hash: -> { id: String, - fs_mib_current: Integer, - fs_mib_max: Integer, - mem_mib_current: Integer, - mem_mib_max: Integer, - vcpu_current: Integer, - vcpu_max: Integer, + cpu_cores_available: Integer, + cpu_cores_margin: Integer, + cpu_cores_total: Integer, + cpu_cores_used: Integer, + disk_data_mib_available: Integer, + disk_data_mib_total: Integer, + disk_vm_mib_available: Integer, + disk_vm_mib_total: Integer, + memory_mib_available: Integer, + memory_mib_margin: Integer, + memory_mib_total: Integer, + memory_mib_used: Integer, vm_network_count_in_use: Integer, vm_network_count_total: Integer } diff --git a/test/vers/resources/api/telemetry_test.rb b/test/vers/resources/api/telemetry_test.rb index 4320edc..1eaf96c 100644 --- a/test/vers/resources/api/telemetry_test.rb +++ b/test/vers/resources/api/telemetry_test.rb @@ -15,12 +15,18 @@ def test_get_info assert_pattern do response => { id: String, - fs_mib_current: Integer, - fs_mib_max: Integer, - mem_mib_current: Integer, - mem_mib_max: Integer, - vcpu_current: Integer, - vcpu_max: Integer, + cpu_cores_available: Integer, + cpu_cores_margin: Integer, + cpu_cores_total: Integer, + cpu_cores_used: Integer, + disk_data_mib_available: Integer, + disk_data_mib_total: Integer, + disk_vm_mib_available: Integer, + disk_vm_mib_total: Integer, + memory_mib_available: Integer, + memory_mib_margin: Integer, + memory_mib_total: Integer, + memory_mib_used: Integer, vm_network_count_in_use: Integer, vm_network_count_total: Integer } From 0a2b891b944131e8775c6272f081bd2511a52c6e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 02:37:37 +0000 Subject: [PATCH 013/100] chore: add json schema comment for rubocop.yml --- .rubocop.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index 814b047..0b04fe5 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,3 +1,4 @@ +# yaml-language-server: $schema=https://www.rubyschema.org/rubocop.json --- # Explicitly disable pending cops for now. This is the default behaviour but # this avoids a large warning every time we run it. @@ -8,7 +9,7 @@ AllCops: - "bin/*" NewCops: enable SuggestExtensions: false - TargetRubyVersion: 3.2.0 + TargetRubyVersion: 3.2 # Whether MFA is required or not should be left to the token configuration. Gemspec/RequireMFA: From 8e3074d9e72c93a32c556679edc0f9d87f45b18e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 13 Sep 2025 17:11:50 +0000 Subject: [PATCH 014/100] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6e107fa..c3293fa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-dddadc74237fd5aa837e0eb969f9aec7fbc97a28f26e3b00e79bbdf4ea2a864e.yml openapi_spec_hash: 786793a4eae899da9b994b4bf7ff8b7e -config_hash: 2cba7ea212435f78850a896a330802c9 +config_hash: 49e5e08f1691efd3cfd3365fc495d4c2 From 4f401638f6b4ca2200a0002aa916d5e50fd70962 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 14:24:18 +0000 Subject: [PATCH 015/100] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index c3293fa..6e107fa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-dddadc74237fd5aa837e0eb969f9aec7fbc97a28f26e3b00e79bbdf4ea2a864e.yml openapi_spec_hash: 786793a4eae899da9b994b4bf7ff8b7e -config_hash: 49e5e08f1691efd3cfd3365fc495d4c2 +config_hash: 2cba7ea212435f78850a896a330802c9 From 640989cf5aad47867295acac8f6533e2906c9365 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:05:15 +0000 Subject: [PATCH 016/100] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6e107fa..c3293fa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-dddadc74237fd5aa837e0eb969f9aec7fbc97a28f26e3b00e79bbdf4ea2a864e.yml openapi_spec_hash: 786793a4eae899da9b994b4bf7ff8b7e -config_hash: 2cba7ea212435f78850a896a330802c9 +config_hash: 49e5e08f1691efd3cfd3365fc495d4c2 From f33228c43e1d6640f40abe03445a181828e630e7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:46:53 +0000 Subject: [PATCH 017/100] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index c3293fa..ef81ab7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-dddadc74237fd5aa837e0eb969f9aec7fbc97a28f26e3b00e79bbdf4ea2a864e.yml openapi_spec_hash: 786793a4eae899da9b994b4bf7ff8b7e -config_hash: 49e5e08f1691efd3cfd3365fc495d4c2 +config_hash: 9cc32b526f57ee538939eb70b0d9f7fc From 00b27a731b98bfe18448e75ecac24444a2736c85 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 16 Sep 2025 14:28:55 +0000 Subject: [PATCH 018/100] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index ef81ab7..6e107fa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 18 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-dddadc74237fd5aa837e0eb969f9aec7fbc97a28f26e3b00e79bbdf4ea2a864e.yml openapi_spec_hash: 786793a4eae899da9b994b4bf7ff8b7e -config_hash: 9cc32b526f57ee538939eb70b0d9f7fc +config_hash: 2cba7ea212435f78850a896a330802c9 From 49657bcf404a7f11cec02f8d2f67640e73a6959b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 02:31:51 +0000 Subject: [PATCH 019/100] feat: expose response headers for both streams and errors --- lib/vers/errors.rb | 36 ++++++++++++++------- lib/vers/internal/transport/base_client.rb | 18 +++++++---- lib/vers/internal/type/base_page.rb | 2 +- lib/vers/internal/util.rb | 2 +- rbi/vers/errors.rbi | 31 ++++++++++++++++-- rbi/vers/internal/transport/base_client.rbi | 9 +++--- rbi/vers/internal/type/base_page.rbi | 2 +- rbi/vers/internal/util.rbi | 2 +- sig/vers/errors.rbs | 7 ++++ 9 files changed, 80 insertions(+), 29 deletions(-) diff --git a/lib/vers/errors.rb b/lib/vers/errors.rb index 1ce0f08..b3ab07a 100644 --- a/lib/vers/errors.rb +++ b/lib/vers/errors.rb @@ -40,6 +40,9 @@ class APIError < Vers::Errors::Error # @return [Integer, nil] attr_accessor :status + # @return [Hash{String=>String}, nil] + attr_accessor :headers + # @return [Object, nil] attr_accessor :body @@ -47,13 +50,15 @@ class APIError < Vers::Errors::Error # # @param url [URI::Generic] # @param status [Integer, nil] + # @param headers [Hash{String=>String}, nil] # @param body [Object, nil] # @param request [nil] # @param response [nil] # @param message [String, nil] - def initialize(url:, status: nil, body: nil, request: nil, response: nil, message: nil) + def initialize(url:, status: nil, headers: nil, body: nil, request: nil, response: nil, message: nil) @url = url @status = status + @headers = headers @body = body @request = request @response = response @@ -74,6 +79,7 @@ class APIConnectionError < Vers::Errors::APIError # # @param url [URI::Generic] # @param status [nil] + # @param headers [Hash{String=>String}, nil] # @param body [nil] # @param request [nil] # @param response [nil] @@ -81,6 +87,7 @@ class APIConnectionError < Vers::Errors::APIError def initialize( url:, status: nil, + headers: nil, body: nil, request: nil, response: nil, @@ -95,6 +102,7 @@ class APITimeoutError < Vers::Errors::APIConnectionError # # @param url [URI::Generic] # @param status [nil] + # @param headers [Hash{String=>String}, nil] # @param body [nil] # @param request [nil] # @param response [nil] @@ -102,6 +110,7 @@ class APITimeoutError < Vers::Errors::APIConnectionError def initialize( url:, status: nil, + headers: nil, body: nil, request: nil, response: nil, @@ -116,21 +125,24 @@ class APIStatusError < Vers::Errors::APIError # # @param url [URI::Generic] # @param status [Integer] + # @param headers [Hash{String=>String}, nil] # @param body [Object, nil] # @param request [nil] # @param response [nil] # @param message [String, nil] # # @return [self] - def self.for(url:, status:, body:, request:, response:, message: nil) - kwargs = { - url: url, - status: status, - body: body, - request: request, - response: response, - message: message - } + def self.for(url:, status:, headers:, body:, request:, response:, message: nil) + kwargs = + { + url: url, + status: status, + headers: headers, + body: body, + request: request, + response: response, + message: message + } case status in 400 @@ -162,15 +174,17 @@ def self.for(url:, status:, body:, request:, response:, message: nil) # # @param url [URI::Generic] # @param status [Integer] + # @param headers [Hash{String=>String}, nil] # @param body [Object, nil] # @param request [nil] # @param response [nil] # @param message [String, nil] - def initialize(url:, status:, body:, request:, response:, message: nil) + def initialize(url:, status:, headers:, body:, request:, response:, message: nil) message ||= {url: url.to_s, status: status, body: body} super( url: url, status: status, + headers: headers, body: body, request: request, response: response, diff --git a/lib/vers/internal/transport/base_client.rb b/lib/vers/internal/transport/base_client.rb index 48ea25c..dce45fa 100644 --- a/lib/vers/internal/transport/base_client.rb +++ b/lib/vers/internal/transport/base_client.rb @@ -47,7 +47,7 @@ def validate!(req) # @api private # # @param status [Integer] - # @param headers [Hash{String=>String}, Net::HTTPHeader] + # @param headers [Hash{String=>String}] # # @return [Boolean] def should_retry?(status, headers:) @@ -85,7 +85,7 @@ def should_retry?(status, headers:) # # @param status [Integer] # - # @param response_headers [Hash{String=>String}, Net::HTTPHeader] + # @param response_headers [Hash{String=>String}] # # @return [Hash{Symbol=>Object}] def follow_redirect(request, status:, response_headers:) @@ -375,6 +375,7 @@ def send_request(request, redirect_count:, retry_count:, send_retry_header:) rescue Vers::Errors::APIConnectionError => e status = e end + headers = Vers::Internal::Util.normalized_headers(response&.each_header&.to_h) case status in ..299 @@ -387,7 +388,7 @@ def send_request(request, redirect_count:, retry_count:, send_retry_header:) in 300..399 self.class.reap_connection!(status, stream: stream) - request = self.class.follow_redirect(request, status: status, response_headers: response) + request = self.class.follow_redirect(request, status: status, response_headers: headers) send_request( request, redirect_count: redirect_count + 1, @@ -396,9 +397,9 @@ def send_request(request, redirect_count:, retry_count:, send_retry_header:) ) in Vers::Errors::APIConnectionError if retry_count >= max_retries raise status - in (400..) if retry_count >= max_retries || !self.class.should_retry?(status, headers: response) + in (400..) if retry_count >= max_retries || !self.class.should_retry?(status, headers: headers) decoded = Kernel.then do - Vers::Internal::Util.decode_content(response, stream: stream, suppress_error: true) + Vers::Internal::Util.decode_content(headers, stream: stream, suppress_error: true) ensure self.class.reap_connection!(status, stream: stream) end @@ -406,6 +407,7 @@ def send_request(request, redirect_count:, retry_count:, send_retry_header:) raise Vers::Errors::APIStatusError.for( url: url, status: status, + headers: headers, body: decoded, request: nil, response: response @@ -482,19 +484,21 @@ def request(req) send_retry_header: send_retry_header ) - decoded = Vers::Internal::Util.decode_content(response, stream: stream) + headers = Vers::Internal::Util.normalized_headers(response.each_header.to_h) + decoded = Vers::Internal::Util.decode_content(headers, stream: stream) case req in {stream: Class => st} st.new( model: model, url: url, status: status, + headers: headers, response: response, unwrap: unwrap, stream: decoded ) in {page: Class => page} - page.new(client: self, req: req, headers: response, page_data: decoded) + page.new(client: self, req: req, headers: headers, page_data: decoded) else unwrapped = Vers::Internal::Util.dig(decoded, unwrap) Vers::Internal::Type::Converter.coerce(model, unwrapped) diff --git a/lib/vers/internal/type/base_page.rb b/lib/vers/internal/type/base_page.rb index 6d7e775..e4372af 100644 --- a/lib/vers/internal/type/base_page.rb +++ b/lib/vers/internal/type/base_page.rb @@ -39,7 +39,7 @@ def to_enum = super(:auto_paging_each) # # @param client [Vers::Internal::Transport::BaseClient] # @param req [Hash{Symbol=>Object}] - # @param headers [Hash{String=>String}, Net::HTTPHeader] + # @param headers [Hash{String=>String}] # @param page_data [Object] def initialize(client:, req:, headers:, page_data:) @client = client diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index e7e9688..ea504ac 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -645,7 +645,7 @@ def force_charset!(content_type, text:) # # Assumes each chunk in stream has `Encoding::BINARY`. # - # @param headers [Hash{String=>String}, Net::HTTPHeader] + # @param headers [Hash{String=>String}] # @param stream [Enumerable] # @param suppress_error [Boolean] # diff --git a/rbi/vers/errors.rbi b/rbi/vers/errors.rbi index 56af957..7d778a7 100644 --- a/rbi/vers/errors.rbi +++ b/rbi/vers/errors.rbi @@ -33,6 +33,9 @@ module Vers sig { returns(T.nilable(Integer)) } attr_accessor :status + sig { returns(T.nilable(T::Hash[String, String])) } + attr_accessor :headers + sig { returns(T.nilable(T.anything)) } attr_accessor :body @@ -41,6 +44,7 @@ module Vers params( url: URI::Generic, status: T.nilable(Integer), + headers: T.nilable(T::Hash[String, String]), body: T.nilable(Object), request: NilClass, response: NilClass, @@ -50,6 +54,7 @@ module Vers def self.new( url:, status: nil, + headers: nil, body: nil, request: nil, response: nil, @@ -70,6 +75,7 @@ module Vers params( url: URI::Generic, status: NilClass, + headers: T.nilable(T::Hash[String, String]), body: NilClass, request: NilClass, response: NilClass, @@ -79,6 +85,7 @@ module Vers def self.new( url:, status: nil, + headers: nil, body: nil, request: nil, response: nil, @@ -93,6 +100,7 @@ module Vers params( url: URI::Generic, status: NilClass, + headers: T.nilable(T::Hash[String, String]), body: NilClass, request: NilClass, response: NilClass, @@ -102,6 +110,7 @@ module Vers def self.new( url:, status: nil, + headers: nil, body: nil, request: nil, response: nil, @@ -116,13 +125,22 @@ module Vers params( url: URI::Generic, status: Integer, + headers: T.nilable(T::Hash[String, String]), body: T.nilable(Object), request: NilClass, response: NilClass, message: T.nilable(String) ).returns(T.attached_class) end - def self.for(url:, status:, body:, request:, response:, message: nil) + def self.for( + url:, + status:, + headers:, + body:, + request:, + response:, + message: nil + ) end sig { returns(Integer) } @@ -133,13 +151,22 @@ module Vers params( url: URI::Generic, status: Integer, + headers: T.nilable(T::Hash[String, String]), body: T.nilable(Object), request: NilClass, response: NilClass, message: T.nilable(String) ).returns(T.attached_class) end - def self.new(url:, status:, body:, request:, response:, message: nil) + def self.new( + url:, + status:, + headers:, + body:, + request:, + response:, + message: nil + ) end end diff --git a/rbi/vers/internal/transport/base_client.rbi b/rbi/vers/internal/transport/base_client.rbi index 7aa51f0..b6dac91 100644 --- a/rbi/vers/internal/transport/base_client.rbi +++ b/rbi/vers/internal/transport/base_client.rbi @@ -84,10 +84,9 @@ module Vers # @api private sig do - params( - status: Integer, - headers: T.any(T::Hash[String, String], Net::HTTPHeader) - ).returns(T::Boolean) + params(status: Integer, headers: T::Hash[String, String]).returns( + T::Boolean + ) end def should_retry?(status, headers:) end @@ -97,7 +96,7 @@ module Vers params( request: Vers::Internal::Transport::BaseClient::RequestInput, status: Integer, - response_headers: T.any(T::Hash[String, String], Net::HTTPHeader) + response_headers: T::Hash[String, String] ).returns(Vers::Internal::Transport::BaseClient::RequestInput) end def follow_redirect(request, status:, response_headers:) diff --git a/rbi/vers/internal/type/base_page.rbi b/rbi/vers/internal/type/base_page.rbi index eb29293..50a9c92 100644 --- a/rbi/vers/internal/type/base_page.rbi +++ b/rbi/vers/internal/type/base_page.rbi @@ -30,7 +30,7 @@ module Vers params( client: Vers::Internal::Transport::BaseClient, req: Vers::Internal::Transport::BaseClient::RequestComponents, - headers: T.any(T::Hash[String, String], Net::HTTPHeader), + headers: T::Hash[String, String], page_data: T.anything ).void end diff --git a/rbi/vers/internal/util.rbi b/rbi/vers/internal/util.rbi index 0f77795..48f8b98 100644 --- a/rbi/vers/internal/util.rbi +++ b/rbi/vers/internal/util.rbi @@ -355,7 +355,7 @@ module Vers # Assumes each chunk in stream has `Encoding::BINARY`. sig do params( - headers: T.any(T::Hash[String, String], Net::HTTPHeader), + headers: T::Hash[String, String], stream: T::Enumerable[String], suppress_error: T::Boolean ).returns(T.anything) diff --git a/sig/vers/errors.rbs b/sig/vers/errors.rbs index f414861..dbc6f01 100644 --- a/sig/vers/errors.rbs +++ b/sig/vers/errors.rbs @@ -21,11 +21,14 @@ module Vers attr_accessor status: Integer? + attr_accessor headers: ::Hash[String, String]? + attr_accessor body: top? def initialize: ( url: URI::Generic, ?status: Integer?, + ?headers: ::Hash[String, String]?, ?body: Object?, ?request: nil, ?response: nil, @@ -37,6 +40,7 @@ module Vers def initialize: ( url: URI::Generic, ?status: nil, + ?headers: ::Hash[String, String]?, ?body: nil, ?request: nil, ?response: nil, @@ -48,6 +52,7 @@ module Vers def initialize: ( url: URI::Generic, ?status: nil, + ?headers: ::Hash[String, String]?, ?body: nil, ?request: nil, ?response: nil, @@ -59,6 +64,7 @@ module Vers def self.for: ( url: URI::Generic, status: Integer, + headers: ::Hash[String, String]?, body: Object?, request: nil, response: nil, @@ -68,6 +74,7 @@ module Vers def initialize: ( url: URI::Generic, status: Integer, + headers: ::Hash[String, String]?, body: Object?, request: nil, response: nil, From 3c5912f19ef879816788299817e26cd966e5242c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 20 Sep 2025 02:57:18 +0000 Subject: [PATCH 020/100] chore: do not install brew dependencies in ./scripts/bootstrap by default --- scripts/bootstrap | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/bootstrap b/scripts/bootstrap index cc31aa8..3487864 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -4,10 +4,18 @@ set -e cd -- "$(dirname -- "$0")/.." -if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ]; then +if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then brew bundle check >/dev/null 2>&1 || { - echo "==> Installing Homebrew dependencies…" - brew bundle + echo -n "==> Install Homebrew dependencies? (y/N): " + read -r response + case "$response" in + [yY][eE][sS]|[yY]) + brew bundle + ;; + *) + ;; + esac + echo } fi From bfb35cad0e8dded737437b40e3b94f036fa0e7f8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 26 Sep 2025 02:27:52 +0000 Subject: [PATCH 021/100] perf: faster code formatting --- Rakefile | 18 ++++++++++-------- scripts/fast-format | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) create mode 100755 scripts/fast-format diff --git a/Rakefile b/Rakefile index 7ba722b..4d35293 100644 --- a/Rakefile +++ b/Rakefile @@ -12,6 +12,8 @@ tapioca = "sorbet/tapioca" examples = "examples" ignore_file = ".ignore" +FILES_ENV = "FORMAT_FILE" + CLEAN.push(*%w[.idea/ .ruby-lsp/ .yardoc/ doc/], *FileList["*.gem"], ignore_file) CLOBBER.push(*%w[sorbet/rbi/annotations/ sorbet/rbi/gems/], tapioca) @@ -55,21 +57,21 @@ end desc("Format `*.rb`") multitask(:"format:rb") do # while `syntax_tree` is much faster than `rubocop`, `rubocop` is the only formatter with full syntax support - find = %w[find ./lib ./test ./examples -type f -and -name *.rb -print0] + files = ENV.key?(FILES_ENV) ? %w[sed -E -n -e /\.rb$/p --] << ENV.fetch(FILES_ENV) : %w[find ./lib ./test ./examples -type f -and -name *.rb -print0] fmt = xargs + %w[rubocop --fail-level F --autocorrect --format simple --] - sh("#{find.shelljoin} | #{fmt.shelljoin}") + sh("#{files.shelljoin} | #{fmt.shelljoin}") end desc("Format `*.rbi`") multitask(:"format:rbi") do - find = %w[find ./rbi -type f -and -name *.rbi -print0] + files = ENV.key?(FILES_ENV) ? %w[sed -E -n -e /\.rbi$/p --] << ENV.fetch(FILES_ENV) : %w[find ./rbi -type f -and -name *.rbi -print0] fmt = xargs + %w[stree write --] - sh(ruby_opt, "#{find.shelljoin} | #{fmt.shelljoin}") + sh(ruby_opt, "#{files.shelljoin} | #{fmt.shelljoin}") end desc("Format `*.rbs`") multitask(:"format:rbs") do - find = %w[find ./sig -type f -name *.rbs -print0] + files = ENV.key?(FILES_ENV) ? %w[sed -E -n -e /\.rbs$/p --] << ENV.fetch(FILES_ENV) : %w[find ./sig -type f -name *.rbs -print0] inplace = /darwin|bsd/ =~ RUBY_PLATFORM ? ["-i", ""] : %w[-i] uuid = SecureRandom.uuid @@ -98,13 +100,13 @@ multitask(:"format:rbs") do success = false # transform class aliases to type aliases, which syntax tree has no trouble with - sh("#{find.shelljoin} | #{pre.shelljoin}") + sh("#{files.shelljoin} | #{pre.shelljoin}") # run syntax tree to format `*.rbs` files - sh(ruby_opt, "#{find.shelljoin} | #{fmt.shelljoin}") do + sh(ruby_opt, "#{files.shelljoin} | #{fmt.shelljoin}") do success = _1 end # transform type aliases back to class aliases - sh("#{find.shelljoin} | #{pst.shelljoin}") + sh("#{files.shelljoin} | #{pst.shelljoin}") # always run post-processing to remove comment marker fail unless success diff --git a/scripts/fast-format b/scripts/fast-format new file mode 100755 index 0000000..7f2f820 --- /dev/null +++ b/scripts/fast-format @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -euo pipefail + +echo "Script started with $# arguments" +echo "Arguments: $*" +echo "Script location: $(dirname "$0")" + +cd "$(dirname "$0")/.." +echo "Changed to directory: $(pwd)" + +if [ $# -eq 0 ]; then + echo "Usage: $0 [additional-formatter-args...]" + echo "The file should contain one file path per line" + exit 1 +fi + +FORMAT_FILE="$1" exec -- bundle exec rake format From d36fed0ff3a76236fa4077ab8560173df0c1153f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 27 Sep 2025 02:36:18 +0000 Subject: [PATCH 022/100] chore(internal): codegen related update --- Rakefile | 6 +++--- scripts/fast-format | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Rakefile b/Rakefile index 4d35293..7a11980 100644 --- a/Rakefile +++ b/Rakefile @@ -57,21 +57,21 @@ end desc("Format `*.rb`") multitask(:"format:rb") do # while `syntax_tree` is much faster than `rubocop`, `rubocop` is the only formatter with full syntax support - files = ENV.key?(FILES_ENV) ? %w[sed -E -n -e /\.rb$/p --] << ENV.fetch(FILES_ENV) : %w[find ./lib ./test ./examples -type f -and -name *.rb -print0] + files = ENV.key?(FILES_ENV) ? %w[sed -E -z -n -e /\.rb$/p --] << ENV.fetch(FILES_ENV) : %w[find ./lib ./test ./examples -type f -and -name *.rb -print0] fmt = xargs + %w[rubocop --fail-level F --autocorrect --format simple --] sh("#{files.shelljoin} | #{fmt.shelljoin}") end desc("Format `*.rbi`") multitask(:"format:rbi") do - files = ENV.key?(FILES_ENV) ? %w[sed -E -n -e /\.rbi$/p --] << ENV.fetch(FILES_ENV) : %w[find ./rbi -type f -and -name *.rbi -print0] + files = ENV.key?(FILES_ENV) ? %w[sed -E -z -n -e /\.rbi$/p --] << ENV.fetch(FILES_ENV) : %w[find ./rbi -type f -and -name *.rbi -print0] fmt = xargs + %w[stree write --] sh(ruby_opt, "#{files.shelljoin} | #{fmt.shelljoin}") end desc("Format `*.rbs`") multitask(:"format:rbs") do - files = ENV.key?(FILES_ENV) ? %w[sed -E -n -e /\.rbs$/p --] << ENV.fetch(FILES_ENV) : %w[find ./sig -type f -name *.rbs -print0] + files = ENV.key?(FILES_ENV) ? %w[sed -E -z -n -e /\.rbs$/p --] << ENV.fetch(FILES_ENV) : %w[find ./sig -type f -name *.rbs -print0] inplace = /darwin|bsd/ =~ RUBY_PLATFORM ? ["-i", ""] : %w[-i] uuid = SecureRandom.uuid diff --git a/scripts/fast-format b/scripts/fast-format index 7f2f820..8df0aa2 100755 --- a/scripts/fast-format +++ b/scripts/fast-format @@ -6,8 +6,8 @@ echo "Script started with $# arguments" echo "Arguments: $*" echo "Script location: $(dirname "$0")" -cd "$(dirname "$0")/.." -echo "Changed to directory: $(pwd)" +cd -- "$(dirname "$0")/.." +echo "Changed to directory: $PWD" if [ $# -eq 0 ]; then echo "Usage: $0 [additional-formatter-args...]" @@ -15,4 +15,7 @@ if [ $# -eq 0 ]; then exit 1 fi -FORMAT_FILE="$1" exec -- bundle exec rake format +FILE="$(mktemp)" +tr -- '\n' '\0' < "$1" > "$FILE" + +exec -- bundle exec rake format FORMAT_FILE="$FILE" From d152d0eda36017fc6ec00c29bcbace111ee360b9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 27 Sep 2025 02:37:55 +0000 Subject: [PATCH 023/100] fix: shorten multipart boundary sep to less than RFC specificed max length --- lib/vers/internal/util.rb | 3 ++- test/vers/internal/util_test.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index ea504ac..90374fc 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -566,7 +566,8 @@ class << self # # @return [Array(String, Enumerable)] private def encode_multipart_streaming(body) - boundary = SecureRandom.urlsafe_base64(60) + # RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length + boundary = SecureRandom.urlsafe_base64(46) closing = [] strio = writable_enum do |y| diff --git a/test/vers/internal/util_test.rb b/test/vers/internal/util_test.rb index 4ad7119..4ad1590 100644 --- a/test/vers/internal/util_test.rb +++ b/test/vers/internal/util_test.rb @@ -213,6 +213,18 @@ def env_table end end + def test_encoding_length + headers, = Vers::Internal::Util.encode_content( + {"content-type" => "multipart/form-data"}, + Pathname(__FILE__) + ) + assert_pattern do + headers.fetch("content-type") => /boundary=(.+)$/ + end + field, = Regexp.last_match.captures + assert(field.length < 70 - 6) + end + def test_file_encode file = Pathname(__FILE__) headers = {"content-type" => "multipart/form-data"} From c9e7de1a5cfee1072d39a29090258f022cd141e0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 27 Sep 2025 02:54:34 +0000 Subject: [PATCH 024/100] chore(internal): codegen related update --- Rakefile | 26 ++++++++++++++++++-------- scripts/fast-format | 5 +---- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Rakefile b/Rakefile index 7a11980..52e1fe2 100644 --- a/Rakefile +++ b/Rakefile @@ -40,6 +40,14 @@ end xargs = %w[xargs --no-run-if-empty --null --max-procs=0 --max-args=300 --] ruby_opt = {"RUBYOPT" => [ENV["RUBYOPT"], "--encoding=UTF-8"].compact.join(" ")} +filtered = ->(ext, dirs) do + if ENV.key?(FILES_ENV) + %w[sed -E -n -e] << "/\\.#{ext}$/p" << "--" << ENV.fetch(FILES_ENV) + else + (%w[find] + dirs + %w[-type f -and -name]) << "*.#{ext}" << "-print0" + end +end + desc("Lint `*.rb(i)`") multitask(:"lint:rubocop") do find = %w[find ./lib ./test ./rbi ./examples -type f -and ( -name *.rb -or -name *.rbi ) -print0] @@ -54,24 +62,26 @@ multitask(:"lint:rubocop") do sh("#{find.shelljoin} | #{lint.shelljoin}") end +norm_lines = %w[tr -- \n \0].shelljoin + desc("Format `*.rb`") multitask(:"format:rb") do # while `syntax_tree` is much faster than `rubocop`, `rubocop` is the only formatter with full syntax support - files = ENV.key?(FILES_ENV) ? %w[sed -E -z -n -e /\.rb$/p --] << ENV.fetch(FILES_ENV) : %w[find ./lib ./test ./examples -type f -and -name *.rb -print0] + files = filtered["rb", %w[./lib ./test ./examples]] fmt = xargs + %w[rubocop --fail-level F --autocorrect --format simple --] - sh("#{files.shelljoin} | #{fmt.shelljoin}") + sh("#{files.shelljoin} | #{norm_lines} | #{fmt.shelljoin}") end desc("Format `*.rbi`") multitask(:"format:rbi") do - files = ENV.key?(FILES_ENV) ? %w[sed -E -z -n -e /\.rbi$/p --] << ENV.fetch(FILES_ENV) : %w[find ./rbi -type f -and -name *.rbi -print0] + files = filtered["rbi", %w[./rbi]] fmt = xargs + %w[stree write --] - sh(ruby_opt, "#{files.shelljoin} | #{fmt.shelljoin}") + sh(ruby_opt, "#{files.shelljoin} | #{norm_lines} | #{fmt.shelljoin}") end desc("Format `*.rbs`") multitask(:"format:rbs") do - files = ENV.key?(FILES_ENV) ? %w[sed -E -z -n -e /\.rbs$/p --] << ENV.fetch(FILES_ENV) : %w[find ./sig -type f -name *.rbs -print0] + files = filtered["rbs", %w[./sig]] inplace = /darwin|bsd/ =~ RUBY_PLATFORM ? ["-i", ""] : %w[-i] uuid = SecureRandom.uuid @@ -100,13 +110,13 @@ multitask(:"format:rbs") do success = false # transform class aliases to type aliases, which syntax tree has no trouble with - sh("#{files.shelljoin} | #{pre.shelljoin}") + sh("#{files.shelljoin} | #{norm_lines} | #{pre.shelljoin}") # run syntax tree to format `*.rbs` files - sh(ruby_opt, "#{files.shelljoin} | #{fmt.shelljoin}") do + sh(ruby_opt, "#{files.shelljoin} | #{norm_lines} | #{fmt.shelljoin}") do success = _1 end # transform type aliases back to class aliases - sh("#{files.shelljoin} | #{pst.shelljoin}") + sh("#{files.shelljoin} | #{norm_lines} | #{pst.shelljoin}") # always run post-processing to remove comment marker fail unless success diff --git a/scripts/fast-format b/scripts/fast-format index 8df0aa2..6d5973f 100755 --- a/scripts/fast-format +++ b/scripts/fast-format @@ -15,7 +15,4 @@ if [ $# -eq 0 ]; then exit 1 fi -FILE="$(mktemp)" -tr -- '\n' '\0' < "$1" > "$FILE" - -exec -- bundle exec rake format FORMAT_FILE="$FILE" +exec -- bundle exec rake format FORMAT_FILE="$1" From 20f6509685d769e8b144074f853f75da9437547d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 30 Sep 2025 02:28:38 +0000 Subject: [PATCH 025/100] fix: always send `filename=...` for multipart requests where a file is expected --- lib/vers/file_part.rb | 17 +++++++++------- lib/vers/internal/type/file_input.rb | 11 +++++++---- rbi/vers/file_part.rbi | 2 +- sig/vers/file_part.rbs | 2 +- test/vers/internal/util_test.rb | 29 +++++++++++++++++++--------- 5 files changed, 39 insertions(+), 22 deletions(-) diff --git a/lib/vers/file_part.rb b/lib/vers/file_part.rb index 1f3eae6..ca43750 100644 --- a/lib/vers/file_part.rb +++ b/lib/vers/file_part.rb @@ -38,18 +38,21 @@ def to_json(*a) = read.to_json(*a) def to_yaml(*a) = read.to_yaml(*a) # @param content [Pathname, StringIO, IO, String] - # @param filename [String, nil] + # @param filename [Pathname, String, nil] # @param content_type [String, nil] def initialize(content, filename: nil, content_type: nil) - @content = content + @content_type = content_type @filename = - case content - in Pathname - filename.nil? ? content.basename.to_path : ::File.basename(filename) + case [filename, (@content = content)] + in [String | Pathname, _] + ::File.basename(filename) + in [nil, Pathname] + content.basename.to_path + in [nil, IO] + content.to_path else - filename.nil? ? nil : ::File.basename(filename) + filename end - @content_type = content_type end end end diff --git a/lib/vers/internal/type/file_input.rb b/lib/vers/internal/type/file_input.rb index b6413d1..62d8bd9 100644 --- a/lib/vers/internal/type/file_input.rb +++ b/lib/vers/internal/type/file_input.rb @@ -81,17 +81,20 @@ def coerce(value, state:) # # @return [Pathname, StringIO, IO, String, Object] def dump(value, state:) - # rubocop:disable Lint/DuplicateBranch case value + in StringIO | String + # https://datatracker.ietf.org/doc/html/rfc7578#section-4.2 + # while not required, a filename is recommended, and in practice many servers do expect this + Vers::FilePart.new(value, filename: "upload") in IO state[:can_retry] = false + value.to_path.nil? ? Vers::FilePart.new(value, filename: "upload") : value in Vers::FilePart if value.content.is_a?(IO) state[:can_retry] = false + value else + value end - # rubocop:enable Lint/DuplicateBranch - - value end # @api private diff --git a/rbi/vers/file_part.rbi b/rbi/vers/file_part.rbi index 6492bad..eedcb39 100644 --- a/rbi/vers/file_part.rbi +++ b/rbi/vers/file_part.rbi @@ -27,7 +27,7 @@ module Vers sig do params( content: T.any(Pathname, StringIO, IO, String), - filename: T.nilable(String), + filename: T.nilable(T.any(Pathname, String)), content_type: T.nilable(String) ).returns(T.attached_class) end diff --git a/sig/vers/file_part.rbs b/sig/vers/file_part.rbs index dc1f656..8ffd8cd 100644 --- a/sig/vers/file_part.rbs +++ b/sig/vers/file_part.rbs @@ -14,7 +14,7 @@ module Vers def initialize: ( Pathname | StringIO | IO | String content, - ?filename: String?, + ?filename: (Pathname | String)?, ?content_type: String? ) -> void end diff --git a/test/vers/internal/util_test.rb b/test/vers/internal/util_test.rb index 4ad1590..aed29d6 100644 --- a/test/vers/internal/util_test.rb +++ b/test/vers/internal/util_test.rb @@ -227,20 +227,24 @@ def test_encoding_length def test_file_encode file = Pathname(__FILE__) + fileinput = Vers::Internal::Type::Converter.dump(Vers::Internal::Type::FileInput, "abc") headers = {"content-type" => "multipart/form-data"} cases = { - "abc" => "abc", - StringIO.new("abc") => "abc", - Vers::FilePart.new("abc") => "abc", - Vers::FilePart.new(StringIO.new("abc")) => "abc", - file => /^class Vers/, - Vers::FilePart.new(file) => /^class Vers/ + "abc" => ["", "abc"], + StringIO.new("abc") => ["", "abc"], + fileinput => %w[upload abc], + Vers::FilePart.new(StringIO.new("abc")) => ["", "abc"], + file => [file.basename.to_path, /^class Vers/], + Vers::FilePart.new(file, filename: "d o g") => ["d%20o%20g", /^class Vers/] } - cases.each do |body, val| + cases.each do |body, testcase| + filename, val = testcase encoded = Vers::Internal::Util.encode_content(headers, body) cgi = FakeCGI.new(*encoded) + io = cgi[""] assert_pattern do - cgi[""].read => ^val + io.original_filename => ^filename + io.read => ^val end end end @@ -261,7 +265,14 @@ def test_hash_encode cgi = FakeCGI.new(*encoded) testcase.each do |key, val| assert_pattern do - cgi[key] => ^val + parsed = + case (p = cgi[key]) + in StringIO + p.read + else + p + end + parsed => ^val end end end From a5254d28f8becc2607764f756651ebc4b3481eda Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Oct 2025 02:18:20 +0000 Subject: [PATCH 026/100] fix: coroutine leaks from connection pool --- .../transport/pooled_net_requester.rb | 17 ++++++------- test/vers/internal/util_test.rb | 25 +++++++++++++++++++ 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/lib/vers/internal/transport/pooled_net_requester.rb b/lib/vers/internal/transport/pooled_net_requester.rb index 32b7a56..9bb2481 100644 --- a/lib/vers/internal/transport/pooled_net_requester.rb +++ b/lib/vers/internal/transport/pooled_net_requester.rb @@ -134,9 +134,9 @@ def execute(request) # rubocop:disable Metrics/BlockLength enum = Enumerator.new do |y| - with_pool(url, deadline: deadline) do |conn| - next if finished + next if finished + with_pool(url, deadline: deadline) do |conn| req, closing = self.class.build_request(request) do self.class.calibrate_socket_timeout(conn, deadline) end @@ -149,7 +149,7 @@ def execute(request) self.class.calibrate_socket_timeout(conn, deadline) conn.request(req) do |rsp| - y << [conn, req, rsp] + y << [req, rsp] break if finished rsp.read_body do |bytes| @@ -160,6 +160,8 @@ def execute(request) end eof = true end + ensure + conn.finish if !eof && conn&.started? end rescue Timeout::Error raise Vers::Errors::APITimeoutError.new(url: url, request: req) @@ -168,16 +170,11 @@ def execute(request) end # rubocop:enable Metrics/BlockLength - conn, _, response = enum.next + _, response = enum.next body = Vers::Internal::Util.fused_enum(enum, external: true) do finished = true - tap do - enum.next - rescue StopIteration - nil - end + loop { enum.next } ensure - conn.finish if !eof && conn&.started? closing&.call end [Integer(response.code), response, body] diff --git a/test/vers/internal/util_test.rb b/test/vers/internal/util_test.rb index aed29d6..46b9d16 100644 --- a/test/vers/internal/util_test.rb +++ b/test/vers/internal/util_test.rb @@ -310,6 +310,31 @@ def test_copy_write end class Vers::Test::UtilFusedEnumTest < Minitest::Test + def test_rewind_closing + touched = false + once = 0 + steps = 0 + enum = Enumerator.new do |y| + next if touched + + 10.times do + steps = _1 + y << _1 + end + ensure + once = once.succ + end + + fused = Vers::Internal::Util.fused_enum(enum, external: true) do + touched = true + loop { enum.next } + end + Vers::Internal::Util.close_fused!(fused) + + assert_equal(1, once) + assert_equal(0, steps) + end + def test_closing arr = [1, 2, 3] once = 0 From 046bb7824445c0fab978133f42cfe3d3dd878a9f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Oct 2025 02:39:55 +0000 Subject: [PATCH 027/100] chore: ignore linter error for tests having large collections --- .rubocop.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index 0b04fe5..11741c3 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -121,6 +121,10 @@ Metrics/BlockLength: Metrics/ClassLength: Enabled: false +Metrics/CollectionLiteralLength: + Exclude: + - "test/**/*" + Metrics/CyclomaticComplexity: Enabled: false From b0ef527585555d084ed9e9f24981ed62e2ea9008 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Oct 2025 02:42:18 +0000 Subject: [PATCH 028/100] chore(internal): codegen related update --- lib/vers/models/api/cluster_delete_response.rb | 1 + lib/vers/models/api/vm_commit_response.rb | 1 + lib/vers/models/api/vm_delete_response.rb | 1 + lib/vers/resources/api/cluster.rb | 2 +- lib/vers/resources/api/vm.rb | 4 ++-- rbi/vers/resources/api/cluster.rbi | 2 +- rbi/vers/resources/api/vm.rbi | 4 ++-- sig/vers/resources/api/cluster.rbs | 2 +- sig/vers/resources/api/vm.rbs | 4 ++-- test/vers/resources/api/cluster_test.rb | 6 +++--- test/vers/resources/api/vm_test.rb | 12 ++++++------ 11 files changed, 21 insertions(+), 18 deletions(-) diff --git a/lib/vers/models/api/cluster_delete_response.rb b/lib/vers/models/api/cluster_delete_response.rb index ff59603..283f14a 100644 --- a/lib/vers/models/api/cluster_delete_response.rb +++ b/lib/vers/models/api/cluster_delete_response.rb @@ -3,6 +3,7 @@ module Vers module Models module API + # @see Vers::Resources::API::Cluster#delete class ClusterDeleteResponse < Vers::Internal::Type::BaseModel # @!attribute data # A struct containing information about an attempted cluster deletion request. diff --git a/lib/vers/models/api/vm_commit_response.rb b/lib/vers/models/api/vm_commit_response.rb index eb6644c..b85af14 100644 --- a/lib/vers/models/api/vm_commit_response.rb +++ b/lib/vers/models/api/vm_commit_response.rb @@ -3,6 +3,7 @@ module Vers module Models module API + # @see Vers::Resources::API::Vm#commit class VmCommitResponse < Vers::Internal::Type::BaseModel # @!attribute data # diff --git a/lib/vers/models/api/vm_delete_response.rb b/lib/vers/models/api/vm_delete_response.rb index 4a7f76f..69154e8 100644 --- a/lib/vers/models/api/vm_delete_response.rb +++ b/lib/vers/models/api/vm_delete_response.rb @@ -3,6 +3,7 @@ module Vers module Models module API + # @see Vers::Resources::API::Vm#delete class VmDeleteResponse < Vers::Internal::Type::BaseModel # @!attribute data # A struct containing information about an attempted VM deletion request. Reports diff --git a/lib/vers/resources/api/cluster.rb b/lib/vers/resources/api/cluster.rb index 5ef047c..7cd0e42 100644 --- a/lib/vers/resources/api/cluster.rb +++ b/lib/vers/resources/api/cluster.rb @@ -107,7 +107,7 @@ def delete(cluster_id_or_alias, params = {}) @client.request( method: :delete, path: ["api/cluster/%1$s", cluster_id_or_alias], - model: Vers::Models::API::ClusterDeleteResponse, + model: Vers::API::ClusterDeleteResponse, options: params[:request_options] ) end diff --git a/lib/vers/resources/api/vm.rb b/lib/vers/resources/api/vm.rb index 6c201b5..548b1b7 100644 --- a/lib/vers/resources/api/vm.rb +++ b/lib/vers/resources/api/vm.rb @@ -87,7 +87,7 @@ def delete(vm_id_or_alias, params) method: :delete, path: ["api/vm/%1$s", vm_id_or_alias], query: parsed, - model: Vers::Models::API::VmDeleteResponse, + model: Vers::API::VmDeleteResponse, options: options ) end @@ -135,7 +135,7 @@ def commit(vm_id_or_alias, params = {}) method: :post, path: ["api/vm/%1$s/commit", vm_id_or_alias], body: parsed, - model: Vers::Models::API::VmCommitResponse, + model: Vers::API::VmCommitResponse, options: options ) end diff --git a/rbi/vers/resources/api/cluster.rbi b/rbi/vers/resources/api/cluster.rbi index 442f236..05b5390 100644 --- a/rbi/vers/resources/api/cluster.rbi +++ b/rbi/vers/resources/api/cluster.rbi @@ -58,7 +58,7 @@ module Vers params( cluster_id_or_alias: String, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::ClusterDeleteResponse) + ).returns(Vers::API::ClusterDeleteResponse) end def delete( # Unique cluster identifier diff --git a/rbi/vers/resources/api/vm.rbi b/rbi/vers/resources/api/vm.rbi index e249af3..5e13520 100644 --- a/rbi/vers/resources/api/vm.rbi +++ b/rbi/vers/resources/api/vm.rbi @@ -51,7 +51,7 @@ module Vers vm_id_or_alias: String, recursive: T::Boolean, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::VmDeleteResponse) + ).returns(Vers::API::VmDeleteResponse) end def delete( # Unique VM identifier @@ -84,7 +84,7 @@ module Vers vm_id_or_alias: String, tags: T.nilable(T::Array[String]), request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::VmCommitResponse) + ).returns(Vers::API::VmCommitResponse) end def commit( # Unique VM identifier diff --git a/sig/vers/resources/api/cluster.rbs b/sig/vers/resources/api/cluster.rbs index fe1c03e..f059653 100644 --- a/sig/vers/resources/api/cluster.rbs +++ b/sig/vers/resources/api/cluster.rbs @@ -25,7 +25,7 @@ module Vers def delete: ( String cluster_id_or_alias, ?request_options: Vers::request_opts - ) -> Vers::Models::API::ClusterDeleteResponse + ) -> Vers::API::ClusterDeleteResponse def get_ssh_key: ( String cluster_id_or_alias, diff --git a/sig/vers/resources/api/vm.rbs b/sig/vers/resources/api/vm.rbs index 7414ebc..ec3a5e2 100644 --- a/sig/vers/resources/api/vm.rbs +++ b/sig/vers/resources/api/vm.rbs @@ -22,7 +22,7 @@ module Vers String vm_id_or_alias, recursive: bool, ?request_options: Vers::request_opts - ) -> Vers::Models::API::VmDeleteResponse + ) -> Vers::API::VmDeleteResponse def branch: ( String vm_id_or_alias, @@ -34,7 +34,7 @@ module Vers String vm_id_or_alias, ?tags: ::Array[String]?, ?request_options: Vers::request_opts - ) -> Vers::Models::API::VmCommitResponse + ) -> Vers::API::VmCommitResponse def get_ssh_key: ( String vm_id_or_alias, diff --git a/test/vers/resources/api/cluster_test.rb b/test/vers/resources/api/cluster_test.rb index 77f2f5d..7591219 100644 --- a/test/vers/resources/api/cluster_test.rb +++ b/test/vers/resources/api/cluster_test.rb @@ -89,14 +89,14 @@ def test_delete response = @vers.api.cluster.delete("cluster_id_or_alias") assert_pattern do - response => Vers::Models::API::ClusterDeleteResponse + response => Vers::API::ClusterDeleteResponse end assert_pattern do response => { - data: Vers::Models::API::ClusterDeleteResponse::Data, + data: Vers::API::ClusterDeleteResponse::Data, duration_ns: Integer, - operation_code: Vers::Models::API::ClusterDeleteResponse::OperationCode, + operation_code: Vers::API::ClusterDeleteResponse::OperationCode, operation_id: String, time_start: Integer } diff --git a/test/vers/resources/api/vm_test.rb b/test/vers/resources/api/vm_test.rb index 22ef5cc..0857111 100644 --- a/test/vers/resources/api/vm_test.rb +++ b/test/vers/resources/api/vm_test.rb @@ -69,14 +69,14 @@ def test_delete_required_params response = @vers.api.vm.delete("vm_id_or_alias", recursive: true) assert_pattern do - response => Vers::Models::API::VmDeleteResponse + response => Vers::API::VmDeleteResponse end assert_pattern do response => { - data: Vers::Models::API::VmDeleteResponse::Data, + data: Vers::API::VmDeleteResponse::Data, duration_ns: Integer, - operation_code: Vers::Models::API::VmDeleteResponse::OperationCode, + operation_code: Vers::API::VmDeleteResponse::OperationCode, operation_id: String, time_start: Integer } @@ -109,14 +109,14 @@ def test_commit response = @vers.api.vm.commit("vm_id_or_alias") assert_pattern do - response => Vers::Models::API::VmCommitResponse + response => Vers::API::VmCommitResponse end assert_pattern do response => { - data: Vers::Models::API::VmCommitResponse::Data, + data: Vers::API::VmCommitResponse::Data, duration_ns: Integer, - operation_code: Vers::Models::API::VmCommitResponse::OperationCode, + operation_code: Vers::API::VmCommitResponse::OperationCode, operation_id: String, time_start: Integer } From 53ea770bd552dcc57b4c0f686b042660fe18226c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 02:05:23 +0000 Subject: [PATCH 029/100] fix: should not reuse buffers for `IO.copy_stream` interop --- lib/vers/internal/util.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index 90374fc..487464d 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -473,10 +473,9 @@ class << self # @return [Enumerable] def writable_enum(&blk) Enumerator.new do |y| - buf = String.new y.define_singleton_method(:write) do - self << buf.replace(_1) - buf.bytesize + self << _1.dup + _1.bytesize end blk.call(y) From 9fd3d831212335f596571e30211697b67915622e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 02:08:58 +0000 Subject: [PATCH 030/100] fix: absolutely qualified uris should always override the default --- lib/vers/internal/util.rb | 5 +++-- test/vers/internal/util_test.rb | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index 487464d..2a34206 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -346,8 +346,9 @@ def join_parsed_uri(lhs, rhs) base_path, base_query = lhs.fetch_values(:path, :query) slashed = base_path.end_with?("/") ? base_path : "#{base_path}/" - parsed_path, parsed_query = parse_uri(rhs.fetch(:path)).fetch_values(:path, :query) - override = URI::Generic.build(**rhs.slice(:scheme, :host, :port), path: parsed_path) + merged = {**parse_uri(rhs.fetch(:path)), **rhs.except(:path, :query)} + parsed_path, parsed_query = merged.fetch_values(:path, :query) + override = URI::Generic.build(**merged.slice(:scheme, :host, :port), path: parsed_path) joined = URI.join(URI::Generic.build(lhs.except(:path, :query)), slashed, override) query = deep_merge( diff --git a/test/vers/internal/util_test.rb b/test/vers/internal/util_test.rb index 46b9d16..27d37dc 100644 --- a/test/vers/internal/util_test.rb +++ b/test/vers/internal/util_test.rb @@ -124,6 +124,14 @@ def test_joining path: "/c", query: {"d" => ["e"]} } + ], + [ + "h://a.b/c?d=e", + "h://nope", + { + path: "h://a.b/c", + query: {"d" => ["e"]} + } ] ] From 7ce44a9bff9d50bd71431cb3bd302c0d762ad9da Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 02:25:03 +0000 Subject: [PATCH 031/100] feat: handle thread interrupts in the core HTTP client --- .../transport/pooled_net_requester.rb | 54 ++++++++++--------- test/vers/internal/util_test.rb | 23 ++++++++ 2 files changed, 53 insertions(+), 24 deletions(-) diff --git a/lib/vers/internal/transport/pooled_net_requester.rb b/lib/vers/internal/transport/pooled_net_requester.rb index 9bb2481..e52ad7b 100644 --- a/lib/vers/internal/transport/pooled_net_requester.rb +++ b/lib/vers/internal/transport/pooled_net_requester.rb @@ -128,40 +128,48 @@ def execute(request) url, deadline = request.fetch_values(:url, :deadline) req = nil - eof = false finished = false - closing = nil # rubocop:disable Metrics/BlockLength enum = Enumerator.new do |y| next if finished with_pool(url, deadline: deadline) do |conn| - req, closing = self.class.build_request(request) do - self.class.calibrate_socket_timeout(conn, deadline) - end - - self.class.calibrate_socket_timeout(conn, deadline) - unless conn.started? - conn.keep_alive_timeout = self.class::KEEP_ALIVE_TIMEOUT - conn.start - end + eof = false + closing = nil + ::Thread.handle_interrupt(Object => :never) do + ::Thread.handle_interrupt(Object => :immediate) do + req, closing = self.class.build_request(request) do + self.class.calibrate_socket_timeout(conn, deadline) + end - self.class.calibrate_socket_timeout(conn, deadline) - conn.request(req) do |rsp| - y << [req, rsp] - break if finished - - rsp.read_body do |bytes| - y << bytes.force_encoding(Encoding::BINARY) - break if finished + self.class.calibrate_socket_timeout(conn, deadline) + unless conn.started? + conn.keep_alive_timeout = self.class::KEEP_ALIVE_TIMEOUT + conn.start + end self.class.calibrate_socket_timeout(conn, deadline) + conn.request(req) do |rsp| + y << [req, rsp] + break if finished + + rsp.read_body do |bytes| + y << bytes.force_encoding(Encoding::BINARY) + break if finished + + self.class.calibrate_socket_timeout(conn, deadline) + end + eof = true + end + end + ensure + begin + conn.finish if !eof && conn&.started? + ensure + closing&.call end - eof = true end - ensure - conn.finish if !eof && conn&.started? end rescue Timeout::Error raise Vers::Errors::APITimeoutError.new(url: url, request: req) @@ -174,8 +182,6 @@ def execute(request) body = Vers::Internal::Util.fused_enum(enum, external: true) do finished = true loop { enum.next } - ensure - closing&.call end [Integer(response.code), response, body] end diff --git a/test/vers/internal/util_test.rb b/test/vers/internal/util_test.rb index 27d37dc..2dbd6ad 100644 --- a/test/vers/internal/util_test.rb +++ b/test/vers/internal/util_test.rb @@ -343,6 +343,29 @@ def test_rewind_closing assert_equal(0, steps) end + def test_thread_interrupts + once = 0 + que = Queue.new + enum = Enumerator.new do |y| + 10.times { y << _1 } + ensure + once = once.succ + end + + fused_1 = Vers::Internal::Util.fused_enum(enum, external: true) { loop { enum.next } } + fused_2 = Vers::Internal::Util.chain_fused(fused_1) { fused_1.each(&_1) } + fused_3 = Vers::Internal::Util.chain_fused(fused_2) { fused_2.each(&_1) } + + th = ::Thread.new do + que << "🐶" + fused_3.each { sleep(10) } + end + + assert_equal("🐶", que.pop) + th.kill.join + assert_equal(1, once) + end + def test_closing arr = [1, 2, 3] once = 0 From 0a874537387f5e3bef936296b433da329c4ab0a8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 21:33:48 +0000 Subject: [PATCH 032/100] feat(api): api update --- .stats.yml | 8 +- README.md | 45 +- lib/vers.rb | 75 +--- lib/vers/client.rb | 6 +- lib/vers/internal/type/base_model.rb | 9 +- lib/vers/internal/type/union.rb | 11 - lib/vers/models.rb | 2 +- lib/vers/models/api/cluster_create_params.rb | 22 - lib/vers/models/api/cluster_create_request.rb | 166 ------- .../models/api/cluster_create_response.rb | 124 ------ .../models/api/cluster_delete_response.rb | 113 ----- lib/vers/models/api/cluster_dto.rb | 58 --- .../api/cluster_get_ssh_key_response.rb | 72 --- lib/vers/models/api/cluster_list_response.rb | 123 ------ lib/vers/models/api/cluster_patch_request.rb | 17 - .../models/api/cluster_retrieve_response.rb | 124 ------ lib/vers/models/api/cluster_update_params.rb | 16 - .../models/api/cluster_update_response.rb | 124 ------ lib/vers/models/api/health_check_params.rb | 16 - lib/vers/models/api/health_check_response.rb | 9 - lib/vers/models/api/rootf_delete_params.rb | 16 - lib/vers/models/api/rootf_delete_response.rb | 83 ---- lib/vers/models/api/rootf_list_params.rb | 16 - lib/vers/models/api/rootf_list_response.rb | 83 ---- lib/vers/models/api/rootf_upload_params.rb | 24 - lib/vers/models/api/rootf_upload_response.rb | 83 ---- lib/vers/models/api/rootfs_delete_response.rb | 17 - lib/vers/models/api/rootfs_list_response.rb | 17 - lib/vers/models/api/rootfs_upload_response.rb | 17 - lib/vers/models/api/telemetry_dto.rb | 102 ----- .../models/api/telemetry_get_info_params.rb | 16 - lib/vers/models/api/vm_branch_request.rb | 17 - lib/vers/models/api/vm_branch_response.rb | 221 --------- lib/vers/models/api/vm_commit_request.rb | 17 - lib/vers/models/api/vm_commit_response.rb | 95 ---- lib/vers/models/api/vm_delete_params.rb | 24 - lib/vers/models/api/vm_delete_response.rb | 117 ----- lib/vers/models/api/vm_dto.rb | 155 ------- lib/vers/models/api/vm_get_ssh_key_params.rb | 16 - .../models/api/vm_get_ssh_key_response.rb | 72 --- lib/vers/models/api/vm_list_params.rb | 16 - lib/vers/models/api/vm_list_response.rb | 220 --------- lib/vers/models/api/vm_patch_request.rb | 34 -- lib/vers/models/api/vm_retrieve_params.rb | 16 - lib/vers/models/api/vm_retrieve_response.rb | 221 --------- lib/vers/models/api/vm_update_params.rb | 16 - lib/vers/models/api/vm_update_response.rb | 221 --------- .../models/orchestrator/error_response.rb | 26 ++ .../models/orchestrator/new_root_request.rb | 64 +++ .../models/orchestrator/new_vm_response.rb | 19 + .../node_list_vms_params.rb} | 6 +- .../{api => orchestrator}/vm_branch_params.rb | 6 +- .../models/orchestrator/vm_branch_response.rb | 20 + .../{api => orchestrator}/vm_commit_params.rb | 6 +- .../models/orchestrator/vm_commit_response.rb | 29 ++ .../vm_create_root_params.rb} | 6 +- .../vm_delete_params.rb} | 6 +- .../models/orchestrator/vm_delete_response.rb | 20 + .../orchestrator/vm_from_commit_request.rb | 19 + .../orchestrator/vm_list_all_response.rb | 42 ++ .../vm_restore_from_commit_params.rb | 16 + .../vm_update_state_params.rb} | 6 +- .../orchestrator/vm_update_state_request.rb | 33 ++ lib/vers/resources/api.rb | 34 -- lib/vers/resources/api/cluster.rb | 144 ------ lib/vers/resources/api/rootfs.rb | 79 ---- lib/vers/resources/api/telemetry.rb | 34 -- lib/vers/resources/api/vm.rb | 172 ------- lib/vers/resources/orchestrator.rb | 22 + .../{api/health.rb => orchestrator/node.rb} | 19 +- lib/vers/resources/orchestrator/vm.rb | 131 ++++++ rbi/vers/client.rbi | 4 +- rbi/vers/models.rbi | 2 +- rbi/vers/models/api/cluster_create_params.rbi | 55 --- .../models/api/cluster_create_request.rbi | 325 -------------- .../models/api/cluster_create_response.rbi | 258 ----------- .../models/api/cluster_delete_response.rbi | 236 ---------- rbi/vers/models/api/cluster_dto.rbi | 77 ---- .../api/cluster_get_ssh_key_response.rbi | 176 -------- rbi/vers/models/api/cluster_list_response.rbi | 252 ----------- rbi/vers/models/api/cluster_patch_request.rbi | 25 -- .../models/api/cluster_retrieve_response.rbi | 258 ----------- rbi/vers/models/api/cluster_update_params.rbi | 29 -- .../models/api/cluster_update_response.rbi | 258 ----------- rbi/vers/models/api/health_check_params.rbi | 29 -- rbi/vers/models/api/health_check_response.rbi | 9 - rbi/vers/models/api/rootf_delete_params.rbi | 29 -- rbi/vers/models/api/rootf_delete_response.rbi | 204 --------- rbi/vers/models/api/rootf_list_params.rbi | 29 -- rbi/vers/models/api/rootf_list_response.rbi | 198 --------- rbi/vers/models/api/rootf_upload_params.rbi | 45 -- rbi/vers/models/api/rootf_upload_response.rbi | 204 --------- .../models/api/rootfs_delete_response.rbi | 25 -- rbi/vers/models/api/rootfs_list_response.rbi | 25 -- .../models/api/rootfs_upload_response.rbi | 25 -- rbi/vers/models/api/telemetry_dto.rbi | 121 ----- .../models/api/telemetry_get_info_params.rbi | 29 -- rbi/vers/models/api/vm_branch_request.rbi | 25 -- rbi/vers/models/api/vm_branch_response.rbi | 408 ----------------- rbi/vers/models/api/vm_commit_request.rbi | 27 -- rbi/vers/models/api/vm_commit_response.rbi | 207 --------- rbi/vers/models/api/vm_delete_params.rbi | 42 -- rbi/vers/models/api/vm_delete_response.rbi | 236 ---------- rbi/vers/models/api/vm_dto.rbi | 200 --------- rbi/vers/models/api/vm_get_ssh_key_params.rbi | 29 -- .../models/api/vm_get_ssh_key_response.rbi | 176 -------- rbi/vers/models/api/vm_list_params.rbi | 29 -- rbi/vers/models/api/vm_list_response.rbi | 401 ----------------- rbi/vers/models/api/vm_patch_request.rbi | 61 --- rbi/vers/models/api/vm_retrieve_params.rbi | 29 -- rbi/vers/models/api/vm_retrieve_response.rbi | 418 ------------------ rbi/vers/models/api/vm_update_params.rbi | 29 -- rbi/vers/models/api/vm_update_response.rbi | 408 ----------------- .../models/orchestrator/error_response.rbi | 43 ++ .../models/orchestrator/new_root_request.rbi | 112 +++++ .../models/orchestrator/new_vm_response.rbi | 29 ++ .../node_list_vms_params.rbi} | 9 +- .../vm_branch_params.rbi | 6 +- .../orchestrator/vm_branch_response.rbi | 30 ++ .../vm_commit_params.rbi | 6 +- .../orchestrator/vm_commit_response.rbi | 42 ++ .../vm_create_root_params.rbi} | 9 +- .../vm_delete_params.rbi} | 6 +- .../orchestrator/vm_delete_response.rbi | 26 ++ .../orchestrator/vm_from_commit_request.rbi | 29 ++ .../orchestrator/vm_list_all_response.rbi | 79 ++++ .../vm_restore_from_commit_params.rbi | 32 ++ .../vm_update_state_params.rbi} | 9 +- .../orchestrator/vm_update_state_request.rbi | 75 ++++ rbi/vers/resources/api.rbi | 27 -- rbi/vers/resources/api/cluster.rbi | 91 ---- rbi/vers/resources/api/health.rbi | 21 - rbi/vers/resources/api/rootfs.rbi | 55 --- rbi/vers/resources/api/telemetry.rbi | 23 - rbi/vers/resources/api/vm.rbi | 118 ----- rbi/vers/resources/orchestrator.rbi | 18 + rbi/vers/resources/orchestrator/node.rbi | 27 ++ rbi/vers/resources/orchestrator/vm.rbi | 91 ++++ sig/vers/client.rbs | 2 +- sig/vers/models.rbs | 2 +- sig/vers/models/api/cluster_create_params.rbs | 30 -- .../models/api/cluster_create_request.rbs | 163 ------- .../models/api/cluster_create_response.rbs | 125 ------ .../models/api/cluster_delete_response.rbs | 110 ----- sig/vers/models/api/cluster_dto.rbs | 47 -- .../api/cluster_get_ssh_key_response.rbs | 83 ---- sig/vers/models/api/cluster_list_params.rbs | 16 - sig/vers/models/api/cluster_list_response.rbs | 125 ------ sig/vers/models/api/cluster_patch_request.rbs | 15 - .../models/api/cluster_retrieve_response.rbs | 125 ------ .../models/api/cluster_update_response.rbs | 125 ------ sig/vers/models/api/health_check_params.rbs | 16 - sig/vers/models/api/health_check_response.rbs | 7 - sig/vers/models/api/rootf_delete_params.rbs | 16 - sig/vers/models/api/rootf_delete_response.rbs | 93 ---- sig/vers/models/api/rootf_list_params.rbs | 16 - sig/vers/models/api/rootf_list_response.rbs | 93 ---- sig/vers/models/api/rootf_upload_params.rbs | 27 -- sig/vers/models/api/rootf_upload_response.rbs | 93 ---- .../models/api/rootfs_delete_response.rbs | 15 - sig/vers/models/api/rootfs_list_response.rbs | 15 - .../models/api/rootfs_upload_response.rbs | 15 - sig/vers/models/api/telemetry_dto.rbs | 92 ---- .../models/api/telemetry_get_info_params.rbs | 17 - sig/vers/models/api/vm_branch_request.rbs | 15 - sig/vers/models/api/vm_branch_response.rbs | 204 --------- sig/vers/models/api/vm_commit_request.rbs | 15 - sig/vers/models/api/vm_commit_response.rbs | 106 ----- sig/vers/models/api/vm_delete_params.rbs | 25 -- sig/vers/models/api/vm_delete_response.rbs | 117 ----- sig/vers/models/api/vm_dto.rbs | 126 ------ sig/vers/models/api/vm_get_ssh_key_params.rbs | 17 - .../models/api/vm_get_ssh_key_response.rbs | 83 ---- sig/vers/models/api/vm_list_params.rbs | 16 - sig/vers/models/api/vm_list_response.rbs | 204 --------- sig/vers/models/api/vm_patch_request.rbs | 35 -- sig/vers/models/api/vm_retrieve_params.rbs | 16 - sig/vers/models/api/vm_retrieve_response.rbs | 204 --------- sig/vers/models/api/vm_update_response.rbs | 204 --------- .../models/orchestrator/error_response.rbs | 21 + .../models/orchestrator/new_root_request.rbs | 57 +++ .../models/orchestrator/new_vm_response.rbs | 15 + .../node_list_vms_params.rbs} | 6 +- .../vm_branch_params.rbs | 4 +- .../orchestrator/vm_branch_response.rbs | 15 + .../vm_commit_params.rbs | 4 +- .../orchestrator/vm_commit_response.rbs | 17 + .../vm_create_root_params.rbs} | 6 +- .../vm_delete_params.rbs} | 6 +- .../orchestrator/vm_delete_response.rbs | 15 + .../orchestrator/vm_from_commit_request.rbs | 15 + .../orchestrator/vm_list_all_response.rbs | 32 ++ .../vm_restore_from_commit_params.rbs} | 6 +- .../vm_update_state_params.rbs} | 6 +- .../orchestrator/vm_update_state_request.rbs | 31 ++ sig/vers/resources/api.rbs | 17 - sig/vers/resources/api/cluster.rbs | 39 -- sig/vers/resources/api/health.rbs | 11 - sig/vers/resources/api/rootfs.rbs | 24 - sig/vers/resources/api/vm.rbs | 48 -- sig/vers/resources/orchestrator.rbs | 11 + .../telemetry.rbs => orchestrator/node.rbs} | 9 +- sig/vers/resources/orchestrator/vm.rbs | 40 ++ test/vers/client_test.rb | 72 +-- test/vers/resource_namespaces.rb | 2 +- test/vers/resources/api/cluster_test.rb | 125 ------ test/vers/resources/api/health_test.rb | 15 - test/vers/resources/api/rootfs_test.rb | 65 --- test/vers/resources/api/telemetry_test.rb | 35 -- test/vers/resources/api/vm_test.rb | 145 ------ test/vers/resources/api_test.rb | 6 - test/vers/resources/orchestrator/node_test.rb | 21 + test/vers/resources/orchestrator/vm_test.rb | 96 ++++ test/vers/resources/orchestrator_test.rb | 6 + 214 files changed, 1646 insertions(+), 12983 deletions(-) delete mode 100644 lib/vers/models/api/cluster_create_params.rb delete mode 100644 lib/vers/models/api/cluster_create_request.rb delete mode 100644 lib/vers/models/api/cluster_create_response.rb delete mode 100644 lib/vers/models/api/cluster_delete_response.rb delete mode 100644 lib/vers/models/api/cluster_dto.rb delete mode 100644 lib/vers/models/api/cluster_get_ssh_key_response.rb delete mode 100644 lib/vers/models/api/cluster_list_response.rb delete mode 100644 lib/vers/models/api/cluster_patch_request.rb delete mode 100644 lib/vers/models/api/cluster_retrieve_response.rb delete mode 100644 lib/vers/models/api/cluster_update_params.rb delete mode 100644 lib/vers/models/api/cluster_update_response.rb delete mode 100644 lib/vers/models/api/health_check_params.rb delete mode 100644 lib/vers/models/api/health_check_response.rb delete mode 100644 lib/vers/models/api/rootf_delete_params.rb delete mode 100644 lib/vers/models/api/rootf_delete_response.rb delete mode 100644 lib/vers/models/api/rootf_list_params.rb delete mode 100644 lib/vers/models/api/rootf_list_response.rb delete mode 100644 lib/vers/models/api/rootf_upload_params.rb delete mode 100644 lib/vers/models/api/rootf_upload_response.rb delete mode 100644 lib/vers/models/api/rootfs_delete_response.rb delete mode 100644 lib/vers/models/api/rootfs_list_response.rb delete mode 100644 lib/vers/models/api/rootfs_upload_response.rb delete mode 100644 lib/vers/models/api/telemetry_dto.rb delete mode 100644 lib/vers/models/api/telemetry_get_info_params.rb delete mode 100644 lib/vers/models/api/vm_branch_request.rb delete mode 100644 lib/vers/models/api/vm_branch_response.rb delete mode 100644 lib/vers/models/api/vm_commit_request.rb delete mode 100644 lib/vers/models/api/vm_commit_response.rb delete mode 100644 lib/vers/models/api/vm_delete_params.rb delete mode 100644 lib/vers/models/api/vm_delete_response.rb delete mode 100644 lib/vers/models/api/vm_dto.rb delete mode 100644 lib/vers/models/api/vm_get_ssh_key_params.rb delete mode 100644 lib/vers/models/api/vm_get_ssh_key_response.rb delete mode 100644 lib/vers/models/api/vm_list_params.rb delete mode 100644 lib/vers/models/api/vm_list_response.rb delete mode 100644 lib/vers/models/api/vm_patch_request.rb delete mode 100644 lib/vers/models/api/vm_retrieve_params.rb delete mode 100644 lib/vers/models/api/vm_retrieve_response.rb delete mode 100644 lib/vers/models/api/vm_update_params.rb delete mode 100644 lib/vers/models/api/vm_update_response.rb create mode 100644 lib/vers/models/orchestrator/error_response.rb create mode 100644 lib/vers/models/orchestrator/new_root_request.rb create mode 100644 lib/vers/models/orchestrator/new_vm_response.rb rename lib/vers/models/{api/cluster_get_ssh_key_params.rb => orchestrator/node_list_vms_params.rb} (70%) rename lib/vers/models/{api => orchestrator}/vm_branch_params.rb (71%) create mode 100644 lib/vers/models/orchestrator/vm_branch_response.rb rename lib/vers/models/{api => orchestrator}/vm_commit_params.rb (71%) create mode 100644 lib/vers/models/orchestrator/vm_commit_response.rb rename lib/vers/models/{api/cluster_list_params.rb => orchestrator/vm_create_root_params.rb} (68%) rename lib/vers/models/{api/cluster_retrieve_params.rb => orchestrator/vm_delete_params.rb} (71%) create mode 100644 lib/vers/models/orchestrator/vm_delete_response.rb create mode 100644 lib/vers/models/orchestrator/vm_from_commit_request.rb create mode 100644 lib/vers/models/orchestrator/vm_list_all_response.rb create mode 100644 lib/vers/models/orchestrator/vm_restore_from_commit_params.rb rename lib/vers/models/{api/cluster_delete_params.rb => orchestrator/vm_update_state_params.rb} (67%) create mode 100644 lib/vers/models/orchestrator/vm_update_state_request.rb delete mode 100644 lib/vers/resources/api.rb delete mode 100644 lib/vers/resources/api/cluster.rb delete mode 100644 lib/vers/resources/api/rootfs.rb delete mode 100644 lib/vers/resources/api/telemetry.rb delete mode 100644 lib/vers/resources/api/vm.rb create mode 100644 lib/vers/resources/orchestrator.rb rename lib/vers/resources/{api/health.rb => orchestrator/node.rb} (53%) create mode 100644 lib/vers/resources/orchestrator/vm.rb delete mode 100644 rbi/vers/models/api/cluster_create_params.rbi delete mode 100644 rbi/vers/models/api/cluster_create_request.rbi delete mode 100644 rbi/vers/models/api/cluster_create_response.rbi delete mode 100644 rbi/vers/models/api/cluster_delete_response.rbi delete mode 100644 rbi/vers/models/api/cluster_dto.rbi delete mode 100644 rbi/vers/models/api/cluster_get_ssh_key_response.rbi delete mode 100644 rbi/vers/models/api/cluster_list_response.rbi delete mode 100644 rbi/vers/models/api/cluster_patch_request.rbi delete mode 100644 rbi/vers/models/api/cluster_retrieve_response.rbi delete mode 100644 rbi/vers/models/api/cluster_update_params.rbi delete mode 100644 rbi/vers/models/api/cluster_update_response.rbi delete mode 100644 rbi/vers/models/api/health_check_params.rbi delete mode 100644 rbi/vers/models/api/health_check_response.rbi delete mode 100644 rbi/vers/models/api/rootf_delete_params.rbi delete mode 100644 rbi/vers/models/api/rootf_delete_response.rbi delete mode 100644 rbi/vers/models/api/rootf_list_params.rbi delete mode 100644 rbi/vers/models/api/rootf_list_response.rbi delete mode 100644 rbi/vers/models/api/rootf_upload_params.rbi delete mode 100644 rbi/vers/models/api/rootf_upload_response.rbi delete mode 100644 rbi/vers/models/api/rootfs_delete_response.rbi delete mode 100644 rbi/vers/models/api/rootfs_list_response.rbi delete mode 100644 rbi/vers/models/api/rootfs_upload_response.rbi delete mode 100644 rbi/vers/models/api/telemetry_dto.rbi delete mode 100644 rbi/vers/models/api/telemetry_get_info_params.rbi delete mode 100644 rbi/vers/models/api/vm_branch_request.rbi delete mode 100644 rbi/vers/models/api/vm_branch_response.rbi delete mode 100644 rbi/vers/models/api/vm_commit_request.rbi delete mode 100644 rbi/vers/models/api/vm_commit_response.rbi delete mode 100644 rbi/vers/models/api/vm_delete_params.rbi delete mode 100644 rbi/vers/models/api/vm_delete_response.rbi delete mode 100644 rbi/vers/models/api/vm_dto.rbi delete mode 100644 rbi/vers/models/api/vm_get_ssh_key_params.rbi delete mode 100644 rbi/vers/models/api/vm_get_ssh_key_response.rbi delete mode 100644 rbi/vers/models/api/vm_list_params.rbi delete mode 100644 rbi/vers/models/api/vm_list_response.rbi delete mode 100644 rbi/vers/models/api/vm_patch_request.rbi delete mode 100644 rbi/vers/models/api/vm_retrieve_params.rbi delete mode 100644 rbi/vers/models/api/vm_retrieve_response.rbi delete mode 100644 rbi/vers/models/api/vm_update_params.rbi delete mode 100644 rbi/vers/models/api/vm_update_response.rbi create mode 100644 rbi/vers/models/orchestrator/error_response.rbi create mode 100644 rbi/vers/models/orchestrator/new_root_request.rbi create mode 100644 rbi/vers/models/orchestrator/new_vm_response.rbi rename rbi/vers/models/{api/cluster_list_params.rbi => orchestrator/node_list_vms_params.rbi} (72%) rename rbi/vers/models/{api => orchestrator}/vm_branch_params.rbi (77%) create mode 100644 rbi/vers/models/orchestrator/vm_branch_response.rbi rename rbi/vers/models/{api => orchestrator}/vm_commit_params.rbi (77%) create mode 100644 rbi/vers/models/orchestrator/vm_commit_response.rbi rename rbi/vers/models/{api/cluster_get_ssh_key_params.rbi => orchestrator/vm_create_root_params.rbi} (71%) rename rbi/vers/models/{api/cluster_retrieve_params.rbi => orchestrator/vm_delete_params.rbi} (77%) create mode 100644 rbi/vers/models/orchestrator/vm_delete_response.rbi create mode 100644 rbi/vers/models/orchestrator/vm_from_commit_request.rbi create mode 100644 rbi/vers/models/orchestrator/vm_list_all_response.rbi create mode 100644 rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi rename rbi/vers/models/{api/cluster_delete_params.rbi => orchestrator/vm_update_state_params.rbi} (70%) create mode 100644 rbi/vers/models/orchestrator/vm_update_state_request.rbi delete mode 100644 rbi/vers/resources/api.rbi delete mode 100644 rbi/vers/resources/api/cluster.rbi delete mode 100644 rbi/vers/resources/api/health.rbi delete mode 100644 rbi/vers/resources/api/rootfs.rbi delete mode 100644 rbi/vers/resources/api/telemetry.rbi delete mode 100644 rbi/vers/resources/api/vm.rbi create mode 100644 rbi/vers/resources/orchestrator.rbi create mode 100644 rbi/vers/resources/orchestrator/node.rbi create mode 100644 rbi/vers/resources/orchestrator/vm.rbi delete mode 100644 sig/vers/models/api/cluster_create_params.rbs delete mode 100644 sig/vers/models/api/cluster_create_request.rbs delete mode 100644 sig/vers/models/api/cluster_create_response.rbs delete mode 100644 sig/vers/models/api/cluster_delete_response.rbs delete mode 100644 sig/vers/models/api/cluster_dto.rbs delete mode 100644 sig/vers/models/api/cluster_get_ssh_key_response.rbs delete mode 100644 sig/vers/models/api/cluster_list_params.rbs delete mode 100644 sig/vers/models/api/cluster_list_response.rbs delete mode 100644 sig/vers/models/api/cluster_patch_request.rbs delete mode 100644 sig/vers/models/api/cluster_retrieve_response.rbs delete mode 100644 sig/vers/models/api/cluster_update_response.rbs delete mode 100644 sig/vers/models/api/health_check_params.rbs delete mode 100644 sig/vers/models/api/health_check_response.rbs delete mode 100644 sig/vers/models/api/rootf_delete_params.rbs delete mode 100644 sig/vers/models/api/rootf_delete_response.rbs delete mode 100644 sig/vers/models/api/rootf_list_params.rbs delete mode 100644 sig/vers/models/api/rootf_list_response.rbs delete mode 100644 sig/vers/models/api/rootf_upload_params.rbs delete mode 100644 sig/vers/models/api/rootf_upload_response.rbs delete mode 100644 sig/vers/models/api/rootfs_delete_response.rbs delete mode 100644 sig/vers/models/api/rootfs_list_response.rbs delete mode 100644 sig/vers/models/api/rootfs_upload_response.rbs delete mode 100644 sig/vers/models/api/telemetry_dto.rbs delete mode 100644 sig/vers/models/api/telemetry_get_info_params.rbs delete mode 100644 sig/vers/models/api/vm_branch_request.rbs delete mode 100644 sig/vers/models/api/vm_branch_response.rbs delete mode 100644 sig/vers/models/api/vm_commit_request.rbs delete mode 100644 sig/vers/models/api/vm_commit_response.rbs delete mode 100644 sig/vers/models/api/vm_delete_params.rbs delete mode 100644 sig/vers/models/api/vm_delete_response.rbs delete mode 100644 sig/vers/models/api/vm_dto.rbs delete mode 100644 sig/vers/models/api/vm_get_ssh_key_params.rbs delete mode 100644 sig/vers/models/api/vm_get_ssh_key_response.rbs delete mode 100644 sig/vers/models/api/vm_list_params.rbs delete mode 100644 sig/vers/models/api/vm_list_response.rbs delete mode 100644 sig/vers/models/api/vm_patch_request.rbs delete mode 100644 sig/vers/models/api/vm_retrieve_params.rbs delete mode 100644 sig/vers/models/api/vm_retrieve_response.rbs delete mode 100644 sig/vers/models/api/vm_update_response.rbs create mode 100644 sig/vers/models/orchestrator/error_response.rbs create mode 100644 sig/vers/models/orchestrator/new_root_request.rbs create mode 100644 sig/vers/models/orchestrator/new_vm_response.rbs rename sig/vers/models/{api/cluster_delete_params.rbs => orchestrator/node_list_vms_params.rbs} (75%) rename sig/vers/models/{api => orchestrator}/vm_branch_params.rbs (82%) create mode 100644 sig/vers/models/orchestrator/vm_branch_response.rbs rename sig/vers/models/{api => orchestrator}/vm_commit_params.rbs (82%) create mode 100644 sig/vers/models/orchestrator/vm_commit_response.rbs rename sig/vers/models/{api/cluster_get_ssh_key_params.rbs => orchestrator/vm_create_root_params.rbs} (73%) rename sig/vers/models/{api/vm_update_params.rbs => orchestrator/vm_delete_params.rbs} (69%) create mode 100644 sig/vers/models/orchestrator/vm_delete_response.rbs create mode 100644 sig/vers/models/orchestrator/vm_from_commit_request.rbs create mode 100644 sig/vers/models/orchestrator/vm_list_all_response.rbs rename sig/vers/models/{api/cluster_retrieve_params.rbs => orchestrator/vm_restore_from_commit_params.rbs} (70%) rename sig/vers/models/{api/cluster_update_params.rbs => orchestrator/vm_update_state_params.rbs} (72%) create mode 100644 sig/vers/models/orchestrator/vm_update_state_request.rbs delete mode 100644 sig/vers/resources/api.rbs delete mode 100644 sig/vers/resources/api/cluster.rbs delete mode 100644 sig/vers/resources/api/health.rbs delete mode 100644 sig/vers/resources/api/rootfs.rbs delete mode 100644 sig/vers/resources/api/vm.rbs create mode 100644 sig/vers/resources/orchestrator.rbs rename sig/vers/resources/{api/telemetry.rbs => orchestrator/node.rbs} (53%) create mode 100644 sig/vers/resources/orchestrator/vm.rbs delete mode 100644 test/vers/resources/api/cluster_test.rb delete mode 100644 test/vers/resources/api/health_test.rb delete mode 100644 test/vers/resources/api/rootfs_test.rb delete mode 100644 test/vers/resources/api/telemetry_test.rb delete mode 100644 test/vers/resources/api/vm_test.rb delete mode 100644 test/vers/resources/api_test.rb create mode 100644 test/vers/resources/orchestrator/node_test.rb create mode 100644 test/vers/resources/orchestrator/vm_test.rb create mode 100644 test/vers/resources/orchestrator_test.rb diff --git a/.stats.yml b/.stats.yml index 6e107fa..4fd44e9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 18 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-dddadc74237fd5aa837e0eb969f9aec7fbc97a28f26e3b00e79bbdf4ea2a864e.yml -openapi_spec_hash: 786793a4eae899da9b994b4bf7ff8b7e -config_hash: 2cba7ea212435f78850a896a330802c9 +configured_endpoints: 7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-8aa202d4f437312b10fe0ab2215146f37dbe1118b69145d647eb07eed876a28e.yml +openapi_spec_hash: 5e765f1c5dc8d603d3b9b2d81a850c54 +config_hash: 3a55be202e01571eea404f5bdae7202a diff --git a/README.md b/README.md index 81d930b..38bb107 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,11 @@ gem "vers", "~> 0.1.0.pre.alpha.2" require "bundler/setup" require "vers" -vers = Vers::Client.new( - api_key: ENV["VERS_API_KEY"] # This is the default and can be omitted -) +vers = Vers::Client.new -clusters = vers.api.cluster.list +new_vm_response = vers.orchestrator.vm.create_root(vm_config: {}) -puts(clusters.operation_id) +puts(new_vm_response.id) ``` ### Handling errors @@ -43,7 +41,7 @@ When the library is unable to connect to the API, or if the API returns a non-su ```ruby begin - cluster = vers.api.cluster.list + vm = vers.orchestrator.vm.create_root(vm_config: {}) rescue Vers::Errors::APIConnectionError => e puts("The server could not be reached") puts(e.cause) # an underlying Exception, likely raised within `net/http` @@ -86,7 +84,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.api.cluster.list(request_options: {max_retries: 5}) +vers.orchestrator.vm.create_root(vm_config: {}, request_options: {max_retries: 5}) ``` ### Timeouts @@ -100,7 +98,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.api.cluster.list(request_options: {timeout: 5}) +vers.orchestrator.vm.create_root(vm_config: {}, request_options: {timeout: 5}) ``` On timeout, `Vers::Errors::APITimeoutError` is raised. @@ -130,8 +128,9 @@ You can send undocumented parameters to any endpoint, and read undocumented resp Note: the `extra_` parameters of the same name overrides the documented parameters. ```ruby -clusters = - vers.api.cluster.list( +new_vm_response = + vers.orchestrator.vm.create_root( + vm_config: {}, request_options: { extra_query: {my_query_parameter: value}, extra_body: {my_body_parameter: value}, @@ -139,7 +138,7 @@ clusters = } ) -puts(clusters[:my_undocumented_property]) +puts(new_vm_response[:my_undocumented_property]) ``` #### Undocumented request params @@ -177,18 +176,18 @@ This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitio You can provide typesafe request parameters like so: ```ruby -vers.api.cluster.list +vers.orchestrator.vm.create_root(vm_config: Vers::Orchestrator::NewRootRequest::VmConfig.new) ``` Or, equivalently: ```ruby # Hashes work, but are not typesafe: -vers.api.cluster.list +vers.orchestrator.vm.create_root(vm_config: {}) # You can also splat a full Params class: -params = Vers::API::ClusterListParams.new -vers.api.cluster.list(**params) +params = Vers::Orchestrator::VmCreateRootParams.new(vm_config: Vers::Orchestrator::NewRootRequest::VmConfig.new) +vers.orchestrator.vm.create_root(**params) ``` ### Enums @@ -196,25 +195,25 @@ vers.api.cluster.list(**params) Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime: ```ruby -# :Running -puts(Vers::API::VmPatchRequest::State::RUNNING) +# :Paused +puts(Vers::Orchestrator::VmUpdateStateRequest::State::PAUSED) -# Revealed type: `T.all(Vers::API::VmPatchRequest::State, Symbol)` -T.reveal_type(Vers::API::VmPatchRequest::State::RUNNING) +# Revealed type: `T.all(Vers::Orchestrator::VmUpdateStateRequest::State, Symbol)` +T.reveal_type(Vers::Orchestrator::VmUpdateStateRequest::State::PAUSED) ``` Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value: ```ruby # Using the enum constants preserves the tagged type information: -vers.api.vm.update( - state: Vers::API::VmPatchRequest::State::RUNNING, +vers.orchestrator.vm.update_state( + state: Vers::Orchestrator::VmUpdateStateRequest::State::PAUSED, # … ) # Literal values are also permissible: -vers.api.vm.update( - state: :Running, +vers.orchestrator.vm.update_state( + state: :Paused, # … ) ``` diff --git a/lib/vers.rb b/lib/vers.rb index 93fab90..a98ac1b 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -50,59 +50,24 @@ require_relative "vers/internal/transport/base_client" require_relative "vers/internal/transport/pooled_net_requester" require_relative "vers/client" -require_relative "vers/models/api/cluster_create_request" -require_relative "vers/models/api/cluster_patch_request" -require_relative "vers/models/api/vm_branch_request" -require_relative "vers/models/api/vm_commit_request" -require_relative "vers/models/api/vm_patch_request" -require_relative "vers/models/api/cluster_create_params" -require_relative "vers/models/api/cluster_create_response" -require_relative "vers/models/api/cluster_delete_params" -require_relative "vers/models/api/cluster_delete_response" -require_relative "vers/models/api/cluster_delete_response" -require_relative "vers/models/api/cluster_dto" -require_relative "vers/models/api/cluster_get_ssh_key_params" -require_relative "vers/models/api/cluster_get_ssh_key_response" -require_relative "vers/models/api/cluster_list_params" -require_relative "vers/models/api/cluster_list_response" -require_relative "vers/models/api/cluster_retrieve_params" -require_relative "vers/models/api/cluster_retrieve_response" -require_relative "vers/models/api/cluster_update_params" -require_relative "vers/models/api/cluster_update_response" -require_relative "vers/models/api/health_check_params" -require_relative "vers/models/api/health_check_response" -require_relative "vers/models/api/rootf_delete_params" -require_relative "vers/models/api/rootf_delete_response" -require_relative "vers/models/api/rootf_list_params" -require_relative "vers/models/api/rootf_list_response" -require_relative "vers/models/api/rootfs_delete_response" -require_relative "vers/models/api/rootfs_list_response" -require_relative "vers/models/api/rootfs_upload_response" -require_relative "vers/models/api/rootf_upload_params" -require_relative "vers/models/api/rootf_upload_response" -require_relative "vers/models/api/telemetry_dto" -require_relative "vers/models/api/telemetry_get_info_params" -require_relative "vers/models/api/vm_branch_params" -require_relative "vers/models/api/vm_branch_response" -require_relative "vers/models/api/vm_commit_params" -require_relative "vers/models/api/vm_commit_response" -require_relative "vers/models/api/vm_commit_response" -require_relative "vers/models/api/vm_delete_params" -require_relative "vers/models/api/vm_delete_response" -require_relative "vers/models/api/vm_delete_response" -require_relative "vers/models/api/vm_dto" -require_relative "vers/models/api/vm_get_ssh_key_params" -require_relative "vers/models/api/vm_get_ssh_key_response" -require_relative "vers/models/api/vm_list_params" -require_relative "vers/models/api/vm_list_response" -require_relative "vers/models/api/vm_retrieve_params" -require_relative "vers/models/api/vm_retrieve_response" -require_relative "vers/models/api/vm_update_params" -require_relative "vers/models/api/vm_update_response" +require_relative "vers/models/orchestrator/new_root_request" +require_relative "vers/models/orchestrator/vm_from_commit_request" +require_relative "vers/models/orchestrator/vm_update_state_request" +require_relative "vers/models/orchestrator/error_response" +require_relative "vers/models/orchestrator/error_response" +require_relative "vers/models/orchestrator/new_vm_response" +require_relative "vers/models/orchestrator/node_list_vms_params" +require_relative "vers/models/orchestrator/vm_branch_params" +require_relative "vers/models/orchestrator/vm_branch_response" +require_relative "vers/models/orchestrator/vm_commit_params" +require_relative "vers/models/orchestrator/vm_commit_response" +require_relative "vers/models/orchestrator/vm_create_root_params" +require_relative "vers/models/orchestrator/vm_delete_params" +require_relative "vers/models/orchestrator/vm_delete_response" +require_relative "vers/models/orchestrator/vm_list_all_response" +require_relative "vers/models/orchestrator/vm_restore_from_commit_params" +require_relative "vers/models/orchestrator/vm_update_state_params" require_relative "vers/models" -require_relative "vers/resources/api" -require_relative "vers/resources/api/cluster" -require_relative "vers/resources/api/health" -require_relative "vers/resources/api/rootfs" -require_relative "vers/resources/api/telemetry" -require_relative "vers/resources/api/vm" +require_relative "vers/resources/orchestrator" +require_relative "vers/resources/orchestrator/node" +require_relative "vers/resources/orchestrator/vm" diff --git a/lib/vers/client.rb b/lib/vers/client.rb index 3ec7ca2..8b71c65 100644 --- a/lib/vers/client.rb +++ b/lib/vers/client.rb @@ -18,8 +18,8 @@ class Client < Vers::Internal::Transport::BaseClient # @return [String, nil] attr_reader :api_key - # @return [Vers::Resources::API] - attr_reader :api + # @return [Vers::Resources::Orchestrator] + attr_reader :orchestrator # @api private # @@ -64,7 +64,7 @@ def initialize( max_retry_delay: max_retry_delay ) - @api = Vers::Resources::API.new(client: self) + @orchestrator = Vers::Resources::Orchestrator.new(client: self) end end end diff --git a/lib/vers/internal/type/base_model.rb b/lib/vers/internal/type/base_model.rb index 20797d9..bc7ad67 100644 --- a/lib/vers/internal/type/base_model.rb +++ b/lib/vers/internal/type/base_model.rb @@ -440,11 +440,10 @@ def deep_to_h = self.class.recursively_to_h(@data, convert: false) # @return [Hash{Symbol=>Object}] # # @example - # # `cluster_delete_response` is a `Vers::API::ClusterDeleteResponse` - # cluster_delete_response => { - # cluster_id: cluster_id, - # vms: vms, - # fs_error: fs_error + # # `error_response` is a `Vers::Orchestrator::ErrorResponse` + # error_response => { + # error: error, + # success: success # } def deconstruct_keys(keys) (keys || self.class.known_fields.keys) diff --git a/lib/vers/internal/type/union.rb b/lib/vers/internal/type/union.rb index ab02798..7e8d151 100644 --- a/lib/vers/internal/type/union.rb +++ b/lib/vers/internal/type/union.rb @@ -4,17 +4,6 @@ module Vers module Internal module Type # @api private - # - # @example - # # `cluster_create_request` is a `Vers::API::ClusterCreateRequest` - # case cluster_create_request - # when Vers::API::ClusterCreateRequest::NewClusterParams - # puts(cluster_create_request.cluster_type) - # when Vers::API::ClusterCreateRequest::ClusterFromCommitParams - # puts(cluster_create_request.params) - # else - # puts(cluster_create_request) - # end module Union include Vers::Internal::Type::Converter include Vers::Internal::Util::SorbetRuntimeSupport diff --git a/lib/vers/models.rb b/lib/vers/models.rb index b65fded..eeb5868 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -39,5 +39,5 @@ module Vers mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } } end - API = Vers::Models::API + Orchestrator = Vers::Models::Orchestrator end diff --git a/lib/vers/models/api/cluster_create_params.rb b/lib/vers/models/api/cluster_create_params.rb deleted file mode 100644 index 24a81c3..0000000 --- a/lib/vers/models/api/cluster_create_params.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#create - class ClusterCreateParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute cluster_create_request - # - # @return [Vers::Models::API::ClusterCreateRequest::NewClusterParams, Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams] - required :cluster_create_request, union: -> { Vers::API::ClusterCreateRequest } - - # @!method initialize(cluster_create_request:, request_options: {}) - # @param cluster_create_request [Vers::Models::API::ClusterCreateRequest::NewClusterParams, Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams] - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/cluster_create_request.rb b/lib/vers/models/api/cluster_create_request.rb deleted file mode 100644 index b8547df..0000000 --- a/lib/vers/models/api/cluster_create_request.rb +++ /dev/null @@ -1,166 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - module ClusterCreateRequest - extend Vers::Internal::Type::Union - - variant -> { Vers::API::ClusterCreateRequest::NewClusterParams } - - variant -> { Vers::API::ClusterCreateRequest::ClusterFromCommitParams } - - class NewClusterParams < Vers::Internal::Type::BaseModel - # @!attribute cluster_type - # - # @return [Symbol, Vers::Models::API::ClusterCreateRequest::NewClusterParams::ClusterType] - required :cluster_type, enum: -> { Vers::API::ClusterCreateRequest::NewClusterParams::ClusterType } - - # @!attribute params - # - # @return [Vers::Models::API::ClusterCreateRequest::NewClusterParams::Params] - required :params, -> { Vers::API::ClusterCreateRequest::NewClusterParams::Params } - - # @!method initialize(cluster_type:, params:) - # @param cluster_type [Symbol, Vers::Models::API::ClusterCreateRequest::NewClusterParams::ClusterType] - # @param params [Vers::Models::API::ClusterCreateRequest::NewClusterParams::Params] - - # @see Vers::Models::API::ClusterCreateRequest::NewClusterParams#cluster_type - module ClusterType - extend Vers::Internal::Type::Enum - - NEW = :new - - # @!method self.values - # @return [Array] - end - - # @see Vers::Models::API::ClusterCreateRequest::NewClusterParams#params - class Params < Vers::Internal::Type::BaseModel - # @!attribute cluster_alias - # - # @return [String, nil] - optional :cluster_alias, String, nil?: true - - # @!attribute fs_size_cluster_mib - # The amount of total space to allocate to the cluster - # - # @return [Integer, nil] - optional :fs_size_cluster_mib, Integer, nil?: true - - # @!attribute fs_size_vm_mib - # The size of the VM filesystem (if smaller than the base image + overhead, will - # cause an error) - # - # @return [Integer, nil] - optional :fs_size_vm_mib, Integer, nil?: true - - # @!attribute kernel_name - # - # @return [String, nil] - optional :kernel_name, String, nil?: true - - # @!attribute mem_size_mib - # - # @return [Integer, nil] - optional :mem_size_mib, Integer, nil?: true - - # @!attribute rootfs_name - # - # @return [String, nil] - optional :rootfs_name, String, nil?: true - - # @!attribute vcpu_count - # - # @return [Integer, nil] - optional :vcpu_count, Integer, nil?: true - - # @!attribute vm_alias - # - # @return [String, nil] - optional :vm_alias, String, nil?: true - - # @!method initialize(cluster_alias: nil, fs_size_cluster_mib: nil, fs_size_vm_mib: nil, kernel_name: nil, mem_size_mib: nil, rootfs_name: nil, vcpu_count: nil, vm_alias: nil) - # Some parameter documentations has been truncated, see - # {Vers::Models::API::ClusterCreateRequest::NewClusterParams::Params} for more - # details. - # - # @param cluster_alias [String, nil] - # - # @param fs_size_cluster_mib [Integer, nil] The amount of total space to allocate to the cluster - # - # @param fs_size_vm_mib [Integer, nil] The size of the VM filesystem (if smaller than the base image + overhead, will c - # - # @param kernel_name [String, nil] - # - # @param mem_size_mib [Integer, nil] - # - # @param rootfs_name [String, nil] - # - # @param vcpu_count [Integer, nil] - # - # @param vm_alias [String, nil] - end - end - - class ClusterFromCommitParams < Vers::Internal::Type::BaseModel - # @!attribute cluster_type - # - # @return [Symbol, Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType] - required :cluster_type, enum: -> { Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType } - - # @!attribute params - # - # @return [Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::Params] - required :params, -> { Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params } - - # @!method initialize(cluster_type:, params:) - # @param cluster_type [Symbol, Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType] - # @param params [Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::Params] - - # @see Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams#cluster_type - module ClusterType - extend Vers::Internal::Type::Enum - - FROM_COMMIT = :from_commit - - # @!method self.values - # @return [Array] - end - - # @see Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams#params - class Params < Vers::Internal::Type::BaseModel - # @!attribute commit_id - # - # @return [String] - required :commit_id, String - - # @!attribute cluster_alias - # - # @return [String, nil] - optional :cluster_alias, String, nil?: true - - # @!attribute fs_size_cluster_mib - # - # @return [Integer, nil] - optional :fs_size_cluster_mib, Integer, nil?: true - - # @!attribute vm_alias - # - # @return [String, nil] - optional :vm_alias, String, nil?: true - - # @!method initialize(commit_id:, cluster_alias: nil, fs_size_cluster_mib: nil, vm_alias: nil) - # @param commit_id [String] - # @param cluster_alias [String, nil] - # @param fs_size_cluster_mib [Integer, nil] - # @param vm_alias [String, nil] - end - end - - # @!method self.variants - # @return [Array(Vers::Models::API::ClusterCreateRequest::NewClusterParams, Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams)] - end - end - end -end diff --git a/lib/vers/models/api/cluster_create_response.rb b/lib/vers/models/api/cluster_create_response.rb deleted file mode 100644 index 548348a..0000000 --- a/lib/vers/models/api/cluster_create_response.rb +++ /dev/null @@ -1,124 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#create - class ClusterCreateResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::ClusterCreateResponse::Data] - required :data, -> { Vers::Models::API::ClusterCreateResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::ClusterCreateResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::ClusterCreateResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::ClusterCreateResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::ClusterCreateResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::ClusterCreateResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The cluster's ID. - # - # @return [String] - required :id, String - - # @!attribute fs_size_mib - # The size of the cluster's backing file - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute root_vm_id - # The ID of the cluster's root VM. - # - # @return [String] - required :root_vm_id, String - - # @!attribute vm_count - # How many VMs are currently running on this cluster. - # - # @return [Integer] - required :vm_count, Integer - - # @!attribute vms - # The VMs that are children of the cluster, including the root VM. - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::API::VmDto] } - - # @!attribute alias_ - # Human-readable name assigned to the cluster. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!method initialize(id:, fs_size_mib:, root_vm_id:, vm_count:, vms:, alias_: nil) - # @param id [String] The cluster's ID. - # - # @param fs_size_mib [Integer] The size of the cluster's backing file - # - # @param root_vm_id [String] The ID of the cluster's root VM. - # - # @param vm_count [Integer] How many VMs are currently running on this cluster. - # - # @param vms [Array] The VMs that are children of the cluster, including the root VM. - # - # @param alias_ [String, nil] Human-readable name assigned to the cluster. - end - - # @see Vers::Models::API::ClusterCreateResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/cluster_delete_response.rb b/lib/vers/models/api/cluster_delete_response.rb deleted file mode 100644 index 283f14a..0000000 --- a/lib/vers/models/api/cluster_delete_response.rb +++ /dev/null @@ -1,113 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#delete - class ClusterDeleteResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # A struct containing information about an attempted cluster deletion request. - # Reports information in the event of a partial failure so billing can still be - # udpated appropriately. - # - # @return [Vers::Models::API::ClusterDeleteResponse::Data] - required :data, -> { Vers::API::ClusterDeleteResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::ClusterDeleteResponse::OperationCode] - required :operation_code, enum: -> { Vers::API::ClusterDeleteResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # Some parameter documentations has been truncated, see - # {Vers::Models::API::ClusterDeleteResponse} for more details. - # - # @param data [Vers::Models::API::ClusterDeleteResponse::Data] A struct containing information about an attempted cluster deletion request. Rep - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::ClusterDeleteResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::ClusterDeleteResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute cluster_id - # - # @return [String] - required :cluster_id, String - - # @!attribute vms - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - # - # @return [Vers::Models::API::VmDeleteResponse] - required :vms, -> { Vers::API::VmDeleteResponse } - - # @!attribute fs_error - # - # @return [String, nil] - optional :fs_error, String, nil?: true - - # @!method initialize(cluster_id:, vms:, fs_error: nil) - # Some parameter documentations has been truncated, see - # {Vers::Models::API::ClusterDeleteResponse::Data} for more details. - # - # A struct containing information about an attempted cluster deletion request. - # Reports information in the event of a partial failure so billing can still be - # udpated appropriately. - # - # @param cluster_id [String] - # - # @param vms [Vers::Models::API::VmDeleteResponse] A struct containing information about an attempted VM deletion request. Reports - # - # @param fs_error [String, nil] - end - - # @see Vers::Models::API::ClusterDeleteResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/cluster_dto.rb b/lib/vers/models/api/cluster_dto.rb deleted file mode 100644 index aa93db2..0000000 --- a/lib/vers/models/api/cluster_dto.rb +++ /dev/null @@ -1,58 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class ClusterDto < Vers::Internal::Type::BaseModel - # @!attribute id - # The cluster's ID. - # - # @return [String] - required :id, String - - # @!attribute fs_size_mib - # The size of the cluster's backing file - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute root_vm_id - # The ID of the cluster's root VM. - # - # @return [String] - required :root_vm_id, String - - # @!attribute vm_count - # How many VMs are currently running on this cluster. - # - # @return [Integer] - required :vm_count, Integer - - # @!attribute vms - # The VMs that are children of the cluster, including the root VM. - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::API::VmDto] } - - # @!attribute alias_ - # Human-readable name assigned to the cluster. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!method initialize(id:, fs_size_mib:, root_vm_id:, vm_count:, vms:, alias_: nil) - # @param id [String] The cluster's ID. - # - # @param fs_size_mib [Integer] The size of the cluster's backing file - # - # @param root_vm_id [String] The ID of the cluster's root VM. - # - # @param vm_count [Integer] How many VMs are currently running on this cluster. - # - # @param vms [Array] The VMs that are children of the cluster, including the root VM. - # - # @param alias_ [String, nil] Human-readable name assigned to the cluster. - end - end - end -end diff --git a/lib/vers/models/api/cluster_get_ssh_key_response.rb b/lib/vers/models/api/cluster_get_ssh_key_response.rb deleted file mode 100644 index ae09ffc..0000000 --- a/lib/vers/models/api/cluster_get_ssh_key_response.rb +++ /dev/null @@ -1,72 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#get_ssh_key - class ClusterGetSSHKeyResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [String] - required :data, String - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [String] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::ClusterGetSSHKeyResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/cluster_list_response.rb b/lib/vers/models/api/cluster_list_response.rb deleted file mode 100644 index 1d93444..0000000 --- a/lib/vers/models/api/cluster_list_response.rb +++ /dev/null @@ -1,123 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#list - class ClusterListResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Array] - required :data, -> { Vers::Internal::Type::ArrayOf[Vers::Models::API::ClusterListResponse::Data] } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::ClusterListResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::ClusterListResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Array] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::ClusterListResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The cluster's ID. - # - # @return [String] - required :id, String - - # @!attribute fs_size_mib - # The size of the cluster's backing file - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute root_vm_id - # The ID of the cluster's root VM. - # - # @return [String] - required :root_vm_id, String - - # @!attribute vm_count - # How many VMs are currently running on this cluster. - # - # @return [Integer] - required :vm_count, Integer - - # @!attribute vms - # The VMs that are children of the cluster, including the root VM. - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::API::VmDto] } - - # @!attribute alias_ - # Human-readable name assigned to the cluster. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!method initialize(id:, fs_size_mib:, root_vm_id:, vm_count:, vms:, alias_: nil) - # @param id [String] The cluster's ID. - # - # @param fs_size_mib [Integer] The size of the cluster's backing file - # - # @param root_vm_id [String] The ID of the cluster's root VM. - # - # @param vm_count [Integer] How many VMs are currently running on this cluster. - # - # @param vms [Array] The VMs that are children of the cluster, including the root VM. - # - # @param alias_ [String, nil] Human-readable name assigned to the cluster. - end - - # @see Vers::Models::API::ClusterListResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/cluster_patch_request.rb b/lib/vers/models/api/cluster_patch_request.rb deleted file mode 100644 index 0b05bee..0000000 --- a/lib/vers/models/api/cluster_patch_request.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class ClusterPatchRequest < Vers::Internal::Type::BaseModel - # @!attribute alias_ - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!method initialize(alias_: nil) - # @param alias_ [String, nil] - end - end - end -end diff --git a/lib/vers/models/api/cluster_retrieve_response.rb b/lib/vers/models/api/cluster_retrieve_response.rb deleted file mode 100644 index a3cd894..0000000 --- a/lib/vers/models/api/cluster_retrieve_response.rb +++ /dev/null @@ -1,124 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#retrieve - class ClusterRetrieveResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::ClusterRetrieveResponse::Data] - required :data, -> { Vers::Models::API::ClusterRetrieveResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::ClusterRetrieveResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::ClusterRetrieveResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::ClusterRetrieveResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::ClusterRetrieveResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::ClusterRetrieveResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The cluster's ID. - # - # @return [String] - required :id, String - - # @!attribute fs_size_mib - # The size of the cluster's backing file - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute root_vm_id - # The ID of the cluster's root VM. - # - # @return [String] - required :root_vm_id, String - - # @!attribute vm_count - # How many VMs are currently running on this cluster. - # - # @return [Integer] - required :vm_count, Integer - - # @!attribute vms - # The VMs that are children of the cluster, including the root VM. - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::API::VmDto] } - - # @!attribute alias_ - # Human-readable name assigned to the cluster. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!method initialize(id:, fs_size_mib:, root_vm_id:, vm_count:, vms:, alias_: nil) - # @param id [String] The cluster's ID. - # - # @param fs_size_mib [Integer] The size of the cluster's backing file - # - # @param root_vm_id [String] The ID of the cluster's root VM. - # - # @param vm_count [Integer] How many VMs are currently running on this cluster. - # - # @param vms [Array] The VMs that are children of the cluster, including the root VM. - # - # @param alias_ [String, nil] Human-readable name assigned to the cluster. - end - - # @see Vers::Models::API::ClusterRetrieveResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/cluster_update_params.rb b/lib/vers/models/api/cluster_update_params.rb deleted file mode 100644 index 3ee9cca..0000000 --- a/lib/vers/models/api/cluster_update_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#update - class ClusterUpdateParams < Vers::Models::API::ClusterPatchRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/cluster_update_response.rb b/lib/vers/models/api/cluster_update_response.rb deleted file mode 100644 index b80a98f..0000000 --- a/lib/vers/models/api/cluster_update_response.rb +++ /dev/null @@ -1,124 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Cluster#update - class ClusterUpdateResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::ClusterUpdateResponse::Data] - required :data, -> { Vers::Models::API::ClusterUpdateResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::ClusterUpdateResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::ClusterUpdateResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::ClusterUpdateResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::ClusterUpdateResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::ClusterUpdateResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The cluster's ID. - # - # @return [String] - required :id, String - - # @!attribute fs_size_mib - # The size of the cluster's backing file - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute root_vm_id - # The ID of the cluster's root VM. - # - # @return [String] - required :root_vm_id, String - - # @!attribute vm_count - # How many VMs are currently running on this cluster. - # - # @return [Integer] - required :vm_count, Integer - - # @!attribute vms - # The VMs that are children of the cluster, including the root VM. - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::API::VmDto] } - - # @!attribute alias_ - # Human-readable name assigned to the cluster. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!method initialize(id:, fs_size_mib:, root_vm_id:, vm_count:, vms:, alias_: nil) - # @param id [String] The cluster's ID. - # - # @param fs_size_mib [Integer] The size of the cluster's backing file - # - # @param root_vm_id [String] The ID of the cluster's root VM. - # - # @param vm_count [Integer] How many VMs are currently running on this cluster. - # - # @param vms [Array] The VMs that are children of the cluster, including the root VM. - # - # @param alias_ [String, nil] Human-readable name assigned to the cluster. - end - - # @see Vers::Models::API::ClusterUpdateResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/health_check_params.rb b/lib/vers/models/api/health_check_params.rb deleted file mode 100644 index 8489186..0000000 --- a/lib/vers/models/api/health_check_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Health#check - class HealthCheckParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/health_check_response.rb b/lib/vers/models/api/health_check_response.rb deleted file mode 100644 index 94e5960..0000000 --- a/lib/vers/models/api/health_check_response.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - HealthCheckResponse = String - end - end -end diff --git a/lib/vers/models/api/rootf_delete_params.rb b/lib/vers/models/api/rootf_delete_params.rb deleted file mode 100644 index bf7cc7b..0000000 --- a/lib/vers/models/api/rootf_delete_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Rootfs#delete - class RootfDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/rootf_delete_response.rb b/lib/vers/models/api/rootf_delete_response.rb deleted file mode 100644 index c11c491..0000000 --- a/lib/vers/models/api/rootf_delete_response.rb +++ /dev/null @@ -1,83 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Rootfs#delete - class RootfDeleteResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::RootfDeleteResponse::Data] - required :data, -> { Vers::Models::API::RootfDeleteResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::RootfDeleteResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::RootfDeleteResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::RootfDeleteResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::RootfDeleteResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::RootfDeleteResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute rootfs_name - # - # @return [String] - required :rootfs_name, String - - # @!method initialize(rootfs_name:) - # @param rootfs_name [String] - end - - # @see Vers::Models::API::RootfDeleteResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/rootf_list_params.rb b/lib/vers/models/api/rootf_list_params.rb deleted file mode 100644 index 65829e2..0000000 --- a/lib/vers/models/api/rootf_list_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Rootfs#list - class RootfListParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/rootf_list_response.rb b/lib/vers/models/api/rootf_list_response.rb deleted file mode 100644 index 4088d79..0000000 --- a/lib/vers/models/api/rootf_list_response.rb +++ /dev/null @@ -1,83 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Rootfs#list - class RootfListResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::RootfListResponse::Data] - required :data, -> { Vers::Models::API::RootfListResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::RootfListResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::RootfListResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::RootfListResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::RootfListResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::RootfListResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute rootfs_names - # - # @return [Array] - required :rootfs_names, Vers::Internal::Type::ArrayOf[String] - - # @!method initialize(rootfs_names:) - # @param rootfs_names [Array] - end - - # @see Vers::Models::API::RootfListResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/rootf_upload_params.rb b/lib/vers/models/api/rootf_upload_params.rb deleted file mode 100644 index af7a6fc..0000000 --- a/lib/vers/models/api/rootf_upload_params.rb +++ /dev/null @@ -1,24 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Rootfs#upload - class RootfUploadParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute dockerfile - # The path of the Dockerfile contained within the tar archive - # - # @return [String, nil] - optional :dockerfile, String - - # @!method initialize(dockerfile: nil, request_options: {}) - # @param dockerfile [String] The path of the Dockerfile contained within the tar archive - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/rootf_upload_response.rb b/lib/vers/models/api/rootf_upload_response.rb deleted file mode 100644 index 6e12f7a..0000000 --- a/lib/vers/models/api/rootf_upload_response.rb +++ /dev/null @@ -1,83 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Rootfs#upload - class RootfUploadResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::RootfUploadResponse::Data] - required :data, -> { Vers::Models::API::RootfUploadResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::RootfUploadResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::RootfUploadResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::RootfUploadResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::RootfUploadResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::RootfUploadResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute rootfs_name - # - # @return [String] - required :rootfs_name, String - - # @!method initialize(rootfs_name:) - # @param rootfs_name [String] - end - - # @see Vers::Models::API::RootfUploadResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/rootfs_delete_response.rb b/lib/vers/models/api/rootfs_delete_response.rb deleted file mode 100644 index 61c98e3..0000000 --- a/lib/vers/models/api/rootfs_delete_response.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class RootfsDeleteResponse < Vers::Internal::Type::BaseModel - # @!attribute rootfs_name - # - # @return [String] - required :rootfs_name, String - - # @!method initialize(rootfs_name:) - # @param rootfs_name [String] - end - end - end -end diff --git a/lib/vers/models/api/rootfs_list_response.rb b/lib/vers/models/api/rootfs_list_response.rb deleted file mode 100644 index b0cb579..0000000 --- a/lib/vers/models/api/rootfs_list_response.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class RootfsListResponse < Vers::Internal::Type::BaseModel - # @!attribute rootfs_names - # - # @return [Array] - required :rootfs_names, Vers::Internal::Type::ArrayOf[String] - - # @!method initialize(rootfs_names:) - # @param rootfs_names [Array] - end - end - end -end diff --git a/lib/vers/models/api/rootfs_upload_response.rb b/lib/vers/models/api/rootfs_upload_response.rb deleted file mode 100644 index 6bf71bb..0000000 --- a/lib/vers/models/api/rootfs_upload_response.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class RootfsUploadResponse < Vers::Internal::Type::BaseModel - # @!attribute rootfs_name - # - # @return [String] - required :rootfs_name, String - - # @!method initialize(rootfs_name:) - # @param rootfs_name [String] - end - end - end -end diff --git a/lib/vers/models/api/telemetry_dto.rb b/lib/vers/models/api/telemetry_dto.rb deleted file mode 100644 index 581db17..0000000 --- a/lib/vers/models/api/telemetry_dto.rb +++ /dev/null @@ -1,102 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Telemetry#get_info - class TelemetryDto < Vers::Internal::Type::BaseModel - # @!attribute id - # - # @return [String] - required :id, String - - # @!attribute cpu_cores_available - # - # @return [Integer] - required :cpu_cores_available, Integer - - # @!attribute cpu_cores_margin - # - # @return [Integer] - required :cpu_cores_margin, Integer - - # @!attribute cpu_cores_total - # - # @return [Integer] - required :cpu_cores_total, Integer - - # @!attribute cpu_cores_used - # - # @return [Integer] - required :cpu_cores_used, Integer - - # @!attribute disk_data_mib_available - # - # @return [Integer] - required :disk_data_mib_available, Integer - - # @!attribute disk_data_mib_total - # - # @return [Integer] - required :disk_data_mib_total, Integer - - # @!attribute disk_vm_mib_available - # - # @return [Integer] - required :disk_vm_mib_available, Integer - - # @!attribute disk_vm_mib_total - # - # @return [Integer] - required :disk_vm_mib_total, Integer - - # @!attribute memory_mib_available - # - # @return [Integer] - required :memory_mib_available, Integer - - # @!attribute memory_mib_margin - # - # @return [Integer] - required :memory_mib_margin, Integer - - # @!attribute memory_mib_total - # - # @return [Integer] - required :memory_mib_total, Integer - - # @!attribute memory_mib_used - # - # @return [Integer] - required :memory_mib_used, Integer - - # @!attribute vm_network_count_in_use - # - # @return [Integer] - required :vm_network_count_in_use, Integer - - # @!attribute vm_network_count_total - # - # @return [Integer] - required :vm_network_count_total, Integer - - # @!method initialize(id:, cpu_cores_available:, cpu_cores_margin:, cpu_cores_total:, cpu_cores_used:, disk_data_mib_available:, disk_data_mib_total:, disk_vm_mib_available:, disk_vm_mib_total:, memory_mib_available:, memory_mib_margin:, memory_mib_total:, memory_mib_used:, vm_network_count_in_use:, vm_network_count_total:) - # @param id [String] - # @param cpu_cores_available [Integer] - # @param cpu_cores_margin [Integer] - # @param cpu_cores_total [Integer] - # @param cpu_cores_used [Integer] - # @param disk_data_mib_available [Integer] - # @param disk_data_mib_total [Integer] - # @param disk_vm_mib_available [Integer] - # @param disk_vm_mib_total [Integer] - # @param memory_mib_available [Integer] - # @param memory_mib_margin [Integer] - # @param memory_mib_total [Integer] - # @param memory_mib_used [Integer] - # @param vm_network_count_in_use [Integer] - # @param vm_network_count_total [Integer] - end - end - end -end diff --git a/lib/vers/models/api/telemetry_get_info_params.rb b/lib/vers/models/api/telemetry_get_info_params.rb deleted file mode 100644 index e6949cd..0000000 --- a/lib/vers/models/api/telemetry_get_info_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Telemetry#get_info - class TelemetryGetInfoParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/vm_branch_request.rb b/lib/vers/models/api/vm_branch_request.rb deleted file mode 100644 index 5ed249c..0000000 --- a/lib/vers/models/api/vm_branch_request.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class VmBranchRequest < Vers::Internal::Type::BaseModel - # @!attribute alias_ - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!method initialize(alias_: nil) - # @param alias_ [String, nil] - end - end - end -end diff --git a/lib/vers/models/api/vm_branch_response.rb b/lib/vers/models/api/vm_branch_response.rb deleted file mode 100644 index 806b3a7..0000000 --- a/lib/vers/models/api/vm_branch_response.rb +++ /dev/null @@ -1,221 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#branch - class VmBranchResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::VmBranchResponse::Data] - required :data, -> { Vers::Models::API::VmBranchResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::VmBranchResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::VmBranchResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::VmBranchResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::VmBranchResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::VmBranchResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The ID of the VM. - # - # @return [String] - required :id, String - - # @!attribute children - # The IDs of direct children branched from this VM. - # - # @return [Array] - required :children, Vers::Internal::Type::ArrayOf[String] - - # @!attribute cluster_id - # The VM's cluster ID - # - # @return [String] - required :cluster_id, String - - # @!attribute fs_size_mib - # What is the size of the "disk" allocated to this VM - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute ip_address - # The VM's local IP address on the VM subnet - # - # @return [String] - required :ip_address, String - - # @!attribute mem_size_mib - # How much RAM is allocated to this VM - # - # @return [Integer] - required :mem_size_mib, Integer - - # @!attribute network_info - # The VM's network configuration - # - # @return [Vers::Models::API::VmBranchResponse::Data::NetworkInfo] - required :network_info, -> { Vers::Models::API::VmBranchResponse::Data::NetworkInfo } - - # @!attribute state - # Whether the VM is running, paused, or not started. - # - # @return [Symbol, Vers::Models::API::VmBranchResponse::Data::State] - required :state, enum: -> { Vers::Models::API::VmBranchResponse::Data::State } - - # @!attribute vcpu_count - # How many vCPUs were allocated to this VM - # - # @return [Integer] - required :vcpu_count, Integer - - # @!attribute alias_ - # Human-readable name assigned to the VM. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute parent_id - # The parent VM's ID, if present. If None, then this VM is a root VM. - # - # @return [String, nil] - optional :parent_id, String, nil?: true - - # @!method initialize(id:, children:, cluster_id:, fs_size_mib:, ip_address:, mem_size_mib:, network_info:, state:, vcpu_count:, alias_: nil, parent_id: nil) - # @param id [String] The ID of the VM. - # - # @param children [Array] The IDs of direct children branched from this VM. - # - # @param cluster_id [String] The VM's cluster ID - # - # @param fs_size_mib [Integer] What is the size of the "disk" allocated to this VM - # - # @param ip_address [String] The VM's local IP address on the VM subnet - # - # @param mem_size_mib [Integer] How much RAM is allocated to this VM - # - # @param network_info [Vers::Models::API::VmBranchResponse::Data::NetworkInfo] The VM's network configuration - # - # @param state [Symbol, Vers::Models::API::VmBranchResponse::Data::State] Whether the VM is running, paused, or not started. - # - # @param vcpu_count [Integer] How many vCPUs were allocated to this VM - # - # @param alias_ [String, nil] Human-readable name assigned to the VM. - # - # @param parent_id [String, nil] The parent VM's ID, if present. If None, then this VM is a root VM. - - # @see Vers::Models::API::VmBranchResponse::Data#network_info - class NetworkInfo < Vers::Internal::Type::BaseModel - # @!attribute guest_ip - # - # @return [String] - required :guest_ip, String - - # @!attribute guest_mac - # - # @return [String] - required :guest_mac, String - - # @!attribute ssh_port - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute tap0_ip - # - # @return [String] - required :tap0_ip, String - - # @!attribute tap0_name - # - # @return [String] - required :tap0_name, String - - # @!attribute vm_namespace - # - # @return [String] - required :vm_namespace, String - - # @!method initialize(guest_ip:, guest_mac:, ssh_port:, tap0_ip:, tap0_name:, vm_namespace:) - # The VM's network configuration - # - # @param guest_ip [String] - # @param guest_mac [String] - # @param ssh_port [Integer] - # @param tap0_ip [String] - # @param tap0_name [String] - # @param vm_namespace [String] - end - - # Whether the VM is running, paused, or not started. - # - # @see Vers::Models::API::VmBranchResponse::Data#state - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED = :"Not started" - RUNNING = :Running - PAUSED = :Paused - - # @!method self.values - # @return [Array] - end - end - - # @see Vers::Models::API::VmBranchResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_commit_request.rb b/lib/vers/models/api/vm_commit_request.rb deleted file mode 100644 index ef00777..0000000 --- a/lib/vers/models/api/vm_commit_request.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class VmCommitRequest < Vers::Internal::Type::BaseModel - # @!attribute tags - # - # @return [Array, nil] - optional :tags, Vers::Internal::Type::ArrayOf[String], nil?: true - - # @!method initialize(tags: nil) - # @param tags [Array, nil] - end - end - end -end diff --git a/lib/vers/models/api/vm_commit_response.rb b/lib/vers/models/api/vm_commit_response.rb deleted file mode 100644 index b85af14..0000000 --- a/lib/vers/models/api/vm_commit_response.rb +++ /dev/null @@ -1,95 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#commit - class VmCommitResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::VmCommitResponse::Data] - required :data, -> { Vers::API::VmCommitResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::VmCommitResponse::OperationCode] - required :operation_code, enum: -> { Vers::API::VmCommitResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::VmCommitResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::VmCommitResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::VmCommitResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute cluster_id - # - # @return [String] - required :cluster_id, String - - # @!attribute commit_id - # - # @return [String] - required :commit_id, String - - # @!attribute host_architecture - # - # @return [String] - required :host_architecture, String - - # @!method initialize(cluster_id:, commit_id:, host_architecture:) - # @param cluster_id [String] - # @param commit_id [String] - # @param host_architecture [String] - end - - # @see Vers::Models::API::VmCommitResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_delete_params.rb b/lib/vers/models/api/vm_delete_params.rb deleted file mode 100644 index 2f916dd..0000000 --- a/lib/vers/models/api/vm_delete_params.rb +++ /dev/null @@ -1,24 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#delete - class VmDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute recursive - # Delete children recursively - # - # @return [Boolean] - required :recursive, Vers::Internal::Type::Boolean - - # @!method initialize(recursive:, request_options: {}) - # @param recursive [Boolean] Delete children recursively - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/vm_delete_response.rb b/lib/vers/models/api/vm_delete_response.rb deleted file mode 100644 index 69154e8..0000000 --- a/lib/vers/models/api/vm_delete_response.rb +++ /dev/null @@ -1,117 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#delete - class VmDeleteResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - # - # @return [Vers::Models::API::VmDeleteResponse::Data] - required :data, -> { Vers::API::VmDeleteResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::VmDeleteResponse::OperationCode] - required :operation_code, enum: -> { Vers::API::VmDeleteResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # Some parameter documentations has been truncated, see - # {Vers::Models::API::VmDeleteResponse} for more details. - # - # @param data [Vers::Models::API::VmDeleteResponse::Data] A struct containing information about an attempted VM deletion request. Reports - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::VmDeleteResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::VmDeleteResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute deleted_ids - # - # @return [Array] - required :deleted_ids, Vers::Internal::Type::ArrayOf[String] - - # @!attribute errors - # - # @return [Array] - required :errors, -> { Vers::Internal::Type::ArrayOf[Vers::API::VmDeleteResponse::Data::Error] } - - # @!method initialize(deleted_ids:, errors:) - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - # - # @param deleted_ids [Array] - # @param errors [Array] - - class Error < Vers::Internal::Type::BaseModel - # @!attribute id - # - # @return [String] - required :id, String - - # @!attribute error - # - # @return [String] - required :error, String - - # @!method initialize(id:, error:) - # Contains a VM ID and the reason that it could not be deleted. - # - # @param id [String] - # @param error [String] - end - end - - # @see Vers::Models::API::VmDeleteResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_dto.rb b/lib/vers/models/api/vm_dto.rb deleted file mode 100644 index 37e7888..0000000 --- a/lib/vers/models/api/vm_dto.rb +++ /dev/null @@ -1,155 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class VmDto < Vers::Internal::Type::BaseModel - # @!attribute id - # The ID of the VM. - # - # @return [String] - required :id, String - - # @!attribute children - # The IDs of direct children branched from this VM. - # - # @return [Array] - required :children, Vers::Internal::Type::ArrayOf[String] - - # @!attribute cluster_id - # The VM's cluster ID - # - # @return [String] - required :cluster_id, String - - # @!attribute fs_size_mib - # What is the size of the "disk" allocated to this VM - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute ip_address - # The VM's local IP address on the VM subnet - # - # @return [String] - required :ip_address, String - - # @!attribute mem_size_mib - # How much RAM is allocated to this VM - # - # @return [Integer] - required :mem_size_mib, Integer - - # @!attribute network_info - # The VM's network configuration - # - # @return [Vers::Models::API::VmDto::NetworkInfo] - required :network_info, -> { Vers::API::VmDto::NetworkInfo } - - # @!attribute state - # Whether the VM is running, paused, or not started. - # - # @return [Symbol, Vers::Models::API::VmDto::State] - required :state, enum: -> { Vers::API::VmDto::State } - - # @!attribute vcpu_count - # How many vCPUs were allocated to this VM - # - # @return [Integer] - required :vcpu_count, Integer - - # @!attribute alias_ - # Human-readable name assigned to the VM. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute parent_id - # The parent VM's ID, if present. If None, then this VM is a root VM. - # - # @return [String, nil] - optional :parent_id, String, nil?: true - - # @!method initialize(id:, children:, cluster_id:, fs_size_mib:, ip_address:, mem_size_mib:, network_info:, state:, vcpu_count:, alias_: nil, parent_id: nil) - # @param id [String] The ID of the VM. - # - # @param children [Array] The IDs of direct children branched from this VM. - # - # @param cluster_id [String] The VM's cluster ID - # - # @param fs_size_mib [Integer] What is the size of the "disk" allocated to this VM - # - # @param ip_address [String] The VM's local IP address on the VM subnet - # - # @param mem_size_mib [Integer] How much RAM is allocated to this VM - # - # @param network_info [Vers::Models::API::VmDto::NetworkInfo] The VM's network configuration - # - # @param state [Symbol, Vers::Models::API::VmDto::State] Whether the VM is running, paused, or not started. - # - # @param vcpu_count [Integer] How many vCPUs were allocated to this VM - # - # @param alias_ [String, nil] Human-readable name assigned to the VM. - # - # @param parent_id [String, nil] The parent VM's ID, if present. If None, then this VM is a root VM. - - # @see Vers::Models::API::VmDto#network_info - class NetworkInfo < Vers::Internal::Type::BaseModel - # @!attribute guest_ip - # - # @return [String] - required :guest_ip, String - - # @!attribute guest_mac - # - # @return [String] - required :guest_mac, String - - # @!attribute ssh_port - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute tap0_ip - # - # @return [String] - required :tap0_ip, String - - # @!attribute tap0_name - # - # @return [String] - required :tap0_name, String - - # @!attribute vm_namespace - # - # @return [String] - required :vm_namespace, String - - # @!method initialize(guest_ip:, guest_mac:, ssh_port:, tap0_ip:, tap0_name:, vm_namespace:) - # The VM's network configuration - # - # @param guest_ip [String] - # @param guest_mac [String] - # @param ssh_port [Integer] - # @param tap0_ip [String] - # @param tap0_name [String] - # @param vm_namespace [String] - end - - # Whether the VM is running, paused, or not started. - # - # @see Vers::Models::API::VmDto#state - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED = :"Not started" - RUNNING = :Running - PAUSED = :Paused - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_get_ssh_key_params.rb b/lib/vers/models/api/vm_get_ssh_key_params.rb deleted file mode 100644 index 061d058..0000000 --- a/lib/vers/models/api/vm_get_ssh_key_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#get_ssh_key - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/vm_get_ssh_key_response.rb b/lib/vers/models/api/vm_get_ssh_key_response.rb deleted file mode 100644 index 7f6ef4a..0000000 --- a/lib/vers/models/api/vm_get_ssh_key_response.rb +++ /dev/null @@ -1,72 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#get_ssh_key - class VmGetSSHKeyResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [String] - required :data, String - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::VmGetSSHKeyResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::VmGetSSHKeyResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [String] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::VmGetSSHKeyResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::VmGetSSHKeyResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_list_params.rb b/lib/vers/models/api/vm_list_params.rb deleted file mode 100644 index 26dc0db..0000000 --- a/lib/vers/models/api/vm_list_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#list - class VmListParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/vm_list_response.rb b/lib/vers/models/api/vm_list_response.rb deleted file mode 100644 index 062322b..0000000 --- a/lib/vers/models/api/vm_list_response.rb +++ /dev/null @@ -1,220 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#list - class VmListResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Array] - required :data, -> { Vers::Internal::Type::ArrayOf[Vers::Models::API::VmListResponse::Data] } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::VmListResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::VmListResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Array] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::VmListResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The ID of the VM. - # - # @return [String] - required :id, String - - # @!attribute children - # The IDs of direct children branched from this VM. - # - # @return [Array] - required :children, Vers::Internal::Type::ArrayOf[String] - - # @!attribute cluster_id - # The VM's cluster ID - # - # @return [String] - required :cluster_id, String - - # @!attribute fs_size_mib - # What is the size of the "disk" allocated to this VM - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute ip_address - # The VM's local IP address on the VM subnet - # - # @return [String] - required :ip_address, String - - # @!attribute mem_size_mib - # How much RAM is allocated to this VM - # - # @return [Integer] - required :mem_size_mib, Integer - - # @!attribute network_info - # The VM's network configuration - # - # @return [Vers::Models::API::VmListResponse::Data::NetworkInfo] - required :network_info, -> { Vers::Models::API::VmListResponse::Data::NetworkInfo } - - # @!attribute state - # Whether the VM is running, paused, or not started. - # - # @return [Symbol, Vers::Models::API::VmListResponse::Data::State] - required :state, enum: -> { Vers::Models::API::VmListResponse::Data::State } - - # @!attribute vcpu_count - # How many vCPUs were allocated to this VM - # - # @return [Integer] - required :vcpu_count, Integer - - # @!attribute alias_ - # Human-readable name assigned to the VM. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute parent_id - # The parent VM's ID, if present. If None, then this VM is a root VM. - # - # @return [String, nil] - optional :parent_id, String, nil?: true - - # @!method initialize(id:, children:, cluster_id:, fs_size_mib:, ip_address:, mem_size_mib:, network_info:, state:, vcpu_count:, alias_: nil, parent_id: nil) - # @param id [String] The ID of the VM. - # - # @param children [Array] The IDs of direct children branched from this VM. - # - # @param cluster_id [String] The VM's cluster ID - # - # @param fs_size_mib [Integer] What is the size of the "disk" allocated to this VM - # - # @param ip_address [String] The VM's local IP address on the VM subnet - # - # @param mem_size_mib [Integer] How much RAM is allocated to this VM - # - # @param network_info [Vers::Models::API::VmListResponse::Data::NetworkInfo] The VM's network configuration - # - # @param state [Symbol, Vers::Models::API::VmListResponse::Data::State] Whether the VM is running, paused, or not started. - # - # @param vcpu_count [Integer] How many vCPUs were allocated to this VM - # - # @param alias_ [String, nil] Human-readable name assigned to the VM. - # - # @param parent_id [String, nil] The parent VM's ID, if present. If None, then this VM is a root VM. - - # @see Vers::Models::API::VmListResponse::Data#network_info - class NetworkInfo < Vers::Internal::Type::BaseModel - # @!attribute guest_ip - # - # @return [String] - required :guest_ip, String - - # @!attribute guest_mac - # - # @return [String] - required :guest_mac, String - - # @!attribute ssh_port - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute tap0_ip - # - # @return [String] - required :tap0_ip, String - - # @!attribute tap0_name - # - # @return [String] - required :tap0_name, String - - # @!attribute vm_namespace - # - # @return [String] - required :vm_namespace, String - - # @!method initialize(guest_ip:, guest_mac:, ssh_port:, tap0_ip:, tap0_name:, vm_namespace:) - # The VM's network configuration - # - # @param guest_ip [String] - # @param guest_mac [String] - # @param ssh_port [Integer] - # @param tap0_ip [String] - # @param tap0_name [String] - # @param vm_namespace [String] - end - - # Whether the VM is running, paused, or not started. - # - # @see Vers::Models::API::VmListResponse::Data#state - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED = :"Not started" - RUNNING = :Running - PAUSED = :Paused - - # @!method self.values - # @return [Array] - end - end - - # @see Vers::Models::API::VmListResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_patch_request.rb b/lib/vers/models/api/vm_patch_request.rb deleted file mode 100644 index da88847..0000000 --- a/lib/vers/models/api/vm_patch_request.rb +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - class VmPatchRequest < Vers::Internal::Type::BaseModel - # @!attribute alias_ - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute state - # - # @return [Symbol, Vers::Models::API::VmPatchRequest::State, nil] - optional :state, enum: -> { Vers::API::VmPatchRequest::State }, nil?: true - - # @!method initialize(alias_: nil, state: nil) - # @param alias_ [String, nil] - # @param state [Symbol, Vers::Models::API::VmPatchRequest::State, nil] - - # @see Vers::Models::API::VmPatchRequest#state - module State - extend Vers::Internal::Type::Enum - - RUNNING = :Running - PAUSED = :Paused - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_retrieve_params.rb b/lib/vers/models/api/vm_retrieve_params.rb deleted file mode 100644 index 13e7f1e..0000000 --- a/lib/vers/models/api/vm_retrieve_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#retrieve - class VmRetrieveParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/vm_retrieve_response.rb b/lib/vers/models/api/vm_retrieve_response.rb deleted file mode 100644 index 4a3ebea..0000000 --- a/lib/vers/models/api/vm_retrieve_response.rb +++ /dev/null @@ -1,221 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#retrieve - class VmRetrieveResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::VmRetrieveResponse::Data] - required :data, -> { Vers::Models::API::VmRetrieveResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::VmRetrieveResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::VmRetrieveResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::VmRetrieveResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::VmRetrieveResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::VmRetrieveResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The ID of the VM. - # - # @return [String] - required :id, String - - # @!attribute children - # The IDs of direct children branched from this VM. - # - # @return [Array] - required :children, Vers::Internal::Type::ArrayOf[String] - - # @!attribute cluster_id - # The VM's cluster ID - # - # @return [String] - required :cluster_id, String - - # @!attribute fs_size_mib - # What is the size of the "disk" allocated to this VM - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute ip_address - # The VM's local IP address on the VM subnet - # - # @return [String] - required :ip_address, String - - # @!attribute mem_size_mib - # How much RAM is allocated to this VM - # - # @return [Integer] - required :mem_size_mib, Integer - - # @!attribute network_info - # The VM's network configuration - # - # @return [Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo] - required :network_info, -> { Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo } - - # @!attribute state - # Whether the VM is running, paused, or not started. - # - # @return [Symbol, Vers::Models::API::VmRetrieveResponse::Data::State] - required :state, enum: -> { Vers::Models::API::VmRetrieveResponse::Data::State } - - # @!attribute vcpu_count - # How many vCPUs were allocated to this VM - # - # @return [Integer] - required :vcpu_count, Integer - - # @!attribute alias_ - # Human-readable name assigned to the VM. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute parent_id - # The parent VM's ID, if present. If None, then this VM is a root VM. - # - # @return [String, nil] - optional :parent_id, String, nil?: true - - # @!method initialize(id:, children:, cluster_id:, fs_size_mib:, ip_address:, mem_size_mib:, network_info:, state:, vcpu_count:, alias_: nil, parent_id: nil) - # @param id [String] The ID of the VM. - # - # @param children [Array] The IDs of direct children branched from this VM. - # - # @param cluster_id [String] The VM's cluster ID - # - # @param fs_size_mib [Integer] What is the size of the "disk" allocated to this VM - # - # @param ip_address [String] The VM's local IP address on the VM subnet - # - # @param mem_size_mib [Integer] How much RAM is allocated to this VM - # - # @param network_info [Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo] The VM's network configuration - # - # @param state [Symbol, Vers::Models::API::VmRetrieveResponse::Data::State] Whether the VM is running, paused, or not started. - # - # @param vcpu_count [Integer] How many vCPUs were allocated to this VM - # - # @param alias_ [String, nil] Human-readable name assigned to the VM. - # - # @param parent_id [String, nil] The parent VM's ID, if present. If None, then this VM is a root VM. - - # @see Vers::Models::API::VmRetrieveResponse::Data#network_info - class NetworkInfo < Vers::Internal::Type::BaseModel - # @!attribute guest_ip - # - # @return [String] - required :guest_ip, String - - # @!attribute guest_mac - # - # @return [String] - required :guest_mac, String - - # @!attribute ssh_port - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute tap0_ip - # - # @return [String] - required :tap0_ip, String - - # @!attribute tap0_name - # - # @return [String] - required :tap0_name, String - - # @!attribute vm_namespace - # - # @return [String] - required :vm_namespace, String - - # @!method initialize(guest_ip:, guest_mac:, ssh_port:, tap0_ip:, tap0_name:, vm_namespace:) - # The VM's network configuration - # - # @param guest_ip [String] - # @param guest_mac [String] - # @param ssh_port [Integer] - # @param tap0_ip [String] - # @param tap0_name [String] - # @param vm_namespace [String] - end - - # Whether the VM is running, paused, or not started. - # - # @see Vers::Models::API::VmRetrieveResponse::Data#state - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED = :"Not started" - RUNNING = :Running - PAUSED = :Paused - - # @!method self.values - # @return [Array] - end - end - - # @see Vers::Models::API::VmRetrieveResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/api/vm_update_params.rb b/lib/vers/models/api/vm_update_params.rb deleted file mode 100644 index 301f630..0000000 --- a/lib/vers/models/api/vm_update_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#update - class VmUpdateParams < Vers::Models::API::VmPatchRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/api/vm_update_response.rb b/lib/vers/models/api/vm_update_response.rb deleted file mode 100644 index af2be21..0000000 --- a/lib/vers/models/api/vm_update_response.rb +++ /dev/null @@ -1,221 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module API - # @see Vers::Resources::API::Vm#update - class VmUpdateResponse < Vers::Internal::Type::BaseModel - # @!attribute data - # - # @return [Vers::Models::API::VmUpdateResponse::Data] - required :data, -> { Vers::Models::API::VmUpdateResponse::Data } - - # @!attribute duration_ns - # - # @return [Integer] - required :duration_ns, Integer - - # @!attribute operation_code - # - # @return [Symbol, Vers::Models::API::VmUpdateResponse::OperationCode] - required :operation_code, enum: -> { Vers::Models::API::VmUpdateResponse::OperationCode } - - # @!attribute operation_id - # - # @return [String] - required :operation_id, String - - # @!attribute time_start - # Unix epoch time (secs) - # - # @return [Integer] - required :time_start, Integer - - # @!method initialize(data:, duration_ns:, operation_code:, operation_id:, time_start:) - # @param data [Vers::Models::API::VmUpdateResponse::Data] - # - # @param duration_ns [Integer] - # - # @param operation_code [Symbol, Vers::Models::API::VmUpdateResponse::OperationCode] - # - # @param operation_id [String] - # - # @param time_start [Integer] Unix epoch time (secs) - - # @see Vers::Models::API::VmUpdateResponse#data - class Data < Vers::Internal::Type::BaseModel - # @!attribute id - # The ID of the VM. - # - # @return [String] - required :id, String - - # @!attribute children - # The IDs of direct children branched from this VM. - # - # @return [Array] - required :children, Vers::Internal::Type::ArrayOf[String] - - # @!attribute cluster_id - # The VM's cluster ID - # - # @return [String] - required :cluster_id, String - - # @!attribute fs_size_mib - # What is the size of the "disk" allocated to this VM - # - # @return [Integer] - required :fs_size_mib, Integer - - # @!attribute ip_address - # The VM's local IP address on the VM subnet - # - # @return [String] - required :ip_address, String - - # @!attribute mem_size_mib - # How much RAM is allocated to this VM - # - # @return [Integer] - required :mem_size_mib, Integer - - # @!attribute network_info - # The VM's network configuration - # - # @return [Vers::Models::API::VmUpdateResponse::Data::NetworkInfo] - required :network_info, -> { Vers::Models::API::VmUpdateResponse::Data::NetworkInfo } - - # @!attribute state - # Whether the VM is running, paused, or not started. - # - # @return [Symbol, Vers::Models::API::VmUpdateResponse::Data::State] - required :state, enum: -> { Vers::Models::API::VmUpdateResponse::Data::State } - - # @!attribute vcpu_count - # How many vCPUs were allocated to this VM - # - # @return [Integer] - required :vcpu_count, Integer - - # @!attribute alias_ - # Human-readable name assigned to the VM. - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute parent_id - # The parent VM's ID, if present. If None, then this VM is a root VM. - # - # @return [String, nil] - optional :parent_id, String, nil?: true - - # @!method initialize(id:, children:, cluster_id:, fs_size_mib:, ip_address:, mem_size_mib:, network_info:, state:, vcpu_count:, alias_: nil, parent_id: nil) - # @param id [String] The ID of the VM. - # - # @param children [Array] The IDs of direct children branched from this VM. - # - # @param cluster_id [String] The VM's cluster ID - # - # @param fs_size_mib [Integer] What is the size of the "disk" allocated to this VM - # - # @param ip_address [String] The VM's local IP address on the VM subnet - # - # @param mem_size_mib [Integer] How much RAM is allocated to this VM - # - # @param network_info [Vers::Models::API::VmUpdateResponse::Data::NetworkInfo] The VM's network configuration - # - # @param state [Symbol, Vers::Models::API::VmUpdateResponse::Data::State] Whether the VM is running, paused, or not started. - # - # @param vcpu_count [Integer] How many vCPUs were allocated to this VM - # - # @param alias_ [String, nil] Human-readable name assigned to the VM. - # - # @param parent_id [String, nil] The parent VM's ID, if present. If None, then this VM is a root VM. - - # @see Vers::Models::API::VmUpdateResponse::Data#network_info - class NetworkInfo < Vers::Internal::Type::BaseModel - # @!attribute guest_ip - # - # @return [String] - required :guest_ip, String - - # @!attribute guest_mac - # - # @return [String] - required :guest_mac, String - - # @!attribute ssh_port - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute tap0_ip - # - # @return [String] - required :tap0_ip, String - - # @!attribute tap0_name - # - # @return [String] - required :tap0_name, String - - # @!attribute vm_namespace - # - # @return [String] - required :vm_namespace, String - - # @!method initialize(guest_ip:, guest_mac:, ssh_port:, tap0_ip:, tap0_name:, vm_namespace:) - # The VM's network configuration - # - # @param guest_ip [String] - # @param guest_mac [String] - # @param ssh_port [Integer] - # @param tap0_ip [String] - # @param tap0_name [String] - # @param vm_namespace [String] - end - - # Whether the VM is running, paused, or not started. - # - # @see Vers::Models::API::VmUpdateResponse::Data#state - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED = :"Not started" - RUNNING = :Running - PAUSED = :Paused - - # @!method self.values - # @return [Array] - end - end - - # @see Vers::Models::API::VmUpdateResponse#operation_code - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS = :list_clusters - GET_CLUSTER = :get_cluster - CREATE_CLUSTER = :create_cluster - DELETE_CLUSTER = :delete_cluster - UPDATE_CLUSTER = :update_cluster - GET_CLUSTER_SSH_KEY = :get_cluster_ssh_key - LIST_VMS = :list_vms - GET_VM = :get_vm - UPDATE_VM = :update_vm - BRANCH_VM = :branch_vm - COMMIT_VM = :commit_vm - DELETE_VM = :delete_vm - GET_VM_SSH_KEY = :get_vm_ssh_key - UPLOAD_ROOTFS = :upload_rootfs - DELETE_ROOTFS = :delete_rootfs - LIST_ROOTFS = :list_rootfs - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/orchestrator/error_response.rb b/lib/vers/models/orchestrator/error_response.rb new file mode 100644 index 0000000..d8b502a --- /dev/null +++ b/lib/vers/models/orchestrator/error_response.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + class ErrorResponse < Vers::Internal::Type::BaseModel + # @!attribute error + # Reason of error + # + # @return [String, nil] + optional :error, String + + # @!attribute success + # Is always: false + # + # @return [Boolean, nil] + optional :success, Vers::Internal::Type::Boolean + + # @!method initialize(error: nil, success: nil) + # @param error [String] Reason of error + # + # @param success [Boolean] Is always: false + end + end + end +end diff --git a/lib/vers/models/orchestrator/new_root_request.rb b/lib/vers/models/orchestrator/new_root_request.rb new file mode 100644 index 0000000..1d35e32 --- /dev/null +++ b/lib/vers/models/orchestrator/new_root_request.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + class NewRootRequest < Vers::Internal::Type::BaseModel + # @!attribute vm_config + # Struct representing configuration options common to all VMs + # + # @return [Vers::Models::Orchestrator::NewRootRequest::VmConfig] + required :vm_config, -> { Vers::Orchestrator::NewRootRequest::VmConfig } + + # @!method initialize(vm_config:) + # @param vm_config [Vers::Models::Orchestrator::NewRootRequest::VmConfig] Struct representing configuration options common to all VMs + + # @see Vers::Models::Orchestrator::NewRootRequest#vm_config + class VmConfig < Vers::Internal::Type::BaseModel + # @!attribute fs_size_mib + # The disk size, in MiB. + # + # @return [Integer, nil] + optional :fs_size_mib, Integer, nil?: true + + # @!attribute image_name + # The filesystem base image name. Currently, must be 'default' + # + # @return [String, nil] + optional :image_name, String, nil?: true + + # @!attribute kernel_name + # The kernel name. Currently, must be 'default.bin' + # + # @return [String, nil] + optional :kernel_name, String, nil?: true + + # @!attribute mem_size_mib + # The RAM size, in MiB. + # + # @return [Integer, nil] + optional :mem_size_mib, Integer, nil?: true + + # @!attribute vcpu_count + # How many vCPUs to allocate to this VM (and its children) + # + # @return [Integer, nil] + optional :vcpu_count, Integer, nil?: true + + # @!method initialize(fs_size_mib: nil, image_name: nil, kernel_name: nil, mem_size_mib: nil, vcpu_count: nil) + # Struct representing configuration options common to all VMs + # + # @param fs_size_mib [Integer, nil] The disk size, in MiB. + # + # @param image_name [String, nil] The filesystem base image name. Currently, must be 'default' + # + # @param kernel_name [String, nil] The kernel name. Currently, must be 'default.bin' + # + # @param mem_size_mib [Integer, nil] The RAM size, in MiB. + # + # @param vcpu_count [Integer, nil] How many vCPUs to allocate to this VM (and its children) + end + end + end + end +end diff --git a/lib/vers/models/orchestrator/new_vm_response.rb b/lib/vers/models/orchestrator/new_vm_response.rb new file mode 100644 index 0000000..54c2761 --- /dev/null +++ b/lib/vers/models/orchestrator/new_vm_response.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#branch + class NewVmResponse < Vers::Internal::Type::BaseModel + # @!attribute id + # The VM ID, a (v4) UUID + # + # @return [String] + required :id, String + + # @!method initialize(id:) + # @param id [String] The VM ID, a (v4) UUID + end + end + end +end diff --git a/lib/vers/models/api/cluster_get_ssh_key_params.rb b/lib/vers/models/orchestrator/node_list_vms_params.rb similarity index 70% rename from lib/vers/models/api/cluster_get_ssh_key_params.rb rename to lib/vers/models/orchestrator/node_list_vms_params.rb index 5841482..714f19a 100644 --- a/lib/vers/models/api/cluster_get_ssh_key_params.rb +++ b/lib/vers/models/orchestrator/node_list_vms_params.rb @@ -2,9 +2,9 @@ module Vers module Models - module API - # @see Vers::Resources::API::Cluster#get_ssh_key - class ClusterGetSSHKeyParams < Vers::Internal::Type::BaseModel + module Orchestrator + # @see Vers::Resources::Orchestrator::Node#list_vms + class NodeListVmsParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/lib/vers/models/api/vm_branch_params.rb b/lib/vers/models/orchestrator/vm_branch_params.rb similarity index 71% rename from lib/vers/models/api/vm_branch_params.rb rename to lib/vers/models/orchestrator/vm_branch_params.rb index 79a42f5..2056de3 100644 --- a/lib/vers/models/api/vm_branch_params.rb +++ b/lib/vers/models/orchestrator/vm_branch_params.rb @@ -2,9 +2,9 @@ module Vers module Models - module API - # @see Vers::Resources::API::Vm#branch - class VmBranchParams < Vers::Models::API::VmBranchRequest + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#branch + class VmBranchParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/lib/vers/models/orchestrator/vm_branch_response.rb b/lib/vers/models/orchestrator/vm_branch_response.rb new file mode 100644 index 0000000..f7fc9a9 --- /dev/null +++ b/lib/vers/models/orchestrator/vm_branch_response.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + class VmBranchResponse < Vers::Internal::Type::BaseModel + # @!attribute vm_id + # The ID of the newly-created VM, a (v4) UUID + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:) + # Response body for POST /api/vm/{vm_id}/branch + # + # @param vm_id [String] The ID of the newly-created VM, a (v4) UUID + end + end + end +end diff --git a/lib/vers/models/api/vm_commit_params.rb b/lib/vers/models/orchestrator/vm_commit_params.rb similarity index 71% rename from lib/vers/models/api/vm_commit_params.rb rename to lib/vers/models/orchestrator/vm_commit_params.rb index 1190fd5..e0640e9 100644 --- a/lib/vers/models/api/vm_commit_params.rb +++ b/lib/vers/models/orchestrator/vm_commit_params.rb @@ -2,9 +2,9 @@ module Vers module Models - module API - # @see Vers::Resources::API::Vm#commit - class VmCommitParams < Vers::Models::API::VmCommitRequest + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#commit + class VmCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/lib/vers/models/orchestrator/vm_commit_response.rb b/lib/vers/models/orchestrator/vm_commit_response.rb new file mode 100644 index 0000000..486ee51 --- /dev/null +++ b/lib/vers/models/orchestrator/vm_commit_response.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#commit + class VmCommitResponse < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID, a (v4) UUID + # + # @return [String] + required :commit_id, String + + # @!attribute host_architecture + # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + # + # @return [String] + required :host_architecture, String + + # @!method initialize(commit_id:, host_architecture:) + # The response body for POST /api/vm/{vm_id}/commit + # + # @param commit_id [String] The commit ID, a (v4) UUID + # + # @param host_architecture [String] The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + end + end + end +end diff --git a/lib/vers/models/api/cluster_list_params.rb b/lib/vers/models/orchestrator/vm_create_root_params.rb similarity index 68% rename from lib/vers/models/api/cluster_list_params.rb rename to lib/vers/models/orchestrator/vm_create_root_params.rb index 0bf98d1..1af4109 100644 --- a/lib/vers/models/api/cluster_list_params.rb +++ b/lib/vers/models/orchestrator/vm_create_root_params.rb @@ -2,9 +2,9 @@ module Vers module Models - module API - # @see Vers::Resources::API::Cluster#list - class ClusterListParams < Vers::Internal::Type::BaseModel + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#create_root + class VmCreateRootParams < Vers::Models::Orchestrator::NewRootRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/lib/vers/models/api/cluster_retrieve_params.rb b/lib/vers/models/orchestrator/vm_delete_params.rb similarity index 71% rename from lib/vers/models/api/cluster_retrieve_params.rb rename to lib/vers/models/orchestrator/vm_delete_params.rb index bb9cc18..948abc5 100644 --- a/lib/vers/models/api/cluster_retrieve_params.rb +++ b/lib/vers/models/orchestrator/vm_delete_params.rb @@ -2,9 +2,9 @@ module Vers module Models - module API - # @see Vers::Resources::API::Cluster#retrieve - class ClusterRetrieveParams < Vers::Internal::Type::BaseModel + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#delete + class VmDeleteParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/lib/vers/models/orchestrator/vm_delete_response.rb b/lib/vers/models/orchestrator/vm_delete_response.rb new file mode 100644 index 0000000..68ebd3f --- /dev/null +++ b/lib/vers/models/orchestrator/vm_delete_response.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#delete + class VmDeleteResponse < Vers::Internal::Type::BaseModel + # @!attribute deleted_ids + # + # @return [Array] + required :deleted_ids, Vers::Internal::Type::ArrayOf[String] + + # @!method initialize(deleted_ids:) + # Response body for DELETE /api/vm/{vm_id} + # + # @param deleted_ids [Array] + end + end + end +end diff --git a/lib/vers/models/orchestrator/vm_from_commit_request.rb b/lib/vers/models/orchestrator/vm_from_commit_request.rb new file mode 100644 index 0000000..ade3160 --- /dev/null +++ b/lib/vers/models/orchestrator/vm_from_commit_request.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + class VmFromCommitRequest < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # + # @return [String] + required :commit_id, String + + # @!method initialize(commit_id:) + # Request body for POST /api/vm/from_commit + # + # @param commit_id [String] + end + end + end +end diff --git a/lib/vers/models/orchestrator/vm_list_all_response.rb b/lib/vers/models/orchestrator/vm_list_all_response.rb new file mode 100644 index 0000000..9427f5b --- /dev/null +++ b/lib/vers/models/orchestrator/vm_list_all_response.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + # @see Vers::Resources::Orchestrator::Node#list_vms + class VmListAllResponse < Vers::Internal::Type::BaseModel + # @!attribute vms + # A list of nodes, each of which is a "root VM" with one or more children + # + # @return [Array] + required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::Orchestrator::VmListAllResponse::Vm] } + + # @!method initialize(vms:) + # Response body for GET /api/vm + # + # @param vms [Array] A list of nodes, each of which is a "root VM" with one or more children + + class Vm < Vers::Internal::Type::BaseModel + # @!attribute vm_id + # The VM ID, a (v4) UUID. + # + # @return [String] + required :vm_id, String + + # @!attribute parent_id + # The VM's parent ID + # + # @return [String, nil] + optional :parent_id, String, nil?: true + + # @!method initialize(vm_id:, parent_id: nil) + # Represents a tree node for a VM + # + # @param vm_id [String] The VM ID, a (v4) UUID. + # + # @param parent_id [String, nil] The VM's parent ID + end + end + end + end +end diff --git a/lib/vers/models/orchestrator/vm_restore_from_commit_params.rb b/lib/vers/models/orchestrator/vm_restore_from_commit_params.rb new file mode 100644 index 0000000..80ea114 --- /dev/null +++ b/lib/vers/models/orchestrator/vm_restore_from_commit_params.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#restore_from_commit + class VmRestoreFromCommitParams < Vers::Models::Orchestrator::VmFromCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end + end +end diff --git a/lib/vers/models/api/cluster_delete_params.rb b/lib/vers/models/orchestrator/vm_update_state_params.rb similarity index 67% rename from lib/vers/models/api/cluster_delete_params.rb rename to lib/vers/models/orchestrator/vm_update_state_params.rb index 2e06428..8dd6543 100644 --- a/lib/vers/models/api/cluster_delete_params.rb +++ b/lib/vers/models/orchestrator/vm_update_state_params.rb @@ -2,9 +2,9 @@ module Vers module Models - module API - # @see Vers::Resources::API::Cluster#delete - class ClusterDeleteParams < Vers::Internal::Type::BaseModel + module Orchestrator + # @see Vers::Resources::Orchestrator::Vm#update_state + class VmUpdateStateParams < Vers::Models::Orchestrator::VmUpdateStateRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/lib/vers/models/orchestrator/vm_update_state_request.rb b/lib/vers/models/orchestrator/vm_update_state_request.rb new file mode 100644 index 0000000..3a529f7 --- /dev/null +++ b/lib/vers/models/orchestrator/vm_update_state_request.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +module Vers + module Models + module Orchestrator + class VmUpdateStateRequest < Vers::Internal::Type::BaseModel + # @!attribute state + # The requested state for the VM + # + # @return [Symbol, Vers::Models::Orchestrator::VmUpdateStateRequest::State] + required :state, enum: -> { Vers::Orchestrator::VmUpdateStateRequest::State } + + # @!method initialize(state:) + # Request body for PATCH /api/vm/{vm_id}/state + # + # @param state [Symbol, Vers::Models::Orchestrator::VmUpdateStateRequest::State] The requested state for the VM + + # The requested state for the VM + # + # @see Vers::Models::Orchestrator::VmUpdateStateRequest#state + module State + extend Vers::Internal::Type::Enum + + PAUSED = :Paused + RUNNING = :Running + + # @!method self.values + # @return [Array] + end + end + end + end +end diff --git a/lib/vers/resources/api.rb b/lib/vers/resources/api.rb deleted file mode 100644 index b059ea1..0000000 --- a/lib/vers/resources/api.rb +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class API - # @return [Vers::Resources::API::Cluster] - attr_reader :cluster - - # @return [Vers::Resources::API::Vm] - attr_reader :vm - - # @return [Vers::Resources::API::Rootfs] - attr_reader :rootfs - - # @return [Vers::Resources::API::Health] - attr_reader :health - - # @return [Vers::Resources::API::Telemetry] - attr_reader :telemetry - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - @cluster = Vers::Resources::API::Cluster.new(client: client) - @vm = Vers::Resources::API::Vm.new(client: client) - @rootfs = Vers::Resources::API::Rootfs.new(client: client) - @health = Vers::Resources::API::Health.new(client: client) - @telemetry = Vers::Resources::API::Telemetry.new(client: client) - end - end - end -end diff --git a/lib/vers/resources/api/cluster.rb b/lib/vers/resources/api/cluster.rb deleted file mode 100644 index 7cd0e42..0000000 --- a/lib/vers/resources/api/cluster.rb +++ /dev/null @@ -1,144 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class API - class Cluster - # Create a new cluster. - # - # @overload create(cluster_create_request:, request_options: {}) - # - # @param cluster_create_request [Vers::API::ClusterCreateRequest] - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::ClusterCreateResponse] - # - # @see Vers::Models::API::ClusterCreateParams - def create(params) - parsed, options = Vers::API::ClusterCreateParams.dump_request(params) - case parsed - in {cluster_create_request: Hash => union, **rest} - parsed = {**rest, **union} - else - end - @client.request( - method: :post, - path: "api/cluster", - body: parsed, - model: Vers::Models::API::ClusterCreateResponse, - options: options - ) - end - - # Retrieve information on a particular cluster. - # - # @overload retrieve(cluster_id_or_alias, request_options: {}) - # - # @param cluster_id_or_alias [String] Unique cluster identifier - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::ClusterRetrieveResponse] - # - # @see Vers::Models::API::ClusterRetrieveParams - def retrieve(cluster_id_or_alias, params = {}) - @client.request( - method: :get, - path: ["api/cluster/%1$s", cluster_id_or_alias], - model: Vers::Models::API::ClusterRetrieveResponse, - options: params[:request_options] - ) - end - - # Update a cluster's configuration - # - # @overload update(cluster_id_or_alias, alias_: nil, request_options: {}) - # - # @param cluster_id_or_alias [String] Unique cluster identifier - # - # @param alias_ [String, nil] - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::ClusterUpdateResponse] - # - # @see Vers::Models::API::ClusterUpdateParams - def update(cluster_id_or_alias, params = {}) - parsed, options = Vers::API::ClusterUpdateParams.dump_request(params) - @client.request( - method: :patch, - path: ["api/cluster/%1$s", cluster_id_or_alias], - body: parsed, - model: Vers::Models::API::ClusterUpdateResponse, - options: options - ) - end - - # List all clusters. - # - # @overload list(request_options: {}) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::ClusterListResponse] - # - # @see Vers::Models::API::ClusterListParams - def list(params = {}) - @client.request( - method: :get, - path: "api/cluster", - model: Vers::Models::API::ClusterListResponse, - options: params[:request_options] - ) - end - - # Delete a cluster. - # - # @overload delete(cluster_id_or_alias, request_options: {}) - # - # @param cluster_id_or_alias [String] Unique cluster identifier - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::ClusterDeleteResponse] - # - # @see Vers::Models::API::ClusterDeleteParams - def delete(cluster_id_or_alias, params = {}) - @client.request( - method: :delete, - path: ["api/cluster/%1$s", cluster_id_or_alias], - model: Vers::API::ClusterDeleteResponse, - options: params[:request_options] - ) - end - - # Get the SSH private key for VM access - # - # @overload get_ssh_key(cluster_id_or_alias, request_options: {}) - # - # @param cluster_id_or_alias [String] Unique cluster identifier - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::ClusterGetSSHKeyResponse] - # - # @see Vers::Models::API::ClusterGetSSHKeyParams - def get_ssh_key(cluster_id_or_alias, params = {}) - @client.request( - method: :get, - path: ["api/cluster/%1$s/ssh_key", cluster_id_or_alias], - model: Vers::Models::API::ClusterGetSSHKeyResponse, - options: params[:request_options] - ) - end - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - end - end - end - end -end diff --git a/lib/vers/resources/api/rootfs.rb b/lib/vers/resources/api/rootfs.rb deleted file mode 100644 index 054f3d2..0000000 --- a/lib/vers/resources/api/rootfs.rb +++ /dev/null @@ -1,79 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class API - class Rootfs - # List all available rootfs names on the server. - # - # @overload list(request_options: {}) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::RootfListResponse] - # - # @see Vers::Models::API::RootfListParams - def list(params = {}) - @client.request( - method: :get, - path: "api/rootfs", - model: Vers::Models::API::RootfListResponse, - options: params[:request_options] - ) - end - - # Delete an existing rootfs from the server. - # - # @overload delete(rootfs_id, request_options: {}) - # - # @param rootfs_id [String] Identifier for the rootfs to delete - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::RootfDeleteResponse] - # - # @see Vers::Models::API::RootfDeleteParams - def delete(rootfs_id, params = {}) - @client.request( - method: :delete, - path: ["api/rootfs/%1$s", rootfs_id], - model: Vers::Models::API::RootfDeleteResponse, - options: params[:request_options] - ) - end - - # Upload a rootfs tar archive to the server. The archive should contain the - # Dockerfile and all necessary dependencies. - # - # @overload upload(rootfs_id, dockerfile: nil, request_options: {}) - # - # @param rootfs_id [String] Identifier for the rootfs to create or update - # - # @param dockerfile [String] The path of the Dockerfile contained within the tar archive - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::RootfUploadResponse] - # - # @see Vers::Models::API::RootfUploadParams - def upload(rootfs_id, params = {}) - parsed, options = Vers::API::RootfUploadParams.dump_request(params) - @client.request( - method: :put, - path: ["api/rootfs/%1$s", rootfs_id], - query: parsed, - model: Vers::Models::API::RootfUploadResponse, - options: options - ) - end - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - end - end - end - end -end diff --git a/lib/vers/resources/api/telemetry.rb b/lib/vers/resources/api/telemetry.rb deleted file mode 100644 index 11a727a..0000000 --- a/lib/vers/resources/api/telemetry.rb +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class API - class Telemetry - # Get telemetry information - # - # @overload get_info(request_options: {}) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::TelemetryDto] - # - # @see Vers::Models::API::TelemetryGetInfoParams - def get_info(params = {}) - @client.request( - method: :get, - path: "api/telemetry", - model: Vers::API::TelemetryDto, - options: params[:request_options] - ) - end - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - end - end - end - end -end diff --git a/lib/vers/resources/api/vm.rb b/lib/vers/resources/api/vm.rb deleted file mode 100644 index 548b1b7..0000000 --- a/lib/vers/resources/api/vm.rb +++ /dev/null @@ -1,172 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class API - class Vm - # Retrieve information on a particular VM. - # - # @overload retrieve(vm_id_or_alias, request_options: {}) - # - # @param vm_id_or_alias [String] Unique VM identifier - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::VmRetrieveResponse] - # - # @see Vers::Models::API::VmRetrieveParams - def retrieve(vm_id_or_alias, params = {}) - @client.request( - method: :get, - path: ["api/vm/%1$s", vm_id_or_alias], - model: Vers::Models::API::VmRetrieveResponse, - options: params[:request_options] - ) - end - - # Update VM state. - # - # @overload update(vm_id_or_alias, alias_: nil, state: nil, request_options: {}) - # - # @param vm_id_or_alias [String] Unique VM identifier - # - # @param alias_ [String, nil] - # - # @param state [Symbol, Vers::Models::API::VmPatchRequest::State, nil] - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::VmUpdateResponse] - # - # @see Vers::Models::API::VmUpdateParams - def update(vm_id_or_alias, params = {}) - parsed, options = Vers::API::VmUpdateParams.dump_request(params) - @client.request( - method: :patch, - path: ["api/vm/%1$s", vm_id_or_alias], - body: parsed, - model: Vers::Models::API::VmUpdateResponse, - options: options - ) - end - - # List all VMs. - # - # @overload list(request_options: {}) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::VmListResponse] - # - # @see Vers::Models::API::VmListParams - def list(params = {}) - @client.request( - method: :get, - path: "api/vm", - model: Vers::Models::API::VmListResponse, - options: params[:request_options] - ) - end - - # Delete a VM. - # - # @overload delete(vm_id_or_alias, recursive:, request_options: {}) - # - # @param vm_id_or_alias [String] Unique VM identifier - # - # @param recursive [Boolean] Delete children recursively - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::VmDeleteResponse] - # - # @see Vers::Models::API::VmDeleteParams - def delete(vm_id_or_alias, params) - parsed, options = Vers::API::VmDeleteParams.dump_request(params) - @client.request( - method: :delete, - path: ["api/vm/%1$s", vm_id_or_alias], - query: parsed, - model: Vers::API::VmDeleteResponse, - options: options - ) - end - - # Branch a VM. - # - # @overload branch(vm_id_or_alias, alias_: nil, request_options: {}) - # - # @param vm_id_or_alias [String] Unique VM identifier - # - # @param alias_ [String, nil] - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::VmBranchResponse] - # - # @see Vers::Models::API::VmBranchParams - def branch(vm_id_or_alias, params = {}) - parsed, options = Vers::API::VmBranchParams.dump_request(params) - @client.request( - method: :post, - path: ["api/vm/%1$s/branch", vm_id_or_alias], - body: parsed, - model: Vers::Models::API::VmBranchResponse, - options: options - ) - end - - # Commit a VM. - # - # @overload commit(vm_id_or_alias, tags: nil, request_options: {}) - # - # @param vm_id_or_alias [String] Unique VM identifier - # - # @param tags [Array, nil] - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::VmCommitResponse] - # - # @see Vers::Models::API::VmCommitParams - def commit(vm_id_or_alias, params = {}) - parsed, options = Vers::API::VmCommitParams.dump_request(params) - @client.request( - method: :post, - path: ["api/vm/%1$s/commit", vm_id_or_alias], - body: parsed, - model: Vers::API::VmCommitResponse, - options: options - ) - end - - # Get the SSH private key for VM access - # - # @overload get_ssh_key(vm_id_or_alias, request_options: {}) - # - # @param vm_id_or_alias [String] Unique VM identifier - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::API::VmGetSSHKeyResponse] - # - # @see Vers::Models::API::VmGetSSHKeyParams - def get_ssh_key(vm_id_or_alias, params = {}) - @client.request( - method: :get, - path: ["api/vm/%1$s/ssh_key", vm_id_or_alias], - model: Vers::Models::API::VmGetSSHKeyResponse, - options: params[:request_options] - ) - end - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - end - end - end - end -end diff --git a/lib/vers/resources/orchestrator.rb b/lib/vers/resources/orchestrator.rb new file mode 100644 index 0000000..0536641 --- /dev/null +++ b/lib/vers/resources/orchestrator.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Vers + module Resources + class Orchestrator + # @return [Vers::Resources::Orchestrator::Vm] + attr_reader :vm + + # @return [Vers::Resources::Orchestrator::Node] + attr_reader :node + + # @api private + # + # @param client [Vers::Client] + def initialize(client:) + @client = client + @vm = Vers::Resources::Orchestrator::Vm.new(client: client) + @node = Vers::Resources::Orchestrator::Node.new(client: client) + end + end + end +end diff --git a/lib/vers/resources/api/health.rb b/lib/vers/resources/orchestrator/node.rb similarity index 53% rename from lib/vers/resources/api/health.rb rename to lib/vers/resources/orchestrator/node.rb index 0911d03..adafda9 100644 --- a/lib/vers/resources/api/health.rb +++ b/lib/vers/resources/orchestrator/node.rb @@ -2,23 +2,22 @@ module Vers module Resources - class API - class Health - # Get health of the API. + class Orchestrator + class Node + # @overload list_vms(node_id, request_options: {}) # - # @overload check(request_options: {}) + # @param node_id [String] Node ID # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [String] + # @return [Vers::Models::Orchestrator::VmListAllResponse] # - # @see Vers::Models::API::HealthCheckParams - def check(params = {}) + # @see Vers::Models::Orchestrator::NodeListVmsParams + def list_vms(node_id, params = {}) @client.request( method: :get, - path: "api/health", - headers: {"accept" => "text/plain"}, - model: String, + path: ["node/%1$s/vms", node_id], + model: Vers::Orchestrator::VmListAllResponse, options: params[:request_options] ) end diff --git a/lib/vers/resources/orchestrator/vm.rb b/lib/vers/resources/orchestrator/vm.rb new file mode 100644 index 0000000..5fcabe3 --- /dev/null +++ b/lib/vers/resources/orchestrator/vm.rb @@ -0,0 +1,131 @@ +# frozen_string_literal: true + +module Vers + module Resources + class Orchestrator + class Vm + # @overload delete(vm_id, request_options: {}) + # + # @param vm_id [String] VM ID to delete + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::Orchestrator::VmDeleteResponse] + # + # @see Vers::Models::Orchestrator::VmDeleteParams + def delete(vm_id, params = {}) + @client.request( + method: :delete, + path: ["vm/%1$s", vm_id], + model: Vers::Orchestrator::VmDeleteResponse, + options: params[:request_options] + ) + end + + # @overload branch(vm_id, request_options: {}) + # + # @param vm_id [String] Parent VM ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::Orchestrator::NewVmResponse] + # + # @see Vers::Models::Orchestrator::VmBranchParams + def branch(vm_id, params = {}) + @client.request( + method: :post, + path: ["vm/%1$s/branch", vm_id], + model: Vers::Orchestrator::NewVmResponse, + options: params[:request_options] + ) + end + + # @overload commit(vm_id, request_options: {}) + # + # @param vm_id [String] VM ID to commit + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::Orchestrator::VmCommitResponse] + # + # @see Vers::Models::Orchestrator::VmCommitParams + def commit(vm_id, params = {}) + @client.request( + method: :post, + path: ["vm/%1$s/commit", vm_id], + model: Vers::Orchestrator::VmCommitResponse, + options: params[:request_options] + ) + end + + # @overload create_root(vm_config:, request_options: {}) + # + # @param vm_config [Vers::Models::Orchestrator::NewRootRequest::VmConfig] Struct representing configuration options common to all VMs + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::Orchestrator::NewVmResponse] + # + # @see Vers::Models::Orchestrator::VmCreateRootParams + def create_root(params) + parsed, options = Vers::Orchestrator::VmCreateRootParams.dump_request(params) + @client.request( + method: :post, + path: "vm/new_root", + body: parsed, + model: Vers::Orchestrator::NewVmResponse, + options: options + ) + end + + # @overload restore_from_commit(commit_id:, request_options: {}) + # + # @param commit_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::Orchestrator::NewVmResponse] + # + # @see Vers::Models::Orchestrator::VmRestoreFromCommitParams + def restore_from_commit(params) + parsed, options = Vers::Orchestrator::VmRestoreFromCommitParams.dump_request(params) + @client.request( + method: :post, + path: "vm/from_commit", + body: parsed, + model: Vers::Orchestrator::NewVmResponse, + options: options + ) + end + + # @overload update_state(vm_id, state:, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param state [Symbol, Vers::Models::Orchestrator::VmUpdateStateRequest::State] The requested state for the VM + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::Orchestrator::VmUpdateStateParams + def update_state(vm_id, params) + parsed, options = Vers::Orchestrator::VmUpdateStateParams.dump_request(params) + @client.request( + method: :patch, + path: ["vm/%1$s/state", vm_id], + body: parsed, + model: NilClass, + options: options + ) + end + + # @api private + # + # @param client [Vers::Client] + def initialize(client:) + @client = client + end + end + end + end +end diff --git a/rbi/vers/client.rbi b/rbi/vers/client.rbi index 4b4339d..f94d976 100644 --- a/rbi/vers/client.rbi +++ b/rbi/vers/client.rbi @@ -13,8 +13,8 @@ module Vers sig { returns(T.nilable(String)) } attr_reader :api_key - sig { returns(Vers::Resources::API) } - attr_reader :api + sig { returns(Vers::Resources::Orchestrator) } + attr_reader :orchestrator # @api private sig { override.returns(T::Hash[String, String]) } diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index c45c4d9..cdfb245 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -1,5 +1,5 @@ # typed: strong module Vers - API = Vers::Models::API + Orchestrator = Vers::Models::Orchestrator end diff --git a/rbi/vers/models/api/cluster_create_params.rbi b/rbi/vers/models/api/cluster_create_params.rbi deleted file mode 100644 index a68b2fc..0000000 --- a/rbi/vers/models/api/cluster_create_params.rbi +++ /dev/null @@ -1,55 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterCreateParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::ClusterCreateParams, Vers::Internal::AnyHash) - end - - sig do - returns( - T.any( - Vers::API::ClusterCreateRequest::NewClusterParams, - Vers::API::ClusterCreateRequest::ClusterFromCommitParams - ) - ) - end - attr_accessor :cluster_create_request - - sig do - params( - cluster_create_request: - T.any( - Vers::API::ClusterCreateRequest::NewClusterParams::OrHash, - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::OrHash - ), - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new(cluster_create_request:, request_options: {}) - end - - sig do - override.returns( - { - cluster_create_request: - T.any( - Vers::API::ClusterCreateRequest::NewClusterParams, - Vers::API::ClusterCreateRequest::ClusterFromCommitParams - ), - request_options: Vers::RequestOptions - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_create_request.rbi b/rbi/vers/models/api/cluster_create_request.rbi deleted file mode 100644 index 1eedd9f..0000000 --- a/rbi/vers/models/api/cluster_create_request.rbi +++ /dev/null @@ -1,325 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - module ClusterCreateRequest - extend Vers::Internal::Type::Union - - Variants = - T.type_alias do - T.any( - Vers::API::ClusterCreateRequest::NewClusterParams, - Vers::API::ClusterCreateRequest::ClusterFromCommitParams - ) - end - - class NewClusterParams < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::API::ClusterCreateRequest::NewClusterParams, - Vers::Internal::AnyHash - ) - end - - sig do - returns( - Vers::API::ClusterCreateRequest::NewClusterParams::ClusterType::OrSymbol - ) - end - attr_accessor :cluster_type - - sig do - returns(Vers::API::ClusterCreateRequest::NewClusterParams::Params) - end - attr_reader :params - - sig do - params( - params: - Vers::API::ClusterCreateRequest::NewClusterParams::Params::OrHash - ).void - end - attr_writer :params - - sig do - params( - cluster_type: - Vers::API::ClusterCreateRequest::NewClusterParams::ClusterType::OrSymbol, - params: - Vers::API::ClusterCreateRequest::NewClusterParams::Params::OrHash - ).returns(T.attached_class) - end - def self.new(cluster_type:, params:) - end - - sig do - override.returns( - { - cluster_type: - Vers::API::ClusterCreateRequest::NewClusterParams::ClusterType::OrSymbol, - params: - Vers::API::ClusterCreateRequest::NewClusterParams::Params - } - ) - end - def to_hash - end - - module ClusterType - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::API::ClusterCreateRequest::NewClusterParams::ClusterType - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - NEW = - T.let( - :new, - Vers::API::ClusterCreateRequest::NewClusterParams::ClusterType::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::API::ClusterCreateRequest::NewClusterParams::ClusterType::TaggedSymbol - ] - ) - end - def self.values - end - end - - class Params < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::API::ClusterCreateRequest::NewClusterParams::Params, - Vers::Internal::AnyHash - ) - end - - sig { returns(T.nilable(String)) } - attr_accessor :cluster_alias - - # The amount of total space to allocate to the cluster - sig { returns(T.nilable(Integer)) } - attr_accessor :fs_size_cluster_mib - - # The size of the VM filesystem (if smaller than the base image + overhead, will - # cause an error) - sig { returns(T.nilable(Integer)) } - attr_accessor :fs_size_vm_mib - - sig { returns(T.nilable(String)) } - attr_accessor :kernel_name - - sig { returns(T.nilable(Integer)) } - attr_accessor :mem_size_mib - - sig { returns(T.nilable(String)) } - attr_accessor :rootfs_name - - sig { returns(T.nilable(Integer)) } - attr_accessor :vcpu_count - - sig { returns(T.nilable(String)) } - attr_accessor :vm_alias - - sig do - params( - cluster_alias: T.nilable(String), - fs_size_cluster_mib: T.nilable(Integer), - fs_size_vm_mib: T.nilable(Integer), - kernel_name: T.nilable(String), - mem_size_mib: T.nilable(Integer), - rootfs_name: T.nilable(String), - vcpu_count: T.nilable(Integer), - vm_alias: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - cluster_alias: nil, - # The amount of total space to allocate to the cluster - fs_size_cluster_mib: nil, - # The size of the VM filesystem (if smaller than the base image + overhead, will - # cause an error) - fs_size_vm_mib: nil, - kernel_name: nil, - mem_size_mib: nil, - rootfs_name: nil, - vcpu_count: nil, - vm_alias: nil - ) - end - - sig do - override.returns( - { - cluster_alias: T.nilable(String), - fs_size_cluster_mib: T.nilable(Integer), - fs_size_vm_mib: T.nilable(Integer), - kernel_name: T.nilable(String), - mem_size_mib: T.nilable(Integer), - rootfs_name: T.nilable(String), - vcpu_count: T.nilable(Integer), - vm_alias: T.nilable(String) - } - ) - end - def to_hash - end - end - end - - class ClusterFromCommitParams < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::API::ClusterCreateRequest::ClusterFromCommitParams, - Vers::Internal::AnyHash - ) - end - - sig do - returns( - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType::OrSymbol - ) - end - attr_accessor :cluster_type - - sig do - returns( - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params - ) - end - attr_reader :params - - sig do - params( - params: - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params::OrHash - ).void - end - attr_writer :params - - sig do - params( - cluster_type: - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType::OrSymbol, - params: - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params::OrHash - ).returns(T.attached_class) - end - def self.new(cluster_type:, params:) - end - - sig do - override.returns( - { - cluster_type: - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType::OrSymbol, - params: - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params - } - ) - end - def to_hash - end - - module ClusterType - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - FROM_COMMIT = - T.let( - :from_commit, - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::ClusterType::TaggedSymbol - ] - ) - end - def self.values - end - end - - class Params < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :commit_id - - sig { returns(T.nilable(String)) } - attr_accessor :cluster_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :fs_size_cluster_mib - - sig { returns(T.nilable(String)) } - attr_accessor :vm_alias - - sig do - params( - commit_id: String, - cluster_alias: T.nilable(String), - fs_size_cluster_mib: T.nilable(Integer), - vm_alias: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - commit_id:, - cluster_alias: nil, - fs_size_cluster_mib: nil, - vm_alias: nil - ) - end - - sig do - override.returns( - { - commit_id: String, - cluster_alias: T.nilable(String), - fs_size_cluster_mib: T.nilable(Integer), - vm_alias: T.nilable(String) - } - ) - end - def to_hash - end - end - end - - sig do - override.returns(T::Array[Vers::API::ClusterCreateRequest::Variants]) - end - def self.variants - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_create_response.rbi b/rbi/vers/models/api/cluster_create_response.rbi deleted file mode 100644 index 4351794..0000000 --- a/rbi/vers/models/api/cluster_create_response.rbi +++ /dev/null @@ -1,258 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterCreateResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterCreateResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(Vers::Models::API::ClusterCreateResponse::Data) } - attr_reader :data - - sig do - params( - data: Vers::Models::API::ClusterCreateResponse::Data::OrHash - ).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::ClusterCreateResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterCreateResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::ClusterCreateResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterCreateResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The cluster's ID. - sig { returns(String) } - attr_accessor :id - - # The size of the cluster's backing file - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The ID of the cluster's root VM. - sig { returns(String) } - attr_accessor :root_vm_id - - # How many VMs are currently running on this cluster. - sig { returns(Integer) } - attr_accessor :vm_count - - # The VMs that are children of the cluster, including the root VM. - sig { returns(T::Array[Vers::API::VmDto]) } - attr_accessor :vms - - # Human-readable name assigned to the cluster. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig do - params( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto::OrHash], - alias_: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The cluster's ID. - id:, - # The size of the cluster's backing file - fs_size_mib:, - # The ID of the cluster's root VM. - root_vm_id:, - # How many VMs are currently running on this cluster. - vm_count:, - # The VMs that are children of the cluster, including the root VM. - vms:, - # Human-readable name assigned to the cluster. - alias_: nil - ) - end - - sig do - override.returns( - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto], - alias_: T.nilable(String) - } - ) - end - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::ClusterCreateResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::ClusterCreateResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_delete_response.rbi b/rbi/vers/models/api/cluster_delete_response.rbi deleted file mode 100644 index aedbace..0000000 --- a/rbi/vers/models/api/cluster_delete_response.rbi +++ /dev/null @@ -1,236 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterDeleteResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::ClusterDeleteResponse, Vers::Internal::AnyHash) - end - - # A struct containing information about an attempted cluster deletion request. - # Reports information in the event of a partial failure so billing can still be - # udpated appropriately. - sig { returns(Vers::API::ClusterDeleteResponse::Data) } - attr_reader :data - - sig do - params(data: Vers::API::ClusterDeleteResponse::Data::OrHash).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns(Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::API::ClusterDeleteResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::API::ClusterDeleteResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - # A struct containing information about an attempted cluster deletion request. - # Reports information in the event of a partial failure so billing can still be - # udpated appropriately. - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::API::ClusterDeleteResponse::Data, - duration_ns: Integer, - operation_code: - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::API::ClusterDeleteResponse::Data, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :cluster_id - - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - sig { returns(Vers::API::VmDeleteResponse) } - attr_reader :vms - - sig { params(vms: Vers::API::VmDeleteResponse::OrHash).void } - attr_writer :vms - - sig { returns(T.nilable(String)) } - attr_accessor :fs_error - - # A struct containing information about an attempted cluster deletion request. - # Reports information in the event of a partial failure so billing can still be - # udpated appropriately. - sig do - params( - cluster_id: String, - vms: Vers::API::VmDeleteResponse::OrHash, - fs_error: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - cluster_id:, - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - vms:, - fs_error: nil - ) - end - - sig do - override.returns( - { - cluster_id: String, - vms: Vers::API::VmDeleteResponse, - fs_error: T.nilable(String) - } - ) - end - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::API::ClusterDeleteResponse::OperationCode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::API::ClusterDeleteResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_dto.rbi b/rbi/vers/models/api/cluster_dto.rbi deleted file mode 100644 index 9778ece..0000000 --- a/rbi/vers/models/api/cluster_dto.rbi +++ /dev/null @@ -1,77 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterDto < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::API::ClusterDto, Vers::Internal::AnyHash) } - - # The cluster's ID. - sig { returns(String) } - attr_accessor :id - - # The size of the cluster's backing file - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The ID of the cluster's root VM. - sig { returns(String) } - attr_accessor :root_vm_id - - # How many VMs are currently running on this cluster. - sig { returns(Integer) } - attr_accessor :vm_count - - # The VMs that are children of the cluster, including the root VM. - sig { returns(T::Array[Vers::API::VmDto]) } - attr_accessor :vms - - # Human-readable name assigned to the cluster. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig do - params( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto::OrHash], - alias_: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The cluster's ID. - id:, - # The size of the cluster's backing file - fs_size_mib:, - # The ID of the cluster's root VM. - root_vm_id:, - # How many VMs are currently running on this cluster. - vm_count:, - # The VMs that are children of the cluster, including the root VM. - vms:, - # Human-readable name assigned to the cluster. - alias_: nil - ) - end - - sig do - override.returns( - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto], - alias_: T.nilable(String) - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_get_ssh_key_response.rbi b/rbi/vers/models/api/cluster_get_ssh_key_response.rbi deleted file mode 100644 index 98d172a..0000000 --- a/rbi/vers/models/api/cluster_get_ssh_key_response.rbi +++ /dev/null @@ -1,176 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterGetSSHKeyResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterGetSSHKeyResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: String, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: String, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_list_response.rbi b/rbi/vers/models/api/cluster_list_response.rbi deleted file mode 100644 index 080a70b..0000000 --- a/rbi/vers/models/api/cluster_list_response.rbi +++ /dev/null @@ -1,252 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterListResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterListResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(T::Array[Vers::Models::API::ClusterListResponse::Data]) } - attr_accessor :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: - T::Array[Vers::Models::API::ClusterListResponse::Data::OrHash], - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterListResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: T::Array[Vers::Models::API::ClusterListResponse::Data], - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterListResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The cluster's ID. - sig { returns(String) } - attr_accessor :id - - # The size of the cluster's backing file - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The ID of the cluster's root VM. - sig { returns(String) } - attr_accessor :root_vm_id - - # How many VMs are currently running on this cluster. - sig { returns(Integer) } - attr_accessor :vm_count - - # The VMs that are children of the cluster, including the root VM. - sig { returns(T::Array[Vers::API::VmDto]) } - attr_accessor :vms - - # Human-readable name assigned to the cluster. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig do - params( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto::OrHash], - alias_: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The cluster's ID. - id:, - # The size of the cluster's backing file - fs_size_mib:, - # The ID of the cluster's root VM. - root_vm_id:, - # How many VMs are currently running on this cluster. - vm_count:, - # The VMs that are children of the cluster, including the root VM. - vms:, - # Human-readable name assigned to the cluster. - alias_: nil - ) - end - - sig do - override.returns( - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto], - alias_: T.nilable(String) - } - ) - end - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::ClusterListResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::ClusterListResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_patch_request.rbi b/rbi/vers/models/api/cluster_patch_request.rbi deleted file mode 100644 index c6267b8..0000000 --- a/rbi/vers/models/api/cluster_patch_request.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterPatchRequest < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::ClusterPatchRequest, Vers::Internal::AnyHash) - end - - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig { params(alias_: T.nilable(String)).returns(T.attached_class) } - def self.new(alias_: nil) - end - - sig { override.returns({ alias_: T.nilable(String) }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_retrieve_response.rbi b/rbi/vers/models/api/cluster_retrieve_response.rbi deleted file mode 100644 index aedc324..0000000 --- a/rbi/vers/models/api/cluster_retrieve_response.rbi +++ /dev/null @@ -1,258 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterRetrieveResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterRetrieveResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(Vers::Models::API::ClusterRetrieveResponse::Data) } - attr_reader :data - - sig do - params( - data: Vers::Models::API::ClusterRetrieveResponse::Data::OrHash - ).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::ClusterRetrieveResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterRetrieveResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::ClusterRetrieveResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterRetrieveResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The cluster's ID. - sig { returns(String) } - attr_accessor :id - - # The size of the cluster's backing file - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The ID of the cluster's root VM. - sig { returns(String) } - attr_accessor :root_vm_id - - # How many VMs are currently running on this cluster. - sig { returns(Integer) } - attr_accessor :vm_count - - # The VMs that are children of the cluster, including the root VM. - sig { returns(T::Array[Vers::API::VmDto]) } - attr_accessor :vms - - # Human-readable name assigned to the cluster. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig do - params( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto::OrHash], - alias_: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The cluster's ID. - id:, - # The size of the cluster's backing file - fs_size_mib:, - # The ID of the cluster's root VM. - root_vm_id:, - # How many VMs are currently running on this cluster. - vm_count:, - # The VMs that are children of the cluster, including the root VM. - vms:, - # Human-readable name assigned to the cluster. - alias_: nil - ) - end - - sig do - override.returns( - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto], - alias_: T.nilable(String) - } - ) - end - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::ClusterRetrieveResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::ClusterRetrieveResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_update_params.rbi b/rbi/vers/models/api/cluster_update_params.rbi deleted file mode 100644 index 4cdc09e..0000000 --- a/rbi/vers/models/api/cluster_update_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterUpdateParams < Vers::Models::API::ClusterPatchRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::ClusterUpdateParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/cluster_update_response.rbi b/rbi/vers/models/api/cluster_update_response.rbi deleted file mode 100644 index 1c51e44..0000000 --- a/rbi/vers/models/api/cluster_update_response.rbi +++ /dev/null @@ -1,258 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class ClusterUpdateResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterUpdateResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(Vers::Models::API::ClusterUpdateResponse::Data) } - attr_reader :data - - sig do - params( - data: Vers::Models::API::ClusterUpdateResponse::Data::OrHash - ).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::ClusterUpdateResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterUpdateResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::ClusterUpdateResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::ClusterUpdateResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The cluster's ID. - sig { returns(String) } - attr_accessor :id - - # The size of the cluster's backing file - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The ID of the cluster's root VM. - sig { returns(String) } - attr_accessor :root_vm_id - - # How many VMs are currently running on this cluster. - sig { returns(Integer) } - attr_accessor :vm_count - - # The VMs that are children of the cluster, including the root VM. - sig { returns(T::Array[Vers::API::VmDto]) } - attr_accessor :vms - - # Human-readable name assigned to the cluster. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig do - params( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto::OrHash], - alias_: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The cluster's ID. - id:, - # The size of the cluster's backing file - fs_size_mib:, - # The ID of the cluster's root VM. - root_vm_id:, - # How many VMs are currently running on this cluster. - vm_count:, - # The VMs that are children of the cluster, including the root VM. - vms:, - # Human-readable name assigned to the cluster. - alias_: nil - ) - end - - sig do - override.returns( - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: T::Array[Vers::API::VmDto], - alias_: T.nilable(String) - } - ) - end - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::ClusterUpdateResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::ClusterUpdateResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/health_check_params.rbi b/rbi/vers/models/api/health_check_params.rbi deleted file mode 100644 index 72e7eea..0000000 --- a/rbi/vers/models/api/health_check_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class HealthCheckParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::HealthCheckParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/health_check_response.rbi b/rbi/vers/models/api/health_check_response.rbi deleted file mode 100644 index 673ac32..0000000 --- a/rbi/vers/models/api/health_check_response.rbi +++ /dev/null @@ -1,9 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - HealthCheckResponse = String - end - end -end diff --git a/rbi/vers/models/api/rootf_delete_params.rbi b/rbi/vers/models/api/rootf_delete_params.rbi deleted file mode 100644 index aefcef5..0000000 --- a/rbi/vers/models/api/rootf_delete_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::RootfDeleteParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/rootf_delete_response.rbi b/rbi/vers/models/api/rootf_delete_response.rbi deleted file mode 100644 index 0f1241f..0000000 --- a/rbi/vers/models/api/rootf_delete_response.rbi +++ /dev/null @@ -1,204 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfDeleteResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::RootfDeleteResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(Vers::Models::API::RootfDeleteResponse::Data) } - attr_reader :data - - sig do - params( - data: Vers::Models::API::RootfDeleteResponse::Data::OrHash - ).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::RootfDeleteResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::RootfDeleteResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::RootfDeleteResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::RootfDeleteResponse::Data, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :rootfs_name - - sig { params(rootfs_name: String).returns(T.attached_class) } - def self.new(rootfs_name:) - end - - sig { override.returns({ rootfs_name: String }) } - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::RootfDeleteResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::RootfDeleteResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/rootf_list_params.rbi b/rbi/vers/models/api/rootf_list_params.rbi deleted file mode 100644 index e9691d3..0000000 --- a/rbi/vers/models/api/rootf_list_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfListParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::RootfListParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/rootf_list_response.rbi b/rbi/vers/models/api/rootf_list_response.rbi deleted file mode 100644 index 0d1cfa7..0000000 --- a/rbi/vers/models/api/rootf_list_response.rbi +++ /dev/null @@ -1,198 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfListResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Models::API::RootfListResponse, Vers::Internal::AnyHash) - end - - sig { returns(Vers::Models::API::RootfListResponse::Data) } - attr_reader :data - - sig do - params(data: Vers::Models::API::RootfListResponse::Data::OrHash).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::RootfListResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::RootfListResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::RootfListResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::RootfListResponse::Data, - Vers::Internal::AnyHash - ) - end - - sig { returns(T::Array[String]) } - attr_accessor :rootfs_names - - sig do - params(rootfs_names: T::Array[String]).returns(T.attached_class) - end - def self.new(rootfs_names:) - end - - sig { override.returns({ rootfs_names: T::Array[String] }) } - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Models::API::RootfListResponse::OperationCode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::RootfListResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/rootf_upload_params.rbi b/rbi/vers/models/api/rootf_upload_params.rbi deleted file mode 100644 index f916634..0000000 --- a/rbi/vers/models/api/rootf_upload_params.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfUploadParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::RootfUploadParams, Vers::Internal::AnyHash) - end - - # The path of the Dockerfile contained within the tar archive - sig { returns(T.nilable(String)) } - attr_reader :dockerfile - - sig { params(dockerfile: String).void } - attr_writer :dockerfile - - sig do - params( - dockerfile: String, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # The path of the Dockerfile contained within the tar archive - dockerfile: nil, - request_options: {} - ) - end - - sig do - override.returns( - { dockerfile: String, request_options: Vers::RequestOptions } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/rootf_upload_response.rbi b/rbi/vers/models/api/rootf_upload_response.rbi deleted file mode 100644 index 77c2db6..0000000 --- a/rbi/vers/models/api/rootf_upload_response.rbi +++ /dev/null @@ -1,204 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfUploadResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::RootfUploadResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(Vers::Models::API::RootfUploadResponse::Data) } - attr_reader :data - - sig do - params( - data: Vers::Models::API::RootfUploadResponse::Data::OrHash - ).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::RootfUploadResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::RootfUploadResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::RootfUploadResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::RootfUploadResponse::Data, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :rootfs_name - - sig { params(rootfs_name: String).returns(T.attached_class) } - def self.new(rootfs_name:) - end - - sig { override.returns({ rootfs_name: String }) } - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::RootfUploadResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::RootfUploadResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/rootfs_delete_response.rbi b/rbi/vers/models/api/rootfs_delete_response.rbi deleted file mode 100644 index c47fd63..0000000 --- a/rbi/vers/models/api/rootfs_delete_response.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfsDeleteResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::RootfsDeleteResponse, Vers::Internal::AnyHash) - end - - sig { returns(String) } - attr_accessor :rootfs_name - - sig { params(rootfs_name: String).returns(T.attached_class) } - def self.new(rootfs_name:) - end - - sig { override.returns({ rootfs_name: String }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/rootfs_list_response.rbi b/rbi/vers/models/api/rootfs_list_response.rbi deleted file mode 100644 index 3edd8bf..0000000 --- a/rbi/vers/models/api/rootfs_list_response.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfsListResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::RootfsListResponse, Vers::Internal::AnyHash) - end - - sig { returns(T::Array[String]) } - attr_accessor :rootfs_names - - sig { params(rootfs_names: T::Array[String]).returns(T.attached_class) } - def self.new(rootfs_names:) - end - - sig { override.returns({ rootfs_names: T::Array[String] }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/rootfs_upload_response.rbi b/rbi/vers/models/api/rootfs_upload_response.rbi deleted file mode 100644 index c82a8bd..0000000 --- a/rbi/vers/models/api/rootfs_upload_response.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class RootfsUploadResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::RootfsUploadResponse, Vers::Internal::AnyHash) - end - - sig { returns(String) } - attr_accessor :rootfs_name - - sig { params(rootfs_name: String).returns(T.attached_class) } - def self.new(rootfs_name:) - end - - sig { override.returns({ rootfs_name: String }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/telemetry_dto.rbi b/rbi/vers/models/api/telemetry_dto.rbi deleted file mode 100644 index e772846..0000000 --- a/rbi/vers/models/api/telemetry_dto.rbi +++ /dev/null @@ -1,121 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class TelemetryDto < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::TelemetryDto, Vers::Internal::AnyHash) - end - - sig { returns(String) } - attr_accessor :id - - sig { returns(Integer) } - attr_accessor :cpu_cores_available - - sig { returns(Integer) } - attr_accessor :cpu_cores_margin - - sig { returns(Integer) } - attr_accessor :cpu_cores_total - - sig { returns(Integer) } - attr_accessor :cpu_cores_used - - sig { returns(Integer) } - attr_accessor :disk_data_mib_available - - sig { returns(Integer) } - attr_accessor :disk_data_mib_total - - sig { returns(Integer) } - attr_accessor :disk_vm_mib_available - - sig { returns(Integer) } - attr_accessor :disk_vm_mib_total - - sig { returns(Integer) } - attr_accessor :memory_mib_available - - sig { returns(Integer) } - attr_accessor :memory_mib_margin - - sig { returns(Integer) } - attr_accessor :memory_mib_total - - sig { returns(Integer) } - attr_accessor :memory_mib_used - - sig { returns(Integer) } - attr_accessor :vm_network_count_in_use - - sig { returns(Integer) } - attr_accessor :vm_network_count_total - - sig do - params( - id: String, - cpu_cores_available: Integer, - cpu_cores_margin: Integer, - cpu_cores_total: Integer, - cpu_cores_used: Integer, - disk_data_mib_available: Integer, - disk_data_mib_total: Integer, - disk_vm_mib_available: Integer, - disk_vm_mib_total: Integer, - memory_mib_available: Integer, - memory_mib_margin: Integer, - memory_mib_total: Integer, - memory_mib_used: Integer, - vm_network_count_in_use: Integer, - vm_network_count_total: Integer - ).returns(T.attached_class) - end - def self.new( - id:, - cpu_cores_available:, - cpu_cores_margin:, - cpu_cores_total:, - cpu_cores_used:, - disk_data_mib_available:, - disk_data_mib_total:, - disk_vm_mib_available:, - disk_vm_mib_total:, - memory_mib_available:, - memory_mib_margin:, - memory_mib_total:, - memory_mib_used:, - vm_network_count_in_use:, - vm_network_count_total: - ) - end - - sig do - override.returns( - { - id: String, - cpu_cores_available: Integer, - cpu_cores_margin: Integer, - cpu_cores_total: Integer, - cpu_cores_used: Integer, - disk_data_mib_available: Integer, - disk_data_mib_total: Integer, - disk_vm_mib_available: Integer, - disk_vm_mib_total: Integer, - memory_mib_available: Integer, - memory_mib_margin: Integer, - memory_mib_total: Integer, - memory_mib_used: Integer, - vm_network_count_in_use: Integer, - vm_network_count_total: Integer - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/telemetry_get_info_params.rbi b/rbi/vers/models/api/telemetry_get_info_params.rbi deleted file mode 100644 index 6b07e1a..0000000 --- a/rbi/vers/models/api/telemetry_get_info_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class TelemetryGetInfoParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::TelemetryGetInfoParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_branch_request.rbi b/rbi/vers/models/api/vm_branch_request.rbi deleted file mode 100644 index 4706adb..0000000 --- a/rbi/vers/models/api/vm_branch_request.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmBranchRequest < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmBranchRequest, Vers::Internal::AnyHash) - end - - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig { params(alias_: T.nilable(String)).returns(T.attached_class) } - def self.new(alias_: nil) - end - - sig { override.returns({ alias_: T.nilable(String) }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_branch_response.rbi b/rbi/vers/models/api/vm_branch_response.rbi deleted file mode 100644 index 9b878b0..0000000 --- a/rbi/vers/models/api/vm_branch_response.rbi +++ /dev/null @@ -1,408 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmBranchResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Models::API::VmBranchResponse, Vers::Internal::AnyHash) - end - - sig { returns(Vers::Models::API::VmBranchResponse::Data) } - attr_reader :data - - sig do - params(data: Vers::Models::API::VmBranchResponse::Data::OrHash).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::VmBranchResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmBranchResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::VmBranchResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmBranchResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The ID of the VM. - sig { returns(String) } - attr_accessor :id - - # The IDs of direct children branched from this VM. - sig { returns(T::Array[String]) } - attr_accessor :children - - # The VM's cluster ID - sig { returns(String) } - attr_accessor :cluster_id - - # What is the size of the "disk" allocated to this VM - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The VM's local IP address on the VM subnet - sig { returns(String) } - attr_accessor :ip_address - - # How much RAM is allocated to this VM - sig { returns(Integer) } - attr_accessor :mem_size_mib - - # The VM's network configuration - sig do - returns(Vers::Models::API::VmBranchResponse::Data::NetworkInfo) - end - attr_reader :network_info - - sig do - params( - network_info: - Vers::Models::API::VmBranchResponse::Data::NetworkInfo::OrHash - ).void - end - attr_writer :network_info - - # Whether the VM is running, paused, or not started. - sig do - returns( - Vers::Models::API::VmBranchResponse::Data::State::TaggedSymbol - ) - end - attr_accessor :state - - # How many vCPUs were allocated to this VM - sig { returns(Integer) } - attr_accessor :vcpu_count - - # Human-readable name assigned to the VM. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - # The parent VM's ID, if present. If None, then this VM is a root VM. - sig { returns(T.nilable(String)) } - attr_accessor :parent_id - - sig do - params( - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmBranchResponse::Data::NetworkInfo::OrHash, - state: Vers::Models::API::VmBranchResponse::Data::State::OrSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The ID of the VM. - id:, - # The IDs of direct children branched from this VM. - children:, - # The VM's cluster ID - cluster_id:, - # What is the size of the "disk" allocated to this VM - fs_size_mib:, - # The VM's local IP address on the VM subnet - ip_address:, - # How much RAM is allocated to this VM - mem_size_mib:, - # The VM's network configuration - network_info:, - # Whether the VM is running, paused, or not started. - state:, - # How many vCPUs were allocated to this VM - vcpu_count:, - # Human-readable name assigned to the VM. - alias_: nil, - # The parent VM's ID, if present. If None, then this VM is a root VM. - parent_id: nil - ) - end - - sig do - override.returns( - { - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmBranchResponse::Data::NetworkInfo, - state: - Vers::Models::API::VmBranchResponse::Data::State::TaggedSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - } - ) - end - def to_hash - end - - class NetworkInfo < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmBranchResponse::Data::NetworkInfo, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :guest_ip - - sig { returns(String) } - attr_accessor :guest_mac - - sig { returns(Integer) } - attr_accessor :ssh_port - - sig { returns(String) } - attr_accessor :tap0_ip - - sig { returns(String) } - attr_accessor :tap0_name - - sig { returns(String) } - attr_accessor :vm_namespace - - # The VM's network configuration - sig do - params( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ).returns(T.attached_class) - end - def self.new( - guest_ip:, - guest_mac:, - ssh_port:, - tap0_ip:, - tap0_name:, - vm_namespace: - ) - end - - sig do - override.returns( - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - } - ) - end - def to_hash - end - end - - # Whether the VM is running, paused, or not started. - module State - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Models::API::VmBranchResponse::Data::State) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - NOT_STARTED = - T.let( - :"Not started", - Vers::Models::API::VmBranchResponse::Data::State::TaggedSymbol - ) - RUNNING = - T.let( - :Running, - Vers::Models::API::VmBranchResponse::Data::State::TaggedSymbol - ) - PAUSED = - T.let( - :Paused, - Vers::Models::API::VmBranchResponse::Data::State::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmBranchResponse::Data::State::TaggedSymbol - ] - ) - end - def self.values - end - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Models::API::VmBranchResponse::OperationCode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmBranchResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_commit_request.rbi b/rbi/vers/models/api/vm_commit_request.rbi deleted file mode 100644 index ab3a6a2..0000000 --- a/rbi/vers/models/api/vm_commit_request.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmCommitRequest < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmCommitRequest, Vers::Internal::AnyHash) - end - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :tags - - sig do - params(tags: T.nilable(T::Array[String])).returns(T.attached_class) - end - def self.new(tags: nil) - end - - sig { override.returns({ tags: T.nilable(T::Array[String]) }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_commit_response.rbi b/rbi/vers/models/api/vm_commit_response.rbi deleted file mode 100644 index 7916e25..0000000 --- a/rbi/vers/models/api/vm_commit_response.rbi +++ /dev/null @@ -1,207 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmCommitResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmCommitResponse, Vers::Internal::AnyHash) - end - - sig { returns(Vers::API::VmCommitResponse::Data) } - attr_reader :data - - sig { params(data: Vers::API::VmCommitResponse::Data::OrHash).void } - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns(Vers::API::VmCommitResponse::OperationCode::TaggedSymbol) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::API::VmCommitResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::API::VmCommitResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::API::VmCommitResponse::Data, - duration_ns: Integer, - operation_code: - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmCommitResponse::Data, Vers::Internal::AnyHash) - end - - sig { returns(String) } - attr_accessor :cluster_id - - sig { returns(String) } - attr_accessor :commit_id - - sig { returns(String) } - attr_accessor :host_architecture - - sig do - params( - cluster_id: String, - commit_id: String, - host_architecture: String - ).returns(T.attached_class) - end - def self.new(cluster_id:, commit_id:, host_architecture:) - end - - sig do - override.returns( - { - cluster_id: String, - commit_id: String, - host_architecture: String - } - ) - end - def to_hash - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::API::VmCommitResponse::OperationCode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::API::VmCommitResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[Vers::API::VmCommitResponse::OperationCode::TaggedSymbol] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_delete_params.rbi b/rbi/vers/models/api/vm_delete_params.rbi deleted file mode 100644 index 89ad18c..0000000 --- a/rbi/vers/models/api/vm_delete_params.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::VmDeleteParams, Vers::Internal::AnyHash) - end - - # Delete children recursively - sig { returns(T::Boolean) } - attr_accessor :recursive - - sig do - params( - recursive: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Delete children recursively - recursive:, - request_options: {} - ) - end - - sig do - override.returns( - { recursive: T::Boolean, request_options: Vers::RequestOptions } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_delete_response.rbi b/rbi/vers/models/api/vm_delete_response.rbi deleted file mode 100644 index 77b642f..0000000 --- a/rbi/vers/models/api/vm_delete_response.rbi +++ /dev/null @@ -1,236 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmDeleteResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmDeleteResponse, Vers::Internal::AnyHash) - end - - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - sig { returns(Vers::API::VmDeleteResponse::Data) } - attr_reader :data - - sig { params(data: Vers::API::VmDeleteResponse::Data::OrHash).void } - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns(Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::API::VmDeleteResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::API::VmDeleteResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::API::VmDeleteResponse::Data, - duration_ns: Integer, - operation_code: - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmDeleteResponse::Data, Vers::Internal::AnyHash) - end - - sig { returns(T::Array[String]) } - attr_accessor :deleted_ids - - sig { returns(T::Array[Vers::API::VmDeleteResponse::Data::Error]) } - attr_accessor :errors - - # A struct containing information about an attempted VM deletion request. Reports - # information in the event of a partial failure so billing can still be udpated - # appropriately. - sig do - params( - deleted_ids: T::Array[String], - errors: T::Array[Vers::API::VmDeleteResponse::Data::Error::OrHash] - ).returns(T.attached_class) - end - def self.new(deleted_ids:, errors:) - end - - sig do - override.returns( - { - deleted_ids: T::Array[String], - errors: T::Array[Vers::API::VmDeleteResponse::Data::Error] - } - ) - end - def to_hash - end - - class Error < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::API::VmDeleteResponse::Data::Error, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :id - - sig { returns(String) } - attr_accessor :error - - # Contains a VM ID and the reason that it could not be deleted. - sig { params(id: String, error: String).returns(T.attached_class) } - def self.new(id:, error:) - end - - sig { override.returns({ id: String, error: String }) } - def to_hash - end - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::API::VmDeleteResponse::OperationCode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[Vers::API::VmDeleteResponse::OperationCode::TaggedSymbol] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_dto.rbi b/rbi/vers/models/api/vm_dto.rbi deleted file mode 100644 index 1fb27b2..0000000 --- a/rbi/vers/models/api/vm_dto.rbi +++ /dev/null @@ -1,200 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmDto < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::API::VmDto, Vers::Internal::AnyHash) } - - # The ID of the VM. - sig { returns(String) } - attr_accessor :id - - # The IDs of direct children branched from this VM. - sig { returns(T::Array[String]) } - attr_accessor :children - - # The VM's cluster ID - sig { returns(String) } - attr_accessor :cluster_id - - # What is the size of the "disk" allocated to this VM - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The VM's local IP address on the VM subnet - sig { returns(String) } - attr_accessor :ip_address - - # How much RAM is allocated to this VM - sig { returns(Integer) } - attr_accessor :mem_size_mib - - # The VM's network configuration - sig { returns(Vers::API::VmDto::NetworkInfo) } - attr_reader :network_info - - sig { params(network_info: Vers::API::VmDto::NetworkInfo::OrHash).void } - attr_writer :network_info - - # Whether the VM is running, paused, or not started. - sig { returns(Vers::API::VmDto::State::TaggedSymbol) } - attr_accessor :state - - # How many vCPUs were allocated to this VM - sig { returns(Integer) } - attr_accessor :vcpu_count - - # Human-readable name assigned to the VM. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - # The parent VM's ID, if present. If None, then this VM is a root VM. - sig { returns(T.nilable(String)) } - attr_accessor :parent_id - - sig do - params( - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::API::VmDto::NetworkInfo::OrHash, - state: Vers::API::VmDto::State::OrSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The ID of the VM. - id:, - # The IDs of direct children branched from this VM. - children:, - # The VM's cluster ID - cluster_id:, - # What is the size of the "disk" allocated to this VM - fs_size_mib:, - # The VM's local IP address on the VM subnet - ip_address:, - # How much RAM is allocated to this VM - mem_size_mib:, - # The VM's network configuration - network_info:, - # Whether the VM is running, paused, or not started. - state:, - # How many vCPUs were allocated to this VM - vcpu_count:, - # Human-readable name assigned to the VM. - alias_: nil, - # The parent VM's ID, if present. If None, then this VM is a root VM. - parent_id: nil - ) - end - - sig do - override.returns( - { - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::API::VmDto::NetworkInfo, - state: Vers::API::VmDto::State::TaggedSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - } - ) - end - def to_hash - end - - class NetworkInfo < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmDto::NetworkInfo, Vers::Internal::AnyHash) - end - - sig { returns(String) } - attr_accessor :guest_ip - - sig { returns(String) } - attr_accessor :guest_mac - - sig { returns(Integer) } - attr_accessor :ssh_port - - sig { returns(String) } - attr_accessor :tap0_ip - - sig { returns(String) } - attr_accessor :tap0_name - - sig { returns(String) } - attr_accessor :vm_namespace - - # The VM's network configuration - sig do - params( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ).returns(T.attached_class) - end - def self.new( - guest_ip:, - guest_mac:, - ssh_port:, - tap0_ip:, - tap0_name:, - vm_namespace: - ) - end - - sig do - override.returns( - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - } - ) - end - def to_hash - end - end - - # Whether the VM is running, paused, or not started. - module State - extend Vers::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Vers::API::VmDto::State) } - OrSymbol = T.type_alias { T.any(Symbol, String) } - - NOT_STARTED = - T.let(:"Not started", Vers::API::VmDto::State::TaggedSymbol) - RUNNING = T.let(:Running, Vers::API::VmDto::State::TaggedSymbol) - PAUSED = T.let(:Paused, Vers::API::VmDto::State::TaggedSymbol) - - sig do - override.returns(T::Array[Vers::API::VmDto::State::TaggedSymbol]) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_get_ssh_key_params.rbi b/rbi/vers/models/api/vm_get_ssh_key_params.rbi deleted file mode 100644 index c55b533..0000000 --- a/rbi/vers/models/api/vm_get_ssh_key_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::VmGetSSHKeyParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_get_ssh_key_response.rbi b/rbi/vers/models/api/vm_get_ssh_key_response.rbi deleted file mode 100644 index cadca99..0000000 --- a/rbi/vers/models/api/vm_get_ssh_key_response.rbi +++ /dev/null @@ -1,176 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmGetSSHKeyResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmGetSSHKeyResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: String, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: String, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmGetSSHKeyResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_list_params.rbi b/rbi/vers/models/api/vm_list_params.rbi deleted file mode 100644 index 2e654b4..0000000 --- a/rbi/vers/models/api/vm_list_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmListParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::VmListParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_list_response.rbi b/rbi/vers/models/api/vm_list_response.rbi deleted file mode 100644 index d95a056..0000000 --- a/rbi/vers/models/api/vm_list_response.rbi +++ /dev/null @@ -1,401 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmListResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Models::API::VmListResponse, Vers::Internal::AnyHash) - end - - sig { returns(T::Array[Vers::Models::API::VmListResponse::Data]) } - attr_accessor :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: T::Array[Vers::Models::API::VmListResponse::Data::OrHash], - duration_ns: Integer, - operation_code: - Vers::Models::API::VmListResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: T::Array[Vers::Models::API::VmListResponse::Data], - duration_ns: Integer, - operation_code: - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmListResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The ID of the VM. - sig { returns(String) } - attr_accessor :id - - # The IDs of direct children branched from this VM. - sig { returns(T::Array[String]) } - attr_accessor :children - - # The VM's cluster ID - sig { returns(String) } - attr_accessor :cluster_id - - # What is the size of the "disk" allocated to this VM - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The VM's local IP address on the VM subnet - sig { returns(String) } - attr_accessor :ip_address - - # How much RAM is allocated to this VM - sig { returns(Integer) } - attr_accessor :mem_size_mib - - # The VM's network configuration - sig { returns(Vers::Models::API::VmListResponse::Data::NetworkInfo) } - attr_reader :network_info - - sig do - params( - network_info: - Vers::Models::API::VmListResponse::Data::NetworkInfo::OrHash - ).void - end - attr_writer :network_info - - # Whether the VM is running, paused, or not started. - sig do - returns( - Vers::Models::API::VmListResponse::Data::State::TaggedSymbol - ) - end - attr_accessor :state - - # How many vCPUs were allocated to this VM - sig { returns(Integer) } - attr_accessor :vcpu_count - - # Human-readable name assigned to the VM. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - # The parent VM's ID, if present. If None, then this VM is a root VM. - sig { returns(T.nilable(String)) } - attr_accessor :parent_id - - sig do - params( - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmListResponse::Data::NetworkInfo::OrHash, - state: Vers::Models::API::VmListResponse::Data::State::OrSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The ID of the VM. - id:, - # The IDs of direct children branched from this VM. - children:, - # The VM's cluster ID - cluster_id:, - # What is the size of the "disk" allocated to this VM - fs_size_mib:, - # The VM's local IP address on the VM subnet - ip_address:, - # How much RAM is allocated to this VM - mem_size_mib:, - # The VM's network configuration - network_info:, - # Whether the VM is running, paused, or not started. - state:, - # How many vCPUs were allocated to this VM - vcpu_count:, - # Human-readable name assigned to the VM. - alias_: nil, - # The parent VM's ID, if present. If None, then this VM is a root VM. - parent_id: nil - ) - end - - sig do - override.returns( - { - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmListResponse::Data::NetworkInfo, - state: - Vers::Models::API::VmListResponse::Data::State::TaggedSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - } - ) - end - def to_hash - end - - class NetworkInfo < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmListResponse::Data::NetworkInfo, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :guest_ip - - sig { returns(String) } - attr_accessor :guest_mac - - sig { returns(Integer) } - attr_accessor :ssh_port - - sig { returns(String) } - attr_accessor :tap0_ip - - sig { returns(String) } - attr_accessor :tap0_name - - sig { returns(String) } - attr_accessor :vm_namespace - - # The VM's network configuration - sig do - params( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ).returns(T.attached_class) - end - def self.new( - guest_ip:, - guest_mac:, - ssh_port:, - tap0_ip:, - tap0_name:, - vm_namespace: - ) - end - - sig do - override.returns( - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - } - ) - end - def to_hash - end - end - - # Whether the VM is running, paused, or not started. - module State - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Models::API::VmListResponse::Data::State) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - NOT_STARTED = - T.let( - :"Not started", - Vers::Models::API::VmListResponse::Data::State::TaggedSymbol - ) - RUNNING = - T.let( - :Running, - Vers::Models::API::VmListResponse::Data::State::TaggedSymbol - ) - PAUSED = - T.let( - :Paused, - Vers::Models::API::VmListResponse::Data::State::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmListResponse::Data::State::TaggedSymbol - ] - ) - end - def self.values - end - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Models::API::VmListResponse::OperationCode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmListResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_patch_request.rbi b/rbi/vers/models/api/vm_patch_request.rbi deleted file mode 100644 index 0c6f878..0000000 --- a/rbi/vers/models/api/vm_patch_request.rbi +++ /dev/null @@ -1,61 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmPatchRequest < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::API::VmPatchRequest, Vers::Internal::AnyHash) - end - - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig { returns(T.nilable(Vers::API::VmPatchRequest::State::OrSymbol)) } - attr_accessor :state - - sig do - params( - alias_: T.nilable(String), - state: T.nilable(Vers::API::VmPatchRequest::State::OrSymbol) - ).returns(T.attached_class) - end - def self.new(alias_: nil, state: nil) - end - - sig do - override.returns( - { - alias_: T.nilable(String), - state: T.nilable(Vers::API::VmPatchRequest::State::OrSymbol) - } - ) - end - def to_hash - end - - module State - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Vers::API::VmPatchRequest::State) } - OrSymbol = T.type_alias { T.any(Symbol, String) } - - RUNNING = - T.let(:Running, Vers::API::VmPatchRequest::State::TaggedSymbol) - PAUSED = - T.let(:Paused, Vers::API::VmPatchRequest::State::TaggedSymbol) - - sig do - override.returns( - T::Array[Vers::API::VmPatchRequest::State::TaggedSymbol] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_retrieve_params.rbi b/rbi/vers/models/api/vm_retrieve_params.rbi deleted file mode 100644 index 259809c..0000000 --- a/rbi/vers/models/api/vm_retrieve_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmRetrieveParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::VmRetrieveParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_retrieve_response.rbi b/rbi/vers/models/api/vm_retrieve_response.rbi deleted file mode 100644 index 08c7012..0000000 --- a/rbi/vers/models/api/vm_retrieve_response.rbi +++ /dev/null @@ -1,418 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmRetrieveResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmRetrieveResponse, - Vers::Internal::AnyHash - ) - end - - sig { returns(Vers::Models::API::VmRetrieveResponse::Data) } - attr_reader :data - - sig do - params(data: Vers::Models::API::VmRetrieveResponse::Data::OrHash).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::VmRetrieveResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmRetrieveResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::VmRetrieveResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmRetrieveResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The ID of the VM. - sig { returns(String) } - attr_accessor :id - - # The IDs of direct children branched from this VM. - sig { returns(T::Array[String]) } - attr_accessor :children - - # The VM's cluster ID - sig { returns(String) } - attr_accessor :cluster_id - - # What is the size of the "disk" allocated to this VM - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The VM's local IP address on the VM subnet - sig { returns(String) } - attr_accessor :ip_address - - # How much RAM is allocated to this VM - sig { returns(Integer) } - attr_accessor :mem_size_mib - - # The VM's network configuration - sig do - returns(Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo) - end - attr_reader :network_info - - sig do - params( - network_info: - Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo::OrHash - ).void - end - attr_writer :network_info - - # Whether the VM is running, paused, or not started. - sig do - returns( - Vers::Models::API::VmRetrieveResponse::Data::State::TaggedSymbol - ) - end - attr_accessor :state - - # How many vCPUs were allocated to this VM - sig { returns(Integer) } - attr_accessor :vcpu_count - - # Human-readable name assigned to the VM. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - # The parent VM's ID, if present. If None, then this VM is a root VM. - sig { returns(T.nilable(String)) } - attr_accessor :parent_id - - sig do - params( - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo::OrHash, - state: - Vers::Models::API::VmRetrieveResponse::Data::State::OrSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The ID of the VM. - id:, - # The IDs of direct children branched from this VM. - children:, - # The VM's cluster ID - cluster_id:, - # What is the size of the "disk" allocated to this VM - fs_size_mib:, - # The VM's local IP address on the VM subnet - ip_address:, - # How much RAM is allocated to this VM - mem_size_mib:, - # The VM's network configuration - network_info:, - # Whether the VM is running, paused, or not started. - state:, - # How many vCPUs were allocated to this VM - vcpu_count:, - # Human-readable name assigned to the VM. - alias_: nil, - # The parent VM's ID, if present. If None, then this VM is a root VM. - parent_id: nil - ) - end - - sig do - override.returns( - { - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo, - state: - Vers::Models::API::VmRetrieveResponse::Data::State::TaggedSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - } - ) - end - def to_hash - end - - class NetworkInfo < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :guest_ip - - sig { returns(String) } - attr_accessor :guest_mac - - sig { returns(Integer) } - attr_accessor :ssh_port - - sig { returns(String) } - attr_accessor :tap0_ip - - sig { returns(String) } - attr_accessor :tap0_name - - sig { returns(String) } - attr_accessor :vm_namespace - - # The VM's network configuration - sig do - params( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ).returns(T.attached_class) - end - def self.new( - guest_ip:, - guest_mac:, - ssh_port:, - tap0_ip:, - tap0_name:, - vm_namespace: - ) - end - - sig do - override.returns( - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - } - ) - end - def to_hash - end - end - - # Whether the VM is running, paused, or not started. - module State - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::VmRetrieveResponse::Data::State - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - NOT_STARTED = - T.let( - :"Not started", - Vers::Models::API::VmRetrieveResponse::Data::State::TaggedSymbol - ) - RUNNING = - T.let( - :Running, - Vers::Models::API::VmRetrieveResponse::Data::State::TaggedSymbol - ) - PAUSED = - T.let( - :Paused, - Vers::Models::API::VmRetrieveResponse::Data::State::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmRetrieveResponse::Data::State::TaggedSymbol - ] - ) - end - def self.values - end - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all( - Symbol, - Vers::Models::API::VmRetrieveResponse::OperationCode - ) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmRetrieveResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_update_params.rbi b/rbi/vers/models/api/vm_update_params.rbi deleted file mode 100644 index 29ace06..0000000 --- a/rbi/vers/models/api/vm_update_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmUpdateParams < Vers::Models::API::VmPatchRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::API::VmUpdateParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/api/vm_update_response.rbi b/rbi/vers/models/api/vm_update_response.rbi deleted file mode 100644 index 28e0be7..0000000 --- a/rbi/vers/models/api/vm_update_response.rbi +++ /dev/null @@ -1,408 +0,0 @@ -# typed: strong - -module Vers - module Models - module API - class VmUpdateResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Models::API::VmUpdateResponse, Vers::Internal::AnyHash) - end - - sig { returns(Vers::Models::API::VmUpdateResponse::Data) } - attr_reader :data - - sig do - params(data: Vers::Models::API::VmUpdateResponse::Data::OrHash).void - end - attr_writer :data - - sig { returns(Integer) } - attr_accessor :duration_ns - - sig do - returns( - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - end - attr_accessor :operation_code - - sig { returns(String) } - attr_accessor :operation_id - - # Unix epoch time (secs) - sig { returns(Integer) } - attr_accessor :time_start - - sig do - params( - data: Vers::Models::API::VmUpdateResponse::Data::OrHash, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmUpdateResponse::OperationCode::OrSymbol, - operation_id: String, - time_start: Integer - ).returns(T.attached_class) - end - def self.new( - data:, - duration_ns:, - operation_code:, - operation_id:, - # Unix epoch time (secs) - time_start: - ) - end - - sig do - override.returns( - { - data: Vers::Models::API::VmUpdateResponse::Data, - duration_ns: Integer, - operation_code: - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol, - operation_id: String, - time_start: Integer - } - ) - end - def to_hash - end - - class Data < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmUpdateResponse::Data, - Vers::Internal::AnyHash - ) - end - - # The ID of the VM. - sig { returns(String) } - attr_accessor :id - - # The IDs of direct children branched from this VM. - sig { returns(T::Array[String]) } - attr_accessor :children - - # The VM's cluster ID - sig { returns(String) } - attr_accessor :cluster_id - - # What is the size of the "disk" allocated to this VM - sig { returns(Integer) } - attr_accessor :fs_size_mib - - # The VM's local IP address on the VM subnet - sig { returns(String) } - attr_accessor :ip_address - - # How much RAM is allocated to this VM - sig { returns(Integer) } - attr_accessor :mem_size_mib - - # The VM's network configuration - sig do - returns(Vers::Models::API::VmUpdateResponse::Data::NetworkInfo) - end - attr_reader :network_info - - sig do - params( - network_info: - Vers::Models::API::VmUpdateResponse::Data::NetworkInfo::OrHash - ).void - end - attr_writer :network_info - - # Whether the VM is running, paused, or not started. - sig do - returns( - Vers::Models::API::VmUpdateResponse::Data::State::TaggedSymbol - ) - end - attr_accessor :state - - # How many vCPUs were allocated to this VM - sig { returns(Integer) } - attr_accessor :vcpu_count - - # Human-readable name assigned to the VM. - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - # The parent VM's ID, if present. If None, then this VM is a root VM. - sig { returns(T.nilable(String)) } - attr_accessor :parent_id - - sig do - params( - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmUpdateResponse::Data::NetworkInfo::OrHash, - state: Vers::Models::API::VmUpdateResponse::Data::State::OrSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - ).returns(T.attached_class) - end - def self.new( - # The ID of the VM. - id:, - # The IDs of direct children branched from this VM. - children:, - # The VM's cluster ID - cluster_id:, - # What is the size of the "disk" allocated to this VM - fs_size_mib:, - # The VM's local IP address on the VM subnet - ip_address:, - # How much RAM is allocated to this VM - mem_size_mib:, - # The VM's network configuration - network_info:, - # Whether the VM is running, paused, or not started. - state:, - # How many vCPUs were allocated to this VM - vcpu_count:, - # Human-readable name assigned to the VM. - alias_: nil, - # The parent VM's ID, if present. If None, then this VM is a root VM. - parent_id: nil - ) - end - - sig do - override.returns( - { - id: String, - children: T::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: - Vers::Models::API::VmUpdateResponse::Data::NetworkInfo, - state: - Vers::Models::API::VmUpdateResponse::Data::State::TaggedSymbol, - vcpu_count: Integer, - alias_: T.nilable(String), - parent_id: T.nilable(String) - } - ) - end - def to_hash - end - - class NetworkInfo < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Models::API::VmUpdateResponse::Data::NetworkInfo, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :guest_ip - - sig { returns(String) } - attr_accessor :guest_mac - - sig { returns(Integer) } - attr_accessor :ssh_port - - sig { returns(String) } - attr_accessor :tap0_ip - - sig { returns(String) } - attr_accessor :tap0_name - - sig { returns(String) } - attr_accessor :vm_namespace - - # The VM's network configuration - sig do - params( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ).returns(T.attached_class) - end - def self.new( - guest_ip:, - guest_mac:, - ssh_port:, - tap0_ip:, - tap0_name:, - vm_namespace: - ) - end - - sig do - override.returns( - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - } - ) - end - def to_hash - end - end - - # Whether the VM is running, paused, or not started. - module State - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Models::API::VmUpdateResponse::Data::State) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - NOT_STARTED = - T.let( - :"Not started", - Vers::Models::API::VmUpdateResponse::Data::State::TaggedSymbol - ) - RUNNING = - T.let( - :Running, - Vers::Models::API::VmUpdateResponse::Data::State::TaggedSymbol - ) - PAUSED = - T.let( - :Paused, - Vers::Models::API::VmUpdateResponse::Data::State::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmUpdateResponse::Data::State::TaggedSymbol - ] - ) - end - def self.values - end - end - end - - module OperationCode - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Models::API::VmUpdateResponse::OperationCode) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - LIST_CLUSTERS = - T.let( - :list_clusters, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER = - T.let( - :get_cluster, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - CREATE_CLUSTER = - T.let( - :create_cluster, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - DELETE_CLUSTER = - T.let( - :delete_cluster, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - UPDATE_CLUSTER = - T.let( - :update_cluster, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - GET_CLUSTER_SSH_KEY = - T.let( - :get_cluster_ssh_key, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - LIST_VMS = - T.let( - :list_vms, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - GET_VM = - T.let( - :get_vm, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - UPDATE_VM = - T.let( - :update_vm, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - BRANCH_VM = - T.let( - :branch_vm, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - COMMIT_VM = - T.let( - :commit_vm, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - DELETE_VM = - T.let( - :delete_vm, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - GET_VM_SSH_KEY = - T.let( - :get_vm_ssh_key, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - UPLOAD_ROOTFS = - T.let( - :upload_rootfs, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - DELETE_ROOTFS = - T.let( - :delete_rootfs, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - LIST_ROOTFS = - T.let( - :list_rootfs, - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Models::API::VmUpdateResponse::OperationCode::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/error_response.rbi b/rbi/vers/models/orchestrator/error_response.rbi new file mode 100644 index 0000000..b6ed673 --- /dev/null +++ b/rbi/vers/models/orchestrator/error_response.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class ErrorResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Orchestrator::ErrorResponse, Vers::Internal::AnyHash) + end + + # Reason of error + sig { returns(T.nilable(String)) } + attr_reader :error + + sig { params(error: String).void } + attr_writer :error + + # Is always: false + sig { returns(T.nilable(T::Boolean)) } + attr_reader :success + + sig { params(success: T::Boolean).void } + attr_writer :success + + sig do + params(error: String, success: T::Boolean).returns(T.attached_class) + end + def self.new( + # Reason of error + error: nil, + # Is always: false + success: nil + ) + end + + sig { override.returns({ error: String, success: T::Boolean }) } + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/orchestrator/new_root_request.rbi b/rbi/vers/models/orchestrator/new_root_request.rbi new file mode 100644 index 0000000..a7f5bbf --- /dev/null +++ b/rbi/vers/models/orchestrator/new_root_request.rbi @@ -0,0 +1,112 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class NewRootRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Orchestrator::NewRootRequest, Vers::Internal::AnyHash) + end + + # Struct representing configuration options common to all VMs + sig { returns(Vers::Orchestrator::NewRootRequest::VmConfig) } + attr_reader :vm_config + + sig do + params( + vm_config: Vers::Orchestrator::NewRootRequest::VmConfig::OrHash + ).void + end + attr_writer :vm_config + + sig do + params( + vm_config: Vers::Orchestrator::NewRootRequest::VmConfig::OrHash + ).returns(T.attached_class) + end + def self.new( + # Struct representing configuration options common to all VMs + vm_config: + ) + end + + sig do + override.returns( + { vm_config: Vers::Orchestrator::NewRootRequest::VmConfig } + ) + end + def to_hash + end + + class VmConfig < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Vers::Orchestrator::NewRootRequest::VmConfig, + Vers::Internal::AnyHash + ) + end + + # The disk size, in MiB. + sig { returns(T.nilable(Integer)) } + attr_accessor :fs_size_mib + + # The filesystem base image name. Currently, must be 'default' + sig { returns(T.nilable(String)) } + attr_accessor :image_name + + # The kernel name. Currently, must be 'default.bin' + sig { returns(T.nilable(String)) } + attr_accessor :kernel_name + + # The RAM size, in MiB. + sig { returns(T.nilable(Integer)) } + attr_accessor :mem_size_mib + + # How many vCPUs to allocate to this VM (and its children) + sig { returns(T.nilable(Integer)) } + attr_accessor :vcpu_count + + # Struct representing configuration options common to all VMs + sig do + params( + fs_size_mib: T.nilable(Integer), + image_name: T.nilable(String), + kernel_name: T.nilable(String), + mem_size_mib: T.nilable(Integer), + vcpu_count: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + # The disk size, in MiB. + fs_size_mib: nil, + # The filesystem base image name. Currently, must be 'default' + image_name: nil, + # The kernel name. Currently, must be 'default.bin' + kernel_name: nil, + # The RAM size, in MiB. + mem_size_mib: nil, + # How many vCPUs to allocate to this VM (and its children) + vcpu_count: nil + ) + end + + sig do + override.returns( + { + fs_size_mib: T.nilable(Integer), + image_name: T.nilable(String), + kernel_name: T.nilable(String), + mem_size_mib: T.nilable(Integer), + vcpu_count: T.nilable(Integer) + } + ) + end + def to_hash + end + end + end + end + end +end diff --git a/rbi/vers/models/orchestrator/new_vm_response.rbi b/rbi/vers/models/orchestrator/new_vm_response.rbi new file mode 100644 index 0000000..8298a55 --- /dev/null +++ b/rbi/vers/models/orchestrator/new_vm_response.rbi @@ -0,0 +1,29 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class NewVmResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Orchestrator::NewVmResponse, Vers::Internal::AnyHash) + end + + # The VM ID, a (v4) UUID + sig { returns(String) } + attr_accessor :id + + sig { params(id: String).returns(T.attached_class) } + def self.new( + # The VM ID, a (v4) UUID + id: + ) + end + + sig { override.returns({ id: String }) } + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/api/cluster_list_params.rbi b/rbi/vers/models/orchestrator/node_list_vms_params.rbi similarity index 72% rename from rbi/vers/models/api/cluster_list_params.rbi rename to rbi/vers/models/orchestrator/node_list_vms_params.rbi index db1f6e5..1887b76 100644 --- a/rbi/vers/models/api/cluster_list_params.rbi +++ b/rbi/vers/models/orchestrator/node_list_vms_params.rbi @@ -2,14 +2,17 @@ module Vers module Models - module API - class ClusterListParams < Vers::Internal::Type::BaseModel + module Orchestrator + class NodeListVmsParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters OrHash = T.type_alias do - T.any(Vers::API::ClusterListParams, Vers::Internal::AnyHash) + T.any( + Vers::Orchestrator::NodeListVmsParams, + Vers::Internal::AnyHash + ) end sig do diff --git a/rbi/vers/models/api/vm_branch_params.rbi b/rbi/vers/models/orchestrator/vm_branch_params.rbi similarity index 77% rename from rbi/vers/models/api/vm_branch_params.rbi rename to rbi/vers/models/orchestrator/vm_branch_params.rbi index 32eb522..6e75ec5 100644 --- a/rbi/vers/models/api/vm_branch_params.rbi +++ b/rbi/vers/models/orchestrator/vm_branch_params.rbi @@ -2,14 +2,14 @@ module Vers module Models - module API - class VmBranchParams < Vers::Models::API::VmBranchRequest + module Orchestrator + class VmBranchParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters OrHash = T.type_alias do - T.any(Vers::API::VmBranchParams, Vers::Internal::AnyHash) + T.any(Vers::Orchestrator::VmBranchParams, Vers::Internal::AnyHash) end sig do diff --git a/rbi/vers/models/orchestrator/vm_branch_response.rbi b/rbi/vers/models/orchestrator/vm_branch_response.rbi new file mode 100644 index 0000000..9b3e079 --- /dev/null +++ b/rbi/vers/models/orchestrator/vm_branch_response.rbi @@ -0,0 +1,30 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class VmBranchResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Orchestrator::VmBranchResponse, Vers::Internal::AnyHash) + end + + # The ID of the newly-created VM, a (v4) UUID + sig { returns(String) } + attr_accessor :vm_id + + # Response body for POST /api/vm/{vm_id}/branch + sig { params(vm_id: String).returns(T.attached_class) } + def self.new( + # The ID of the newly-created VM, a (v4) UUID + vm_id: + ) + end + + sig { override.returns({ vm_id: String }) } + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/api/vm_commit_params.rbi b/rbi/vers/models/orchestrator/vm_commit_params.rbi similarity index 77% rename from rbi/vers/models/api/vm_commit_params.rbi rename to rbi/vers/models/orchestrator/vm_commit_params.rbi index fc0873e..10f690d 100644 --- a/rbi/vers/models/api/vm_commit_params.rbi +++ b/rbi/vers/models/orchestrator/vm_commit_params.rbi @@ -2,14 +2,14 @@ module Vers module Models - module API - class VmCommitParams < Vers::Models::API::VmCommitRequest + module Orchestrator + class VmCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters OrHash = T.type_alias do - T.any(Vers::API::VmCommitParams, Vers::Internal::AnyHash) + T.any(Vers::Orchestrator::VmCommitParams, Vers::Internal::AnyHash) end sig do diff --git a/rbi/vers/models/orchestrator/vm_commit_response.rbi b/rbi/vers/models/orchestrator/vm_commit_response.rbi new file mode 100644 index 0000000..8904706 --- /dev/null +++ b/rbi/vers/models/orchestrator/vm_commit_response.rbi @@ -0,0 +1,42 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class VmCommitResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Orchestrator::VmCommitResponse, Vers::Internal::AnyHash) + end + + # The commit ID, a (v4) UUID + sig { returns(String) } + attr_accessor :commit_id + + # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + sig { returns(String) } + attr_accessor :host_architecture + + # The response body for POST /api/vm/{vm_id}/commit + sig do + params(commit_id: String, host_architecture: String).returns( + T.attached_class + ) + end + def self.new( + # The commit ID, a (v4) UUID + commit_id:, + # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + host_architecture: + ) + end + + sig do + override.returns({ commit_id: String, host_architecture: String }) + end + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/api/cluster_get_ssh_key_params.rbi b/rbi/vers/models/orchestrator/vm_create_root_params.rbi similarity index 71% rename from rbi/vers/models/api/cluster_get_ssh_key_params.rbi rename to rbi/vers/models/orchestrator/vm_create_root_params.rbi index 89ece9a..63d92d0 100644 --- a/rbi/vers/models/api/cluster_get_ssh_key_params.rbi +++ b/rbi/vers/models/orchestrator/vm_create_root_params.rbi @@ -2,14 +2,17 @@ module Vers module Models - module API - class ClusterGetSSHKeyParams < Vers::Internal::Type::BaseModel + module Orchestrator + class VmCreateRootParams < Vers::Models::Orchestrator::NewRootRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters OrHash = T.type_alias do - T.any(Vers::API::ClusterGetSSHKeyParams, Vers::Internal::AnyHash) + T.any( + Vers::Orchestrator::VmCreateRootParams, + Vers::Internal::AnyHash + ) end sig do diff --git a/rbi/vers/models/api/cluster_retrieve_params.rbi b/rbi/vers/models/orchestrator/vm_delete_params.rbi similarity index 77% rename from rbi/vers/models/api/cluster_retrieve_params.rbi rename to rbi/vers/models/orchestrator/vm_delete_params.rbi index 4b315f7..8ac322d 100644 --- a/rbi/vers/models/api/cluster_retrieve_params.rbi +++ b/rbi/vers/models/orchestrator/vm_delete_params.rbi @@ -2,14 +2,14 @@ module Vers module Models - module API - class ClusterRetrieveParams < Vers::Internal::Type::BaseModel + module Orchestrator + class VmDeleteParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters OrHash = T.type_alias do - T.any(Vers::API::ClusterRetrieveParams, Vers::Internal::AnyHash) + T.any(Vers::Orchestrator::VmDeleteParams, Vers::Internal::AnyHash) end sig do diff --git a/rbi/vers/models/orchestrator/vm_delete_response.rbi b/rbi/vers/models/orchestrator/vm_delete_response.rbi new file mode 100644 index 0000000..17287c6 --- /dev/null +++ b/rbi/vers/models/orchestrator/vm_delete_response.rbi @@ -0,0 +1,26 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class VmDeleteResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Orchestrator::VmDeleteResponse, Vers::Internal::AnyHash) + end + + sig { returns(T::Array[String]) } + attr_accessor :deleted_ids + + # Response body for DELETE /api/vm/{vm_id} + sig { params(deleted_ids: T::Array[String]).returns(T.attached_class) } + def self.new(deleted_ids:) + end + + sig { override.returns({ deleted_ids: T::Array[String] }) } + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/orchestrator/vm_from_commit_request.rbi b/rbi/vers/models/orchestrator/vm_from_commit_request.rbi new file mode 100644 index 0000000..a58f61c --- /dev/null +++ b/rbi/vers/models/orchestrator/vm_from_commit_request.rbi @@ -0,0 +1,29 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class VmFromCommitRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Vers::Orchestrator::VmFromCommitRequest, + Vers::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :commit_id + + # Request body for POST /api/vm/from_commit + sig { params(commit_id: String).returns(T.attached_class) } + def self.new(commit_id:) + end + + sig { override.returns({ commit_id: String }) } + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/orchestrator/vm_list_all_response.rbi b/rbi/vers/models/orchestrator/vm_list_all_response.rbi new file mode 100644 index 0000000..71e1910 --- /dev/null +++ b/rbi/vers/models/orchestrator/vm_list_all_response.rbi @@ -0,0 +1,79 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class VmListAllResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Vers::Orchestrator::VmListAllResponse, + Vers::Internal::AnyHash + ) + end + + # A list of nodes, each of which is a "root VM" with one or more children + sig { returns(T::Array[Vers::Orchestrator::VmListAllResponse::Vm]) } + attr_accessor :vms + + # Response body for GET /api/vm + sig do + params( + vms: T::Array[Vers::Orchestrator::VmListAllResponse::Vm::OrHash] + ).returns(T.attached_class) + end + def self.new( + # A list of nodes, each of which is a "root VM" with one or more children + vms: + ) + end + + sig do + override.returns( + { vms: T::Array[Vers::Orchestrator::VmListAllResponse::Vm] } + ) + end + def to_hash + end + + class Vm < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Vers::Orchestrator::VmListAllResponse::Vm, + Vers::Internal::AnyHash + ) + end + + # The VM ID, a (v4) UUID. + sig { returns(String) } + attr_accessor :vm_id + + # The VM's parent ID + sig { returns(T.nilable(String)) } + attr_accessor :parent_id + + # Represents a tree node for a VM + sig do + params(vm_id: String, parent_id: T.nilable(String)).returns( + T.attached_class + ) + end + def self.new( + # The VM ID, a (v4) UUID. + vm_id:, + # The VM's parent ID + parent_id: nil + ) + end + + sig do + override.returns({ vm_id: String, parent_id: T.nilable(String) }) + end + def to_hash + end + end + end + end + end +end diff --git a/rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi b/rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi new file mode 100644 index 0000000..b92fec6 --- /dev/null +++ b/rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class VmRestoreFromCommitParams < Vers::Models::Orchestrator::VmFromCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Vers::Orchestrator::VmRestoreFromCommitParams, + Vers::Internal::AnyHash + ) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/api/cluster_delete_params.rbi b/rbi/vers/models/orchestrator/vm_update_state_params.rbi similarity index 70% rename from rbi/vers/models/api/cluster_delete_params.rbi rename to rbi/vers/models/orchestrator/vm_update_state_params.rbi index d16e34a..49ef63d 100644 --- a/rbi/vers/models/api/cluster_delete_params.rbi +++ b/rbi/vers/models/orchestrator/vm_update_state_params.rbi @@ -2,14 +2,17 @@ module Vers module Models - module API - class ClusterDeleteParams < Vers::Internal::Type::BaseModel + module Orchestrator + class VmUpdateStateParams < Vers::Models::Orchestrator::VmUpdateStateRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters OrHash = T.type_alias do - T.any(Vers::API::ClusterDeleteParams, Vers::Internal::AnyHash) + T.any( + Vers::Orchestrator::VmUpdateStateParams, + Vers::Internal::AnyHash + ) end sig do diff --git a/rbi/vers/models/orchestrator/vm_update_state_request.rbi b/rbi/vers/models/orchestrator/vm_update_state_request.rbi new file mode 100644 index 0000000..8ce3c33 --- /dev/null +++ b/rbi/vers/models/orchestrator/vm_update_state_request.rbi @@ -0,0 +1,75 @@ +# typed: strong + +module Vers + module Models + module Orchestrator + class VmUpdateStateRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Vers::Orchestrator::VmUpdateStateRequest, + Vers::Internal::AnyHash + ) + end + + # The requested state for the VM + sig do + returns(Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol) + end + attr_accessor :state + + # Request body for PATCH /api/vm/{vm_id}/state + sig do + params( + state: Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol + ).returns(T.attached_class) + end + def self.new( + # The requested state for the VM + state: + ) + end + + sig do + override.returns( + { state: Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol } + ) + end + def to_hash + end + + # The requested state for the VM + module State + extend Vers::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Vers::Orchestrator::VmUpdateStateRequest::State) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + PAUSED = + T.let( + :Paused, + Vers::Orchestrator::VmUpdateStateRequest::State::TaggedSymbol + ) + RUNNING = + T.let( + :Running, + Vers::Orchestrator::VmUpdateStateRequest::State::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Vers::Orchestrator::VmUpdateStateRequest::State::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/vers/resources/api.rbi b/rbi/vers/resources/api.rbi deleted file mode 100644 index a137d65..0000000 --- a/rbi/vers/resources/api.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Vers - module Resources - class API - sig { returns(Vers::Resources::API::Cluster) } - attr_reader :cluster - - sig { returns(Vers::Resources::API::Vm) } - attr_reader :vm - - sig { returns(Vers::Resources::API::Rootfs) } - attr_reader :rootfs - - sig { returns(Vers::Resources::API::Health) } - attr_reader :health - - sig { returns(Vers::Resources::API::Telemetry) } - attr_reader :telemetry - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/vers/resources/api/cluster.rbi b/rbi/vers/resources/api/cluster.rbi deleted file mode 100644 index 05b5390..0000000 --- a/rbi/vers/resources/api/cluster.rbi +++ /dev/null @@ -1,91 +0,0 @@ -# typed: strong - -module Vers - module Resources - class API - class Cluster - # Create a new cluster. - sig do - params( - cluster_create_request: Vers::API::ClusterCreateRequest, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::ClusterCreateResponse) - end - def create(cluster_create_request:, request_options: {}) - end - - # Retrieve information on a particular cluster. - sig do - params( - cluster_id_or_alias: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::ClusterRetrieveResponse) - end - def retrieve( - # Unique cluster identifier - cluster_id_or_alias, - request_options: {} - ) - end - - # Update a cluster's configuration - sig do - params( - cluster_id_or_alias: String, - alias_: T.nilable(String), - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::ClusterUpdateResponse) - end - def update( - # Unique cluster identifier - cluster_id_or_alias, - alias_: nil, - request_options: {} - ) - end - - # List all clusters. - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - Vers::Models::API::ClusterListResponse - ) - end - def list(request_options: {}) - end - - # Delete a cluster. - sig do - params( - cluster_id_or_alias: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::API::ClusterDeleteResponse) - end - def delete( - # Unique cluster identifier - cluster_id_or_alias, - request_options: {} - ) - end - - # Get the SSH private key for VM access - sig do - params( - cluster_id_or_alias: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::ClusterGetSSHKeyResponse) - end - def get_ssh_key( - # Unique cluster identifier - cluster_id_or_alias, - request_options: {} - ) - end - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/vers/resources/api/health.rbi b/rbi/vers/resources/api/health.rbi deleted file mode 100644 index 1151d6c..0000000 --- a/rbi/vers/resources/api/health.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Vers - module Resources - class API - class Health - # Get health of the API. - sig do - params(request_options: Vers::RequestOptions::OrHash).returns(String) - end - def check(request_options: {}) - end - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/vers/resources/api/rootfs.rbi b/rbi/vers/resources/api/rootfs.rbi deleted file mode 100644 index 171ced8..0000000 --- a/rbi/vers/resources/api/rootfs.rbi +++ /dev/null @@ -1,55 +0,0 @@ -# typed: strong - -module Vers - module Resources - class API - class Rootfs - # List all available rootfs names on the server. - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - Vers::Models::API::RootfListResponse - ) - end - def list(request_options: {}) - end - - # Delete an existing rootfs from the server. - sig do - params( - rootfs_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::RootfDeleteResponse) - end - def delete( - # Identifier for the rootfs to delete - rootfs_id, - request_options: {} - ) - end - - # Upload a rootfs tar archive to the server. The archive should contain the - # Dockerfile and all necessary dependencies. - sig do - params( - rootfs_id: String, - dockerfile: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::RootfUploadResponse) - end - def upload( - # Identifier for the rootfs to create or update - rootfs_id, - # The path of the Dockerfile contained within the tar archive - dockerfile: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/vers/resources/api/telemetry.rbi b/rbi/vers/resources/api/telemetry.rbi deleted file mode 100644 index 76ec2ad..0000000 --- a/rbi/vers/resources/api/telemetry.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Vers - module Resources - class API - class Telemetry - # Get telemetry information - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - Vers::API::TelemetryDto - ) - end - def get_info(request_options: {}) - end - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/vers/resources/api/vm.rbi b/rbi/vers/resources/api/vm.rbi deleted file mode 100644 index 5e13520..0000000 --- a/rbi/vers/resources/api/vm.rbi +++ /dev/null @@ -1,118 +0,0 @@ -# typed: strong - -module Vers - module Resources - class API - class Vm - # Retrieve information on a particular VM. - sig do - params( - vm_id_or_alias: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::VmRetrieveResponse) - end - def retrieve( - # Unique VM identifier - vm_id_or_alias, - request_options: {} - ) - end - - # Update VM state. - sig do - params( - vm_id_or_alias: String, - alias_: T.nilable(String), - state: T.nilable(Vers::API::VmPatchRequest::State::OrSymbol), - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::VmUpdateResponse) - end - def update( - # Unique VM identifier - vm_id_or_alias, - alias_: nil, - state: nil, - request_options: {} - ) - end - - # List all VMs. - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - Vers::Models::API::VmListResponse - ) - end - def list(request_options: {}) - end - - # Delete a VM. - sig do - params( - vm_id_or_alias: String, - recursive: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::API::VmDeleteResponse) - end - def delete( - # Unique VM identifier - vm_id_or_alias, - # Delete children recursively - recursive:, - request_options: {} - ) - end - - # Branch a VM. - sig do - params( - vm_id_or_alias: String, - alias_: T.nilable(String), - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::VmBranchResponse) - end - def branch( - # Unique VM identifier - vm_id_or_alias, - alias_: nil, - request_options: {} - ) - end - - # Commit a VM. - sig do - params( - vm_id_or_alias: String, - tags: T.nilable(T::Array[String]), - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::API::VmCommitResponse) - end - def commit( - # Unique VM identifier - vm_id_or_alias, - tags: nil, - request_options: {} - ) - end - - # Get the SSH private key for VM access - sig do - params( - vm_id_or_alias: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::API::VmGetSSHKeyResponse) - end - def get_ssh_key( - # Unique VM identifier - vm_id_or_alias, - request_options: {} - ) - end - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/vers/resources/orchestrator.rbi b/rbi/vers/resources/orchestrator.rbi new file mode 100644 index 0000000..d53fa47 --- /dev/null +++ b/rbi/vers/resources/orchestrator.rbi @@ -0,0 +1,18 @@ +# typed: strong + +module Vers + module Resources + class Orchestrator + sig { returns(Vers::Resources::Orchestrator::Vm) } + attr_reader :vm + + sig { returns(Vers::Resources::Orchestrator::Node) } + attr_reader :node + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/vers/resources/orchestrator/node.rbi b/rbi/vers/resources/orchestrator/node.rbi new file mode 100644 index 0000000..10c8ca8 --- /dev/null +++ b/rbi/vers/resources/orchestrator/node.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Resources + class Orchestrator + class Node + sig do + params( + node_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Orchestrator::VmListAllResponse) + end + def list_vms( + # Node ID + node_id, + request_options: {} + ) + end + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/vers/resources/orchestrator/vm.rbi b/rbi/vers/resources/orchestrator/vm.rbi new file mode 100644 index 0000000..4a87fcc --- /dev/null +++ b/rbi/vers/resources/orchestrator/vm.rbi @@ -0,0 +1,91 @@ +# typed: strong + +module Vers + module Resources + class Orchestrator + class Vm + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Orchestrator::VmDeleteResponse) + end + def delete( + # VM ID to delete + vm_id, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Orchestrator::NewVmResponse) + end + def branch( + # Parent VM ID + vm_id, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Orchestrator::VmCommitResponse) + end + def commit( + # VM ID to commit + vm_id, + request_options: {} + ) + end + + sig do + params( + vm_config: Vers::Orchestrator::NewRootRequest::VmConfig::OrHash, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Orchestrator::NewVmResponse) + end + def create_root( + # Struct representing configuration options common to all VMs + vm_config:, + request_options: {} + ) + end + + sig do + params( + commit_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Orchestrator::NewVmResponse) + end + def restore_from_commit(commit_id:, request_options: {}) + end + + sig do + params( + vm_id: String, + state: Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol, + request_options: Vers::RequestOptions::OrHash + ).void + end + def update_state( + # VM ID + vm_id, + # The requested state for the VM + state:, + request_options: {} + ) + end + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/sig/vers/client.rbs b/sig/vers/client.rbs index 98f540a..1a14b63 100644 --- a/sig/vers/client.rbs +++ b/sig/vers/client.rbs @@ -10,7 +10,7 @@ module Vers attr_reader api_key: String? - attr_reader api: Vers::Resources::API + attr_reader orchestrator: Vers::Resources::Orchestrator private def auth_headers: -> ::Hash[String, String] diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index e70fef2..b53500c 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -1,3 +1,3 @@ module Vers - module API = Vers::Models::API + module Orchestrator = Vers::Models::Orchestrator end diff --git a/sig/vers/models/api/cluster_create_params.rbs b/sig/vers/models/api/cluster_create_params.rbs deleted file mode 100644 index fa175a8..0000000 --- a/sig/vers/models/api/cluster_create_params.rbs +++ /dev/null @@ -1,30 +0,0 @@ -module Vers - module Models - module API - type cluster_create_params = - { cluster_create_request: Vers::Models::API::cluster_create_request } - & Vers::Internal::Type::request_parameters - - class ClusterCreateParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def cluster_create_request: -> Vers::Models::API::cluster_create_request - - def cluster_create_request=: ( - Vers::Models::API::cluster_create_request _ - ) -> Vers::Models::API::cluster_create_request - - def initialize: ( - cluster_create_request: Vers::Models::API::cluster_create_request, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - cluster_create_request: Vers::Models::API::cluster_create_request, - request_options: Vers::RequestOptions - } - end - end - end -end diff --git a/sig/vers/models/api/cluster_create_request.rbs b/sig/vers/models/api/cluster_create_request.rbs deleted file mode 100644 index cbe15b0..0000000 --- a/sig/vers/models/api/cluster_create_request.rbs +++ /dev/null @@ -1,163 +0,0 @@ -module Vers - module Models - module API - type cluster_create_request = - Vers::API::ClusterCreateRequest::NewClusterParams - | Vers::API::ClusterCreateRequest::ClusterFromCommitParams - - module ClusterCreateRequest - extend Vers::Internal::Type::Union - - type new_cluster_params = - { - cluster_type: Vers::Models::API::ClusterCreateRequest::NewClusterParams::cluster_type, - params: Vers::API::ClusterCreateRequest::NewClusterParams::Params - } - - class NewClusterParams < Vers::Internal::Type::BaseModel - attr_accessor cluster_type: Vers::Models::API::ClusterCreateRequest::NewClusterParams::cluster_type - - attr_accessor params: Vers::API::ClusterCreateRequest::NewClusterParams::Params - - def initialize: ( - cluster_type: Vers::Models::API::ClusterCreateRequest::NewClusterParams::cluster_type, - params: Vers::API::ClusterCreateRequest::NewClusterParams::Params - ) -> void - - def to_hash: -> { - cluster_type: Vers::Models::API::ClusterCreateRequest::NewClusterParams::cluster_type, - params: Vers::API::ClusterCreateRequest::NewClusterParams::Params - } - - type cluster_type = :new - - module ClusterType - extend Vers::Internal::Type::Enum - - NEW: :new - - def self?.values: -> ::Array[Vers::Models::API::ClusterCreateRequest::NewClusterParams::cluster_type] - end - - type params = - { - cluster_alias: String?, - fs_size_cluster_mib: Integer?, - fs_size_vm_mib: Integer?, - kernel_name: String?, - mem_size_mib: Integer?, - rootfs_name: String?, - vcpu_count: Integer?, - vm_alias: String? - } - - class Params < Vers::Internal::Type::BaseModel - attr_accessor cluster_alias: String? - - attr_accessor fs_size_cluster_mib: Integer? - - attr_accessor fs_size_vm_mib: Integer? - - attr_accessor kernel_name: String? - - attr_accessor mem_size_mib: Integer? - - attr_accessor rootfs_name: String? - - attr_accessor vcpu_count: Integer? - - attr_accessor vm_alias: String? - - def initialize: ( - ?cluster_alias: String?, - ?fs_size_cluster_mib: Integer?, - ?fs_size_vm_mib: Integer?, - ?kernel_name: String?, - ?mem_size_mib: Integer?, - ?rootfs_name: String?, - ?vcpu_count: Integer?, - ?vm_alias: String? - ) -> void - - def to_hash: -> { - cluster_alias: String?, - fs_size_cluster_mib: Integer?, - fs_size_vm_mib: Integer?, - kernel_name: String?, - mem_size_mib: Integer?, - rootfs_name: String?, - vcpu_count: Integer?, - vm_alias: String? - } - end - end - - type cluster_from_commit_params = - { - cluster_type: Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::cluster_type, - params: Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params - } - - class ClusterFromCommitParams < Vers::Internal::Type::BaseModel - attr_accessor cluster_type: Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::cluster_type - - attr_accessor params: Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params - - def initialize: ( - cluster_type: Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::cluster_type, - params: Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params - ) -> void - - def to_hash: -> { - cluster_type: Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::cluster_type, - params: Vers::API::ClusterCreateRequest::ClusterFromCommitParams::Params - } - - type cluster_type = :from_commit - - module ClusterType - extend Vers::Internal::Type::Enum - - FROM_COMMIT: :from_commit - - def self?.values: -> ::Array[Vers::Models::API::ClusterCreateRequest::ClusterFromCommitParams::cluster_type] - end - - type params = - { - commit_id: String, - cluster_alias: String?, - fs_size_cluster_mib: Integer?, - vm_alias: String? - } - - class Params < Vers::Internal::Type::BaseModel - attr_accessor commit_id: String - - attr_accessor cluster_alias: String? - - attr_accessor fs_size_cluster_mib: Integer? - - attr_accessor vm_alias: String? - - def initialize: ( - commit_id: String, - ?cluster_alias: String?, - ?fs_size_cluster_mib: Integer?, - ?vm_alias: String? - ) -> void - - def to_hash: -> { - commit_id: String, - cluster_alias: String?, - fs_size_cluster_mib: Integer?, - vm_alias: String? - } - end - end - - def self?.variants: -> ::Array[Vers::Models::API::cluster_create_request] - end - end - end -end diff --git a/sig/vers/models/api/cluster_create_response.rbs b/sig/vers/models/api/cluster_create_response.rbs deleted file mode 100644 index 4ac6f96..0000000 --- a/sig/vers/models/api/cluster_create_response.rbs +++ /dev/null @@ -1,125 +0,0 @@ -module Vers - module Models - module API - type cluster_create_response = - { - data: Vers::Models::API::ClusterCreateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterCreateResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class ClusterCreateResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::ClusterCreateResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::ClusterCreateResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::ClusterCreateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterCreateResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::ClusterCreateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterCreateResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor root_vm_id: String - - attr_accessor vm_count: Integer - - attr_accessor vms: ::Array[Vers::API::VmDto] - - attr_accessor alias_: String? - - def initialize: ( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - ?alias_: String? - ) -> void - - def to_hash: -> { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::ClusterCreateResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/cluster_delete_response.rbs b/sig/vers/models/api/cluster_delete_response.rbs deleted file mode 100644 index 57a52b6..0000000 --- a/sig/vers/models/api/cluster_delete_response.rbs +++ /dev/null @@ -1,110 +0,0 @@ -module Vers - module Models - module API - type cluster_delete_response = - { - data: Vers::API::ClusterDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class ClusterDeleteResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::API::ClusterDeleteResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::ClusterDeleteResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::API::ClusterDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::API::ClusterDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - cluster_id: String, - vms: Vers::API::VmDeleteResponse, - fs_error: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor cluster_id: String - - attr_accessor vms: Vers::API::VmDeleteResponse - - attr_accessor fs_error: String? - - def initialize: ( - cluster_id: String, - vms: Vers::API::VmDeleteResponse, - ?fs_error: String? - ) -> void - - def to_hash: -> { - cluster_id: String, - vms: Vers::API::VmDeleteResponse, - fs_error: String? - } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::ClusterDeleteResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/cluster_dto.rbs b/sig/vers/models/api/cluster_dto.rbs deleted file mode 100644 index 134a4b3..0000000 --- a/sig/vers/models/api/cluster_dto.rbs +++ /dev/null @@ -1,47 +0,0 @@ -module Vers - module Models - module API - type cluster_dto = - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - - class ClusterDto < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor root_vm_id: String - - attr_accessor vm_count: Integer - - attr_accessor vms: ::Array[Vers::API::VmDto] - - attr_accessor alias_: String? - - def initialize: ( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - ?alias_: String? - ) -> void - - def to_hash: -> { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - end - end - end -end diff --git a/sig/vers/models/api/cluster_get_ssh_key_response.rbs b/sig/vers/models/api/cluster_get_ssh_key_response.rbs deleted file mode 100644 index e841135..0000000 --- a/sig/vers/models/api/cluster_get_ssh_key_response.rbs +++ /dev/null @@ -1,83 +0,0 @@ -module Vers - module Models - module API - type cluster_get_ssh_key_response = - { - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterGetSSHKeyResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class ClusterGetSSHKeyResponse < Vers::Internal::Type::BaseModel - attr_accessor data: String - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::ClusterGetSSHKeyResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterGetSSHKeyResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterGetSSHKeyResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::ClusterGetSSHKeyResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/cluster_list_params.rbs b/sig/vers/models/api/cluster_list_params.rbs deleted file mode 100644 index f239847..0000000 --- a/sig/vers/models/api/cluster_list_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module API - type cluster_list_params = { } & Vers::Internal::Type::request_parameters - - class ClusterListParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/cluster_list_response.rbs b/sig/vers/models/api/cluster_list_response.rbs deleted file mode 100644 index 10e48c7..0000000 --- a/sig/vers/models/api/cluster_list_response.rbs +++ /dev/null @@ -1,125 +0,0 @@ -module Vers - module Models - module API - type cluster_list_response = - { - data: ::Array[Vers::Models::API::ClusterListResponse::Data], - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterListResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class ClusterListResponse < Vers::Internal::Type::BaseModel - attr_accessor data: ::Array[Vers::Models::API::ClusterListResponse::Data] - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::ClusterListResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: ::Array[Vers::Models::API::ClusterListResponse::Data], - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterListResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: ::Array[Vers::Models::API::ClusterListResponse::Data], - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterListResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor root_vm_id: String - - attr_accessor vm_count: Integer - - attr_accessor vms: ::Array[Vers::API::VmDto] - - attr_accessor alias_: String? - - def initialize: ( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - ?alias_: String? - ) -> void - - def to_hash: -> { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::ClusterListResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/cluster_patch_request.rbs b/sig/vers/models/api/cluster_patch_request.rbs deleted file mode 100644 index 363a926..0000000 --- a/sig/vers/models/api/cluster_patch_request.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module API - type cluster_patch_request = { alias_: String? } - - class ClusterPatchRequest < Vers::Internal::Type::BaseModel - attr_accessor alias_: String? - - def initialize: (?alias_: String?) -> void - - def to_hash: -> { alias_: String? } - end - end - end -end diff --git a/sig/vers/models/api/cluster_retrieve_response.rbs b/sig/vers/models/api/cluster_retrieve_response.rbs deleted file mode 100644 index 4148ba6..0000000 --- a/sig/vers/models/api/cluster_retrieve_response.rbs +++ /dev/null @@ -1,125 +0,0 @@ -module Vers - module Models - module API - type cluster_retrieve_response = - { - data: Vers::Models::API::ClusterRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterRetrieveResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class ClusterRetrieveResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::ClusterRetrieveResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::ClusterRetrieveResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::ClusterRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterRetrieveResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::ClusterRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterRetrieveResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor root_vm_id: String - - attr_accessor vm_count: Integer - - attr_accessor vms: ::Array[Vers::API::VmDto] - - attr_accessor alias_: String? - - def initialize: ( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - ?alias_: String? - ) -> void - - def to_hash: -> { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::ClusterRetrieveResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/cluster_update_response.rbs b/sig/vers/models/api/cluster_update_response.rbs deleted file mode 100644 index e258f0a..0000000 --- a/sig/vers/models/api/cluster_update_response.rbs +++ /dev/null @@ -1,125 +0,0 @@ -module Vers - module Models - module API - type cluster_update_response = - { - data: Vers::Models::API::ClusterUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterUpdateResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class ClusterUpdateResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::ClusterUpdateResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::ClusterUpdateResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::ClusterUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterUpdateResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::ClusterUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterUpdateResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor root_vm_id: String - - attr_accessor vm_count: Integer - - attr_accessor vms: ::Array[Vers::API::VmDto] - - attr_accessor alias_: String? - - def initialize: ( - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - ?alias_: String? - ) -> void - - def to_hash: -> { - id: String, - fs_size_mib: Integer, - root_vm_id: String, - vm_count: Integer, - vms: ::Array[Vers::API::VmDto], - alias_: String? - } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::ClusterUpdateResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/health_check_params.rbs b/sig/vers/models/api/health_check_params.rbs deleted file mode 100644 index 99e32a3..0000000 --- a/sig/vers/models/api/health_check_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module API - type health_check_params = { } & Vers::Internal::Type::request_parameters - - class HealthCheckParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/health_check_response.rbs b/sig/vers/models/api/health_check_response.rbs deleted file mode 100644 index ff43ed6..0000000 --- a/sig/vers/models/api/health_check_response.rbs +++ /dev/null @@ -1,7 +0,0 @@ -module Vers - module Models - module API - class HealthCheckResponse = String - end - end -end diff --git a/sig/vers/models/api/rootf_delete_params.rbs b/sig/vers/models/api/rootf_delete_params.rbs deleted file mode 100644 index 760c5e4..0000000 --- a/sig/vers/models/api/rootf_delete_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module API - type rootf_delete_params = { } & Vers::Internal::Type::request_parameters - - class RootfDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/rootf_delete_response.rbs b/sig/vers/models/api/rootf_delete_response.rbs deleted file mode 100644 index 0982d52..0000000 --- a/sig/vers/models/api/rootf_delete_response.rbs +++ /dev/null @@ -1,93 +0,0 @@ -module Vers - module Models - module API - type rootf_delete_response = - { - data: Vers::Models::API::RootfDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class RootfDeleteResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::RootfDeleteResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::RootfDeleteResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::RootfDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::RootfDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = { rootfs_name: String } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor rootfs_name: String - - def initialize: (rootfs_name: String) -> void - - def to_hash: -> { rootfs_name: String } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::RootfDeleteResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/rootf_list_params.rbs b/sig/vers/models/api/rootf_list_params.rbs deleted file mode 100644 index 7fc60ca..0000000 --- a/sig/vers/models/api/rootf_list_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module API - type rootf_list_params = { } & Vers::Internal::Type::request_parameters - - class RootfListParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/rootf_list_response.rbs b/sig/vers/models/api/rootf_list_response.rbs deleted file mode 100644 index 6821eb2..0000000 --- a/sig/vers/models/api/rootf_list_response.rbs +++ /dev/null @@ -1,93 +0,0 @@ -module Vers - module Models - module API - type rootf_list_response = - { - data: Vers::Models::API::RootfListResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfListResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class RootfListResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::RootfListResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::RootfListResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::RootfListResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfListResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::RootfListResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfListResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = { rootfs_names: ::Array[String] } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor rootfs_names: ::Array[String] - - def initialize: (rootfs_names: ::Array[String]) -> void - - def to_hash: -> { rootfs_names: ::Array[String] } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::RootfListResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/rootf_upload_params.rbs b/sig/vers/models/api/rootf_upload_params.rbs deleted file mode 100644 index 5ce1392..0000000 --- a/sig/vers/models/api/rootf_upload_params.rbs +++ /dev/null @@ -1,27 +0,0 @@ -module Vers - module Models - module API - type rootf_upload_params = - { dockerfile: String } & Vers::Internal::Type::request_parameters - - class RootfUploadParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_reader dockerfile: String? - - def dockerfile=: (String) -> String - - def initialize: ( - ?dockerfile: String, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - dockerfile: String, - request_options: Vers::RequestOptions - } - end - end - end -end diff --git a/sig/vers/models/api/rootf_upload_response.rbs b/sig/vers/models/api/rootf_upload_response.rbs deleted file mode 100644 index cd74adc..0000000 --- a/sig/vers/models/api/rootf_upload_response.rbs +++ /dev/null @@ -1,93 +0,0 @@ -module Vers - module Models - module API - type rootf_upload_response = - { - data: Vers::Models::API::RootfUploadResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfUploadResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class RootfUploadResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::RootfUploadResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::RootfUploadResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::RootfUploadResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfUploadResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::RootfUploadResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfUploadResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = { rootfs_name: String } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor rootfs_name: String - - def initialize: (rootfs_name: String) -> void - - def to_hash: -> { rootfs_name: String } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::RootfUploadResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/rootfs_delete_response.rbs b/sig/vers/models/api/rootfs_delete_response.rbs deleted file mode 100644 index a381190..0000000 --- a/sig/vers/models/api/rootfs_delete_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module API - type rootfs_delete_response = { rootfs_name: String } - - class RootfsDeleteResponse < Vers::Internal::Type::BaseModel - attr_accessor rootfs_name: String - - def initialize: (rootfs_name: String) -> void - - def to_hash: -> { rootfs_name: String } - end - end - end -end diff --git a/sig/vers/models/api/rootfs_list_response.rbs b/sig/vers/models/api/rootfs_list_response.rbs deleted file mode 100644 index de34dc5..0000000 --- a/sig/vers/models/api/rootfs_list_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module API - type rootfs_list_response = { rootfs_names: ::Array[String] } - - class RootfsListResponse < Vers::Internal::Type::BaseModel - attr_accessor rootfs_names: ::Array[String] - - def initialize: (rootfs_names: ::Array[String]) -> void - - def to_hash: -> { rootfs_names: ::Array[String] } - end - end - end -end diff --git a/sig/vers/models/api/rootfs_upload_response.rbs b/sig/vers/models/api/rootfs_upload_response.rbs deleted file mode 100644 index 1038d65..0000000 --- a/sig/vers/models/api/rootfs_upload_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module API - type rootfs_upload_response = { rootfs_name: String } - - class RootfsUploadResponse < Vers::Internal::Type::BaseModel - attr_accessor rootfs_name: String - - def initialize: (rootfs_name: String) -> void - - def to_hash: -> { rootfs_name: String } - end - end - end -end diff --git a/sig/vers/models/api/telemetry_dto.rbs b/sig/vers/models/api/telemetry_dto.rbs deleted file mode 100644 index 751ff13..0000000 --- a/sig/vers/models/api/telemetry_dto.rbs +++ /dev/null @@ -1,92 +0,0 @@ -module Vers - module Models - module API - type telemetry_dto = - { - id: String, - cpu_cores_available: Integer, - cpu_cores_margin: Integer, - cpu_cores_total: Integer, - cpu_cores_used: Integer, - disk_data_mib_available: Integer, - disk_data_mib_total: Integer, - disk_vm_mib_available: Integer, - disk_vm_mib_total: Integer, - memory_mib_available: Integer, - memory_mib_margin: Integer, - memory_mib_total: Integer, - memory_mib_used: Integer, - vm_network_count_in_use: Integer, - vm_network_count_total: Integer - } - - class TelemetryDto < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor cpu_cores_available: Integer - - attr_accessor cpu_cores_margin: Integer - - attr_accessor cpu_cores_total: Integer - - attr_accessor cpu_cores_used: Integer - - attr_accessor disk_data_mib_available: Integer - - attr_accessor disk_data_mib_total: Integer - - attr_accessor disk_vm_mib_available: Integer - - attr_accessor disk_vm_mib_total: Integer - - attr_accessor memory_mib_available: Integer - - attr_accessor memory_mib_margin: Integer - - attr_accessor memory_mib_total: Integer - - attr_accessor memory_mib_used: Integer - - attr_accessor vm_network_count_in_use: Integer - - attr_accessor vm_network_count_total: Integer - - def initialize: ( - id: String, - cpu_cores_available: Integer, - cpu_cores_margin: Integer, - cpu_cores_total: Integer, - cpu_cores_used: Integer, - disk_data_mib_available: Integer, - disk_data_mib_total: Integer, - disk_vm_mib_available: Integer, - disk_vm_mib_total: Integer, - memory_mib_available: Integer, - memory_mib_margin: Integer, - memory_mib_total: Integer, - memory_mib_used: Integer, - vm_network_count_in_use: Integer, - vm_network_count_total: Integer - ) -> void - - def to_hash: -> { - id: String, - cpu_cores_available: Integer, - cpu_cores_margin: Integer, - cpu_cores_total: Integer, - cpu_cores_used: Integer, - disk_data_mib_available: Integer, - disk_data_mib_total: Integer, - disk_vm_mib_available: Integer, - disk_vm_mib_total: Integer, - memory_mib_available: Integer, - memory_mib_margin: Integer, - memory_mib_total: Integer, - memory_mib_used: Integer, - vm_network_count_in_use: Integer, - vm_network_count_total: Integer - } - end - end - end -end diff --git a/sig/vers/models/api/telemetry_get_info_params.rbs b/sig/vers/models/api/telemetry_get_info_params.rbs deleted file mode 100644 index 7be7fd2..0000000 --- a/sig/vers/models/api/telemetry_get_info_params.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Models - module API - type telemetry_get_info_params = - { } & Vers::Internal::Type::request_parameters - - class TelemetryGetInfoParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/vm_branch_request.rbs b/sig/vers/models/api/vm_branch_request.rbs deleted file mode 100644 index cbd3210..0000000 --- a/sig/vers/models/api/vm_branch_request.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module API - type vm_branch_request = { alias_: String? } - - class VmBranchRequest < Vers::Internal::Type::BaseModel - attr_accessor alias_: String? - - def initialize: (?alias_: String?) -> void - - def to_hash: -> { alias_: String? } - end - end - end -end diff --git a/sig/vers/models/api/vm_branch_response.rbs b/sig/vers/models/api/vm_branch_response.rbs deleted file mode 100644 index d081e70..0000000 --- a/sig/vers/models/api/vm_branch_response.rbs +++ /dev/null @@ -1,204 +0,0 @@ -module Vers - module Models - module API - type vm_branch_response = - { - data: Vers::Models::API::VmBranchResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmBranchResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class VmBranchResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::VmBranchResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::VmBranchResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::VmBranchResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmBranchResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::VmBranchResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmBranchResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmBranchResponse::Data::NetworkInfo, - state: Vers::Models::API::VmBranchResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor children: ::Array[String] - - attr_accessor cluster_id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor ip_address: String - - attr_accessor mem_size_mib: Integer - - attr_accessor network_info: Vers::Models::API::VmBranchResponse::Data::NetworkInfo - - attr_accessor state: Vers::Models::API::VmBranchResponse::Data::state - - attr_accessor vcpu_count: Integer - - attr_accessor alias_: String? - - attr_accessor parent_id: String? - - def initialize: ( - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmBranchResponse::Data::NetworkInfo, - state: Vers::Models::API::VmBranchResponse::Data::state, - vcpu_count: Integer, - ?alias_: String?, - ?parent_id: String? - ) -> void - - def to_hash: -> { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmBranchResponse::Data::NetworkInfo, - state: Vers::Models::API::VmBranchResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - type network_info = - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - - class NetworkInfo < Vers::Internal::Type::BaseModel - attr_accessor guest_ip: String - - attr_accessor guest_mac: String - - attr_accessor ssh_port: Integer - - attr_accessor tap0_ip: String - - attr_accessor tap0_name: String - - attr_accessor vm_namespace: String - - def initialize: ( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ) -> void - - def to_hash: -> { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - end - - type state = :"Not started" | :Running | :Paused - - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED: :"Not started" - RUNNING: :Running - PAUSED: :Paused - - def self?.values: -> ::Array[Vers::Models::API::VmBranchResponse::Data::state] - end - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::VmBranchResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_commit_request.rbs b/sig/vers/models/api/vm_commit_request.rbs deleted file mode 100644 index 3465472..0000000 --- a/sig/vers/models/api/vm_commit_request.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module API - type vm_commit_request = { tags: ::Array[String]? } - - class VmCommitRequest < Vers::Internal::Type::BaseModel - attr_accessor tags: ::Array[String]? - - def initialize: (?tags: ::Array[String]?) -> void - - def to_hash: -> { tags: ::Array[String]? } - end - end - end -end diff --git a/sig/vers/models/api/vm_commit_response.rbs b/sig/vers/models/api/vm_commit_response.rbs deleted file mode 100644 index 78f0335..0000000 --- a/sig/vers/models/api/vm_commit_response.rbs +++ /dev/null @@ -1,106 +0,0 @@ -module Vers - module Models - module API - type vm_commit_response = - { - data: Vers::API::VmCommitResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmCommitResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class VmCommitResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::API::VmCommitResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::VmCommitResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::API::VmCommitResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmCommitResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::API::VmCommitResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmCommitResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { cluster_id: String, commit_id: String, host_architecture: String } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor cluster_id: String - - attr_accessor commit_id: String - - attr_accessor host_architecture: String - - def initialize: ( - cluster_id: String, - commit_id: String, - host_architecture: String - ) -> void - - def to_hash: -> { - cluster_id: String, - commit_id: String, - host_architecture: String - } - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::VmCommitResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_delete_params.rbs b/sig/vers/models/api/vm_delete_params.rbs deleted file mode 100644 index 7dc73a2..0000000 --- a/sig/vers/models/api/vm_delete_params.rbs +++ /dev/null @@ -1,25 +0,0 @@ -module Vers - module Models - module API - type vm_delete_params = - { recursive: bool } & Vers::Internal::Type::request_parameters - - class VmDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_accessor recursive: bool - - def initialize: ( - recursive: bool, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - recursive: bool, - request_options: Vers::RequestOptions - } - end - end - end -end diff --git a/sig/vers/models/api/vm_delete_response.rbs b/sig/vers/models/api/vm_delete_response.rbs deleted file mode 100644 index dccf995..0000000 --- a/sig/vers/models/api/vm_delete_response.rbs +++ /dev/null @@ -1,117 +0,0 @@ -module Vers - module Models - module API - type vm_delete_response = - { - data: Vers::API::VmDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class VmDeleteResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::API::VmDeleteResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::VmDeleteResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::API::VmDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::API::VmDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmDeleteResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - deleted_ids: ::Array[String], - errors: ::Array[Vers::API::VmDeleteResponse::Data::Error] - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor deleted_ids: ::Array[String] - - attr_accessor errors: ::Array[Vers::API::VmDeleteResponse::Data::Error] - - def initialize: ( - deleted_ids: ::Array[String], - errors: ::Array[Vers::API::VmDeleteResponse::Data::Error] - ) -> void - - def to_hash: -> { - deleted_ids: ::Array[String], - errors: ::Array[Vers::API::VmDeleteResponse::Data::Error] - } - - type error = { id: String, error: String } - - class Error < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor error: String - - def initialize: (id: String, error: String) -> void - - def to_hash: -> { id: String, error: String } - end - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::VmDeleteResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_dto.rbs b/sig/vers/models/api/vm_dto.rbs deleted file mode 100644 index a2f3a3e..0000000 --- a/sig/vers/models/api/vm_dto.rbs +++ /dev/null @@ -1,126 +0,0 @@ -module Vers - module Models - module API - type vm_dto = - { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::API::VmDto::NetworkInfo, - state: Vers::Models::API::VmDto::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - class VmDto < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor children: ::Array[String] - - attr_accessor cluster_id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor ip_address: String - - attr_accessor mem_size_mib: Integer - - attr_accessor network_info: Vers::API::VmDto::NetworkInfo - - attr_accessor state: Vers::Models::API::VmDto::state - - attr_accessor vcpu_count: Integer - - attr_accessor alias_: String? - - attr_accessor parent_id: String? - - def initialize: ( - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::API::VmDto::NetworkInfo, - state: Vers::Models::API::VmDto::state, - vcpu_count: Integer, - ?alias_: String?, - ?parent_id: String? - ) -> void - - def to_hash: -> { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::API::VmDto::NetworkInfo, - state: Vers::Models::API::VmDto::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - type network_info = - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - - class NetworkInfo < Vers::Internal::Type::BaseModel - attr_accessor guest_ip: String - - attr_accessor guest_mac: String - - attr_accessor ssh_port: Integer - - attr_accessor tap0_ip: String - - attr_accessor tap0_name: String - - attr_accessor vm_namespace: String - - def initialize: ( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ) -> void - - def to_hash: -> { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - end - - type state = :"Not started" | :Running | :Paused - - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED: :"Not started" - RUNNING: :Running - PAUSED: :Paused - - def self?.values: -> ::Array[Vers::Models::API::VmDto::state] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_get_ssh_key_params.rbs b/sig/vers/models/api/vm_get_ssh_key_params.rbs deleted file mode 100644 index afe9d46..0000000 --- a/sig/vers/models/api/vm_get_ssh_key_params.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Models - module API - type vm_get_ssh_key_params = - { } & Vers::Internal::Type::request_parameters - - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/vm_get_ssh_key_response.rbs b/sig/vers/models/api/vm_get_ssh_key_response.rbs deleted file mode 100644 index b031bd1..0000000 --- a/sig/vers/models/api/vm_get_ssh_key_response.rbs +++ /dev/null @@ -1,83 +0,0 @@ -module Vers - module Models - module API - type vm_get_ssh_key_response = - { - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::VmGetSSHKeyResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class VmGetSSHKeyResponse < Vers::Internal::Type::BaseModel - attr_accessor data: String - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::VmGetSSHKeyResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::VmGetSSHKeyResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::VmGetSSHKeyResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::VmGetSSHKeyResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_list_params.rbs b/sig/vers/models/api/vm_list_params.rbs deleted file mode 100644 index a308a19..0000000 --- a/sig/vers/models/api/vm_list_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module API - type vm_list_params = { } & Vers::Internal::Type::request_parameters - - class VmListParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/vm_list_response.rbs b/sig/vers/models/api/vm_list_response.rbs deleted file mode 100644 index e8641ae..0000000 --- a/sig/vers/models/api/vm_list_response.rbs +++ /dev/null @@ -1,204 +0,0 @@ -module Vers - module Models - module API - type vm_list_response = - { - data: ::Array[Vers::Models::API::VmListResponse::Data], - duration_ns: Integer, - operation_code: Vers::Models::API::VmListResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class VmListResponse < Vers::Internal::Type::BaseModel - attr_accessor data: ::Array[Vers::Models::API::VmListResponse::Data] - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::VmListResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: ::Array[Vers::Models::API::VmListResponse::Data], - duration_ns: Integer, - operation_code: Vers::Models::API::VmListResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: ::Array[Vers::Models::API::VmListResponse::Data], - duration_ns: Integer, - operation_code: Vers::Models::API::VmListResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmListResponse::Data::NetworkInfo, - state: Vers::Models::API::VmListResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor children: ::Array[String] - - attr_accessor cluster_id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor ip_address: String - - attr_accessor mem_size_mib: Integer - - attr_accessor network_info: Vers::Models::API::VmListResponse::Data::NetworkInfo - - attr_accessor state: Vers::Models::API::VmListResponse::Data::state - - attr_accessor vcpu_count: Integer - - attr_accessor alias_: String? - - attr_accessor parent_id: String? - - def initialize: ( - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmListResponse::Data::NetworkInfo, - state: Vers::Models::API::VmListResponse::Data::state, - vcpu_count: Integer, - ?alias_: String?, - ?parent_id: String? - ) -> void - - def to_hash: -> { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmListResponse::Data::NetworkInfo, - state: Vers::Models::API::VmListResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - type network_info = - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - - class NetworkInfo < Vers::Internal::Type::BaseModel - attr_accessor guest_ip: String - - attr_accessor guest_mac: String - - attr_accessor ssh_port: Integer - - attr_accessor tap0_ip: String - - attr_accessor tap0_name: String - - attr_accessor vm_namespace: String - - def initialize: ( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ) -> void - - def to_hash: -> { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - end - - type state = :"Not started" | :Running | :Paused - - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED: :"Not started" - RUNNING: :Running - PAUSED: :Paused - - def self?.values: -> ::Array[Vers::Models::API::VmListResponse::Data::state] - end - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::VmListResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_patch_request.rbs b/sig/vers/models/api/vm_patch_request.rbs deleted file mode 100644 index a2f1414..0000000 --- a/sig/vers/models/api/vm_patch_request.rbs +++ /dev/null @@ -1,35 +0,0 @@ -module Vers - module Models - module API - type vm_patch_request = - { alias_: String?, state: Vers::Models::API::VmPatchRequest::state? } - - class VmPatchRequest < Vers::Internal::Type::BaseModel - attr_accessor alias_: String? - - attr_accessor state: Vers::Models::API::VmPatchRequest::state? - - def initialize: ( - ?alias_: String?, - ?state: Vers::Models::API::VmPatchRequest::state? - ) -> void - - def to_hash: -> { - alias_: String?, - state: Vers::Models::API::VmPatchRequest::state? - } - - type state = :Running | :Paused - - module State - extend Vers::Internal::Type::Enum - - RUNNING: :Running - PAUSED: :Paused - - def self?.values: -> ::Array[Vers::Models::API::VmPatchRequest::state] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_retrieve_params.rbs b/sig/vers/models/api/vm_retrieve_params.rbs deleted file mode 100644 index b653a59..0000000 --- a/sig/vers/models/api/vm_retrieve_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module API - type vm_retrieve_params = { } & Vers::Internal::Type::request_parameters - - class VmRetrieveParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/api/vm_retrieve_response.rbs b/sig/vers/models/api/vm_retrieve_response.rbs deleted file mode 100644 index 6d1b86b..0000000 --- a/sig/vers/models/api/vm_retrieve_response.rbs +++ /dev/null @@ -1,204 +0,0 @@ -module Vers - module Models - module API - type vm_retrieve_response = - { - data: Vers::Models::API::VmRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmRetrieveResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class VmRetrieveResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::VmRetrieveResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::VmRetrieveResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::VmRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmRetrieveResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::VmRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmRetrieveResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo, - state: Vers::Models::API::VmRetrieveResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor children: ::Array[String] - - attr_accessor cluster_id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor ip_address: String - - attr_accessor mem_size_mib: Integer - - attr_accessor network_info: Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo - - attr_accessor state: Vers::Models::API::VmRetrieveResponse::Data::state - - attr_accessor vcpu_count: Integer - - attr_accessor alias_: String? - - attr_accessor parent_id: String? - - def initialize: ( - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo, - state: Vers::Models::API::VmRetrieveResponse::Data::state, - vcpu_count: Integer, - ?alias_: String?, - ?parent_id: String? - ) -> void - - def to_hash: -> { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmRetrieveResponse::Data::NetworkInfo, - state: Vers::Models::API::VmRetrieveResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - type network_info = - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - - class NetworkInfo < Vers::Internal::Type::BaseModel - attr_accessor guest_ip: String - - attr_accessor guest_mac: String - - attr_accessor ssh_port: Integer - - attr_accessor tap0_ip: String - - attr_accessor tap0_name: String - - attr_accessor vm_namespace: String - - def initialize: ( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ) -> void - - def to_hash: -> { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - end - - type state = :"Not started" | :Running | :Paused - - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED: :"Not started" - RUNNING: :Running - PAUSED: :Paused - - def self?.values: -> ::Array[Vers::Models::API::VmRetrieveResponse::Data::state] - end - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::VmRetrieveResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/api/vm_update_response.rbs b/sig/vers/models/api/vm_update_response.rbs deleted file mode 100644 index 35030e4..0000000 --- a/sig/vers/models/api/vm_update_response.rbs +++ /dev/null @@ -1,204 +0,0 @@ -module Vers - module Models - module API - type vm_update_response = - { - data: Vers::Models::API::VmUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmUpdateResponse::operation_code, - operation_id: String, - time_start: Integer - } - - class VmUpdateResponse < Vers::Internal::Type::BaseModel - attr_accessor data: Vers::Models::API::VmUpdateResponse::Data - - attr_accessor duration_ns: Integer - - attr_accessor operation_code: Vers::Models::API::VmUpdateResponse::operation_code - - attr_accessor operation_id: String - - attr_accessor time_start: Integer - - def initialize: ( - data: Vers::Models::API::VmUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmUpdateResponse::operation_code, - operation_id: String, - time_start: Integer - ) -> void - - def to_hash: -> { - data: Vers::Models::API::VmUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmUpdateResponse::operation_code, - operation_id: String, - time_start: Integer - } - - type data = - { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmUpdateResponse::Data::NetworkInfo, - state: Vers::Models::API::VmUpdateResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - class Data < Vers::Internal::Type::BaseModel - attr_accessor id: String - - attr_accessor children: ::Array[String] - - attr_accessor cluster_id: String - - attr_accessor fs_size_mib: Integer - - attr_accessor ip_address: String - - attr_accessor mem_size_mib: Integer - - attr_accessor network_info: Vers::Models::API::VmUpdateResponse::Data::NetworkInfo - - attr_accessor state: Vers::Models::API::VmUpdateResponse::Data::state - - attr_accessor vcpu_count: Integer - - attr_accessor alias_: String? - - attr_accessor parent_id: String? - - def initialize: ( - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmUpdateResponse::Data::NetworkInfo, - state: Vers::Models::API::VmUpdateResponse::Data::state, - vcpu_count: Integer, - ?alias_: String?, - ?parent_id: String? - ) -> void - - def to_hash: -> { - id: String, - children: ::Array[String], - cluster_id: String, - fs_size_mib: Integer, - ip_address: String, - mem_size_mib: Integer, - network_info: Vers::Models::API::VmUpdateResponse::Data::NetworkInfo, - state: Vers::Models::API::VmUpdateResponse::Data::state, - vcpu_count: Integer, - alias_: String?, - parent_id: String? - } - - type network_info = - { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - - class NetworkInfo < Vers::Internal::Type::BaseModel - attr_accessor guest_ip: String - - attr_accessor guest_mac: String - - attr_accessor ssh_port: Integer - - attr_accessor tap0_ip: String - - attr_accessor tap0_name: String - - attr_accessor vm_namespace: String - - def initialize: ( - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - tap0_ip: String, - tap0_name: String, - vm_namespace: String - ) -> void - - def to_hash: -> { - guest_ip: String, - guest_mac: String, - ssh_port: Integer, - :tap0_ip => String, - :tap0_name => String, - vm_namespace: String - } - end - - type state = :"Not started" | :Running | :Paused - - module State - extend Vers::Internal::Type::Enum - - NOT_STARTED: :"Not started" - RUNNING: :Running - PAUSED: :Paused - - def self?.values: -> ::Array[Vers::Models::API::VmUpdateResponse::Data::state] - end - end - - type operation_code = - :list_clusters - | :get_cluster - | :create_cluster - | :delete_cluster - | :update_cluster - | :get_cluster_ssh_key - | :list_vms - | :get_vm - | :update_vm - | :branch_vm - | :commit_vm - | :delete_vm - | :get_vm_ssh_key - | :upload_rootfs - | :delete_rootfs - | :list_rootfs - - module OperationCode - extend Vers::Internal::Type::Enum - - LIST_CLUSTERS: :list_clusters - GET_CLUSTER: :get_cluster - CREATE_CLUSTER: :create_cluster - DELETE_CLUSTER: :delete_cluster - UPDATE_CLUSTER: :update_cluster - GET_CLUSTER_SSH_KEY: :get_cluster_ssh_key - LIST_VMS: :list_vms - GET_VM: :get_vm - UPDATE_VM: :update_vm - BRANCH_VM: :branch_vm - COMMIT_VM: :commit_vm - DELETE_VM: :delete_vm - GET_VM_SSH_KEY: :get_vm_ssh_key - UPLOAD_ROOTFS: :upload_rootfs - DELETE_ROOTFS: :delete_rootfs - LIST_ROOTFS: :list_rootfs - - def self?.values: -> ::Array[Vers::Models::API::VmUpdateResponse::operation_code] - end - end - end - end -end diff --git a/sig/vers/models/orchestrator/error_response.rbs b/sig/vers/models/orchestrator/error_response.rbs new file mode 100644 index 0000000..be53dad --- /dev/null +++ b/sig/vers/models/orchestrator/error_response.rbs @@ -0,0 +1,21 @@ +module Vers + module Models + module Orchestrator + type error_response = { error: String, success: bool } + + class ErrorResponse < Vers::Internal::Type::BaseModel + attr_reader error: String? + + def error=: (String) -> String + + attr_reader success: bool? + + def success=: (bool) -> bool + + def initialize: (?error: String, ?success: bool) -> void + + def to_hash: -> { error: String, success: bool } + end + end + end +end diff --git a/sig/vers/models/orchestrator/new_root_request.rbs b/sig/vers/models/orchestrator/new_root_request.rbs new file mode 100644 index 0000000..04a8094 --- /dev/null +++ b/sig/vers/models/orchestrator/new_root_request.rbs @@ -0,0 +1,57 @@ +module Vers + module Models + module Orchestrator + type new_root_request = + { vm_config: Vers::Orchestrator::NewRootRequest::VmConfig } + + class NewRootRequest < Vers::Internal::Type::BaseModel + attr_accessor vm_config: Vers::Orchestrator::NewRootRequest::VmConfig + + def initialize: ( + vm_config: Vers::Orchestrator::NewRootRequest::VmConfig + ) -> void + + def to_hash: -> { + vm_config: Vers::Orchestrator::NewRootRequest::VmConfig + } + + type vm_config = + { + fs_size_mib: Integer?, + image_name: String?, + kernel_name: String?, + mem_size_mib: Integer?, + vcpu_count: Integer? + } + + class VmConfig < Vers::Internal::Type::BaseModel + attr_accessor fs_size_mib: Integer? + + attr_accessor image_name: String? + + attr_accessor kernel_name: String? + + attr_accessor mem_size_mib: Integer? + + attr_accessor vcpu_count: Integer? + + def initialize: ( + ?fs_size_mib: Integer?, + ?image_name: String?, + ?kernel_name: String?, + ?mem_size_mib: Integer?, + ?vcpu_count: Integer? + ) -> void + + def to_hash: -> { + fs_size_mib: Integer?, + image_name: String?, + kernel_name: String?, + mem_size_mib: Integer?, + vcpu_count: Integer? + } + end + end + end + end +end diff --git a/sig/vers/models/orchestrator/new_vm_response.rbs b/sig/vers/models/orchestrator/new_vm_response.rbs new file mode 100644 index 0000000..9fed43d --- /dev/null +++ b/sig/vers/models/orchestrator/new_vm_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + module Orchestrator + type new_vm_response = { id: String } + + class NewVmResponse < Vers::Internal::Type::BaseModel + attr_accessor id: String + + def initialize: (id: String) -> void + + def to_hash: -> { id: String } + end + end + end +end diff --git a/sig/vers/models/api/cluster_delete_params.rbs b/sig/vers/models/orchestrator/node_list_vms_params.rbs similarity index 75% rename from sig/vers/models/api/cluster_delete_params.rbs rename to sig/vers/models/orchestrator/node_list_vms_params.rbs index f083ac5..1bb51be 100644 --- a/sig/vers/models/api/cluster_delete_params.rbs +++ b/sig/vers/models/orchestrator/node_list_vms_params.rbs @@ -1,10 +1,10 @@ module Vers module Models - module API - type cluster_delete_params = + module Orchestrator + type node_list_vms_params = { } & Vers::Internal::Type::request_parameters - class ClusterDeleteParams < Vers::Internal::Type::BaseModel + class NodeListVmsParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/sig/vers/models/api/vm_branch_params.rbs b/sig/vers/models/orchestrator/vm_branch_params.rbs similarity index 82% rename from sig/vers/models/api/vm_branch_params.rbs rename to sig/vers/models/orchestrator/vm_branch_params.rbs index d5034b9..e939305 100644 --- a/sig/vers/models/api/vm_branch_params.rbs +++ b/sig/vers/models/orchestrator/vm_branch_params.rbs @@ -1,9 +1,9 @@ module Vers module Models - module API + module Orchestrator type vm_branch_params = { } & Vers::Internal::Type::request_parameters - class VmBranchParams < Vers::Models::API::VmBranchRequest + class VmBranchParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/sig/vers/models/orchestrator/vm_branch_response.rbs b/sig/vers/models/orchestrator/vm_branch_response.rbs new file mode 100644 index 0000000..ccd83c0 --- /dev/null +++ b/sig/vers/models/orchestrator/vm_branch_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + module Orchestrator + type vm_branch_response = { vm_id: String } + + class VmBranchResponse < Vers::Internal::Type::BaseModel + attr_accessor vm_id: String + + def initialize: (vm_id: String) -> void + + def to_hash: -> { vm_id: String } + end + end + end +end diff --git a/sig/vers/models/api/vm_commit_params.rbs b/sig/vers/models/orchestrator/vm_commit_params.rbs similarity index 82% rename from sig/vers/models/api/vm_commit_params.rbs rename to sig/vers/models/orchestrator/vm_commit_params.rbs index cac99f7..0de65f6 100644 --- a/sig/vers/models/api/vm_commit_params.rbs +++ b/sig/vers/models/orchestrator/vm_commit_params.rbs @@ -1,9 +1,9 @@ module Vers module Models - module API + module Orchestrator type vm_commit_params = { } & Vers::Internal::Type::request_parameters - class VmCommitParams < Vers::Models::API::VmCommitRequest + class VmCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/sig/vers/models/orchestrator/vm_commit_response.rbs b/sig/vers/models/orchestrator/vm_commit_response.rbs new file mode 100644 index 0000000..9e803a6 --- /dev/null +++ b/sig/vers/models/orchestrator/vm_commit_response.rbs @@ -0,0 +1,17 @@ +module Vers + module Models + module Orchestrator + type vm_commit_response = { commit_id: String, host_architecture: String } + + class VmCommitResponse < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor host_architecture: String + + def initialize: (commit_id: String, host_architecture: String) -> void + + def to_hash: -> { commit_id: String, host_architecture: String } + end + end + end +end diff --git a/sig/vers/models/api/cluster_get_ssh_key_params.rbs b/sig/vers/models/orchestrator/vm_create_root_params.rbs similarity index 73% rename from sig/vers/models/api/cluster_get_ssh_key_params.rbs rename to sig/vers/models/orchestrator/vm_create_root_params.rbs index 445fc35..03d0d21 100644 --- a/sig/vers/models/api/cluster_get_ssh_key_params.rbs +++ b/sig/vers/models/orchestrator/vm_create_root_params.rbs @@ -1,10 +1,10 @@ module Vers module Models - module API - type cluster_get_ssh_key_params = + module Orchestrator + type vm_create_root_params = { } & Vers::Internal::Type::request_parameters - class ClusterGetSSHKeyParams < Vers::Internal::Type::BaseModel + class VmCreateRootParams < Vers::Models::Orchestrator::NewRootRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/sig/vers/models/api/vm_update_params.rbs b/sig/vers/models/orchestrator/vm_delete_params.rbs similarity index 69% rename from sig/vers/models/api/vm_update_params.rbs rename to sig/vers/models/orchestrator/vm_delete_params.rbs index 1b111cf..25ca4d4 100644 --- a/sig/vers/models/api/vm_update_params.rbs +++ b/sig/vers/models/orchestrator/vm_delete_params.rbs @@ -1,9 +1,9 @@ module Vers module Models - module API - type vm_update_params = { } & Vers::Internal::Type::request_parameters + module Orchestrator + type vm_delete_params = { } & Vers::Internal::Type::request_parameters - class VmUpdateParams < Vers::Models::API::VmPatchRequest + class VmDeleteParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/sig/vers/models/orchestrator/vm_delete_response.rbs b/sig/vers/models/orchestrator/vm_delete_response.rbs new file mode 100644 index 0000000..5d5e0ae --- /dev/null +++ b/sig/vers/models/orchestrator/vm_delete_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + module Orchestrator + type vm_delete_response = { deleted_ids: ::Array[String] } + + class VmDeleteResponse < Vers::Internal::Type::BaseModel + attr_accessor deleted_ids: ::Array[String] + + def initialize: (deleted_ids: ::Array[String]) -> void + + def to_hash: -> { deleted_ids: ::Array[String] } + end + end + end +end diff --git a/sig/vers/models/orchestrator/vm_from_commit_request.rbs b/sig/vers/models/orchestrator/vm_from_commit_request.rbs new file mode 100644 index 0000000..64ef81d --- /dev/null +++ b/sig/vers/models/orchestrator/vm_from_commit_request.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + module Orchestrator + type vm_from_commit_request = { commit_id: String } + + class VmFromCommitRequest < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + def initialize: (commit_id: String) -> void + + def to_hash: -> { commit_id: String } + end + end + end +end diff --git a/sig/vers/models/orchestrator/vm_list_all_response.rbs b/sig/vers/models/orchestrator/vm_list_all_response.rbs new file mode 100644 index 0000000..4a65507 --- /dev/null +++ b/sig/vers/models/orchestrator/vm_list_all_response.rbs @@ -0,0 +1,32 @@ +module Vers + module Models + module Orchestrator + type vm_list_all_response = + { vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] } + + class VmListAllResponse < Vers::Internal::Type::BaseModel + attr_accessor vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] + + def initialize: ( + vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] + ) -> void + + def to_hash: -> { + vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] + } + + type vm = { vm_id: String, parent_id: String? } + + class Vm < Vers::Internal::Type::BaseModel + attr_accessor vm_id: String + + attr_accessor parent_id: String? + + def initialize: (vm_id: String, ?parent_id: String?) -> void + + def to_hash: -> { vm_id: String, parent_id: String? } + end + end + end + end +end diff --git a/sig/vers/models/api/cluster_retrieve_params.rbs b/sig/vers/models/orchestrator/vm_restore_from_commit_params.rbs similarity index 70% rename from sig/vers/models/api/cluster_retrieve_params.rbs rename to sig/vers/models/orchestrator/vm_restore_from_commit_params.rbs index 46ebbee..cf9cbdd 100644 --- a/sig/vers/models/api/cluster_retrieve_params.rbs +++ b/sig/vers/models/orchestrator/vm_restore_from_commit_params.rbs @@ -1,10 +1,10 @@ module Vers module Models - module API - type cluster_retrieve_params = + module Orchestrator + type vm_restore_from_commit_params = { } & Vers::Internal::Type::request_parameters - class ClusterRetrieveParams < Vers::Internal::Type::BaseModel + class VmRestoreFromCommitParams < Vers::Models::Orchestrator::VmFromCommitRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/sig/vers/models/api/cluster_update_params.rbs b/sig/vers/models/orchestrator/vm_update_state_params.rbs similarity index 72% rename from sig/vers/models/api/cluster_update_params.rbs rename to sig/vers/models/orchestrator/vm_update_state_params.rbs index ce9c737..e34c073 100644 --- a/sig/vers/models/api/cluster_update_params.rbs +++ b/sig/vers/models/orchestrator/vm_update_state_params.rbs @@ -1,10 +1,10 @@ module Vers module Models - module API - type cluster_update_params = + module Orchestrator + type vm_update_state_params = { } & Vers::Internal::Type::request_parameters - class ClusterUpdateParams < Vers::Models::API::ClusterPatchRequest + class VmUpdateStateParams < Vers::Models::Orchestrator::VmUpdateStateRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters diff --git a/sig/vers/models/orchestrator/vm_update_state_request.rbs b/sig/vers/models/orchestrator/vm_update_state_request.rbs new file mode 100644 index 0000000..f900b29 --- /dev/null +++ b/sig/vers/models/orchestrator/vm_update_state_request.rbs @@ -0,0 +1,31 @@ +module Vers + module Models + module Orchestrator + type vm_update_state_request = + { state: Vers::Models::Orchestrator::VmUpdateStateRequest::state } + + class VmUpdateStateRequest < Vers::Internal::Type::BaseModel + attr_accessor state: Vers::Models::Orchestrator::VmUpdateStateRequest::state + + def initialize: ( + state: Vers::Models::Orchestrator::VmUpdateStateRequest::state + ) -> void + + def to_hash: -> { + state: Vers::Models::Orchestrator::VmUpdateStateRequest::state + } + + type state = :Paused | :Running + + module State + extend Vers::Internal::Type::Enum + + PAUSED: :Paused + RUNNING: :Running + + def self?.values: -> ::Array[Vers::Models::Orchestrator::VmUpdateStateRequest::state] + end + end + end + end +end diff --git a/sig/vers/resources/api.rbs b/sig/vers/resources/api.rbs deleted file mode 100644 index 65054b8..0000000 --- a/sig/vers/resources/api.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Resources - class API - attr_reader cluster: Vers::Resources::API::Cluster - - attr_reader vm: Vers::Resources::API::Vm - - attr_reader rootfs: Vers::Resources::API::Rootfs - - attr_reader health: Vers::Resources::API::Health - - attr_reader telemetry: Vers::Resources::API::Telemetry - - def initialize: (client: Vers::Client) -> void - end - end -end diff --git a/sig/vers/resources/api/cluster.rbs b/sig/vers/resources/api/cluster.rbs deleted file mode 100644 index f059653..0000000 --- a/sig/vers/resources/api/cluster.rbs +++ /dev/null @@ -1,39 +0,0 @@ -module Vers - module Resources - class API - class Cluster - def create: ( - cluster_create_request: Vers::Models::API::ClusterCreateRequest, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::ClusterCreateResponse - - def retrieve: ( - String cluster_id_or_alias, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::ClusterRetrieveResponse - - def update: ( - String cluster_id_or_alias, - ?alias_: String?, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::ClusterUpdateResponse - - def list: ( - ?request_options: Vers::request_opts - ) -> Vers::Models::API::ClusterListResponse - - def delete: ( - String cluster_id_or_alias, - ?request_options: Vers::request_opts - ) -> Vers::API::ClusterDeleteResponse - - def get_ssh_key: ( - String cluster_id_or_alias, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::ClusterGetSSHKeyResponse - - def initialize: (client: Vers::Client) -> void - end - end - end -end diff --git a/sig/vers/resources/api/health.rbs b/sig/vers/resources/api/health.rbs deleted file mode 100644 index 86c74bb..0000000 --- a/sig/vers/resources/api/health.rbs +++ /dev/null @@ -1,11 +0,0 @@ -module Vers - module Resources - class API - class Health - def check: (?request_options: Vers::request_opts) -> String - - def initialize: (client: Vers::Client) -> void - end - end - end -end diff --git a/sig/vers/resources/api/rootfs.rbs b/sig/vers/resources/api/rootfs.rbs deleted file mode 100644 index baffb8a..0000000 --- a/sig/vers/resources/api/rootfs.rbs +++ /dev/null @@ -1,24 +0,0 @@ -module Vers - module Resources - class API - class Rootfs - def list: ( - ?request_options: Vers::request_opts - ) -> Vers::Models::API::RootfListResponse - - def delete: ( - String rootfs_id, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::RootfDeleteResponse - - def upload: ( - String rootfs_id, - ?dockerfile: String, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::RootfUploadResponse - - def initialize: (client: Vers::Client) -> void - end - end - end -end diff --git a/sig/vers/resources/api/vm.rbs b/sig/vers/resources/api/vm.rbs deleted file mode 100644 index ec3a5e2..0000000 --- a/sig/vers/resources/api/vm.rbs +++ /dev/null @@ -1,48 +0,0 @@ -module Vers - module Resources - class API - class Vm - def retrieve: ( - String vm_id_or_alias, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::VmRetrieveResponse - - def update: ( - String vm_id_or_alias, - ?alias_: String?, - ?state: Vers::Models::API::VmPatchRequest::state?, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::VmUpdateResponse - - def list: ( - ?request_options: Vers::request_opts - ) -> Vers::Models::API::VmListResponse - - def delete: ( - String vm_id_or_alias, - recursive: bool, - ?request_options: Vers::request_opts - ) -> Vers::API::VmDeleteResponse - - def branch: ( - String vm_id_or_alias, - ?alias_: String?, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::VmBranchResponse - - def commit: ( - String vm_id_or_alias, - ?tags: ::Array[String]?, - ?request_options: Vers::request_opts - ) -> Vers::API::VmCommitResponse - - def get_ssh_key: ( - String vm_id_or_alias, - ?request_options: Vers::request_opts - ) -> Vers::Models::API::VmGetSSHKeyResponse - - def initialize: (client: Vers::Client) -> void - end - end - end -end diff --git a/sig/vers/resources/orchestrator.rbs b/sig/vers/resources/orchestrator.rbs new file mode 100644 index 0000000..a583211 --- /dev/null +++ b/sig/vers/resources/orchestrator.rbs @@ -0,0 +1,11 @@ +module Vers + module Resources + class Orchestrator + attr_reader vm: Vers::Resources::Orchestrator::Vm + + attr_reader node: Vers::Resources::Orchestrator::Node + + def initialize: (client: Vers::Client) -> void + end + end +end diff --git a/sig/vers/resources/api/telemetry.rbs b/sig/vers/resources/orchestrator/node.rbs similarity index 53% rename from sig/vers/resources/api/telemetry.rbs rename to sig/vers/resources/orchestrator/node.rbs index e6bd782..72fe702 100644 --- a/sig/vers/resources/api/telemetry.rbs +++ b/sig/vers/resources/orchestrator/node.rbs @@ -1,10 +1,11 @@ module Vers module Resources - class API - class Telemetry - def get_info: ( + class Orchestrator + class Node + def list_vms: ( + String node_id, ?request_options: Vers::request_opts - ) -> Vers::API::TelemetryDto + ) -> Vers::Orchestrator::VmListAllResponse def initialize: (client: Vers::Client) -> void end diff --git a/sig/vers/resources/orchestrator/vm.rbs b/sig/vers/resources/orchestrator/vm.rbs new file mode 100644 index 0000000..3387060 --- /dev/null +++ b/sig/vers/resources/orchestrator/vm.rbs @@ -0,0 +1,40 @@ +module Vers + module Resources + class Orchestrator + class Vm + def delete: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::Orchestrator::VmDeleteResponse + + def branch: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::Orchestrator::NewVmResponse + + def commit: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::Orchestrator::VmCommitResponse + + def create_root: ( + vm_config: Vers::Orchestrator::NewRootRequest::VmConfig, + ?request_options: Vers::request_opts + ) -> Vers::Orchestrator::NewVmResponse + + def restore_from_commit: ( + commit_id: String, + ?request_options: Vers::request_opts + ) -> Vers::Orchestrator::NewVmResponse + + def update_state: ( + String vm_id, + state: Vers::Models::Orchestrator::VmUpdateStateRequest::state, + ?request_options: Vers::request_opts + ) -> nil + + def initialize: (client: Vers::Client) -> void + end + end + end +end diff --git a/test/vers/client_test.rb b/test/vers/client_test.rb index 0ae68bc..b0ad74f 100644 --- a/test/vers/client_test.rb +++ b/test/vers/client_test.rb @@ -28,55 +28,55 @@ def after_all end def test_client_default_request_default_retry_attempts - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list + vers.orchestrator.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 3) end def test_client_given_request_default_retry_attempts - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list + vers.orchestrator.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 4) end def test_client_default_request_given_retry_attempts - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list(request_options: {max_retries: 3}) + vers.orchestrator.vm.create_root(vm_config: {}, request_options: {max_retries: 3}) end assert_requested(:any, /./, times: 4) end def test_client_given_request_given_retry_attempts - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list(request_options: {max_retries: 4}) + vers.orchestrator.vm.create_root(vm_config: {}, request_options: {max_retries: 4}) end assert_requested(:any, /./, times: 5) end def test_client_retry_after_seconds - stub_request(:get, "http://localhost/api/cluster").to_return_json( + stub_request(:post, "http://localhost/vm/new_root").to_return_json( status: 500, headers: {"retry-after" => "1.3"}, body: {} @@ -85,7 +85,7 @@ def test_client_retry_after_seconds vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list + vers.orchestrator.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 2) @@ -93,7 +93,7 @@ def test_client_retry_after_seconds end def test_client_retry_after_date - stub_request(:get, "http://localhost/api/cluster").to_return_json( + stub_request(:post, "http://localhost/vm/new_root").to_return_json( status: 500, headers: {"retry-after" => (Time.now + 10).httpdate}, body: {} @@ -103,7 +103,7 @@ def test_client_retry_after_date assert_raises(Vers::Errors::InternalServerError) do Thread.current.thread_variable_set(:time_now, Time.now) - vers.api.cluster.list + vers.orchestrator.vm.create_root(vm_config: {}) Thread.current.thread_variable_set(:time_now, nil) end @@ -112,7 +112,7 @@ def test_client_retry_after_date end def test_client_retry_after_ms - stub_request(:get, "http://localhost/api/cluster").to_return_json( + stub_request(:post, "http://localhost/vm/new_root").to_return_json( status: 500, headers: {"retry-after-ms" => "1300"}, body: {} @@ -121,7 +121,7 @@ def test_client_retry_after_ms vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list + vers.orchestrator.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 2) @@ -129,12 +129,12 @@ def test_client_retry_after_ms end def test_retry_count_header - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list + vers.orchestrator.vm.create_root(vm_config: {}) end 3.times do @@ -143,12 +143,15 @@ def test_retry_count_header end def test_omit_retry_count_header - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list(request_options: {extra_headers: {"x-stainless-retry-count" => nil}}) + vers.orchestrator.vm.create_root( + vm_config: {}, + request_options: {extra_headers: {"x-stainless-retry-count" => nil}} + ) end assert_requested(:any, /./, times: 3) do @@ -157,19 +160,22 @@ def test_omit_retry_count_header end def test_overwrite_retry_count_header - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.api.cluster.list(request_options: {extra_headers: {"x-stainless-retry-count" => "42"}}) + vers.orchestrator.vm.create_root( + vm_config: {}, + request_options: {extra_headers: {"x-stainless-retry-count" => "42"}} + ) end assert_requested(:any, /./, headers: {"x-stainless-retry-count" => "42"}, times: 3) end def test_client_redirect_307 - stub_request(:get, "http://localhost/api/cluster").to_return_json( + stub_request(:post, "http://localhost/vm/new_root").to_return_json( status: 307, headers: {"location" => "/redirected"}, body: {} @@ -182,7 +188,7 @@ def test_client_redirect_307 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.api.cluster.list(request_options: {extra_headers: {}}) + vers.orchestrator.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -198,7 +204,7 @@ def test_client_redirect_307 end def test_client_redirect_303 - stub_request(:get, "http://localhost/api/cluster").to_return_json( + stub_request(:post, "http://localhost/vm/new_root").to_return_json( status: 303, headers: {"location" => "/redirected"}, body: {} @@ -211,7 +217,7 @@ def test_client_redirect_303 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.api.cluster.list(request_options: {extra_headers: {}}) + vers.orchestrator.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) end assert_requested(:get, "http://localhost/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -222,7 +228,7 @@ def test_client_redirect_303 end def test_client_redirect_auth_keep_same_origin - stub_request(:get, "http://localhost/api/cluster").to_return_json( + stub_request(:post, "http://localhost/vm/new_root").to_return_json( status: 307, headers: {"location" => "/redirected"}, body: {} @@ -235,7 +241,10 @@ def test_client_redirect_auth_keep_same_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.api.cluster.list(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) + vers.orchestrator.vm.create_root( + vm_config: {}, + request_options: {extra_headers: {"authorization" => "Bearer xyz"}} + ) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -249,7 +258,7 @@ def test_client_redirect_auth_keep_same_origin end def test_client_redirect_auth_strip_cross_origin - stub_request(:get, "http://localhost/api/cluster").to_return_json( + stub_request(:post, "http://localhost/vm/new_root").to_return_json( status: 307, headers: {"location" => "https://example.com/redirected"}, body: {} @@ -262,7 +271,10 @@ def test_client_redirect_auth_strip_cross_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.api.cluster.list(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) + vers.orchestrator.vm.create_root( + vm_config: {}, + request_options: {extra_headers: {"authorization" => "Bearer xyz"}} + ) end assert_requested(:any, "https://example.com/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -272,11 +284,11 @@ def test_client_redirect_auth_strip_cross_origin end def test_default_headers - stub_request(:get, "http://localhost/api/cluster").to_return_json(status: 200, body: {}) + stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 200, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") - vers.api.cluster.list + vers.orchestrator.vm.create_root(vm_config: {}) assert_requested(:any, /./) do |req| headers = req.headers.transform_keys(&:downcase).fetch_values("accept", "content-type") diff --git a/test/vers/resource_namespaces.rb b/test/vers/resource_namespaces.rb index fa32438..2f5fb93 100644 --- a/test/vers/resource_namespaces.rb +++ b/test/vers/resource_namespaces.rb @@ -3,7 +3,7 @@ module Vers module Test module Resources - module API + module Orchestrator end end end diff --git a/test/vers/resources/api/cluster_test.rb b/test/vers/resources/api/cluster_test.rb deleted file mode 100644 index 7591219..0000000 --- a/test/vers/resources/api/cluster_test.rb +++ /dev/null @@ -1,125 +0,0 @@ -# frozen_string_literal: true - -require_relative "../../test_helper" - -class Vers::Test::Resources::API::ClusterTest < Vers::Test::ResourceTest - def test_create_required_params - skip("Prism tests are disabled") - - response = @vers.api.cluster.create(cluster_type: :new, params: {}) - - assert_pattern do - response => Vers::Models::API::ClusterCreateResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::ClusterCreateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterCreateResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_retrieve - skip("Prism tests are disabled") - - response = @vers.api.cluster.retrieve("cluster_id_or_alias") - - assert_pattern do - response => Vers::Models::API::ClusterRetrieveResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::ClusterRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterRetrieveResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_update - skip("Prism tests are disabled") - - response = @vers.api.cluster.update("cluster_id_or_alias") - - assert_pattern do - response => Vers::Models::API::ClusterUpdateResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::ClusterUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterUpdateResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_list - skip("Prism tests are disabled") - - response = @vers.api.cluster.list - - assert_pattern do - response => Vers::Models::API::ClusterListResponse - end - - assert_pattern do - response => { - data: ^(Vers::Internal::Type::ArrayOf[Vers::Models::API::ClusterListResponse::Data]), - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterListResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_delete - skip("Prism tests are disabled") - - response = @vers.api.cluster.delete("cluster_id_or_alias") - - assert_pattern do - response => Vers::API::ClusterDeleteResponse - end - - assert_pattern do - response => { - data: Vers::API::ClusterDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::API::ClusterDeleteResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_get_ssh_key - skip("Prism tests are disabled") - - response = @vers.api.cluster.get_ssh_key("cluster_id_or_alias") - - assert_pattern do - response => Vers::Models::API::ClusterGetSSHKeyResponse - end - - assert_pattern do - response => { - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::ClusterGetSSHKeyResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end -end diff --git a/test/vers/resources/api/health_test.rb b/test/vers/resources/api/health_test.rb deleted file mode 100644 index bdf0df9..0000000 --- a/test/vers/resources/api/health_test.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -require_relative "../../test_helper" - -class Vers::Test::Resources::API::HealthTest < Vers::Test::ResourceTest - def test_check - skip("Prism tests are disabled") - - response = @vers.api.health.check - - assert_pattern do - response => String - end - end -end diff --git a/test/vers/resources/api/rootfs_test.rb b/test/vers/resources/api/rootfs_test.rb deleted file mode 100644 index 6fb3a4d..0000000 --- a/test/vers/resources/api/rootfs_test.rb +++ /dev/null @@ -1,65 +0,0 @@ -# frozen_string_literal: true - -require_relative "../../test_helper" - -class Vers::Test::Resources::API::RootfsTest < Vers::Test::ResourceTest - def test_list - skip("Prism tests are disabled") - - response = @vers.api.rootfs.list - - assert_pattern do - response => Vers::Models::API::RootfListResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::RootfListResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfListResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_delete - skip("Prism tests are disabled") - - response = @vers.api.rootfs.delete("rootfs_id") - - assert_pattern do - response => Vers::Models::API::RootfDeleteResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::RootfDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfDeleteResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_upload - skip("Prism tests are disabled") - - response = @vers.api.rootfs.upload("rootfs_id") - - assert_pattern do - response => Vers::Models::API::RootfUploadResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::RootfUploadResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::RootfUploadResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end -end diff --git a/test/vers/resources/api/telemetry_test.rb b/test/vers/resources/api/telemetry_test.rb deleted file mode 100644 index 1eaf96c..0000000 --- a/test/vers/resources/api/telemetry_test.rb +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -require_relative "../../test_helper" - -class Vers::Test::Resources::API::TelemetryTest < Vers::Test::ResourceTest - def test_get_info - skip("Prism tests are disabled") - - response = @vers.api.telemetry.get_info - - assert_pattern do - response => Vers::API::TelemetryDto - end - - assert_pattern do - response => { - id: String, - cpu_cores_available: Integer, - cpu_cores_margin: Integer, - cpu_cores_total: Integer, - cpu_cores_used: Integer, - disk_data_mib_available: Integer, - disk_data_mib_total: Integer, - disk_vm_mib_available: Integer, - disk_vm_mib_total: Integer, - memory_mib_available: Integer, - memory_mib_margin: Integer, - memory_mib_total: Integer, - memory_mib_used: Integer, - vm_network_count_in_use: Integer, - vm_network_count_total: Integer - } - end - end -end diff --git a/test/vers/resources/api/vm_test.rb b/test/vers/resources/api/vm_test.rb deleted file mode 100644 index 0857111..0000000 --- a/test/vers/resources/api/vm_test.rb +++ /dev/null @@ -1,145 +0,0 @@ -# frozen_string_literal: true - -require_relative "../../test_helper" - -class Vers::Test::Resources::API::VmTest < Vers::Test::ResourceTest - def test_retrieve - skip("Prism tests are disabled") - - response = @vers.api.vm.retrieve("vm_id_or_alias") - - assert_pattern do - response => Vers::Models::API::VmRetrieveResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::VmRetrieveResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmRetrieveResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_update - skip("Prism tests are disabled") - - response = @vers.api.vm.update("vm_id_or_alias") - - assert_pattern do - response => Vers::Models::API::VmUpdateResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::VmUpdateResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmUpdateResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_list - skip("Prism tests are disabled") - - response = @vers.api.vm.list - - assert_pattern do - response => Vers::Models::API::VmListResponse - end - - assert_pattern do - response => { - data: ^(Vers::Internal::Type::ArrayOf[Vers::Models::API::VmListResponse::Data]), - duration_ns: Integer, - operation_code: Vers::Models::API::VmListResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_delete_required_params - skip("Prism tests are disabled") - - response = @vers.api.vm.delete("vm_id_or_alias", recursive: true) - - assert_pattern do - response => Vers::API::VmDeleteResponse - end - - assert_pattern do - response => { - data: Vers::API::VmDeleteResponse::Data, - duration_ns: Integer, - operation_code: Vers::API::VmDeleteResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_branch - skip("Prism tests are disabled") - - response = @vers.api.vm.branch("vm_id_or_alias") - - assert_pattern do - response => Vers::Models::API::VmBranchResponse - end - - assert_pattern do - response => { - data: Vers::Models::API::VmBranchResponse::Data, - duration_ns: Integer, - operation_code: Vers::Models::API::VmBranchResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_commit - skip("Prism tests are disabled") - - response = @vers.api.vm.commit("vm_id_or_alias") - - assert_pattern do - response => Vers::API::VmCommitResponse - end - - assert_pattern do - response => { - data: Vers::API::VmCommitResponse::Data, - duration_ns: Integer, - operation_code: Vers::API::VmCommitResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end - - def test_get_ssh_key - skip("Prism tests are disabled") - - response = @vers.api.vm.get_ssh_key("vm_id_or_alias") - - assert_pattern do - response => Vers::Models::API::VmGetSSHKeyResponse - end - - assert_pattern do - response => { - data: String, - duration_ns: Integer, - operation_code: Vers::Models::API::VmGetSSHKeyResponse::OperationCode, - operation_id: String, - time_start: Integer - } - end - end -end diff --git a/test/vers/resources/api_test.rb b/test/vers/resources/api_test.rb deleted file mode 100644 index e022744..0000000 --- a/test/vers/resources/api_test.rb +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -require_relative "../test_helper" - -class Vers::Test::Resources::APITest < Vers::Test::ResourceTest -end diff --git a/test/vers/resources/orchestrator/node_test.rb b/test/vers/resources/orchestrator/node_test.rb new file mode 100644 index 0000000..6e518a9 --- /dev/null +++ b/test/vers/resources/orchestrator/node_test.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require_relative "../../test_helper" + +class Vers::Test::Resources::Orchestrator::NodeTest < Vers::Test::ResourceTest + def test_list_vms + skip("Prism tests are disabled") + + response = @vers.orchestrator.node.list_vms("node_id") + + assert_pattern do + response => Vers::Orchestrator::VmListAllResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::Orchestrator::VmListAllResponse::Vm]) + } + end + end +end diff --git a/test/vers/resources/orchestrator/vm_test.rb b/test/vers/resources/orchestrator/vm_test.rb new file mode 100644 index 0000000..c6c52e9 --- /dev/null +++ b/test/vers/resources/orchestrator/vm_test.rb @@ -0,0 +1,96 @@ +# frozen_string_literal: true + +require_relative "../../test_helper" + +class Vers::Test::Resources::Orchestrator::VmTest < Vers::Test::ResourceTest + def test_delete + skip("Prism tests are disabled") + + response = @vers.orchestrator.vm.delete("vm_id") + + assert_pattern do + response => Vers::Orchestrator::VmDeleteResponse + end + + assert_pattern do + response => { + deleted_ids: ^(Vers::Internal::Type::ArrayOf[String]) + } + end + end + + def test_branch + skip("Prism tests are disabled") + + response = @vers.orchestrator.vm.branch("vm_id") + + assert_pattern do + response => Vers::Orchestrator::NewVmResponse + end + + assert_pattern do + response => { + id: String + } + end + end + + def test_commit + skip("Prism tests are disabled") + + response = @vers.orchestrator.vm.commit("vm_id") + + assert_pattern do + response => Vers::Orchestrator::VmCommitResponse + end + + assert_pattern do + response => { + commit_id: String, + host_architecture: String + } + end + end + + def test_create_root_required_params + skip("Prism tests are disabled") + + response = @vers.orchestrator.vm.create_root(vm_config: {}) + + assert_pattern do + response => Vers::Orchestrator::NewVmResponse + end + + assert_pattern do + response => { + id: String + } + end + end + + def test_restore_from_commit_required_params + skip("Prism tests are disabled") + + response = @vers.orchestrator.vm.restore_from_commit(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::Orchestrator::NewVmResponse + end + + assert_pattern do + response => { + id: String + } + end + end + + def test_update_state_required_params + skip("Prism tests are disabled") + + response = @vers.orchestrator.vm.update_state("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", state: :Paused) + + assert_pattern do + response => nil + end + end +end diff --git a/test/vers/resources/orchestrator_test.rb b/test/vers/resources/orchestrator_test.rb new file mode 100644 index 0000000..b0c4f64 --- /dev/null +++ b/test/vers/resources/orchestrator_test.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +class Vers::Test::Resources::OrchestratorTest < Vers::Test::ResourceTest +end From 3352c8ad414dec234bda610fdba8858e0e933033 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 21:59:10 +0000 Subject: [PATCH 033/100] feat(api): api update --- .stats.yml | 6 +-- README.md | 4 +- lib/vers.rb | 3 +- lib/vers/internal/type/base_model.rb | 2 +- lib/vers/models.rb | 2 + lib/vers/models/error_response.rb | 24 +++++++++++ .../models/orchestrator/error_response.rb | 26 ----------- rbi/vers/models.rbi | 2 + rbi/vers/models/error_response.rbi | 39 +++++++++++++++++ .../models/orchestrator/error_response.rbi | 43 ------------------- sig/vers/models.rbs | 2 + sig/vers/models/error_response.rbs | 19 ++++++++ .../models/orchestrator/error_response.rbs | 21 --------- 13 files changed, 96 insertions(+), 97 deletions(-) create mode 100644 lib/vers/models/error_response.rb delete mode 100644 lib/vers/models/orchestrator/error_response.rb create mode 100644 rbi/vers/models/error_response.rbi delete mode 100644 rbi/vers/models/orchestrator/error_response.rbi create mode 100644 sig/vers/models/error_response.rbs delete mode 100644 sig/vers/models/orchestrator/error_response.rbs diff --git a/.stats.yml b/.stats.yml index 4fd44e9..56fef07 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-8aa202d4f437312b10fe0ab2215146f37dbe1118b69145d647eb07eed876a28e.yml -openapi_spec_hash: 5e765f1c5dc8d603d3b9b2d81a850c54 -config_hash: 3a55be202e01571eea404f5bdae7202a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-3e5c3be7de4cba8d532def538e359bea10bd7143a70a38b58626d46857506929.yml +openapi_spec_hash: 9f6d759c320581b4b2b713bccce6d4d2 +config_hash: 96e627580535c355cc02c30bc9c0ec00 diff --git a/README.md b/README.md index 38bb107..af9c898 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,9 @@ gem "vers", "~> 0.1.0.pre.alpha.2" require "bundler/setup" require "vers" -vers = Vers::Client.new +vers = Vers::Client.new( + api_key: ENV["VERS_API_KEY"] # This is the default and can be omitted +) new_vm_response = vers.orchestrator.vm.create_root(vm_config: {}) diff --git a/lib/vers.rb b/lib/vers.rb index a98ac1b..178c3eb 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -53,8 +53,7 @@ require_relative "vers/models/orchestrator/new_root_request" require_relative "vers/models/orchestrator/vm_from_commit_request" require_relative "vers/models/orchestrator/vm_update_state_request" -require_relative "vers/models/orchestrator/error_response" -require_relative "vers/models/orchestrator/error_response" +require_relative "vers/models/error_response" require_relative "vers/models/orchestrator/new_vm_response" require_relative "vers/models/orchestrator/node_list_vms_params" require_relative "vers/models/orchestrator/vm_branch_params" diff --git a/lib/vers/internal/type/base_model.rb b/lib/vers/internal/type/base_model.rb index bc7ad67..a81450c 100644 --- a/lib/vers/internal/type/base_model.rb +++ b/lib/vers/internal/type/base_model.rb @@ -440,7 +440,7 @@ def deep_to_h = self.class.recursively_to_h(@data, convert: false) # @return [Hash{Symbol=>Object}] # # @example - # # `error_response` is a `Vers::Orchestrator::ErrorResponse` + # # `error_response` is a `Vers::ErrorResponse` # error_response => { # error: error, # success: success diff --git a/lib/vers/models.rb b/lib/vers/models.rb index eeb5868..2cd5d7f 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -39,5 +39,7 @@ module Vers mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } } end + ErrorResponse = Vers::Models::ErrorResponse + Orchestrator = Vers::Models::Orchestrator end diff --git a/lib/vers/models/error_response.rb b/lib/vers/models/error_response.rb new file mode 100644 index 0000000..b0ebd8c --- /dev/null +++ b/lib/vers/models/error_response.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +module Vers + module Models + class ErrorResponse < Vers::Internal::Type::BaseModel + # @!attribute error + # Reason of error + # + # @return [String, nil] + optional :error, String + + # @!attribute success + # Is always: false + # + # @return [Boolean, nil] + optional :success, Vers::Internal::Type::Boolean + + # @!method initialize(error: nil, success: nil) + # @param error [String] Reason of error + # + # @param success [Boolean] Is always: false + end + end +end diff --git a/lib/vers/models/orchestrator/error_response.rb b/lib/vers/models/orchestrator/error_response.rb deleted file mode 100644 index d8b502a..0000000 --- a/lib/vers/models/orchestrator/error_response.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - class ErrorResponse < Vers::Internal::Type::BaseModel - # @!attribute error - # Reason of error - # - # @return [String, nil] - optional :error, String - - # @!attribute success - # Is always: false - # - # @return [Boolean, nil] - optional :success, Vers::Internal::Type::Boolean - - # @!method initialize(error: nil, success: nil) - # @param error [String] Reason of error - # - # @param success [Boolean] Is always: false - end - end - end -end diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index cdfb245..1556712 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -1,5 +1,7 @@ # typed: strong module Vers + ErrorResponse = Vers::Models::ErrorResponse + Orchestrator = Vers::Models::Orchestrator end diff --git a/rbi/vers/models/error_response.rbi b/rbi/vers/models/error_response.rbi new file mode 100644 index 0000000..39d5ef9 --- /dev/null +++ b/rbi/vers/models/error_response.rbi @@ -0,0 +1,39 @@ +# typed: strong + +module Vers + module Models + class ErrorResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::ErrorResponse, Vers::Internal::AnyHash) } + + # Reason of error + sig { returns(T.nilable(String)) } + attr_reader :error + + sig { params(error: String).void } + attr_writer :error + + # Is always: false + sig { returns(T.nilable(T::Boolean)) } + attr_reader :success + + sig { params(success: T::Boolean).void } + attr_writer :success + + sig do + params(error: String, success: T::Boolean).returns(T.attached_class) + end + def self.new( + # Reason of error + error: nil, + # Is always: false + success: nil + ) + end + + sig { override.returns({ error: String, success: T::Boolean }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/orchestrator/error_response.rbi b/rbi/vers/models/orchestrator/error_response.rbi deleted file mode 100644 index b6ed673..0000000 --- a/rbi/vers/models/orchestrator/error_response.rbi +++ /dev/null @@ -1,43 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class ErrorResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::ErrorResponse, Vers::Internal::AnyHash) - end - - # Reason of error - sig { returns(T.nilable(String)) } - attr_reader :error - - sig { params(error: String).void } - attr_writer :error - - # Is always: false - sig { returns(T.nilable(T::Boolean)) } - attr_reader :success - - sig { params(success: T::Boolean).void } - attr_writer :success - - sig do - params(error: String, success: T::Boolean).returns(T.attached_class) - end - def self.new( - # Reason of error - error: nil, - # Is always: false - success: nil - ) - end - - sig { override.returns({ error: String, success: T::Boolean }) } - def to_hash - end - end - end - end -end diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index b53500c..32399e8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -1,3 +1,5 @@ module Vers + class ErrorResponse = Vers::Models::ErrorResponse + module Orchestrator = Vers::Models::Orchestrator end diff --git a/sig/vers/models/error_response.rbs b/sig/vers/models/error_response.rbs new file mode 100644 index 0000000..d1af273 --- /dev/null +++ b/sig/vers/models/error_response.rbs @@ -0,0 +1,19 @@ +module Vers + module Models + type error_response = { error: String, success: bool } + + class ErrorResponse < Vers::Internal::Type::BaseModel + attr_reader error: String? + + def error=: (String) -> String + + attr_reader success: bool? + + def success=: (bool) -> bool + + def initialize: (?error: String, ?success: bool) -> void + + def to_hash: -> { error: String, success: bool } + end + end +end diff --git a/sig/vers/models/orchestrator/error_response.rbs b/sig/vers/models/orchestrator/error_response.rbs deleted file mode 100644 index be53dad..0000000 --- a/sig/vers/models/orchestrator/error_response.rbs +++ /dev/null @@ -1,21 +0,0 @@ -module Vers - module Models - module Orchestrator - type error_response = { error: String, success: bool } - - class ErrorResponse < Vers::Internal::Type::BaseModel - attr_reader error: String? - - def error=: (String) -> String - - attr_reader success: bool? - - def success=: (bool) -> bool - - def initialize: (?error: String, ?success: bool) -> void - - def to_hash: -> { error: String, success: bool } - end - end - end -end From a2cc96bfe209d100a1e6e75b85313cd422d818b5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 20:38:24 +0000 Subject: [PATCH 034/100] feat(api): api update --- .stats.yml | 6 +- README.md | 30 ++-- lib/vers.rb | 34 ++-- lib/vers/client.rb | 6 +- lib/vers/models.rb | 28 +++- lib/vers/models/new_root_request.rb | 62 ++++++++ lib/vers/models/new_vm_response.rb | 17 ++ .../models/orchestrator/new_root_request.rb | 64 -------- .../models/orchestrator/new_vm_response.rb | 19 --- .../orchestrator/node_list_vms_params.rb | 16 -- .../models/orchestrator/vm_branch_params.rb | 16 -- .../models/orchestrator/vm_branch_response.rb | 20 --- .../models/orchestrator/vm_commit_params.rb | 16 -- .../models/orchestrator/vm_commit_response.rb | 29 ---- .../orchestrator/vm_create_root_params.rb | 16 -- .../models/orchestrator/vm_delete_params.rb | 16 -- .../models/orchestrator/vm_delete_response.rb | 20 --- .../orchestrator/vm_from_commit_request.rb | 19 --- .../orchestrator/vm_list_all_response.rb | 42 ----- .../vm_restore_from_commit_params.rb | 16 -- .../orchestrator/vm_update_state_params.rb | 16 -- .../orchestrator/vm_update_state_request.rb | 33 ---- lib/vers/models/vm.rb | 39 +++++ lib/vers/models/vm_branch_params.rb | 14 ++ lib/vers/models/vm_commit_params.rb | 14 ++ lib/vers/models/vm_commit_response.rb | 27 ++++ lib/vers/models/vm_create_root_params.rb | 14 ++ lib/vers/models/vm_delete_params.rb | 14 ++ lib/vers/models/vm_delete_response.rb | 18 +++ lib/vers/models/vm_from_commit_request.rb | 17 ++ lib/vers/models/vm_list_params.rb | 14 ++ lib/vers/models/vm_list_response.rb | 8 + .../models/vm_restore_from_commit_params.rb | 14 ++ lib/vers/models/vm_update_state_params.rb | 14 ++ lib/vers/models/vm_update_state_request.rb | 31 ++++ lib/vers/resources/orchestrator.rb | 22 --- lib/vers/resources/orchestrator/node.rb | 34 ---- lib/vers/resources/orchestrator/vm.rb | 131 ---------------- lib/vers/resources/vm.rb | 145 ++++++++++++++++++ rbi/vers/client.rbi | 4 +- rbi/vers/models.rbi | 28 +++- rbi/vers/models/new_root_request.rbi | 97 ++++++++++++ rbi/vers/models/new_vm_response.rbi | 25 +++ .../models/orchestrator/new_root_request.rbi | 112 -------------- .../models/orchestrator/new_vm_response.rbi | 29 ---- .../orchestrator/node_list_vms_params.rbi | 32 ---- .../models/orchestrator/vm_branch_params.rbi | 29 ---- .../orchestrator/vm_branch_response.rbi | 30 ---- .../models/orchestrator/vm_commit_params.rbi | 29 ---- .../orchestrator/vm_commit_response.rbi | 42 ----- .../orchestrator/vm_create_root_params.rbi | 32 ---- .../models/orchestrator/vm_delete_params.rbi | 29 ---- .../orchestrator/vm_delete_response.rbi | 26 ---- .../orchestrator/vm_from_commit_request.rbi | 29 ---- .../orchestrator/vm_list_all_response.rbi | 79 ---------- .../vm_restore_from_commit_params.rbi | 32 ---- .../orchestrator/vm_update_state_params.rbi | 32 ---- .../orchestrator/vm_update_state_request.rbi | 75 --------- rbi/vers/models/vm.rbi | 50 ++++++ rbi/vers/models/vm_branch_params.rbi | 25 +++ rbi/vers/models/vm_commit_params.rbi | 25 +++ rbi/vers/models/vm_commit_response.rbi | 36 +++++ rbi/vers/models/vm_create_root_params.rbi | 27 ++++ rbi/vers/models/vm_delete_params.rbi | 25 +++ rbi/vers/models/vm_delete_response.rbi | 22 +++ rbi/vers/models/vm_from_commit_request.rbi | 24 +++ rbi/vers/models/vm_list_params.rbi | 25 +++ rbi/vers/models/vm_list_response.rbi | 11 ++ .../models/vm_restore_from_commit_params.rbi | 27 ++++ rbi/vers/models/vm_update_state_params.rbi | 27 ++++ rbi/vers/models/vm_update_state_request.rbi | 55 +++++++ rbi/vers/resources/orchestrator.rbi | 18 --- rbi/vers/resources/orchestrator/node.rbi | 27 ---- rbi/vers/resources/orchestrator/vm.rbi | 91 ----------- rbi/vers/resources/vm.rbi | 97 ++++++++++++ sig/vers/client.rbs | 2 +- sig/vers/models.rbs | 28 +++- sig/vers/models/new_root_request.rbs | 50 ++++++ sig/vers/models/new_vm_response.rbs | 13 ++ .../models/orchestrator/new_root_request.rbs | 57 ------- .../models/orchestrator/new_vm_response.rbs | 15 -- .../orchestrator/node_list_vms_params.rbs | 17 -- .../models/orchestrator/vm_branch_params.rbs | 16 -- .../orchestrator/vm_branch_response.rbs | 15 -- .../models/orchestrator/vm_commit_params.rbs | 16 -- .../orchestrator/vm_commit_response.rbs | 17 -- .../orchestrator/vm_create_root_params.rbs | 17 -- .../models/orchestrator/vm_delete_params.rbs | 16 -- .../orchestrator/vm_delete_response.rbs | 15 -- .../orchestrator/vm_from_commit_request.rbs | 15 -- .../orchestrator/vm_list_all_response.rbs | 32 ---- .../vm_restore_from_commit_params.rbs | 17 -- .../orchestrator/vm_update_state_params.rbs | 17 -- .../orchestrator/vm_update_state_request.rbs | 31 ---- sig/vers/models/vm.rbs | 40 +++++ sig/vers/models/vm_branch_params.rbs | 14 ++ sig/vers/models/vm_commit_params.rbs | 14 ++ sig/vers/models/vm_commit_response.rbs | 15 ++ sig/vers/models/vm_create_root_params.rbs | 14 ++ sig/vers/models/vm_delete_params.rbs | 14 ++ sig/vers/models/vm_delete_response.rbs | 13 ++ sig/vers/models/vm_from_commit_request.rbs | 13 ++ sig/vers/models/vm_list_params.rbs | 14 ++ sig/vers/models/vm_list_response.rbs | 7 + .../models/vm_restore_from_commit_params.rbs | 15 ++ sig/vers/models/vm_update_state_params.rbs | 15 ++ sig/vers/models/vm_update_state_request.rbs | 25 +++ sig/vers/resources/orchestrator.rbs | 11 -- sig/vers/resources/orchestrator/node.rbs | 14 -- sig/vers/resources/orchestrator/vm.rbs | 40 ----- sig/vers/resources/vm.rbs | 42 +++++ test/vers/client_test.rb | 39 ++--- test/vers/resource_namespaces.rb | 2 - test/vers/resources/orchestrator/node_test.rb | 21 --- test/vers/resources/orchestrator_test.rb | 6 - .../resources/{orchestrator => }/vm_test.rb | 36 +++-- 116 files changed, 1537 insertions(+), 1807 deletions(-) create mode 100644 lib/vers/models/new_root_request.rb create mode 100644 lib/vers/models/new_vm_response.rb delete mode 100644 lib/vers/models/orchestrator/new_root_request.rb delete mode 100644 lib/vers/models/orchestrator/new_vm_response.rb delete mode 100644 lib/vers/models/orchestrator/node_list_vms_params.rb delete mode 100644 lib/vers/models/orchestrator/vm_branch_params.rb delete mode 100644 lib/vers/models/orchestrator/vm_branch_response.rb delete mode 100644 lib/vers/models/orchestrator/vm_commit_params.rb delete mode 100644 lib/vers/models/orchestrator/vm_commit_response.rb delete mode 100644 lib/vers/models/orchestrator/vm_create_root_params.rb delete mode 100644 lib/vers/models/orchestrator/vm_delete_params.rb delete mode 100644 lib/vers/models/orchestrator/vm_delete_response.rb delete mode 100644 lib/vers/models/orchestrator/vm_from_commit_request.rb delete mode 100644 lib/vers/models/orchestrator/vm_list_all_response.rb delete mode 100644 lib/vers/models/orchestrator/vm_restore_from_commit_params.rb delete mode 100644 lib/vers/models/orchestrator/vm_update_state_params.rb delete mode 100644 lib/vers/models/orchestrator/vm_update_state_request.rb create mode 100644 lib/vers/models/vm.rb create mode 100644 lib/vers/models/vm_branch_params.rb create mode 100644 lib/vers/models/vm_commit_params.rb create mode 100644 lib/vers/models/vm_commit_response.rb create mode 100644 lib/vers/models/vm_create_root_params.rb create mode 100644 lib/vers/models/vm_delete_params.rb create mode 100644 lib/vers/models/vm_delete_response.rb create mode 100644 lib/vers/models/vm_from_commit_request.rb create mode 100644 lib/vers/models/vm_list_params.rb create mode 100644 lib/vers/models/vm_list_response.rb create mode 100644 lib/vers/models/vm_restore_from_commit_params.rb create mode 100644 lib/vers/models/vm_update_state_params.rb create mode 100644 lib/vers/models/vm_update_state_request.rb delete mode 100644 lib/vers/resources/orchestrator.rb delete mode 100644 lib/vers/resources/orchestrator/node.rb delete mode 100644 lib/vers/resources/orchestrator/vm.rb create mode 100644 lib/vers/resources/vm.rb create mode 100644 rbi/vers/models/new_root_request.rbi create mode 100644 rbi/vers/models/new_vm_response.rbi delete mode 100644 rbi/vers/models/orchestrator/new_root_request.rbi delete mode 100644 rbi/vers/models/orchestrator/new_vm_response.rbi delete mode 100644 rbi/vers/models/orchestrator/node_list_vms_params.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_branch_params.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_branch_response.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_commit_params.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_commit_response.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_create_root_params.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_delete_params.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_delete_response.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_from_commit_request.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_list_all_response.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_update_state_params.rbi delete mode 100644 rbi/vers/models/orchestrator/vm_update_state_request.rbi create mode 100644 rbi/vers/models/vm.rbi create mode 100644 rbi/vers/models/vm_branch_params.rbi create mode 100644 rbi/vers/models/vm_commit_params.rbi create mode 100644 rbi/vers/models/vm_commit_response.rbi create mode 100644 rbi/vers/models/vm_create_root_params.rbi create mode 100644 rbi/vers/models/vm_delete_params.rbi create mode 100644 rbi/vers/models/vm_delete_response.rbi create mode 100644 rbi/vers/models/vm_from_commit_request.rbi create mode 100644 rbi/vers/models/vm_list_params.rbi create mode 100644 rbi/vers/models/vm_list_response.rbi create mode 100644 rbi/vers/models/vm_restore_from_commit_params.rbi create mode 100644 rbi/vers/models/vm_update_state_params.rbi create mode 100644 rbi/vers/models/vm_update_state_request.rbi delete mode 100644 rbi/vers/resources/orchestrator.rbi delete mode 100644 rbi/vers/resources/orchestrator/node.rbi delete mode 100644 rbi/vers/resources/orchestrator/vm.rbi create mode 100644 rbi/vers/resources/vm.rbi create mode 100644 sig/vers/models/new_root_request.rbs create mode 100644 sig/vers/models/new_vm_response.rbs delete mode 100644 sig/vers/models/orchestrator/new_root_request.rbs delete mode 100644 sig/vers/models/orchestrator/new_vm_response.rbs delete mode 100644 sig/vers/models/orchestrator/node_list_vms_params.rbs delete mode 100644 sig/vers/models/orchestrator/vm_branch_params.rbs delete mode 100644 sig/vers/models/orchestrator/vm_branch_response.rbs delete mode 100644 sig/vers/models/orchestrator/vm_commit_params.rbs delete mode 100644 sig/vers/models/orchestrator/vm_commit_response.rbs delete mode 100644 sig/vers/models/orchestrator/vm_create_root_params.rbs delete mode 100644 sig/vers/models/orchestrator/vm_delete_params.rbs delete mode 100644 sig/vers/models/orchestrator/vm_delete_response.rbs delete mode 100644 sig/vers/models/orchestrator/vm_from_commit_request.rbs delete mode 100644 sig/vers/models/orchestrator/vm_list_all_response.rbs delete mode 100644 sig/vers/models/orchestrator/vm_restore_from_commit_params.rbs delete mode 100644 sig/vers/models/orchestrator/vm_update_state_params.rbs delete mode 100644 sig/vers/models/orchestrator/vm_update_state_request.rbs create mode 100644 sig/vers/models/vm.rbs create mode 100644 sig/vers/models/vm_branch_params.rbs create mode 100644 sig/vers/models/vm_commit_params.rbs create mode 100644 sig/vers/models/vm_commit_response.rbs create mode 100644 sig/vers/models/vm_create_root_params.rbs create mode 100644 sig/vers/models/vm_delete_params.rbs create mode 100644 sig/vers/models/vm_delete_response.rbs create mode 100644 sig/vers/models/vm_from_commit_request.rbs create mode 100644 sig/vers/models/vm_list_params.rbs create mode 100644 sig/vers/models/vm_list_response.rbs create mode 100644 sig/vers/models/vm_restore_from_commit_params.rbs create mode 100644 sig/vers/models/vm_update_state_params.rbs create mode 100644 sig/vers/models/vm_update_state_request.rbs delete mode 100644 sig/vers/resources/orchestrator.rbs delete mode 100644 sig/vers/resources/orchestrator/node.rbs delete mode 100644 sig/vers/resources/orchestrator/vm.rbs create mode 100644 sig/vers/resources/vm.rbs delete mode 100644 test/vers/resources/orchestrator/node_test.rb delete mode 100644 test/vers/resources/orchestrator_test.rb rename test/vers/resources/{orchestrator => }/vm_test.rb (58%) diff --git a/.stats.yml b/.stats.yml index 56fef07..97338e3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-3e5c3be7de4cba8d532def538e359bea10bd7143a70a38b58626d46857506929.yml -openapi_spec_hash: 9f6d759c320581b4b2b713bccce6d4d2 -config_hash: 96e627580535c355cc02c30bc9c0ec00 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-82ff48672586d6d086a37a4a1b82131e79c7b2243ea95118160c96ba0c672924.yml +openapi_spec_hash: 55e32eef428cbad0a17e23d2de509d28 +config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/README.md b/README.md index af9c898..fc694a3 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ vers = Vers::Client.new( api_key: ENV["VERS_API_KEY"] # This is the default and can be omitted ) -new_vm_response = vers.orchestrator.vm.create_root(vm_config: {}) +new_vm_response = vers.vm.create_root(vm_config: {}) puts(new_vm_response.id) ``` @@ -43,7 +43,7 @@ When the library is unable to connect to the API, or if the API returns a non-su ```ruby begin - vm = vers.orchestrator.vm.create_root(vm_config: {}) + vm = vers.vm.create_root(vm_config: {}) rescue Vers::Errors::APIConnectionError => e puts("The server could not be reached") puts(e.cause) # an underlying Exception, likely raised within `net/http` @@ -86,7 +86,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.orchestrator.vm.create_root(vm_config: {}, request_options: {max_retries: 5}) +vers.vm.create_root(vm_config: {}, request_options: {max_retries: 5}) ``` ### Timeouts @@ -100,7 +100,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.orchestrator.vm.create_root(vm_config: {}, request_options: {timeout: 5}) +vers.vm.create_root(vm_config: {}, request_options: {timeout: 5}) ``` On timeout, `Vers::Errors::APITimeoutError` is raised. @@ -131,7 +131,7 @@ Note: the `extra_` parameters of the same name overrides the documented paramete ```ruby new_vm_response = - vers.orchestrator.vm.create_root( + vers.vm.create_root( vm_config: {}, request_options: { extra_query: {my_query_parameter: value}, @@ -178,18 +178,18 @@ This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitio You can provide typesafe request parameters like so: ```ruby -vers.orchestrator.vm.create_root(vm_config: Vers::Orchestrator::NewRootRequest::VmConfig.new) +vers.vm.create_root(vm_config: Vers::NewRootRequest::VmConfig.new) ``` Or, equivalently: ```ruby # Hashes work, but are not typesafe: -vers.orchestrator.vm.create_root(vm_config: {}) +vers.vm.create_root(vm_config: {}) # You can also splat a full Params class: -params = Vers::Orchestrator::VmCreateRootParams.new(vm_config: Vers::Orchestrator::NewRootRequest::VmConfig.new) -vers.orchestrator.vm.create_root(**params) +params = Vers::VmCreateRootParams.new(vm_config: Vers::NewRootRequest::VmConfig.new) +vers.vm.create_root(**params) ``` ### Enums @@ -198,23 +198,23 @@ Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::E ```ruby # :Paused -puts(Vers::Orchestrator::VmUpdateStateRequest::State::PAUSED) +puts(Vers::VmUpdateStateRequest::State::PAUSED) -# Revealed type: `T.all(Vers::Orchestrator::VmUpdateStateRequest::State, Symbol)` -T.reveal_type(Vers::Orchestrator::VmUpdateStateRequest::State::PAUSED) +# Revealed type: `T.all(Vers::VmUpdateStateRequest::State, Symbol)` +T.reveal_type(Vers::VmUpdateStateRequest::State::PAUSED) ``` Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value: ```ruby # Using the enum constants preserves the tagged type information: -vers.orchestrator.vm.update_state( - state: Vers::Orchestrator::VmUpdateStateRequest::State::PAUSED, +vers.vm.update_state( + state: Vers::VmUpdateStateRequest::State::PAUSED, # … ) # Literal values are also permissible: -vers.orchestrator.vm.update_state( +vers.vm.update_state( state: :Paused, # … ) diff --git a/lib/vers.rb b/lib/vers.rb index 178c3eb..422ca5f 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -50,23 +50,21 @@ require_relative "vers/internal/transport/base_client" require_relative "vers/internal/transport/pooled_net_requester" require_relative "vers/client" -require_relative "vers/models/orchestrator/new_root_request" -require_relative "vers/models/orchestrator/vm_from_commit_request" -require_relative "vers/models/orchestrator/vm_update_state_request" +require_relative "vers/models/new_root_request" +require_relative "vers/models/vm_from_commit_request" +require_relative "vers/models/vm_update_state_request" require_relative "vers/models/error_response" -require_relative "vers/models/orchestrator/new_vm_response" -require_relative "vers/models/orchestrator/node_list_vms_params" -require_relative "vers/models/orchestrator/vm_branch_params" -require_relative "vers/models/orchestrator/vm_branch_response" -require_relative "vers/models/orchestrator/vm_commit_params" -require_relative "vers/models/orchestrator/vm_commit_response" -require_relative "vers/models/orchestrator/vm_create_root_params" -require_relative "vers/models/orchestrator/vm_delete_params" -require_relative "vers/models/orchestrator/vm_delete_response" -require_relative "vers/models/orchestrator/vm_list_all_response" -require_relative "vers/models/orchestrator/vm_restore_from_commit_params" -require_relative "vers/models/orchestrator/vm_update_state_params" +require_relative "vers/models/new_vm_response" +require_relative "vers/models/vm" +require_relative "vers/models/vm_branch_params" +require_relative "vers/models/vm_commit_params" +require_relative "vers/models/vm_commit_response" +require_relative "vers/models/vm_create_root_params" +require_relative "vers/models/vm_delete_params" +require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_list_params" +require_relative "vers/models/vm_list_response" +require_relative "vers/models/vm_restore_from_commit_params" +require_relative "vers/models/vm_update_state_params" require_relative "vers/models" -require_relative "vers/resources/orchestrator" -require_relative "vers/resources/orchestrator/node" -require_relative "vers/resources/orchestrator/vm" +require_relative "vers/resources/vm" diff --git a/lib/vers/client.rb b/lib/vers/client.rb index 8b71c65..be6e91f 100644 --- a/lib/vers/client.rb +++ b/lib/vers/client.rb @@ -18,8 +18,8 @@ class Client < Vers::Internal::Transport::BaseClient # @return [String, nil] attr_reader :api_key - # @return [Vers::Resources::Orchestrator] - attr_reader :orchestrator + # @return [Vers::Resources::Vm] + attr_reader :vm # @api private # @@ -64,7 +64,7 @@ def initialize( max_retry_delay: max_retry_delay ) - @orchestrator = Vers::Resources::Orchestrator.new(client: self) + @vm = Vers::Resources::Vm.new(client: self) end end end diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2cd5d7f..01feb41 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -41,5 +41,31 @@ module Vers ErrorResponse = Vers::Models::ErrorResponse - Orchestrator = Vers::Models::Orchestrator + NewRootRequest = Vers::Models::NewRootRequest + + NewVmResponse = Vers::Models::NewVmResponse + + VmAPI = Vers::Models::VmAPI + + VmBranchParams = Vers::Models::VmBranchParams + + VmCommitParams = Vers::Models::VmCommitParams + + VmCommitResponse = Vers::Models::VmCommitResponse + + VmCreateRootParams = Vers::Models::VmCreateRootParams + + VmDeleteParams = Vers::Models::VmDeleteParams + + VmDeleteResponse = Vers::Models::VmDeleteResponse + + VmFromCommitRequest = Vers::Models::VmFromCommitRequest + + VmListParams = Vers::Models::VmListParams + + VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + + VmUpdateStateParams = Vers::Models::VmUpdateStateParams + + VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest end diff --git a/lib/vers/models/new_root_request.rb b/lib/vers/models/new_root_request.rb new file mode 100644 index 0000000..c076300 --- /dev/null +++ b/lib/vers/models/new_root_request.rb @@ -0,0 +1,62 @@ +# frozen_string_literal: true + +module Vers + module Models + class NewRootRequest < Vers::Internal::Type::BaseModel + # @!attribute vm_config + # Struct representing configuration options common to all VMs + # + # @return [Vers::Models::NewRootRequest::VmConfig] + required :vm_config, -> { Vers::NewRootRequest::VmConfig } + + # @!method initialize(vm_config:) + # @param vm_config [Vers::Models::NewRootRequest::VmConfig] Struct representing configuration options common to all VMs + + # @see Vers::Models::NewRootRequest#vm_config + class VmConfig < Vers::Internal::Type::BaseModel + # @!attribute fs_size_mib + # The disk size, in MiB. + # + # @return [Integer, nil] + optional :fs_size_mib, Integer, nil?: true + + # @!attribute image_name + # The filesystem base image name. Currently, must be 'default' + # + # @return [String, nil] + optional :image_name, String, nil?: true + + # @!attribute kernel_name + # The kernel name. Currently, must be 'default.bin' + # + # @return [String, nil] + optional :kernel_name, String, nil?: true + + # @!attribute mem_size_mib + # The RAM size, in MiB. + # + # @return [Integer, nil] + optional :mem_size_mib, Integer, nil?: true + + # @!attribute vcpu_count + # How many vCPUs to allocate to this VM (and its children) + # + # @return [Integer, nil] + optional :vcpu_count, Integer, nil?: true + + # @!method initialize(fs_size_mib: nil, image_name: nil, kernel_name: nil, mem_size_mib: nil, vcpu_count: nil) + # Struct representing configuration options common to all VMs + # + # @param fs_size_mib [Integer, nil] The disk size, in MiB. + # + # @param image_name [String, nil] The filesystem base image name. Currently, must be 'default' + # + # @param kernel_name [String, nil] The kernel name. Currently, must be 'default.bin' + # + # @param mem_size_mib [Integer, nil] The RAM size, in MiB. + # + # @param vcpu_count [Integer, nil] How many vCPUs to allocate to this VM (and its children) + end + end + end +end diff --git a/lib/vers/models/new_vm_response.rb b/lib/vers/models/new_vm_response.rb new file mode 100644 index 0000000..bd0def3 --- /dev/null +++ b/lib/vers/models/new_vm_response.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch + class NewVmResponse < Vers::Internal::Type::BaseModel + # @!attribute id + # The VM ID, a (v4) UUID + # + # @return [String] + required :id, String + + # @!method initialize(id:) + # @param id [String] The VM ID, a (v4) UUID + end + end +end diff --git a/lib/vers/models/orchestrator/new_root_request.rb b/lib/vers/models/orchestrator/new_root_request.rb deleted file mode 100644 index 1d35e32..0000000 --- a/lib/vers/models/orchestrator/new_root_request.rb +++ /dev/null @@ -1,64 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - class NewRootRequest < Vers::Internal::Type::BaseModel - # @!attribute vm_config - # Struct representing configuration options common to all VMs - # - # @return [Vers::Models::Orchestrator::NewRootRequest::VmConfig] - required :vm_config, -> { Vers::Orchestrator::NewRootRequest::VmConfig } - - # @!method initialize(vm_config:) - # @param vm_config [Vers::Models::Orchestrator::NewRootRequest::VmConfig] Struct representing configuration options common to all VMs - - # @see Vers::Models::Orchestrator::NewRootRequest#vm_config - class VmConfig < Vers::Internal::Type::BaseModel - # @!attribute fs_size_mib - # The disk size, in MiB. - # - # @return [Integer, nil] - optional :fs_size_mib, Integer, nil?: true - - # @!attribute image_name - # The filesystem base image name. Currently, must be 'default' - # - # @return [String, nil] - optional :image_name, String, nil?: true - - # @!attribute kernel_name - # The kernel name. Currently, must be 'default.bin' - # - # @return [String, nil] - optional :kernel_name, String, nil?: true - - # @!attribute mem_size_mib - # The RAM size, in MiB. - # - # @return [Integer, nil] - optional :mem_size_mib, Integer, nil?: true - - # @!attribute vcpu_count - # How many vCPUs to allocate to this VM (and its children) - # - # @return [Integer, nil] - optional :vcpu_count, Integer, nil?: true - - # @!method initialize(fs_size_mib: nil, image_name: nil, kernel_name: nil, mem_size_mib: nil, vcpu_count: nil) - # Struct representing configuration options common to all VMs - # - # @param fs_size_mib [Integer, nil] The disk size, in MiB. - # - # @param image_name [String, nil] The filesystem base image name. Currently, must be 'default' - # - # @param kernel_name [String, nil] The kernel name. Currently, must be 'default.bin' - # - # @param mem_size_mib [Integer, nil] The RAM size, in MiB. - # - # @param vcpu_count [Integer, nil] How many vCPUs to allocate to this VM (and its children) - end - end - end - end -end diff --git a/lib/vers/models/orchestrator/new_vm_response.rb b/lib/vers/models/orchestrator/new_vm_response.rb deleted file mode 100644 index 54c2761..0000000 --- a/lib/vers/models/orchestrator/new_vm_response.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#branch - class NewVmResponse < Vers::Internal::Type::BaseModel - # @!attribute id - # The VM ID, a (v4) UUID - # - # @return [String] - required :id, String - - # @!method initialize(id:) - # @param id [String] The VM ID, a (v4) UUID - end - end - end -end diff --git a/lib/vers/models/orchestrator/node_list_vms_params.rb b/lib/vers/models/orchestrator/node_list_vms_params.rb deleted file mode 100644 index 714f19a..0000000 --- a/lib/vers/models/orchestrator/node_list_vms_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Node#list_vms - class NodeListVmsParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_branch_params.rb b/lib/vers/models/orchestrator/vm_branch_params.rb deleted file mode 100644 index 2056de3..0000000 --- a/lib/vers/models/orchestrator/vm_branch_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#branch - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_branch_response.rb b/lib/vers/models/orchestrator/vm_branch_response.rb deleted file mode 100644 index f7fc9a9..0000000 --- a/lib/vers/models/orchestrator/vm_branch_response.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - class VmBranchResponse < Vers::Internal::Type::BaseModel - # @!attribute vm_id - # The ID of the newly-created VM, a (v4) UUID - # - # @return [String] - required :vm_id, String - - # @!method initialize(vm_id:) - # Response body for POST /api/vm/{vm_id}/branch - # - # @param vm_id [String] The ID of the newly-created VM, a (v4) UUID - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_commit_params.rb b/lib/vers/models/orchestrator/vm_commit_params.rb deleted file mode 100644 index e0640e9..0000000 --- a/lib/vers/models/orchestrator/vm_commit_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#commit - class VmCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_commit_response.rb b/lib/vers/models/orchestrator/vm_commit_response.rb deleted file mode 100644 index 486ee51..0000000 --- a/lib/vers/models/orchestrator/vm_commit_response.rb +++ /dev/null @@ -1,29 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#commit - class VmCommitResponse < Vers::Internal::Type::BaseModel - # @!attribute commit_id - # The commit ID, a (v4) UUID - # - # @return [String] - required :commit_id, String - - # @!attribute host_architecture - # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) - # - # @return [String] - required :host_architecture, String - - # @!method initialize(commit_id:, host_architecture:) - # The response body for POST /api/vm/{vm_id}/commit - # - # @param commit_id [String] The commit ID, a (v4) UUID - # - # @param host_architecture [String] The host architecture, eg: "x86_64" (currently implemented with `uname -m``) - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_create_root_params.rb b/lib/vers/models/orchestrator/vm_create_root_params.rb deleted file mode 100644 index 1af4109..0000000 --- a/lib/vers/models/orchestrator/vm_create_root_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#create_root - class VmCreateRootParams < Vers::Models::Orchestrator::NewRootRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_delete_params.rb b/lib/vers/models/orchestrator/vm_delete_params.rb deleted file mode 100644 index 948abc5..0000000 --- a/lib/vers/models/orchestrator/vm_delete_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#delete - class VmDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_delete_response.rb b/lib/vers/models/orchestrator/vm_delete_response.rb deleted file mode 100644 index 68ebd3f..0000000 --- a/lib/vers/models/orchestrator/vm_delete_response.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#delete - class VmDeleteResponse < Vers::Internal::Type::BaseModel - # @!attribute deleted_ids - # - # @return [Array] - required :deleted_ids, Vers::Internal::Type::ArrayOf[String] - - # @!method initialize(deleted_ids:) - # Response body for DELETE /api/vm/{vm_id} - # - # @param deleted_ids [Array] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_from_commit_request.rb b/lib/vers/models/orchestrator/vm_from_commit_request.rb deleted file mode 100644 index ade3160..0000000 --- a/lib/vers/models/orchestrator/vm_from_commit_request.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - class VmFromCommitRequest < Vers::Internal::Type::BaseModel - # @!attribute commit_id - # - # @return [String] - required :commit_id, String - - # @!method initialize(commit_id:) - # Request body for POST /api/vm/from_commit - # - # @param commit_id [String] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_list_all_response.rb b/lib/vers/models/orchestrator/vm_list_all_response.rb deleted file mode 100644 index 9427f5b..0000000 --- a/lib/vers/models/orchestrator/vm_list_all_response.rb +++ /dev/null @@ -1,42 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Node#list_vms - class VmListAllResponse < Vers::Internal::Type::BaseModel - # @!attribute vms - # A list of nodes, each of which is a "root VM" with one or more children - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::Orchestrator::VmListAllResponse::Vm] } - - # @!method initialize(vms:) - # Response body for GET /api/vm - # - # @param vms [Array] A list of nodes, each of which is a "root VM" with one or more children - - class Vm < Vers::Internal::Type::BaseModel - # @!attribute vm_id - # The VM ID, a (v4) UUID. - # - # @return [String] - required :vm_id, String - - # @!attribute parent_id - # The VM's parent ID - # - # @return [String, nil] - optional :parent_id, String, nil?: true - - # @!method initialize(vm_id:, parent_id: nil) - # Represents a tree node for a VM - # - # @param vm_id [String] The VM ID, a (v4) UUID. - # - # @param parent_id [String, nil] The VM's parent ID - end - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_restore_from_commit_params.rb b/lib/vers/models/orchestrator/vm_restore_from_commit_params.rb deleted file mode 100644 index 80ea114..0000000 --- a/lib/vers/models/orchestrator/vm_restore_from_commit_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#restore_from_commit - class VmRestoreFromCommitParams < Vers::Models::Orchestrator::VmFromCommitRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_update_state_params.rb b/lib/vers/models/orchestrator/vm_update_state_params.rb deleted file mode 100644 index 8dd6543..0000000 --- a/lib/vers/models/orchestrator/vm_update_state_params.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - # @see Vers::Resources::Orchestrator::Vm#update_state - class VmUpdateStateParams < Vers::Models::Orchestrator::VmUpdateStateRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end - end -end diff --git a/lib/vers/models/orchestrator/vm_update_state_request.rb b/lib/vers/models/orchestrator/vm_update_state_request.rb deleted file mode 100644 index 3a529f7..0000000 --- a/lib/vers/models/orchestrator/vm_update_state_request.rb +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - module Orchestrator - class VmUpdateStateRequest < Vers::Internal::Type::BaseModel - # @!attribute state - # The requested state for the VM - # - # @return [Symbol, Vers::Models::Orchestrator::VmUpdateStateRequest::State] - required :state, enum: -> { Vers::Orchestrator::VmUpdateStateRequest::State } - - # @!method initialize(state:) - # Request body for PATCH /api/vm/{vm_id}/state - # - # @param state [Symbol, Vers::Models::Orchestrator::VmUpdateStateRequest::State] The requested state for the VM - - # The requested state for the VM - # - # @see Vers::Models::Orchestrator::VmUpdateStateRequest#state - module State - extend Vers::Internal::Type::Enum - - PAUSED = :Paused - RUNNING = :Running - - # @!method self.values - # @return [Array] - end - end - end - end -end diff --git a/lib/vers/models/vm.rb b/lib/vers/models/vm.rb new file mode 100644 index 0000000..813d5d6 --- /dev/null +++ b/lib/vers/models/vm.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +module Vers + module Models + class VmAPI < Vers::Internal::Type::BaseModel + # @!attribute created_at + # + # @return [Time] + required :created_at, Time + + # @!attribute ip + # + # @return [String] + required :ip, String + + # @!attribute owner_id + # + # @return [String] + required :owner_id, String + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!attribute parent + # + # @return [String, nil] + optional :parent, String, nil?: true + + # @!method initialize(created_at:, ip:, owner_id:, vm_id:, parent: nil) + # @param created_at [Time] + # @param ip [String] + # @param owner_id [String] + # @param vm_id [String] + # @param parent [String, nil] + end + end +end diff --git a/lib/vers/models/vm_branch_params.rb b/lib/vers/models/vm_branch_params.rb new file mode 100644 index 0000000..cfba905 --- /dev/null +++ b/lib/vers/models/vm_branch_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_commit_params.rb b/lib/vers/models/vm_commit_params.rb new file mode 100644 index 0000000..5c139c7 --- /dev/null +++ b/lib/vers/models/vm_commit_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#commit + class VmCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_commit_response.rb b/lib/vers/models/vm_commit_response.rb new file mode 100644 index 0000000..f6d40f6 --- /dev/null +++ b/lib/vers/models/vm_commit_response.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#commit + class VmCommitResponse < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID, a (v4) UUID + # + # @return [String] + required :commit_id, String + + # @!attribute host_architecture + # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + # + # @return [String] + required :host_architecture, String + + # @!method initialize(commit_id:, host_architecture:) + # The response body for POST /api/vm/{vm_id}/commit + # + # @param commit_id [String] The commit ID, a (v4) UUID + # + # @param host_architecture [String] The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + end + end +end diff --git a/lib/vers/models/vm_create_root_params.rb b/lib/vers/models/vm_create_root_params.rb new file mode 100644 index 0000000..d452f0a --- /dev/null +++ b/lib/vers/models/vm_create_root_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#create_root + class VmCreateRootParams < Vers::Models::NewRootRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_delete_params.rb b/lib/vers/models/vm_delete_params.rb new file mode 100644 index 0000000..dd2ab85 --- /dev/null +++ b/lib/vers/models/vm_delete_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#delete + class VmDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_delete_response.rb b/lib/vers/models/vm_delete_response.rb new file mode 100644 index 0000000..7b2d99b --- /dev/null +++ b/lib/vers/models/vm_delete_response.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#delete + class VmDeleteResponse < Vers::Internal::Type::BaseModel + # @!attribute deleted_ids + # + # @return [Array] + required :deleted_ids, Vers::Internal::Type::ArrayOf[String] + + # @!method initialize(deleted_ids:) + # Response body for DELETE /api/vm/{vm_id} + # + # @param deleted_ids [Array] + end + end +end diff --git a/lib/vers/models/vm_from_commit_request.rb b/lib/vers/models/vm_from_commit_request.rb new file mode 100644 index 0000000..8b410f2 --- /dev/null +++ b/lib/vers/models/vm_from_commit_request.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module Vers + module Models + class VmFromCommitRequest < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # + # @return [String] + required :commit_id, String + + # @!method initialize(commit_id:) + # Request body for POST /api/vm/from_commit + # + # @param commit_id [String] + end + end +end diff --git a/lib/vers/models/vm_list_params.rb b/lib/vers/models/vm_list_params.rb new file mode 100644 index 0000000..3bcfa5d --- /dev/null +++ b/lib/vers/models/vm_list_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#list + class VmListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_list_response.rb b/lib/vers/models/vm_list_response.rb new file mode 100644 index 0000000..0b56e79 --- /dev/null +++ b/lib/vers/models/vm_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Vers + module Models + # @type [Vers::Internal::Type::Converter] + VmListResponse = Vers::Internal::Type::ArrayOf[-> { Vers::VmAPI }] + end +end diff --git a/lib/vers/models/vm_restore_from_commit_params.rb b/lib/vers/models/vm_restore_from_commit_params.rb new file mode 100644 index 0000000..96f9232 --- /dev/null +++ b/lib/vers/models/vm_restore_from_commit_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#restore_from_commit + class VmRestoreFromCommitParams < Vers::Models::VmFromCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_update_state_params.rb b/lib/vers/models/vm_update_state_params.rb new file mode 100644 index 0000000..cf8a00e --- /dev/null +++ b/lib/vers/models/vm_update_state_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#update_state + class VmUpdateStateParams < Vers::Models::VmUpdateStateRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_update_state_request.rb b/lib/vers/models/vm_update_state_request.rb new file mode 100644 index 0000000..a1af026 --- /dev/null +++ b/lib/vers/models/vm_update_state_request.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Vers + module Models + class VmUpdateStateRequest < Vers::Internal::Type::BaseModel + # @!attribute state + # The requested state for the VM + # + # @return [Symbol, Vers::Models::VmUpdateStateRequest::State] + required :state, enum: -> { Vers::VmUpdateStateRequest::State } + + # @!method initialize(state:) + # Request body for PATCH /api/vm/{vm_id}/state + # + # @param state [Symbol, Vers::Models::VmUpdateStateRequest::State] The requested state for the VM + + # The requested state for the VM + # + # @see Vers::Models::VmUpdateStateRequest#state + module State + extend Vers::Internal::Type::Enum + + PAUSED = :Paused + RUNNING = :Running + + # @!method self.values + # @return [Array] + end + end + end +end diff --git a/lib/vers/resources/orchestrator.rb b/lib/vers/resources/orchestrator.rb deleted file mode 100644 index 0536641..0000000 --- a/lib/vers/resources/orchestrator.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class Orchestrator - # @return [Vers::Resources::Orchestrator::Vm] - attr_reader :vm - - # @return [Vers::Resources::Orchestrator::Node] - attr_reader :node - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - @vm = Vers::Resources::Orchestrator::Vm.new(client: client) - @node = Vers::Resources::Orchestrator::Node.new(client: client) - end - end - end -end diff --git a/lib/vers/resources/orchestrator/node.rb b/lib/vers/resources/orchestrator/node.rb deleted file mode 100644 index adafda9..0000000 --- a/lib/vers/resources/orchestrator/node.rb +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class Orchestrator - class Node - # @overload list_vms(node_id, request_options: {}) - # - # @param node_id [String] Node ID - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::Orchestrator::VmListAllResponse] - # - # @see Vers::Models::Orchestrator::NodeListVmsParams - def list_vms(node_id, params = {}) - @client.request( - method: :get, - path: ["node/%1$s/vms", node_id], - model: Vers::Orchestrator::VmListAllResponse, - options: params[:request_options] - ) - end - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - end - end - end - end -end diff --git a/lib/vers/resources/orchestrator/vm.rb b/lib/vers/resources/orchestrator/vm.rb deleted file mode 100644 index 5fcabe3..0000000 --- a/lib/vers/resources/orchestrator/vm.rb +++ /dev/null @@ -1,131 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Resources - class Orchestrator - class Vm - # @overload delete(vm_id, request_options: {}) - # - # @param vm_id [String] VM ID to delete - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::Orchestrator::VmDeleteResponse] - # - # @see Vers::Models::Orchestrator::VmDeleteParams - def delete(vm_id, params = {}) - @client.request( - method: :delete, - path: ["vm/%1$s", vm_id], - model: Vers::Orchestrator::VmDeleteResponse, - options: params[:request_options] - ) - end - - # @overload branch(vm_id, request_options: {}) - # - # @param vm_id [String] Parent VM ID - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::Orchestrator::NewVmResponse] - # - # @see Vers::Models::Orchestrator::VmBranchParams - def branch(vm_id, params = {}) - @client.request( - method: :post, - path: ["vm/%1$s/branch", vm_id], - model: Vers::Orchestrator::NewVmResponse, - options: params[:request_options] - ) - end - - # @overload commit(vm_id, request_options: {}) - # - # @param vm_id [String] VM ID to commit - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::Orchestrator::VmCommitResponse] - # - # @see Vers::Models::Orchestrator::VmCommitParams - def commit(vm_id, params = {}) - @client.request( - method: :post, - path: ["vm/%1$s/commit", vm_id], - model: Vers::Orchestrator::VmCommitResponse, - options: params[:request_options] - ) - end - - # @overload create_root(vm_config:, request_options: {}) - # - # @param vm_config [Vers::Models::Orchestrator::NewRootRequest::VmConfig] Struct representing configuration options common to all VMs - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::Orchestrator::NewVmResponse] - # - # @see Vers::Models::Orchestrator::VmCreateRootParams - def create_root(params) - parsed, options = Vers::Orchestrator::VmCreateRootParams.dump_request(params) - @client.request( - method: :post, - path: "vm/new_root", - body: parsed, - model: Vers::Orchestrator::NewVmResponse, - options: options - ) - end - - # @overload restore_from_commit(commit_id:, request_options: {}) - # - # @param commit_id [String] - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::Orchestrator::NewVmResponse] - # - # @see Vers::Models::Orchestrator::VmRestoreFromCommitParams - def restore_from_commit(params) - parsed, options = Vers::Orchestrator::VmRestoreFromCommitParams.dump_request(params) - @client.request( - method: :post, - path: "vm/from_commit", - body: parsed, - model: Vers::Orchestrator::NewVmResponse, - options: options - ) - end - - # @overload update_state(vm_id, state:, request_options: {}) - # - # @param vm_id [String] VM ID - # - # @param state [Symbol, Vers::Models::Orchestrator::VmUpdateStateRequest::State] The requested state for the VM - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [nil] - # - # @see Vers::Models::Orchestrator::VmUpdateStateParams - def update_state(vm_id, params) - parsed, options = Vers::Orchestrator::VmUpdateStateParams.dump_request(params) - @client.request( - method: :patch, - path: ["vm/%1$s/state", vm_id], - body: parsed, - model: NilClass, - options: options - ) - end - - # @api private - # - # @param client [Vers::Client] - def initialize(client:) - @client = client - end - end - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb new file mode 100644 index 0000000..7adb1a8 --- /dev/null +++ b/lib/vers/resources/vm.rb @@ -0,0 +1,145 @@ +# frozen_string_literal: true + +module Vers + module Resources + class Vm + # @overload list(request_options: {}) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Array] + # + # @see Vers::Models::VmListParams + def list(params = {}) + @client.request( + method: :get, + path: "vms", + model: Vers::Internal::Type::ArrayOf[Vers::VmAPI], + options: params[:request_options] + ) + end + + # @overload delete(vm_id, request_options: {}) + # + # @param vm_id [String] VM ID to delete + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmDeleteResponse] + # + # @see Vers::Models::VmDeleteParams + def delete(vm_id, params = {}) + @client.request( + method: :delete, + path: ["vm/%1$s", vm_id], + model: Vers::VmDeleteResponse, + options: params[:request_options] + ) + end + + # @overload branch(vm_id, request_options: {}) + # + # @param vm_id [String] Parent VM ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmResponse] + # + # @see Vers::Models::VmBranchParams + def branch(vm_id, params = {}) + @client.request( + method: :post, + path: ["vm/%1$s/branch", vm_id], + model: Vers::NewVmResponse, + options: params[:request_options] + ) + end + + # @overload commit(vm_id, request_options: {}) + # + # @param vm_id [String] VM ID to commit + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmCommitResponse] + # + # @see Vers::Models::VmCommitParams + def commit(vm_id, params = {}) + @client.request( + method: :post, + path: ["vm/%1$s/commit", vm_id], + model: Vers::VmCommitResponse, + options: params[:request_options] + ) + end + + # @overload create_root(vm_config:, request_options: {}) + # + # @param vm_config [Vers::Models::NewRootRequest::VmConfig] Struct representing configuration options common to all VMs + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmResponse] + # + # @see Vers::Models::VmCreateRootParams + def create_root(params) + parsed, options = Vers::VmCreateRootParams.dump_request(params) + @client.request( + method: :post, + path: "vm/new_root", + body: parsed, + model: Vers::NewVmResponse, + options: options + ) + end + + # @overload restore_from_commit(commit_id:, request_options: {}) + # + # @param commit_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmResponse] + # + # @see Vers::Models::VmRestoreFromCommitParams + def restore_from_commit(params) + parsed, options = Vers::VmRestoreFromCommitParams.dump_request(params) + @client.request( + method: :post, + path: "vm/from_commit", + body: parsed, + model: Vers::NewVmResponse, + options: options + ) + end + + # @overload update_state(vm_id, state:, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param state [Symbol, Vers::Models::VmUpdateStateRequest::State] The requested state for the VM + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::VmUpdateStateParams + def update_state(vm_id, params) + parsed, options = Vers::VmUpdateStateParams.dump_request(params) + @client.request( + method: :patch, + path: ["vm/%1$s/state", vm_id], + body: parsed, + model: NilClass, + options: options + ) + end + + # @api private + # + # @param client [Vers::Client] + def initialize(client:) + @client = client + end + end + end +end diff --git a/rbi/vers/client.rbi b/rbi/vers/client.rbi index f94d976..805966d 100644 --- a/rbi/vers/client.rbi +++ b/rbi/vers/client.rbi @@ -13,8 +13,8 @@ module Vers sig { returns(T.nilable(String)) } attr_reader :api_key - sig { returns(Vers::Resources::Orchestrator) } - attr_reader :orchestrator + sig { returns(Vers::Resources::Vm) } + attr_reader :vm # @api private sig { override.returns(T::Hash[String, String]) } diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index 1556712..a227441 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -3,5 +3,31 @@ module Vers ErrorResponse = Vers::Models::ErrorResponse - Orchestrator = Vers::Models::Orchestrator + NewRootRequest = Vers::Models::NewRootRequest + + NewVmResponse = Vers::Models::NewVmResponse + + VmAPI = Vers::Models::VmAPI + + VmBranchParams = Vers::Models::VmBranchParams + + VmCommitParams = Vers::Models::VmCommitParams + + VmCommitResponse = Vers::Models::VmCommitResponse + + VmCreateRootParams = Vers::Models::VmCreateRootParams + + VmDeleteParams = Vers::Models::VmDeleteParams + + VmDeleteResponse = Vers::Models::VmDeleteResponse + + VmFromCommitRequest = Vers::Models::VmFromCommitRequest + + VmListParams = Vers::Models::VmListParams + + VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + + VmUpdateStateParams = Vers::Models::VmUpdateStateParams + + VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest end diff --git a/rbi/vers/models/new_root_request.rbi b/rbi/vers/models/new_root_request.rbi new file mode 100644 index 0000000..38ed095 --- /dev/null +++ b/rbi/vers/models/new_root_request.rbi @@ -0,0 +1,97 @@ +# typed: strong + +module Vers + module Models + class NewRootRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::NewRootRequest, Vers::Internal::AnyHash) } + + # Struct representing configuration options common to all VMs + sig { returns(Vers::NewRootRequest::VmConfig) } + attr_reader :vm_config + + sig { params(vm_config: Vers::NewRootRequest::VmConfig::OrHash).void } + attr_writer :vm_config + + sig do + params(vm_config: Vers::NewRootRequest::VmConfig::OrHash).returns( + T.attached_class + ) + end + def self.new( + # Struct representing configuration options common to all VMs + vm_config: + ) + end + + sig { override.returns({ vm_config: Vers::NewRootRequest::VmConfig }) } + def to_hash + end + + class VmConfig < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::NewRootRequest::VmConfig, Vers::Internal::AnyHash) + end + + # The disk size, in MiB. + sig { returns(T.nilable(Integer)) } + attr_accessor :fs_size_mib + + # The filesystem base image name. Currently, must be 'default' + sig { returns(T.nilable(String)) } + attr_accessor :image_name + + # The kernel name. Currently, must be 'default.bin' + sig { returns(T.nilable(String)) } + attr_accessor :kernel_name + + # The RAM size, in MiB. + sig { returns(T.nilable(Integer)) } + attr_accessor :mem_size_mib + + # How many vCPUs to allocate to this VM (and its children) + sig { returns(T.nilable(Integer)) } + attr_accessor :vcpu_count + + # Struct representing configuration options common to all VMs + sig do + params( + fs_size_mib: T.nilable(Integer), + image_name: T.nilable(String), + kernel_name: T.nilable(String), + mem_size_mib: T.nilable(Integer), + vcpu_count: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + # The disk size, in MiB. + fs_size_mib: nil, + # The filesystem base image name. Currently, must be 'default' + image_name: nil, + # The kernel name. Currently, must be 'default.bin' + kernel_name: nil, + # The RAM size, in MiB. + mem_size_mib: nil, + # How many vCPUs to allocate to this VM (and its children) + vcpu_count: nil + ) + end + + sig do + override.returns( + { + fs_size_mib: T.nilable(Integer), + image_name: T.nilable(String), + kernel_name: T.nilable(String), + mem_size_mib: T.nilable(Integer), + vcpu_count: T.nilable(Integer) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/vers/models/new_vm_response.rbi b/rbi/vers/models/new_vm_response.rbi new file mode 100644 index 0000000..80b607b --- /dev/null +++ b/rbi/vers/models/new_vm_response.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class NewVmResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::NewVmResponse, Vers::Internal::AnyHash) } + + # The VM ID, a (v4) UUID + sig { returns(String) } + attr_accessor :id + + sig { params(id: String).returns(T.attached_class) } + def self.new( + # The VM ID, a (v4) UUID + id: + ) + end + + sig { override.returns({ id: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/orchestrator/new_root_request.rbi b/rbi/vers/models/orchestrator/new_root_request.rbi deleted file mode 100644 index a7f5bbf..0000000 --- a/rbi/vers/models/orchestrator/new_root_request.rbi +++ /dev/null @@ -1,112 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class NewRootRequest < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::NewRootRequest, Vers::Internal::AnyHash) - end - - # Struct representing configuration options common to all VMs - sig { returns(Vers::Orchestrator::NewRootRequest::VmConfig) } - attr_reader :vm_config - - sig do - params( - vm_config: Vers::Orchestrator::NewRootRequest::VmConfig::OrHash - ).void - end - attr_writer :vm_config - - sig do - params( - vm_config: Vers::Orchestrator::NewRootRequest::VmConfig::OrHash - ).returns(T.attached_class) - end - def self.new( - # Struct representing configuration options common to all VMs - vm_config: - ) - end - - sig do - override.returns( - { vm_config: Vers::Orchestrator::NewRootRequest::VmConfig } - ) - end - def to_hash - end - - class VmConfig < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::NewRootRequest::VmConfig, - Vers::Internal::AnyHash - ) - end - - # The disk size, in MiB. - sig { returns(T.nilable(Integer)) } - attr_accessor :fs_size_mib - - # The filesystem base image name. Currently, must be 'default' - sig { returns(T.nilable(String)) } - attr_accessor :image_name - - # The kernel name. Currently, must be 'default.bin' - sig { returns(T.nilable(String)) } - attr_accessor :kernel_name - - # The RAM size, in MiB. - sig { returns(T.nilable(Integer)) } - attr_accessor :mem_size_mib - - # How many vCPUs to allocate to this VM (and its children) - sig { returns(T.nilable(Integer)) } - attr_accessor :vcpu_count - - # Struct representing configuration options common to all VMs - sig do - params( - fs_size_mib: T.nilable(Integer), - image_name: T.nilable(String), - kernel_name: T.nilable(String), - mem_size_mib: T.nilable(Integer), - vcpu_count: T.nilable(Integer) - ).returns(T.attached_class) - end - def self.new( - # The disk size, in MiB. - fs_size_mib: nil, - # The filesystem base image name. Currently, must be 'default' - image_name: nil, - # The kernel name. Currently, must be 'default.bin' - kernel_name: nil, - # The RAM size, in MiB. - mem_size_mib: nil, - # How many vCPUs to allocate to this VM (and its children) - vcpu_count: nil - ) - end - - sig do - override.returns( - { - fs_size_mib: T.nilable(Integer), - image_name: T.nilable(String), - kernel_name: T.nilable(String), - mem_size_mib: T.nilable(Integer), - vcpu_count: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/new_vm_response.rbi b/rbi/vers/models/orchestrator/new_vm_response.rbi deleted file mode 100644 index 8298a55..0000000 --- a/rbi/vers/models/orchestrator/new_vm_response.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class NewVmResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::NewVmResponse, Vers::Internal::AnyHash) - end - - # The VM ID, a (v4) UUID - sig { returns(String) } - attr_accessor :id - - sig { params(id: String).returns(T.attached_class) } - def self.new( - # The VM ID, a (v4) UUID - id: - ) - end - - sig { override.returns({ id: String }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/node_list_vms_params.rbi b/rbi/vers/models/orchestrator/node_list_vms_params.rbi deleted file mode 100644 index 1887b76..0000000 --- a/rbi/vers/models/orchestrator/node_list_vms_params.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class NodeListVmsParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::NodeListVmsParams, - Vers::Internal::AnyHash - ) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_branch_params.rbi b/rbi/vers/models/orchestrator/vm_branch_params.rbi deleted file mode 100644 index 6e75ec5..0000000 --- a/rbi/vers/models/orchestrator/vm_branch_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::VmBranchParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_branch_response.rbi b/rbi/vers/models/orchestrator/vm_branch_response.rbi deleted file mode 100644 index 9b3e079..0000000 --- a/rbi/vers/models/orchestrator/vm_branch_response.rbi +++ /dev/null @@ -1,30 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmBranchResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::VmBranchResponse, Vers::Internal::AnyHash) - end - - # The ID of the newly-created VM, a (v4) UUID - sig { returns(String) } - attr_accessor :vm_id - - # Response body for POST /api/vm/{vm_id}/branch - sig { params(vm_id: String).returns(T.attached_class) } - def self.new( - # The ID of the newly-created VM, a (v4) UUID - vm_id: - ) - end - - sig { override.returns({ vm_id: String }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_commit_params.rbi b/rbi/vers/models/orchestrator/vm_commit_params.rbi deleted file mode 100644 index 10f690d..0000000 --- a/rbi/vers/models/orchestrator/vm_commit_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::VmCommitParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_commit_response.rbi b/rbi/vers/models/orchestrator/vm_commit_response.rbi deleted file mode 100644 index 8904706..0000000 --- a/rbi/vers/models/orchestrator/vm_commit_response.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmCommitResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::VmCommitResponse, Vers::Internal::AnyHash) - end - - # The commit ID, a (v4) UUID - sig { returns(String) } - attr_accessor :commit_id - - # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) - sig { returns(String) } - attr_accessor :host_architecture - - # The response body for POST /api/vm/{vm_id}/commit - sig do - params(commit_id: String, host_architecture: String).returns( - T.attached_class - ) - end - def self.new( - # The commit ID, a (v4) UUID - commit_id:, - # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) - host_architecture: - ) - end - - sig do - override.returns({ commit_id: String, host_architecture: String }) - end - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_create_root_params.rbi b/rbi/vers/models/orchestrator/vm_create_root_params.rbi deleted file mode 100644 index 63d92d0..0000000 --- a/rbi/vers/models/orchestrator/vm_create_root_params.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmCreateRootParams < Vers::Models::Orchestrator::NewRootRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::VmCreateRootParams, - Vers::Internal::AnyHash - ) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_delete_params.rbi b/rbi/vers/models/orchestrator/vm_delete_params.rbi deleted file mode 100644 index 8ac322d..0000000 --- a/rbi/vers/models/orchestrator/vm_delete_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::VmDeleteParams, Vers::Internal::AnyHash) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_delete_response.rbi b/rbi/vers/models/orchestrator/vm_delete_response.rbi deleted file mode 100644 index 17287c6..0000000 --- a/rbi/vers/models/orchestrator/vm_delete_response.rbi +++ /dev/null @@ -1,26 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmDeleteResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Orchestrator::VmDeleteResponse, Vers::Internal::AnyHash) - end - - sig { returns(T::Array[String]) } - attr_accessor :deleted_ids - - # Response body for DELETE /api/vm/{vm_id} - sig { params(deleted_ids: T::Array[String]).returns(T.attached_class) } - def self.new(deleted_ids:) - end - - sig { override.returns({ deleted_ids: T::Array[String] }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_from_commit_request.rbi b/rbi/vers/models/orchestrator/vm_from_commit_request.rbi deleted file mode 100644 index a58f61c..0000000 --- a/rbi/vers/models/orchestrator/vm_from_commit_request.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmFromCommitRequest < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::VmFromCommitRequest, - Vers::Internal::AnyHash - ) - end - - sig { returns(String) } - attr_accessor :commit_id - - # Request body for POST /api/vm/from_commit - sig { params(commit_id: String).returns(T.attached_class) } - def self.new(commit_id:) - end - - sig { override.returns({ commit_id: String }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_list_all_response.rbi b/rbi/vers/models/orchestrator/vm_list_all_response.rbi deleted file mode 100644 index 71e1910..0000000 --- a/rbi/vers/models/orchestrator/vm_list_all_response.rbi +++ /dev/null @@ -1,79 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmListAllResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::VmListAllResponse, - Vers::Internal::AnyHash - ) - end - - # A list of nodes, each of which is a "root VM" with one or more children - sig { returns(T::Array[Vers::Orchestrator::VmListAllResponse::Vm]) } - attr_accessor :vms - - # Response body for GET /api/vm - sig do - params( - vms: T::Array[Vers::Orchestrator::VmListAllResponse::Vm::OrHash] - ).returns(T.attached_class) - end - def self.new( - # A list of nodes, each of which is a "root VM" with one or more children - vms: - ) - end - - sig do - override.returns( - { vms: T::Array[Vers::Orchestrator::VmListAllResponse::Vm] } - ) - end - def to_hash - end - - class Vm < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::VmListAllResponse::Vm, - Vers::Internal::AnyHash - ) - end - - # The VM ID, a (v4) UUID. - sig { returns(String) } - attr_accessor :vm_id - - # The VM's parent ID - sig { returns(T.nilable(String)) } - attr_accessor :parent_id - - # Represents a tree node for a VM - sig do - params(vm_id: String, parent_id: T.nilable(String)).returns( - T.attached_class - ) - end - def self.new( - # The VM ID, a (v4) UUID. - vm_id:, - # The VM's parent ID - parent_id: nil - ) - end - - sig do - override.returns({ vm_id: String, parent_id: T.nilable(String) }) - end - def to_hash - end - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi b/rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi deleted file mode 100644 index b92fec6..0000000 --- a/rbi/vers/models/orchestrator/vm_restore_from_commit_params.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmRestoreFromCommitParams < Vers::Models::Orchestrator::VmFromCommitRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::VmRestoreFromCommitParams, - Vers::Internal::AnyHash - ) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_update_state_params.rbi b/rbi/vers/models/orchestrator/vm_update_state_params.rbi deleted file mode 100644 index 49ef63d..0000000 --- a/rbi/vers/models/orchestrator/vm_update_state_params.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmUpdateStateParams < Vers::Models::Orchestrator::VmUpdateStateRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::VmUpdateStateParams, - Vers::Internal::AnyHash - ) - end - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end - end -end diff --git a/rbi/vers/models/orchestrator/vm_update_state_request.rbi b/rbi/vers/models/orchestrator/vm_update_state_request.rbi deleted file mode 100644 index 8ce3c33..0000000 --- a/rbi/vers/models/orchestrator/vm_update_state_request.rbi +++ /dev/null @@ -1,75 +0,0 @@ -# typed: strong - -module Vers - module Models - module Orchestrator - class VmUpdateStateRequest < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any( - Vers::Orchestrator::VmUpdateStateRequest, - Vers::Internal::AnyHash - ) - end - - # The requested state for the VM - sig do - returns(Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol) - end - attr_accessor :state - - # Request body for PATCH /api/vm/{vm_id}/state - sig do - params( - state: Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol - ).returns(T.attached_class) - end - def self.new( - # The requested state for the VM - state: - ) - end - - sig do - override.returns( - { state: Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol } - ) - end - def to_hash - end - - # The requested state for the VM - module State - extend Vers::Internal::Type::Enum - - TaggedSymbol = - T.type_alias do - T.all(Symbol, Vers::Orchestrator::VmUpdateStateRequest::State) - end - OrSymbol = T.type_alias { T.any(Symbol, String) } - - PAUSED = - T.let( - :Paused, - Vers::Orchestrator::VmUpdateStateRequest::State::TaggedSymbol - ) - RUNNING = - T.let( - :Running, - Vers::Orchestrator::VmUpdateStateRequest::State::TaggedSymbol - ) - - sig do - override.returns( - T::Array[ - Vers::Orchestrator::VmUpdateStateRequest::State::TaggedSymbol - ] - ) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/vers/models/vm.rbi b/rbi/vers/models/vm.rbi new file mode 100644 index 0000000..fd1f60f --- /dev/null +++ b/rbi/vers/models/vm.rbi @@ -0,0 +1,50 @@ +# typed: strong + +module Vers + module Models + class VmAPI < Vers::Internal::Type::BaseModel + OrHash = T.type_alias { T.any(Vers::VmAPI, Vers::Internal::AnyHash) } + + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(String) } + attr_accessor :ip + + sig { returns(String) } + attr_accessor :owner_id + + sig { returns(String) } + attr_accessor :vm_id + + sig { returns(T.nilable(String)) } + attr_accessor :parent + + sig do + params( + created_at: Time, + ip: String, + owner_id: String, + vm_id: String, + parent: T.nilable(String) + ).returns(T.attached_class) + end + def self.new(created_at:, ip:, owner_id:, vm_id:, parent: nil) + end + + sig do + override.returns( + { + created_at: Time, + ip: String, + owner_id: String, + vm_id: String, + parent: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_params.rbi b/rbi/vers/models/vm_branch_params.rbi new file mode 100644 index 0000000..aa9189e --- /dev/null +++ b/rbi/vers/models/vm_branch_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmBranchParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_commit_params.rbi b/rbi/vers/models/vm_commit_params.rbi new file mode 100644 index 0000000..abe535a --- /dev/null +++ b/rbi/vers/models/vm_commit_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmCommitParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_commit_response.rbi b/rbi/vers/models/vm_commit_response.rbi new file mode 100644 index 0000000..118b9fe --- /dev/null +++ b/rbi/vers/models/vm_commit_response.rbi @@ -0,0 +1,36 @@ +# typed: strong + +module Vers + module Models + class VmCommitResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmCommitResponse, Vers::Internal::AnyHash) } + + # The commit ID, a (v4) UUID + sig { returns(String) } + attr_accessor :commit_id + + # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + sig { returns(String) } + attr_accessor :host_architecture + + # The response body for POST /api/vm/{vm_id}/commit + sig do + params(commit_id: String, host_architecture: String).returns( + T.attached_class + ) + end + def self.new( + # The commit ID, a (v4) UUID + commit_id:, + # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + host_architecture: + ) + end + + sig { override.returns({ commit_id: String, host_architecture: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_create_root_params.rbi b/rbi/vers/models/vm_create_root_params.rbi new file mode 100644 index 0000000..32b4608 --- /dev/null +++ b/rbi/vers/models/vm_create_root_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class VmCreateRootParams < Vers::Models::NewRootRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmCreateRootParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_delete_params.rbi b/rbi/vers/models/vm_delete_params.rbi new file mode 100644 index 0000000..eb45ca2 --- /dev/null +++ b/rbi/vers/models/vm_delete_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmDeleteParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_delete_response.rbi b/rbi/vers/models/vm_delete_response.rbi new file mode 100644 index 0000000..098427a --- /dev/null +++ b/rbi/vers/models/vm_delete_response.rbi @@ -0,0 +1,22 @@ +# typed: strong + +module Vers + module Models + class VmDeleteResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmDeleteResponse, Vers::Internal::AnyHash) } + + sig { returns(T::Array[String]) } + attr_accessor :deleted_ids + + # Response body for DELETE /api/vm/{vm_id} + sig { params(deleted_ids: T::Array[String]).returns(T.attached_class) } + def self.new(deleted_ids:) + end + + sig { override.returns({ deleted_ids: T::Array[String] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_from_commit_request.rbi b/rbi/vers/models/vm_from_commit_request.rbi new file mode 100644 index 0000000..e7c2584 --- /dev/null +++ b/rbi/vers/models/vm_from_commit_request.rbi @@ -0,0 +1,24 @@ +# typed: strong + +module Vers + module Models + class VmFromCommitRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmFromCommitRequest, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :commit_id + + # Request body for POST /api/vm/from_commit + sig { params(commit_id: String).returns(T.attached_class) } + def self.new(commit_id:) + end + + sig { override.returns({ commit_id: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_list_params.rbi b/rbi/vers/models/vm_list_params.rbi new file mode 100644 index 0000000..58f09c9 --- /dev/null +++ b/rbi/vers/models/vm_list_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmListParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_list_response.rbi b/rbi/vers/models/vm_list_response.rbi new file mode 100644 index 0000000..53c0a71 --- /dev/null +++ b/rbi/vers/models/vm_list_response.rbi @@ -0,0 +1,11 @@ +# typed: strong + +module Vers + module Models + VmListResponse = + T.let( + Vers::Internal::Type::ArrayOf[Vers::VmAPI], + Vers::Internal::Type::Converter + ) + end +end diff --git a/rbi/vers/models/vm_restore_from_commit_params.rbi b/rbi/vers/models/vm_restore_from_commit_params.rbi new file mode 100644 index 0000000..ef543dd --- /dev/null +++ b/rbi/vers/models/vm_restore_from_commit_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class VmRestoreFromCommitParams < Vers::Models::VmFromCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmRestoreFromCommitParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_update_state_params.rbi b/rbi/vers/models/vm_update_state_params.rbi new file mode 100644 index 0000000..ff369ad --- /dev/null +++ b/rbi/vers/models/vm_update_state_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class VmUpdateStateParams < Vers::Models::VmUpdateStateRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmUpdateStateParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_update_state_request.rbi b/rbi/vers/models/vm_update_state_request.rbi new file mode 100644 index 0000000..73ccf79 --- /dev/null +++ b/rbi/vers/models/vm_update_state_request.rbi @@ -0,0 +1,55 @@ +# typed: strong + +module Vers + module Models + class VmUpdateStateRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmUpdateStateRequest, Vers::Internal::AnyHash) + end + + # The requested state for the VM + sig { returns(Vers::VmUpdateStateRequest::State::OrSymbol) } + attr_accessor :state + + # Request body for PATCH /api/vm/{vm_id}/state + sig do + params(state: Vers::VmUpdateStateRequest::State::OrSymbol).returns( + T.attached_class + ) + end + def self.new( + # The requested state for the VM + state: + ) + end + + sig do + override.returns({ state: Vers::VmUpdateStateRequest::State::OrSymbol }) + end + def to_hash + end + + # The requested state for the VM + module State + extend Vers::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Vers::VmUpdateStateRequest::State) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + PAUSED = T.let(:Paused, Vers::VmUpdateStateRequest::State::TaggedSymbol) + RUNNING = + T.let(:Running, Vers::VmUpdateStateRequest::State::TaggedSymbol) + + sig do + override.returns( + T::Array[Vers::VmUpdateStateRequest::State::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/vers/resources/orchestrator.rbi b/rbi/vers/resources/orchestrator.rbi deleted file mode 100644 index d53fa47..0000000 --- a/rbi/vers/resources/orchestrator.rbi +++ /dev/null @@ -1,18 +0,0 @@ -# typed: strong - -module Vers - module Resources - class Orchestrator - sig { returns(Vers::Resources::Orchestrator::Vm) } - attr_reader :vm - - sig { returns(Vers::Resources::Orchestrator::Node) } - attr_reader :node - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/vers/resources/orchestrator/node.rbi b/rbi/vers/resources/orchestrator/node.rbi deleted file mode 100644 index 10c8ca8..0000000 --- a/rbi/vers/resources/orchestrator/node.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Vers - module Resources - class Orchestrator - class Node - sig do - params( - node_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Orchestrator::VmListAllResponse) - end - def list_vms( - # Node ID - node_id, - request_options: {} - ) - end - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/vers/resources/orchestrator/vm.rbi b/rbi/vers/resources/orchestrator/vm.rbi deleted file mode 100644 index 4a87fcc..0000000 --- a/rbi/vers/resources/orchestrator/vm.rbi +++ /dev/null @@ -1,91 +0,0 @@ -# typed: strong - -module Vers - module Resources - class Orchestrator - class Vm - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Orchestrator::VmDeleteResponse) - end - def delete( - # VM ID to delete - vm_id, - request_options: {} - ) - end - - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Orchestrator::NewVmResponse) - end - def branch( - # Parent VM ID - vm_id, - request_options: {} - ) - end - - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Orchestrator::VmCommitResponse) - end - def commit( - # VM ID to commit - vm_id, - request_options: {} - ) - end - - sig do - params( - vm_config: Vers::Orchestrator::NewRootRequest::VmConfig::OrHash, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Orchestrator::NewVmResponse) - end - def create_root( - # Struct representing configuration options common to all VMs - vm_config:, - request_options: {} - ) - end - - sig do - params( - commit_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Orchestrator::NewVmResponse) - end - def restore_from_commit(commit_id:, request_options: {}) - end - - sig do - params( - vm_id: String, - state: Vers::Orchestrator::VmUpdateStateRequest::State::OrSymbol, - request_options: Vers::RequestOptions::OrHash - ).void - end - def update_state( - # VM ID - vm_id, - # The requested state for the VM - state:, - request_options: {} - ) - end - - # @api private - sig { params(client: Vers::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi new file mode 100644 index 0000000..a4f84f7 --- /dev/null +++ b/rbi/vers/resources/vm.rbi @@ -0,0 +1,97 @@ +# typed: strong + +module Vers + module Resources + class Vm + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T::Array[Vers::VmAPI] + ) + end + def list(request_options: {}) + end + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmDeleteResponse) + end + def delete( + # VM ID to delete + vm_id, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmResponse) + end + def branch( + # Parent VM ID + vm_id, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmCommitResponse) + end + def commit( + # VM ID to commit + vm_id, + request_options: {} + ) + end + + sig do + params( + vm_config: Vers::NewRootRequest::VmConfig::OrHash, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmResponse) + end + def create_root( + # Struct representing configuration options common to all VMs + vm_config:, + request_options: {} + ) + end + + sig do + params( + commit_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmResponse) + end + def restore_from_commit(commit_id:, request_options: {}) + end + + sig do + params( + vm_id: String, + state: Vers::VmUpdateStateRequest::State::OrSymbol, + request_options: Vers::RequestOptions::OrHash + ).void + end + def update_state( + # VM ID + vm_id, + # The requested state for the VM + state:, + request_options: {} + ) + end + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/sig/vers/client.rbs b/sig/vers/client.rbs index 1a14b63..f06d4c4 100644 --- a/sig/vers/client.rbs +++ b/sig/vers/client.rbs @@ -10,7 +10,7 @@ module Vers attr_reader api_key: String? - attr_reader orchestrator: Vers::Resources::Orchestrator + attr_reader vm: Vers::Resources::Vm private def auth_headers: -> ::Hash[String, String] diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 32399e8..9bc9977 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -1,5 +1,31 @@ module Vers class ErrorResponse = Vers::Models::ErrorResponse - module Orchestrator = Vers::Models::Orchestrator + class NewRootRequest = Vers::Models::NewRootRequest + + class NewVmResponse = Vers::Models::NewVmResponse + + class VmAPI = Vers::Models::VmAPI + + class VmBranchParams = Vers::Models::VmBranchParams + + class VmCommitParams = Vers::Models::VmCommitParams + + class VmCommitResponse = Vers::Models::VmCommitResponse + + class VmCreateRootParams = Vers::Models::VmCreateRootParams + + class VmDeleteParams = Vers::Models::VmDeleteParams + + class VmDeleteResponse = Vers::Models::VmDeleteResponse + + class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + + class VmListParams = Vers::Models::VmListParams + + class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams + + class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest end diff --git a/sig/vers/models/new_root_request.rbs b/sig/vers/models/new_root_request.rbs new file mode 100644 index 0000000..2d53d5a --- /dev/null +++ b/sig/vers/models/new_root_request.rbs @@ -0,0 +1,50 @@ +module Vers + module Models + type new_root_request = { vm_config: Vers::NewRootRequest::VmConfig } + + class NewRootRequest < Vers::Internal::Type::BaseModel + attr_accessor vm_config: Vers::NewRootRequest::VmConfig + + def initialize: (vm_config: Vers::NewRootRequest::VmConfig) -> void + + def to_hash: -> { vm_config: Vers::NewRootRequest::VmConfig } + + type vm_config = + { + fs_size_mib: Integer?, + image_name: String?, + kernel_name: String?, + mem_size_mib: Integer?, + vcpu_count: Integer? + } + + class VmConfig < Vers::Internal::Type::BaseModel + attr_accessor fs_size_mib: Integer? + + attr_accessor image_name: String? + + attr_accessor kernel_name: String? + + attr_accessor mem_size_mib: Integer? + + attr_accessor vcpu_count: Integer? + + def initialize: ( + ?fs_size_mib: Integer?, + ?image_name: String?, + ?kernel_name: String?, + ?mem_size_mib: Integer?, + ?vcpu_count: Integer? + ) -> void + + def to_hash: -> { + fs_size_mib: Integer?, + image_name: String?, + kernel_name: String?, + mem_size_mib: Integer?, + vcpu_count: Integer? + } + end + end + end +end diff --git a/sig/vers/models/new_vm_response.rbs b/sig/vers/models/new_vm_response.rbs new file mode 100644 index 0000000..452159a --- /dev/null +++ b/sig/vers/models/new_vm_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type new_vm_response = { id: String } + + class NewVmResponse < Vers::Internal::Type::BaseModel + attr_accessor id: String + + def initialize: (id: String) -> void + + def to_hash: -> { id: String } + end + end +end diff --git a/sig/vers/models/orchestrator/new_root_request.rbs b/sig/vers/models/orchestrator/new_root_request.rbs deleted file mode 100644 index 04a8094..0000000 --- a/sig/vers/models/orchestrator/new_root_request.rbs +++ /dev/null @@ -1,57 +0,0 @@ -module Vers - module Models - module Orchestrator - type new_root_request = - { vm_config: Vers::Orchestrator::NewRootRequest::VmConfig } - - class NewRootRequest < Vers::Internal::Type::BaseModel - attr_accessor vm_config: Vers::Orchestrator::NewRootRequest::VmConfig - - def initialize: ( - vm_config: Vers::Orchestrator::NewRootRequest::VmConfig - ) -> void - - def to_hash: -> { - vm_config: Vers::Orchestrator::NewRootRequest::VmConfig - } - - type vm_config = - { - fs_size_mib: Integer?, - image_name: String?, - kernel_name: String?, - mem_size_mib: Integer?, - vcpu_count: Integer? - } - - class VmConfig < Vers::Internal::Type::BaseModel - attr_accessor fs_size_mib: Integer? - - attr_accessor image_name: String? - - attr_accessor kernel_name: String? - - attr_accessor mem_size_mib: Integer? - - attr_accessor vcpu_count: Integer? - - def initialize: ( - ?fs_size_mib: Integer?, - ?image_name: String?, - ?kernel_name: String?, - ?mem_size_mib: Integer?, - ?vcpu_count: Integer? - ) -> void - - def to_hash: -> { - fs_size_mib: Integer?, - image_name: String?, - kernel_name: String?, - mem_size_mib: Integer?, - vcpu_count: Integer? - } - end - end - end - end -end diff --git a/sig/vers/models/orchestrator/new_vm_response.rbs b/sig/vers/models/orchestrator/new_vm_response.rbs deleted file mode 100644 index 9fed43d..0000000 --- a/sig/vers/models/orchestrator/new_vm_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module Orchestrator - type new_vm_response = { id: String } - - class NewVmResponse < Vers::Internal::Type::BaseModel - attr_accessor id: String - - def initialize: (id: String) -> void - - def to_hash: -> { id: String } - end - end - end -end diff --git a/sig/vers/models/orchestrator/node_list_vms_params.rbs b/sig/vers/models/orchestrator/node_list_vms_params.rbs deleted file mode 100644 index 1bb51be..0000000 --- a/sig/vers/models/orchestrator/node_list_vms_params.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Models - module Orchestrator - type node_list_vms_params = - { } & Vers::Internal::Type::request_parameters - - class NodeListVmsParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_branch_params.rbs b/sig/vers/models/orchestrator/vm_branch_params.rbs deleted file mode 100644 index e939305..0000000 --- a/sig/vers/models/orchestrator/vm_branch_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_branch_params = { } & Vers::Internal::Type::request_parameters - - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_branch_response.rbs b/sig/vers/models/orchestrator/vm_branch_response.rbs deleted file mode 100644 index ccd83c0..0000000 --- a/sig/vers/models/orchestrator/vm_branch_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_branch_response = { vm_id: String } - - class VmBranchResponse < Vers::Internal::Type::BaseModel - attr_accessor vm_id: String - - def initialize: (vm_id: String) -> void - - def to_hash: -> { vm_id: String } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_commit_params.rbs b/sig/vers/models/orchestrator/vm_commit_params.rbs deleted file mode 100644 index 0de65f6..0000000 --- a/sig/vers/models/orchestrator/vm_commit_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_commit_params = { } & Vers::Internal::Type::request_parameters - - class VmCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_commit_response.rbs b/sig/vers/models/orchestrator/vm_commit_response.rbs deleted file mode 100644 index 9e803a6..0000000 --- a/sig/vers/models/orchestrator/vm_commit_response.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_commit_response = { commit_id: String, host_architecture: String } - - class VmCommitResponse < Vers::Internal::Type::BaseModel - attr_accessor commit_id: String - - attr_accessor host_architecture: String - - def initialize: (commit_id: String, host_architecture: String) -> void - - def to_hash: -> { commit_id: String, host_architecture: String } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_create_root_params.rbs b/sig/vers/models/orchestrator/vm_create_root_params.rbs deleted file mode 100644 index 03d0d21..0000000 --- a/sig/vers/models/orchestrator/vm_create_root_params.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_create_root_params = - { } & Vers::Internal::Type::request_parameters - - class VmCreateRootParams < Vers::Models::Orchestrator::NewRootRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_delete_params.rbs b/sig/vers/models/orchestrator/vm_delete_params.rbs deleted file mode 100644 index 25ca4d4..0000000 --- a/sig/vers/models/orchestrator/vm_delete_params.rbs +++ /dev/null @@ -1,16 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_delete_params = { } & Vers::Internal::Type::request_parameters - - class VmDeleteParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_delete_response.rbs b/sig/vers/models/orchestrator/vm_delete_response.rbs deleted file mode 100644 index 5d5e0ae..0000000 --- a/sig/vers/models/orchestrator/vm_delete_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_delete_response = { deleted_ids: ::Array[String] } - - class VmDeleteResponse < Vers::Internal::Type::BaseModel - attr_accessor deleted_ids: ::Array[String] - - def initialize: (deleted_ids: ::Array[String]) -> void - - def to_hash: -> { deleted_ids: ::Array[String] } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_from_commit_request.rbs b/sig/vers/models/orchestrator/vm_from_commit_request.rbs deleted file mode 100644 index 64ef81d..0000000 --- a/sig/vers/models/orchestrator/vm_from_commit_request.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_from_commit_request = { commit_id: String } - - class VmFromCommitRequest < Vers::Internal::Type::BaseModel - attr_accessor commit_id: String - - def initialize: (commit_id: String) -> void - - def to_hash: -> { commit_id: String } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_list_all_response.rbs b/sig/vers/models/orchestrator/vm_list_all_response.rbs deleted file mode 100644 index 4a65507..0000000 --- a/sig/vers/models/orchestrator/vm_list_all_response.rbs +++ /dev/null @@ -1,32 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_list_all_response = - { vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] } - - class VmListAllResponse < Vers::Internal::Type::BaseModel - attr_accessor vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] - - def initialize: ( - vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] - ) -> void - - def to_hash: -> { - vms: ::Array[Vers::Orchestrator::VmListAllResponse::Vm] - } - - type vm = { vm_id: String, parent_id: String? } - - class Vm < Vers::Internal::Type::BaseModel - attr_accessor vm_id: String - - attr_accessor parent_id: String? - - def initialize: (vm_id: String, ?parent_id: String?) -> void - - def to_hash: -> { vm_id: String, parent_id: String? } - end - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_restore_from_commit_params.rbs b/sig/vers/models/orchestrator/vm_restore_from_commit_params.rbs deleted file mode 100644 index cf9cbdd..0000000 --- a/sig/vers/models/orchestrator/vm_restore_from_commit_params.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_restore_from_commit_params = - { } & Vers::Internal::Type::request_parameters - - class VmRestoreFromCommitParams < Vers::Models::Orchestrator::VmFromCommitRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_update_state_params.rbs b/sig/vers/models/orchestrator/vm_update_state_params.rbs deleted file mode 100644 index e34c073..0000000 --- a/sig/vers/models/orchestrator/vm_update_state_params.rbs +++ /dev/null @@ -1,17 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_update_state_params = - { } & Vers::Internal::Type::request_parameters - - class VmUpdateStateParams < Vers::Models::Orchestrator::VmUpdateStateRequest - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end - end -end diff --git a/sig/vers/models/orchestrator/vm_update_state_request.rbs b/sig/vers/models/orchestrator/vm_update_state_request.rbs deleted file mode 100644 index f900b29..0000000 --- a/sig/vers/models/orchestrator/vm_update_state_request.rbs +++ /dev/null @@ -1,31 +0,0 @@ -module Vers - module Models - module Orchestrator - type vm_update_state_request = - { state: Vers::Models::Orchestrator::VmUpdateStateRequest::state } - - class VmUpdateStateRequest < Vers::Internal::Type::BaseModel - attr_accessor state: Vers::Models::Orchestrator::VmUpdateStateRequest::state - - def initialize: ( - state: Vers::Models::Orchestrator::VmUpdateStateRequest::state - ) -> void - - def to_hash: -> { - state: Vers::Models::Orchestrator::VmUpdateStateRequest::state - } - - type state = :Paused | :Running - - module State - extend Vers::Internal::Type::Enum - - PAUSED: :Paused - RUNNING: :Running - - def self?.values: -> ::Array[Vers::Models::Orchestrator::VmUpdateStateRequest::state] - end - end - end - end -end diff --git a/sig/vers/models/vm.rbs b/sig/vers/models/vm.rbs new file mode 100644 index 0000000..cc079a5 --- /dev/null +++ b/sig/vers/models/vm.rbs @@ -0,0 +1,40 @@ +module Vers + module Models + type vm_api = + { + created_at: Time, + ip: String, + owner_id: String, + vm_id: String, + parent: String? + } + + class VmAPI < Vers::Internal::Type::BaseModel + attr_accessor created_at: Time + + attr_accessor ip: String + + attr_accessor owner_id: String + + attr_accessor vm_id: String + + attr_accessor parent: String? + + def initialize: ( + created_at: Time, + ip: String, + owner_id: String, + vm_id: String, + ?parent: String? + ) -> void + + def to_hash: -> { + created_at: Time, + ip: String, + owner_id: String, + vm_id: String, + parent: String? + } + end + end +end diff --git a/sig/vers/models/vm_branch_params.rbs b/sig/vers/models/vm_branch_params.rbs new file mode 100644 index 0000000..f9fb8d0 --- /dev/null +++ b/sig/vers/models/vm_branch_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_branch_params = { } & Vers::Internal::Type::request_parameters + + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_commit_params.rbs b/sig/vers/models/vm_commit_params.rbs new file mode 100644 index 0000000..6d423b3 --- /dev/null +++ b/sig/vers/models/vm_commit_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_commit_params = { } & Vers::Internal::Type::request_parameters + + class VmCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_commit_response.rbs b/sig/vers/models/vm_commit_response.rbs new file mode 100644 index 0000000..7de9fdc --- /dev/null +++ b/sig/vers/models/vm_commit_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_commit_response = { commit_id: String, host_architecture: String } + + class VmCommitResponse < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor host_architecture: String + + def initialize: (commit_id: String, host_architecture: String) -> void + + def to_hash: -> { commit_id: String, host_architecture: String } + end + end +end diff --git a/sig/vers/models/vm_create_root_params.rbs b/sig/vers/models/vm_create_root_params.rbs new file mode 100644 index 0000000..cbcdb4a --- /dev/null +++ b/sig/vers/models/vm_create_root_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_create_root_params = { } & Vers::Internal::Type::request_parameters + + class VmCreateRootParams < Vers::Models::NewRootRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_delete_params.rbs b/sig/vers/models/vm_delete_params.rbs new file mode 100644 index 0000000..52776e9 --- /dev/null +++ b/sig/vers/models/vm_delete_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_delete_params = { } & Vers::Internal::Type::request_parameters + + class VmDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_delete_response.rbs b/sig/vers/models/vm_delete_response.rbs new file mode 100644 index 0000000..e156c8a --- /dev/null +++ b/sig/vers/models/vm_delete_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type vm_delete_response = { deleted_ids: ::Array[String] } + + class VmDeleteResponse < Vers::Internal::Type::BaseModel + attr_accessor deleted_ids: ::Array[String] + + def initialize: (deleted_ids: ::Array[String]) -> void + + def to_hash: -> { deleted_ids: ::Array[String] } + end + end +end diff --git a/sig/vers/models/vm_from_commit_request.rbs b/sig/vers/models/vm_from_commit_request.rbs new file mode 100644 index 0000000..1a97ab0 --- /dev/null +++ b/sig/vers/models/vm_from_commit_request.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type vm_from_commit_request = { commit_id: String } + + class VmFromCommitRequest < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + def initialize: (commit_id: String) -> void + + def to_hash: -> { commit_id: String } + end + end +end diff --git a/sig/vers/models/vm_list_params.rbs b/sig/vers/models/vm_list_params.rbs new file mode 100644 index 0000000..2df5f15 --- /dev/null +++ b/sig/vers/models/vm_list_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_list_params = { } & Vers::Internal::Type::request_parameters + + class VmListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_list_response.rbs b/sig/vers/models/vm_list_response.rbs new file mode 100644 index 0000000..f0c8b87 --- /dev/null +++ b/sig/vers/models/vm_list_response.rbs @@ -0,0 +1,7 @@ +module Vers + module Models + type vm_list_response = ::Array[Vers::VmAPI] + + VmListResponse: Vers::Internal::Type::Converter + end +end diff --git a/sig/vers/models/vm_restore_from_commit_params.rbs b/sig/vers/models/vm_restore_from_commit_params.rbs new file mode 100644 index 0000000..7e795ae --- /dev/null +++ b/sig/vers/models/vm_restore_from_commit_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_restore_from_commit_params = + { } & Vers::Internal::Type::request_parameters + + class VmRestoreFromCommitParams < Vers::Models::VmFromCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_update_state_params.rbs b/sig/vers/models/vm_update_state_params.rbs new file mode 100644 index 0000000..a7cc506 --- /dev/null +++ b/sig/vers/models/vm_update_state_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_update_state_params = + { } & Vers::Internal::Type::request_parameters + + class VmUpdateStateParams < Vers::Models::VmUpdateStateRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_update_state_request.rbs b/sig/vers/models/vm_update_state_request.rbs new file mode 100644 index 0000000..4d64cc9 --- /dev/null +++ b/sig/vers/models/vm_update_state_request.rbs @@ -0,0 +1,25 @@ +module Vers + module Models + type vm_update_state_request = + { state: Vers::Models::VmUpdateStateRequest::state } + + class VmUpdateStateRequest < Vers::Internal::Type::BaseModel + attr_accessor state: Vers::Models::VmUpdateStateRequest::state + + def initialize: (state: Vers::Models::VmUpdateStateRequest::state) -> void + + def to_hash: -> { state: Vers::Models::VmUpdateStateRequest::state } + + type state = :Paused | :Running + + module State + extend Vers::Internal::Type::Enum + + PAUSED: :Paused + RUNNING: :Running + + def self?.values: -> ::Array[Vers::Models::VmUpdateStateRequest::state] + end + end + end +end diff --git a/sig/vers/resources/orchestrator.rbs b/sig/vers/resources/orchestrator.rbs deleted file mode 100644 index a583211..0000000 --- a/sig/vers/resources/orchestrator.rbs +++ /dev/null @@ -1,11 +0,0 @@ -module Vers - module Resources - class Orchestrator - attr_reader vm: Vers::Resources::Orchestrator::Vm - - attr_reader node: Vers::Resources::Orchestrator::Node - - def initialize: (client: Vers::Client) -> void - end - end -end diff --git a/sig/vers/resources/orchestrator/node.rbs b/sig/vers/resources/orchestrator/node.rbs deleted file mode 100644 index 72fe702..0000000 --- a/sig/vers/resources/orchestrator/node.rbs +++ /dev/null @@ -1,14 +0,0 @@ -module Vers - module Resources - class Orchestrator - class Node - def list_vms: ( - String node_id, - ?request_options: Vers::request_opts - ) -> Vers::Orchestrator::VmListAllResponse - - def initialize: (client: Vers::Client) -> void - end - end - end -end diff --git a/sig/vers/resources/orchestrator/vm.rbs b/sig/vers/resources/orchestrator/vm.rbs deleted file mode 100644 index 3387060..0000000 --- a/sig/vers/resources/orchestrator/vm.rbs +++ /dev/null @@ -1,40 +0,0 @@ -module Vers - module Resources - class Orchestrator - class Vm - def delete: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::Orchestrator::VmDeleteResponse - - def branch: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::Orchestrator::NewVmResponse - - def commit: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::Orchestrator::VmCommitResponse - - def create_root: ( - vm_config: Vers::Orchestrator::NewRootRequest::VmConfig, - ?request_options: Vers::request_opts - ) -> Vers::Orchestrator::NewVmResponse - - def restore_from_commit: ( - commit_id: String, - ?request_options: Vers::request_opts - ) -> Vers::Orchestrator::NewVmResponse - - def update_state: ( - String vm_id, - state: Vers::Models::Orchestrator::VmUpdateStateRequest::state, - ?request_options: Vers::request_opts - ) -> nil - - def initialize: (client: Vers::Client) -> void - end - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs new file mode 100644 index 0000000..b139a6f --- /dev/null +++ b/sig/vers/resources/vm.rbs @@ -0,0 +1,42 @@ +module Vers + module Resources + class Vm + def list: ( + ?request_options: Vers::request_opts + ) -> Vers::Models::vm_list_response + + def delete: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmDeleteResponse + + def branch: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::NewVmResponse + + def commit: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmCommitResponse + + def create_root: ( + vm_config: Vers::NewRootRequest::VmConfig, + ?request_options: Vers::request_opts + ) -> Vers::NewVmResponse + + def restore_from_commit: ( + commit_id: String, + ?request_options: Vers::request_opts + ) -> Vers::NewVmResponse + + def update_state: ( + String vm_id, + state: Vers::Models::VmUpdateStateRequest::state, + ?request_options: Vers::request_opts + ) -> nil + + def initialize: (client: Vers::Client) -> void + end + end +end diff --git a/test/vers/client_test.rb b/test/vers/client_test.rb index b0ad74f..c667015 100644 --- a/test/vers/client_test.rb +++ b/test/vers/client_test.rb @@ -33,7 +33,7 @@ def test_client_default_request_default_retry_attempts vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root(vm_config: {}) + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 3) @@ -45,7 +45,7 @@ def test_client_given_request_default_retry_attempts vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root(vm_config: {}) + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 4) @@ -57,7 +57,7 @@ def test_client_default_request_given_retry_attempts vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root(vm_config: {}, request_options: {max_retries: 3}) + vers.vm.create_root(vm_config: {}, request_options: {max_retries: 3}) end assert_requested(:any, /./, times: 4) @@ -69,7 +69,7 @@ def test_client_given_request_given_retry_attempts vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root(vm_config: {}, request_options: {max_retries: 4}) + vers.vm.create_root(vm_config: {}, request_options: {max_retries: 4}) end assert_requested(:any, /./, times: 5) @@ -85,7 +85,7 @@ def test_client_retry_after_seconds vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root(vm_config: {}) + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 2) @@ -103,7 +103,7 @@ def test_client_retry_after_date assert_raises(Vers::Errors::InternalServerError) do Thread.current.thread_variable_set(:time_now, Time.now) - vers.orchestrator.vm.create_root(vm_config: {}) + vers.vm.create_root(vm_config: {}) Thread.current.thread_variable_set(:time_now, nil) end @@ -121,7 +121,7 @@ def test_client_retry_after_ms vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root(vm_config: {}) + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 2) @@ -134,7 +134,7 @@ def test_retry_count_header vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root(vm_config: {}) + vers.vm.create_root(vm_config: {}) end 3.times do @@ -148,10 +148,7 @@ def test_omit_retry_count_header vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root( - vm_config: {}, - request_options: {extra_headers: {"x-stainless-retry-count" => nil}} - ) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"x-stainless-retry-count" => nil}}) end assert_requested(:any, /./, times: 3) do @@ -165,7 +162,7 @@ def test_overwrite_retry_count_header vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.orchestrator.vm.create_root( + vers.vm.create_root( vm_config: {}, request_options: {extra_headers: {"x-stainless-retry-count" => "42"}} ) @@ -188,7 +185,7 @@ def test_client_redirect_307 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.orchestrator.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -217,7 +214,7 @@ def test_client_redirect_303 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.orchestrator.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) end assert_requested(:get, "http://localhost/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -241,10 +238,7 @@ def test_client_redirect_auth_keep_same_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.orchestrator.vm.create_root( - vm_config: {}, - request_options: {extra_headers: {"authorization" => "Bearer xyz"}} - ) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -271,10 +265,7 @@ def test_client_redirect_auth_strip_cross_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.orchestrator.vm.create_root( - vm_config: {}, - request_options: {extra_headers: {"authorization" => "Bearer xyz"}} - ) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end assert_requested(:any, "https://example.com/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -288,7 +279,7 @@ def test_default_headers vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") - vers.orchestrator.vm.create_root(vm_config: {}) + vers.vm.create_root(vm_config: {}) assert_requested(:any, /./) do |req| headers = req.headers.transform_keys(&:downcase).fetch_values("accept", "content-type") diff --git a/test/vers/resource_namespaces.rb b/test/vers/resource_namespaces.rb index 2f5fb93..a11f03e 100644 --- a/test/vers/resource_namespaces.rb +++ b/test/vers/resource_namespaces.rb @@ -3,8 +3,6 @@ module Vers module Test module Resources - module Orchestrator - end end end end diff --git a/test/vers/resources/orchestrator/node_test.rb b/test/vers/resources/orchestrator/node_test.rb deleted file mode 100644 index 6e518a9..0000000 --- a/test/vers/resources/orchestrator/node_test.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -require_relative "../../test_helper" - -class Vers::Test::Resources::Orchestrator::NodeTest < Vers::Test::ResourceTest - def test_list_vms - skip("Prism tests are disabled") - - response = @vers.orchestrator.node.list_vms("node_id") - - assert_pattern do - response => Vers::Orchestrator::VmListAllResponse - end - - assert_pattern do - response => { - vms: ^(Vers::Internal::Type::ArrayOf[Vers::Orchestrator::VmListAllResponse::Vm]) - } - end - end -end diff --git a/test/vers/resources/orchestrator_test.rb b/test/vers/resources/orchestrator_test.rb deleted file mode 100644 index b0c4f64..0000000 --- a/test/vers/resources/orchestrator_test.rb +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -require_relative "../test_helper" - -class Vers::Test::Resources::OrchestratorTest < Vers::Test::ResourceTest -end diff --git a/test/vers/resources/orchestrator/vm_test.rb b/test/vers/resources/vm_test.rb similarity index 58% rename from test/vers/resources/orchestrator/vm_test.rb rename to test/vers/resources/vm_test.rb index c6c52e9..016bad3 100644 --- a/test/vers/resources/orchestrator/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -1,15 +1,25 @@ # frozen_string_literal: true -require_relative "../../test_helper" +require_relative "../test_helper" + +class Vers::Test::Resources::VmTest < Vers::Test::ResourceTest + def test_list + skip("Prism tests are disabled") + + response = @vers.vm.list + + assert_pattern do + response => ^(Vers::Internal::Type::ArrayOf[Vers::VmAPI]) + end + end -class Vers::Test::Resources::Orchestrator::VmTest < Vers::Test::ResourceTest def test_delete skip("Prism tests are disabled") - response = @vers.orchestrator.vm.delete("vm_id") + response = @vers.vm.delete("vm_id") assert_pattern do - response => Vers::Orchestrator::VmDeleteResponse + response => Vers::VmDeleteResponse end assert_pattern do @@ -22,10 +32,10 @@ def test_delete def test_branch skip("Prism tests are disabled") - response = @vers.orchestrator.vm.branch("vm_id") + response = @vers.vm.branch("vm_id") assert_pattern do - response => Vers::Orchestrator::NewVmResponse + response => Vers::NewVmResponse end assert_pattern do @@ -38,10 +48,10 @@ def test_branch def test_commit skip("Prism tests are disabled") - response = @vers.orchestrator.vm.commit("vm_id") + response = @vers.vm.commit("vm_id") assert_pattern do - response => Vers::Orchestrator::VmCommitResponse + response => Vers::VmCommitResponse end assert_pattern do @@ -55,10 +65,10 @@ def test_commit def test_create_root_required_params skip("Prism tests are disabled") - response = @vers.orchestrator.vm.create_root(vm_config: {}) + response = @vers.vm.create_root(vm_config: {}) assert_pattern do - response => Vers::Orchestrator::NewVmResponse + response => Vers::NewVmResponse end assert_pattern do @@ -71,10 +81,10 @@ def test_create_root_required_params def test_restore_from_commit_required_params skip("Prism tests are disabled") - response = @vers.orchestrator.vm.restore_from_commit(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + response = @vers.vm.restore_from_commit(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") assert_pattern do - response => Vers::Orchestrator::NewVmResponse + response => Vers::NewVmResponse end assert_pattern do @@ -87,7 +97,7 @@ def test_restore_from_commit_required_params def test_update_state_required_params skip("Prism tests are disabled") - response = @vers.orchestrator.vm.update_state("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", state: :Paused) + response = @vers.vm.update_state("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", state: :Paused) assert_pattern do response => nil From 832ddb6608153182d51aa83019fef0270bee4618 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 30 Oct 2025 23:33:26 +0000 Subject: [PATCH 035/100] feat(api): api update --- .stats.yml | 4 ++-- README.md | 8 ++++---- lib/vers.rb | 1 - lib/vers/models.rb | 2 -- lib/vers/models/new_vm_response.rb | 17 ----------------- lib/vers/models/vm.rb | 8 +------- lib/vers/resources/vm.rb | 18 ++++++------------ rbi/vers/models.rbi | 2 -- rbi/vers/models/new_vm_response.rbi | 25 ------------------------- rbi/vers/models/vm.rbi | 7 +------ rbi/vers/resources/vm.rbi | 6 +++--- sig/vers/models.rbs | 2 -- sig/vers/models/new_vm_response.rbs | 13 ------------- sig/vers/models/vm.rbs | 12 +----------- sig/vers/resources/vm.rbs | 9 +++------ test/vers/resources/vm_test.rb | 24 +++--------------------- 16 files changed, 24 insertions(+), 134 deletions(-) delete mode 100644 lib/vers/models/new_vm_response.rb delete mode 100644 rbi/vers/models/new_vm_response.rbi delete mode 100644 sig/vers/models/new_vm_response.rbs diff --git a/.stats.yml b/.stats.yml index 97338e3..9bffcc8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-82ff48672586d6d086a37a4a1b82131e79c7b2243ea95118160c96ba0c672924.yml -openapi_spec_hash: 55e32eef428cbad0a17e23d2de509d28 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5cab8fb4781902c169e193db59ff86489a8f2cf980a0863469319d2e390a6dbf.yml +openapi_spec_hash: 28fa4d65edfe233369e4a20e1a33f39b config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/README.md b/README.md index fc694a3..f91944a 100644 --- a/README.md +++ b/README.md @@ -32,9 +32,9 @@ vers = Vers::Client.new( api_key: ENV["VERS_API_KEY"] # This is the default and can be omitted ) -new_vm_response = vers.vm.create_root(vm_config: {}) +result = vers.vm.create_root(vm_config: {}) -puts(new_vm_response.id) +puts(result) ``` ### Handling errors @@ -130,7 +130,7 @@ You can send undocumented parameters to any endpoint, and read undocumented resp Note: the `extra_` parameters of the same name overrides the documented parameters. ```ruby -new_vm_response = +result = vers.vm.create_root( vm_config: {}, request_options: { @@ -140,7 +140,7 @@ new_vm_response = } ) -puts(new_vm_response[:my_undocumented_property]) +puts(result[:my_undocumented_property]) ``` #### Undocumented request params diff --git a/lib/vers.rb b/lib/vers.rb index 422ca5f..227570e 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -54,7 +54,6 @@ require_relative "vers/models/vm_from_commit_request" require_relative "vers/models/vm_update_state_request" require_relative "vers/models/error_response" -require_relative "vers/models/new_vm_response" require_relative "vers/models/vm" require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 01feb41..fe4db68 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -43,8 +43,6 @@ module Vers NewRootRequest = Vers::Models::NewRootRequest - NewVmResponse = Vers::Models::NewVmResponse - VmAPI = Vers::Models::VmAPI VmBranchParams = Vers::Models::VmBranchParams diff --git a/lib/vers/models/new_vm_response.rb b/lib/vers/models/new_vm_response.rb deleted file mode 100644 index bd0def3..0000000 --- a/lib/vers/models/new_vm_response.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch - class NewVmResponse < Vers::Internal::Type::BaseModel - # @!attribute id - # The VM ID, a (v4) UUID - # - # @return [String] - required :id, String - - # @!method initialize(id:) - # @param id [String] The VM ID, a (v4) UUID - end - end -end diff --git a/lib/vers/models/vm.rb b/lib/vers/models/vm.rb index 813d5d6..1fbaf36 100644 --- a/lib/vers/models/vm.rb +++ b/lib/vers/models/vm.rb @@ -8,11 +8,6 @@ class VmAPI < Vers::Internal::Type::BaseModel # @return [Time] required :created_at, Time - # @!attribute ip - # - # @return [String] - required :ip, String - # @!attribute owner_id # # @return [String] @@ -28,9 +23,8 @@ class VmAPI < Vers::Internal::Type::BaseModel # @return [String, nil] optional :parent, String, nil?: true - # @!method initialize(created_at:, ip:, owner_id:, vm_id:, parent: nil) + # @!method initialize(created_at:, owner_id:, vm_id:, parent: nil) # @param created_at [Time] - # @param ip [String] # @param owner_id [String] # @param vm_id [String] # @param parent [String, nil] diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7adb1a8..7932294 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -43,14 +43,14 @@ def delete(vm_id, params = {}) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Vers::Models::NewVmResponse] + # @return [nil] # # @see Vers::Models::VmBranchParams def branch(vm_id, params = {}) @client.request( method: :post, path: ["vm/%1$s/branch", vm_id], - model: Vers::NewVmResponse, + model: NilClass, options: params[:request_options] ) end @@ -79,18 +79,12 @@ def commit(vm_id, params = {}) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Vers::Models::NewVmResponse] + # @return [nil] # # @see Vers::Models::VmCreateRootParams def create_root(params) parsed, options = Vers::VmCreateRootParams.dump_request(params) - @client.request( - method: :post, - path: "vm/new_root", - body: parsed, - model: Vers::NewVmResponse, - options: options - ) + @client.request(method: :post, path: "vm/new_root", body: parsed, model: NilClass, options: options) end # @overload restore_from_commit(commit_id:, request_options: {}) @@ -98,7 +92,7 @@ def create_root(params) # @param commit_id [String] # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Vers::Models::NewVmResponse] + # @return [nil] # # @see Vers::Models::VmRestoreFromCommitParams def restore_from_commit(params) @@ -107,7 +101,7 @@ def restore_from_commit(params) method: :post, path: "vm/from_commit", body: parsed, - model: Vers::NewVmResponse, + model: NilClass, options: options ) end diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a227441..e1e17a1 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -5,8 +5,6 @@ module Vers NewRootRequest = Vers::Models::NewRootRequest - NewVmResponse = Vers::Models::NewVmResponse - VmAPI = Vers::Models::VmAPI VmBranchParams = Vers::Models::VmBranchParams diff --git a/rbi/vers/models/new_vm_response.rbi b/rbi/vers/models/new_vm_response.rbi deleted file mode 100644 index 80b607b..0000000 --- a/rbi/vers/models/new_vm_response.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - class NewVmResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::NewVmResponse, Vers::Internal::AnyHash) } - - # The VM ID, a (v4) UUID - sig { returns(String) } - attr_accessor :id - - sig { params(id: String).returns(T.attached_class) } - def self.new( - # The VM ID, a (v4) UUID - id: - ) - end - - sig { override.returns({ id: String }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm.rbi b/rbi/vers/models/vm.rbi index fd1f60f..8716320 100644 --- a/rbi/vers/models/vm.rbi +++ b/rbi/vers/models/vm.rbi @@ -8,9 +8,6 @@ module Vers sig { returns(Time) } attr_accessor :created_at - sig { returns(String) } - attr_accessor :ip - sig { returns(String) } attr_accessor :owner_id @@ -23,20 +20,18 @@ module Vers sig do params( created_at: Time, - ip: String, owner_id: String, vm_id: String, parent: T.nilable(String) ).returns(T.attached_class) end - def self.new(created_at:, ip:, owner_id:, vm_id:, parent: nil) + def self.new(created_at:, owner_id:, vm_id:, parent: nil) end sig do override.returns( { created_at: Time, - ip: String, owner_id: String, vm_id: String, parent: T.nilable(String) diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index a4f84f7..bf296d6 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -28,7 +28,7 @@ module Vers params( vm_id: String, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmResponse) + ).void end def branch( # Parent VM ID @@ -54,7 +54,7 @@ module Vers params( vm_config: Vers::NewRootRequest::VmConfig::OrHash, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmResponse) + ).void end def create_root( # Struct representing configuration options common to all VMs @@ -67,7 +67,7 @@ module Vers params( commit_id: String, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmResponse) + ).void end def restore_from_commit(commit_id:, request_options: {}) end diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 9bc9977..5d4770f 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -3,8 +3,6 @@ module Vers class NewRootRequest = Vers::Models::NewRootRequest - class NewVmResponse = Vers::Models::NewVmResponse - class VmAPI = Vers::Models::VmAPI class VmBranchParams = Vers::Models::VmBranchParams diff --git a/sig/vers/models/new_vm_response.rbs b/sig/vers/models/new_vm_response.rbs deleted file mode 100644 index 452159a..0000000 --- a/sig/vers/models/new_vm_response.rbs +++ /dev/null @@ -1,13 +0,0 @@ -module Vers - module Models - type new_vm_response = { id: String } - - class NewVmResponse < Vers::Internal::Type::BaseModel - attr_accessor id: String - - def initialize: (id: String) -> void - - def to_hash: -> { id: String } - end - end -end diff --git a/sig/vers/models/vm.rbs b/sig/vers/models/vm.rbs index cc079a5..5dc71f3 100644 --- a/sig/vers/models/vm.rbs +++ b/sig/vers/models/vm.rbs @@ -1,19 +1,11 @@ module Vers module Models type vm_api = - { - created_at: Time, - ip: String, - owner_id: String, - vm_id: String, - parent: String? - } + { created_at: Time, owner_id: String, vm_id: String, parent: String? } class VmAPI < Vers::Internal::Type::BaseModel attr_accessor created_at: Time - attr_accessor ip: String - attr_accessor owner_id: String attr_accessor vm_id: String @@ -22,7 +14,6 @@ module Vers def initialize: ( created_at: Time, - ip: String, owner_id: String, vm_id: String, ?parent: String? @@ -30,7 +21,6 @@ module Vers def to_hash: -> { created_at: Time, - ip: String, owner_id: String, vm_id: String, parent: String? diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index b139a6f..88f3324 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -10,10 +10,7 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::VmDeleteResponse - def branch: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::NewVmResponse + def branch: (String vm_id, ?request_options: Vers::request_opts) -> nil def commit: ( String vm_id, @@ -23,12 +20,12 @@ module Vers def create_root: ( vm_config: Vers::NewRootRequest::VmConfig, ?request_options: Vers::request_opts - ) -> Vers::NewVmResponse + ) -> nil def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts - ) -> Vers::NewVmResponse + ) -> nil def update_state: ( String vm_id, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 016bad3..dbf6877 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -35,13 +35,7 @@ def test_branch response = @vers.vm.branch("vm_id") assert_pattern do - response => Vers::NewVmResponse - end - - assert_pattern do - response => { - id: String - } + response => nil end end @@ -68,13 +62,7 @@ def test_create_root_required_params response = @vers.vm.create_root(vm_config: {}) assert_pattern do - response => Vers::NewVmResponse - end - - assert_pattern do - response => { - id: String - } + response => nil end end @@ -84,13 +72,7 @@ def test_restore_from_commit_required_params response = @vers.vm.restore_from_commit(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") assert_pattern do - response => Vers::NewVmResponse - end - - assert_pattern do - response => { - id: String - } + response => nil end end From 3d6246e2c5eb966baadbe31366c6b032d6942372 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 03:46:21 +0000 Subject: [PATCH 036/100] chore: bump dependency version and update sorbet types --- Gemfile | 3 +- Gemfile.lock | 82 ++++++++++----------- lib/vers/internal/transport/base_client.rb | 8 +- rbi/vers/internal/transport/base_client.rbi | 5 ++ rbi/vers/internal/type/base_model.rbi | 12 ++- sig/vers/internal/transport/base_client.rbs | 2 + 6 files changed, 64 insertions(+), 48 deletions(-) diff --git a/Gemfile b/Gemfile index 0d76364..1be178c 100644 --- a/Gemfile +++ b/Gemfile @@ -11,8 +11,7 @@ group :development do gem "sorbet" gem "steep" gem "syntax_tree" - # TODO: using a fork for now, the prettier below has a bug - gem "syntax_tree-rbs", github: "stainless-api/syntax_tree-rbs", branch: "main" + gem "syntax_tree-rbs", github: "ruby-syntax-tree/syntax_tree-rbs", branch: "main" gem "tapioca" end diff --git a/Gemfile.lock b/Gemfile.lock index 6da1733..997f3a5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT - remote: https://github.com/stainless-api/syntax_tree-rbs.git - revision: c30b50219918be7cfe3ef803a00b59d1e77fcada + remote: https://github.com/ruby-syntax-tree/syntax_tree-rbs.git + revision: f94bc3060682ffbd126e4d5086ffedc89073d626 branch: main specs: syntax_tree-rbs (1.0.0) @@ -17,14 +17,14 @@ PATH GEM remote: https://rubygems.org/ specs: - activesupport (8.0.2.1) + activesupport (8.1.1) base64 - benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + json logger (>= 1.4.2) minitest (>= 5.1) securerandom (>= 0.3) @@ -33,22 +33,22 @@ GEM addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) ast (2.4.3) - async (2.27.3) + async (2.34.0) console (~> 1.29) fiber-annotation io-event (~> 1.11) metrics (~> 0.12) - traces (~> 0.15) + traces (~> 0.18) base64 (0.3.0) - benchmark (0.4.1) - bigdecimal (3.2.2) + benchmark (0.5.0) + bigdecimal (3.3.1) concurrent-ruby (1.3.5) - connection_pool (2.5.3) - console (1.33.0) + connection_pool (2.5.4) + console (1.34.2) fiber-annotation fiber-local (~> 1.1) json - crack (1.0.0) + crack (1.0.1) bigdecimal rexml csv (3.3.5) @@ -64,20 +64,20 @@ GEM fiber-local (1.1.0) fiber-storage fiber-storage (1.0.1) - fileutils (1.7.3) - hashdiff (1.2.0) + fileutils (1.8.0) + hashdiff (1.2.1) i18n (1.14.7) concurrent-ruby (~> 1.0) io-event (1.11.2) - json (2.13.2) + json (2.15.2) language_server-protocol (3.17.0.5) lint_roller (1.1.0) listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - metrics (0.13.0) - minitest (5.25.5) + metrics (0.15.0) + minitest (5.26.0) minitest-focus (1.4.0) minitest (>= 4, < 6) minitest-hooks (1.5.2) @@ -89,27 +89,27 @@ GEM mutex_m (0.3.0) netrc (0.11.0) parallel (1.27.0) - parser (3.3.9.0) + parser (3.3.10.0) ast (~> 2.4.1) racc prettier_print (1.2.1) - prism (1.4.0) + prism (1.6.0) public_suffix (6.0.2) racc (1.8.1) rainbow (3.1.1) - rake (13.3.0) + rake (13.3.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbi (0.3.6) + rbi (0.3.7) prism (~> 1.0) rbs (>= 3.4.4) - rbs (3.9.4) + rbs (3.9.5) logger redcarpet (3.6.1) - regexp_parser (2.11.2) - rexml (3.4.1) - rubocop (1.79.2) + regexp_parser (2.11.3) + rexml (3.4.4) + rubocop (1.81.7) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -117,23 +117,23 @@ GEM parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.46.0, < 2.0) + rubocop-ast (>= 1.47.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.46.0) + rubocop-ast (1.47.1) parser (>= 3.3.7.2) prism (~> 1.4) ruby-progressbar (1.13.0) securerandom (0.4.1) - sorbet (0.5.12424) - sorbet-static (= 0.5.12424) - sorbet-runtime (0.5.12424) - sorbet-static (0.5.12424-aarch64-linux) - sorbet-static (0.5.12424-universal-darwin) - sorbet-static (0.5.12424-x86_64-linux) - sorbet-static-and-runtime (0.5.12424) - sorbet (= 0.5.12424) - sorbet-runtime (= 0.5.12424) + sorbet (0.6.12690) + sorbet-static (= 0.6.12690) + sorbet-runtime (0.6.12690) + sorbet-static (0.6.12690-aarch64-linux) + sorbet-static (0.6.12690-universal-darwin) + sorbet-static (0.6.12690-x86_64-linux) + sorbet-static-and-runtime (0.6.12690) + sorbet (= 0.6.12690) + sorbet-runtime (= 0.6.12690) spoom (1.6.3) erubi (>= 1.10.0) prism (>= 0.28.0) @@ -174,14 +174,14 @@ GEM terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) thor (1.4.0) - traces (0.17.0) + traces (0.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.5) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) - uri (1.0.3) - webmock (3.25.1) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.1.0) + uri (1.1.0) + webmock (3.26.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) diff --git a/lib/vers/internal/transport/base_client.rb b/lib/vers/internal/transport/base_client.rb index dce45fa..d2b0592 100644 --- a/lib/vers/internal/transport/base_client.rb +++ b/lib/vers/internal/transport/base_client.rb @@ -201,7 +201,8 @@ def initialize( self.class::PLATFORM_HEADERS, { "accept" => "application/json", - "content-type" => "application/json" + "content-type" => "application/json", + "user-agent" => user_agent }, headers ) @@ -219,6 +220,11 @@ def initialize( # @return [Hash{String=>String}] private def auth_headers = {} + # @api private + # + # @return [String] + private def user_agent = "#{self.class.name}/Ruby #{Vers::VERSION}" + # @api private # # @return [String] diff --git a/rbi/vers/internal/transport/base_client.rbi b/rbi/vers/internal/transport/base_client.rbi index b6dac91..4f6784a 100644 --- a/rbi/vers/internal/transport/base_client.rbi +++ b/rbi/vers/internal/transport/base_client.rbi @@ -176,6 +176,11 @@ module Vers private def auth_headers end + # @api private + sig { returns(String) } + private def user_agent + end + # @api private sig { returns(String) } private def generate_idempotency_key diff --git a/rbi/vers/internal/type/base_model.rbi b/rbi/vers/internal/type/base_model.rbi index b984b0e..bad5174 100644 --- a/rbi/vers/internal/type/base_model.rbi +++ b/rbi/vers/internal/type/base_model.rbi @@ -28,7 +28,7 @@ module Vers # # Assumes superclass fields are totally defined before fields are accessed / # defined on subclasses. - sig { params(child: T.self_type).void } + sig { params(child: Vers::Internal::Type::BaseModel).void } def inherited(child) end @@ -267,9 +267,13 @@ module Vers # Create a new instance of a model. sig do - params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns( - T.attached_class - ) + params( + data: + T.any( + T::Hash[Symbol, T.anything], + Vers::Internal::Type::BaseModel + ) + ).returns(T.attached_class) end def self.new(data = {}) end diff --git a/sig/vers/internal/transport/base_client.rbs b/sig/vers/internal/transport/base_client.rbs index d79a5fb..5da3d8b 100644 --- a/sig/vers/internal/transport/base_client.rbs +++ b/sig/vers/internal/transport/base_client.rbs @@ -87,6 +87,8 @@ module Vers private def auth_headers: -> ::Hash[String, String] + private def user_agent: -> String + private def generate_idempotency_key: -> String private def build_request: ( From 8bd0408942aaabfd2da007f652d42965d8b19e3a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 5 Nov 2025 03:38:01 +0000 Subject: [PATCH 037/100] fix: better thread safety via early initializing SSL store during HTTP client creation --- lib/vers.rb | 1 + lib/vers/internal/transport/pooled_net_requester.rb | 8 ++++++-- manifest.yaml | 1 + rbi/vers/internal/transport/pooled_net_requester.rbi | 8 ++++++-- sig/vers/internal/transport/pooled_net_requester.rbs | 5 ++++- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/vers.rb b/lib/vers.rb index 227570e..0a9e8a9 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -9,6 +9,7 @@ require "etc" require "json" require "net/http" +require "openssl" require "pathname" require "rbconfig" require "securerandom" diff --git a/lib/vers/internal/transport/pooled_net_requester.rb b/lib/vers/internal/transport/pooled_net_requester.rb index e52ad7b..6e9972b 100644 --- a/lib/vers/internal/transport/pooled_net_requester.rb +++ b/lib/vers/internal/transport/pooled_net_requester.rb @@ -16,10 +16,11 @@ class PooledNetRequester class << self # @api private # + # @param cert_store [OpenSSL::X509::Store] # @param url [URI::Generic] # # @return [Net::HTTP] - def connect(url) + def connect(cert_store:, url:) port = case [url.port, url.scheme] in [Integer, _] @@ -33,6 +34,8 @@ def connect(url) Net::HTTP.new(url.host, port).tap do _1.use_ssl = %w[https wss].include?(url.scheme) _1.max_retries = 0 + + (_1.cert_store = cert_store) if _1.use_ssl? end end @@ -102,7 +105,7 @@ def build_request(request, &blk) pool = @mutex.synchronize do @pools[origin] ||= ConnectionPool.new(size: @size) do - self.class.connect(url) + self.class.connect(cert_store: @cert_store, url: url) end end @@ -192,6 +195,7 @@ def execute(request) def initialize(size: self.class::DEFAULT_MAX_CONNECTIONS) @mutex = Mutex.new @size = size + @cert_store = OpenSSL::X509::Store.new.tap(&:set_default_paths) @pools = {} end diff --git a/manifest.yaml b/manifest.yaml index 556686f..7853f4a 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -6,6 +6,7 @@ dependencies: - etc - json - net/http + - openssl - pathname - rbconfig - securerandom diff --git a/rbi/vers/internal/transport/pooled_net_requester.rbi b/rbi/vers/internal/transport/pooled_net_requester.rbi index 3e4126d..5ebf314 100644 --- a/rbi/vers/internal/transport/pooled_net_requester.rbi +++ b/rbi/vers/internal/transport/pooled_net_requester.rbi @@ -26,8 +26,12 @@ module Vers class << self # @api private - sig { params(url: URI::Generic).returns(Net::HTTP) } - def connect(url) + sig do + params(cert_store: OpenSSL::X509::Store, url: URI::Generic).returns( + Net::HTTP + ) + end + def connect(cert_store:, url:) end # @api private diff --git a/sig/vers/internal/transport/pooled_net_requester.rbs b/sig/vers/internal/transport/pooled_net_requester.rbs index ac5083b..2314ac9 100644 --- a/sig/vers/internal/transport/pooled_net_requester.rbs +++ b/sig/vers/internal/transport/pooled_net_requester.rbs @@ -17,7 +17,10 @@ module Vers DEFAULT_MAX_CONNECTIONS: Integer - def self.connect: (URI::Generic url) -> top + def self.connect: ( + cert_store: OpenSSL::X509::Store, + url: URI::Generic + ) -> top def self.calibrate_socket_timeout: (top conn, Float deadline) -> void From f5b3f21b47a04bb0482deda9580992aa9dfa407f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 21:37:09 +0000 Subject: [PATCH 038/100] feat(api): api update --- .stats.yml | 4 ++-- README.md | 8 ++++---- lib/vers.rb | 1 + lib/vers/models.rb | 2 ++ lib/vers/models/new_vm_response.rb | 18 ++++++++++++++++++ lib/vers/resources/vm.rb | 18 ++++++++++++------ rbi/vers/models.rbi | 2 ++ rbi/vers/models/new_vm_response.rbi | 22 ++++++++++++++++++++++ rbi/vers/resources/vm.rbi | 6 +++--- sig/vers/models.rbs | 2 ++ sig/vers/models/new_vm_response.rbs | 13 +++++++++++++ sig/vers/resources/vm.rbs | 9 ++++++--- test/vers/resources/vm_test.rb | 24 +++++++++++++++++++++--- 13 files changed, 108 insertions(+), 21 deletions(-) create mode 100644 lib/vers/models/new_vm_response.rb create mode 100644 rbi/vers/models/new_vm_response.rbi create mode 100644 sig/vers/models/new_vm_response.rbs diff --git a/.stats.yml b/.stats.yml index 9bffcc8..5d0b3fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5cab8fb4781902c169e193db59ff86489a8f2cf980a0863469319d2e390a6dbf.yml -openapi_spec_hash: 28fa4d65edfe233369e4a20e1a33f39b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml +openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/README.md b/README.md index f91944a..c37f769 100644 --- a/README.md +++ b/README.md @@ -32,9 +32,9 @@ vers = Vers::Client.new( api_key: ENV["VERS_API_KEY"] # This is the default and can be omitted ) -result = vers.vm.create_root(vm_config: {}) +new_vm_response = vers.vm.create_root(vm_config: {}) -puts(result) +puts(new_vm_response.vm_id) ``` ### Handling errors @@ -130,7 +130,7 @@ You can send undocumented parameters to any endpoint, and read undocumented resp Note: the `extra_` parameters of the same name overrides the documented parameters. ```ruby -result = +new_vm_response = vers.vm.create_root( vm_config: {}, request_options: { @@ -140,7 +140,7 @@ result = } ) -puts(result[:my_undocumented_property]) +puts(new_vm_response[:my_undocumented_property]) ``` #### Undocumented request params diff --git a/lib/vers.rb b/lib/vers.rb index 0a9e8a9..854c5b3 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -55,6 +55,7 @@ require_relative "vers/models/vm_from_commit_request" require_relative "vers/models/vm_update_state_request" require_relative "vers/models/error_response" +require_relative "vers/models/new_vm_response" require_relative "vers/models/vm" require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index fe4db68..01feb41 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -43,6 +43,8 @@ module Vers NewRootRequest = Vers::Models::NewRootRequest + NewVmResponse = Vers::Models::NewVmResponse + VmAPI = Vers::Models::VmAPI VmBranchParams = Vers::Models::VmBranchParams diff --git a/lib/vers/models/new_vm_response.rb b/lib/vers/models/new_vm_response.rb new file mode 100644 index 0000000..45b211a --- /dev/null +++ b/lib/vers/models/new_vm_response.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch + class NewVmResponse < Vers::Internal::Type::BaseModel + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:) + # Response body for new VM requests (new_root, from_commit, branch) + # + # @param vm_id [String] + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7932294..7adb1a8 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -43,14 +43,14 @@ def delete(vm_id, params = {}) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [nil] + # @return [Vers::Models::NewVmResponse] # # @see Vers::Models::VmBranchParams def branch(vm_id, params = {}) @client.request( method: :post, path: ["vm/%1$s/branch", vm_id], - model: NilClass, + model: Vers::NewVmResponse, options: params[:request_options] ) end @@ -79,12 +79,18 @@ def commit(vm_id, params = {}) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [nil] + # @return [Vers::Models::NewVmResponse] # # @see Vers::Models::VmCreateRootParams def create_root(params) parsed, options = Vers::VmCreateRootParams.dump_request(params) - @client.request(method: :post, path: "vm/new_root", body: parsed, model: NilClass, options: options) + @client.request( + method: :post, + path: "vm/new_root", + body: parsed, + model: Vers::NewVmResponse, + options: options + ) end # @overload restore_from_commit(commit_id:, request_options: {}) @@ -92,7 +98,7 @@ def create_root(params) # @param commit_id [String] # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [nil] + # @return [Vers::Models::NewVmResponse] # # @see Vers::Models::VmRestoreFromCommitParams def restore_from_commit(params) @@ -101,7 +107,7 @@ def restore_from_commit(params) method: :post, path: "vm/from_commit", body: parsed, - model: NilClass, + model: Vers::NewVmResponse, options: options ) end diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index e1e17a1..a227441 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -5,6 +5,8 @@ module Vers NewRootRequest = Vers::Models::NewRootRequest + NewVmResponse = Vers::Models::NewVmResponse + VmAPI = Vers::Models::VmAPI VmBranchParams = Vers::Models::VmBranchParams diff --git a/rbi/vers/models/new_vm_response.rbi b/rbi/vers/models/new_vm_response.rbi new file mode 100644 index 0000000..293a69e --- /dev/null +++ b/rbi/vers/models/new_vm_response.rbi @@ -0,0 +1,22 @@ +# typed: strong + +module Vers + module Models + class NewVmResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::NewVmResponse, Vers::Internal::AnyHash) } + + sig { returns(String) } + attr_accessor :vm_id + + # Response body for new VM requests (new_root, from_commit, branch) + sig { params(vm_id: String).returns(T.attached_class) } + def self.new(vm_id:) + end + + sig { override.returns({ vm_id: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index bf296d6..a4f84f7 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -28,7 +28,7 @@ module Vers params( vm_id: String, request_options: Vers::RequestOptions::OrHash - ).void + ).returns(Vers::NewVmResponse) end def branch( # Parent VM ID @@ -54,7 +54,7 @@ module Vers params( vm_config: Vers::NewRootRequest::VmConfig::OrHash, request_options: Vers::RequestOptions::OrHash - ).void + ).returns(Vers::NewVmResponse) end def create_root( # Struct representing configuration options common to all VMs @@ -67,7 +67,7 @@ module Vers params( commit_id: String, request_options: Vers::RequestOptions::OrHash - ).void + ).returns(Vers::NewVmResponse) end def restore_from_commit(commit_id:, request_options: {}) end diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5d4770f..9bc9977 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -3,6 +3,8 @@ module Vers class NewRootRequest = Vers::Models::NewRootRequest + class NewVmResponse = Vers::Models::NewVmResponse + class VmAPI = Vers::Models::VmAPI class VmBranchParams = Vers::Models::VmBranchParams diff --git a/sig/vers/models/new_vm_response.rbs b/sig/vers/models/new_vm_response.rbs new file mode 100644 index 0000000..79cdc30 --- /dev/null +++ b/sig/vers/models/new_vm_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type new_vm_response = { vm_id: String } + + class NewVmResponse < Vers::Internal::Type::BaseModel + attr_accessor vm_id: String + + def initialize: (vm_id: String) -> void + + def to_hash: -> { vm_id: String } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 88f3324..b139a6f 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -10,7 +10,10 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::VmDeleteResponse - def branch: (String vm_id, ?request_options: Vers::request_opts) -> nil + def branch: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::NewVmResponse def commit: ( String vm_id, @@ -20,12 +23,12 @@ module Vers def create_root: ( vm_config: Vers::NewRootRequest::VmConfig, ?request_options: Vers::request_opts - ) -> nil + ) -> Vers::NewVmResponse def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts - ) -> nil + ) -> Vers::NewVmResponse def update_state: ( String vm_id, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index dbf6877..87e7393 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -35,7 +35,13 @@ def test_branch response = @vers.vm.branch("vm_id") assert_pattern do - response => nil + response => Vers::NewVmResponse + end + + assert_pattern do + response => { + vm_id: String + } end end @@ -62,7 +68,13 @@ def test_create_root_required_params response = @vers.vm.create_root(vm_config: {}) assert_pattern do - response => nil + response => Vers::NewVmResponse + end + + assert_pattern do + response => { + vm_id: String + } end end @@ -72,7 +84,13 @@ def test_restore_from_commit_required_params response = @vers.vm.restore_from_commit(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") assert_pattern do - response => nil + response => Vers::NewVmResponse + end + + assert_pattern do + response => { + vm_id: String + } end end From dcbf7709b1c3c6720f98df9883a08571a1a4b3b6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 23:11:41 +0000 Subject: [PATCH 039/100] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 5d0b3fc..139c568 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml -openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml +openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a From b2305b2bd64b1e6137b5a6c3406d9317a830091c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 7 Nov 2025 23:17:21 +0000 Subject: [PATCH 040/100] feat(api): api update --- .stats.yml | 4 +-- lib/vers.rb | 2 ++ lib/vers/models.rb | 4 +++ lib/vers/models/vm_get_ssh_key_params.rb | 14 +++++++++ lib/vers/models/vm_ssh_key_response.rb | 31 ++++++++++++++++++ lib/vers/resources/vm.rb | 18 +++++++++++ rbi/vers/models.rbi | 4 +++ rbi/vers/models/vm_get_ssh_key_params.rbi | 25 +++++++++++++++ rbi/vers/models/vm_ssh_key_response.rbi | 38 +++++++++++++++++++++++ rbi/vers/resources/vm.rbi | 13 ++++++++ sig/vers/models.rbs | 4 +++ sig/vers/models/vm_get_ssh_key_params.rbs | 14 +++++++++ sig/vers/models/vm_ssh_key_response.rbs | 15 +++++++++ sig/vers/resources/vm.rbs | 5 +++ test/vers/resources/vm_test.rb | 17 ++++++++++ 15 files changed, 206 insertions(+), 2 deletions(-) create mode 100644 lib/vers/models/vm_get_ssh_key_params.rb create mode 100644 lib/vers/models/vm_ssh_key_response.rb create mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi create mode 100644 rbi/vers/models/vm_ssh_key_response.rbi create mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs create mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 139c568..3f79e3f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 7 +configured_endpoints: 8 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab -config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a +config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers.rb b/lib/vers.rb index 854c5b3..86ff1d2 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,9 +63,11 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" +require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 01feb41..2ca5c3e 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,10 +61,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb new file mode 100644 index 0000000..5b51187 --- /dev/null +++ b/lib/vers/models/vm_get_ssh_key_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb new file mode 100644 index 0000000..9be14fb --- /dev/null +++ b/lib/vers/models/vm_ssh_key_response.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + # @!attribute ssh_port + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + # + # @return [Integer] + required :ssh_port, Integer + + # @!attribute ssh_private_key + # Private SSH key in stringified OpenSSH format + # + # @return [String] + required :ssh_private_key, String + + # @!method initialize(ssh_port:, ssh_private_key:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmSSHKeyResponse} for more details. + # + # Response body for GET /api/vm/{vm_id}/ssh_key + # + # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev + # + # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7adb1a8..f1fbd18 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,6 +93,24 @@ def create_root(params) ) end + # @overload get_ssh_key(vm_id, request_options: {}) + # + # @param vm_id [String] Node ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmSSHKeyResponse] + # + # @see Vers::Models::VmGetSSHKeyParams + def get_ssh_key(vm_id, params = {}) + @client.request( + method: :get, + path: ["vm/%1$s/ssh_key", vm_id], + model: Vers::VmSSHKeyResponse, + options: params[:request_options] + ) + end + # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a227441..eed8fb5 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,10 +23,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi new file mode 100644 index 0000000..3d52ddf --- /dev/null +++ b/rbi/vers/models/vm_get_ssh_key_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi new file mode 100644 index 0000000..6061670 --- /dev/null +++ b/rbi/vers/models/vm_ssh_key_response.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Vers + module Models + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } + + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + sig { returns(Integer) } + attr_accessor :ssh_port + + # Private SSH key in stringified OpenSSH format + sig { returns(String) } + attr_accessor :ssh_private_key + + # Response body for GET /api/vm/{vm_id}/ssh_key + sig do + params(ssh_port: Integer, ssh_private_key: String).returns( + T.attached_class + ) + end + def self.new( + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + ssh_port:, + # Private SSH key in stringified OpenSSH format + ssh_private_key: + ) + end + + sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index a4f84f7..8acd637 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,6 +63,19 @@ module Vers ) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmSSHKeyResponse) + end + def get_ssh_key( + # Node ID + vm_id, + request_options: {} + ) + end + sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 9bc9977..5e455b8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,10 +21,14 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs new file mode 100644 index 0000000..ec8298e --- /dev/null +++ b/sig/vers/models/vm_get_ssh_key_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters + + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs new file mode 100644 index 0000000..0fa28d1 --- /dev/null +++ b/sig/vers/models/vm_ssh_key_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } + + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + attr_accessor ssh_port: Integer + + attr_accessor ssh_private_key: String + + def initialize: (ssh_port: Integer, ssh_private_key: String) -> void + + def to_hash: -> { ssh_port: Integer, ssh_private_key: String } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index b139a6f..19b6723 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,6 +25,11 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def get_ssh_key: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmSSHKeyResponse + def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 87e7393..618875d 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,6 +78,23 @@ def test_create_root_required_params end end + def test_get_ssh_key + skip("Prism tests are disabled") + + response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmSSHKeyResponse + end + + assert_pattern do + response => { + ssh_port: Integer, + ssh_private_key: String + } + end + end + def test_restore_from_commit_required_params skip("Prism tests are disabled") From d5cdf7c235dac0cb0d2a1414ce2cf2abb8792710 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 16:09:03 +0000 Subject: [PATCH 041/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 -- lib/vers/models.rb | 4 --- lib/vers/models/vm_get_ssh_key_params.rb | 14 --------- lib/vers/models/vm_ssh_key_response.rb | 31 ------------------ lib/vers/resources/vm.rb | 18 ----------- rbi/vers/models.rbi | 4 --- rbi/vers/models/vm_get_ssh_key_params.rbi | 25 --------------- rbi/vers/models/vm_ssh_key_response.rbi | 38 ----------------------- rbi/vers/resources/vm.rbi | 13 -------- sig/vers/models.rbs | 4 --- sig/vers/models/vm_get_ssh_key_params.rbs | 14 --------- sig/vers/models/vm_ssh_key_response.rbs | 15 --------- sig/vers/resources/vm.rbs | 5 --- test/vers/resources/vm_test.rb | 17 ---------- 15 files changed, 4 insertions(+), 208 deletions(-) delete mode 100644 lib/vers/models/vm_get_ssh_key_params.rb delete mode 100644 lib/vers/models/vm_ssh_key_response.rb delete mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi delete mode 100644 rbi/vers/models/vm_ssh_key_response.rbi delete mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs delete mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 3f79e3f..5d0b3fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml -openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab -config_hash: ba476ff7e5c71b83e72ad86fcb01beeb +configured_endpoints: 7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml +openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 +config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/lib/vers.rb b/lib/vers.rb index 86ff1d2..854c5b3 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,11 +63,9 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" -require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" -require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2ca5c3e..01feb41 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,14 +61,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb deleted file mode 100644 index 5b51187..0000000 --- a/lib/vers/models/vm_get_ssh_key_params.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb deleted file mode 100644 index 9be14fb..0000000 --- a/lib/vers/models/vm_ssh_key_response.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - # @!attribute ssh_port - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute ssh_private_key - # Private SSH key in stringified OpenSSH format - # - # @return [String] - required :ssh_private_key, String - - # @!method initialize(ssh_port:, ssh_private_key:) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmSSHKeyResponse} for more details. - # - # Response body for GET /api/vm/{vm_id}/ssh_key - # - # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev - # - # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f1fbd18..7adb1a8 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,24 +93,6 @@ def create_root(params) ) end - # @overload get_ssh_key(vm_id, request_options: {}) - # - # @param vm_id [String] Node ID - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::VmSSHKeyResponse] - # - # @see Vers::Models::VmGetSSHKeyParams - def get_ssh_key(vm_id, params = {}) - @client.request( - method: :get, - path: ["vm/%1$s/ssh_key", vm_id], - model: Vers::VmSSHKeyResponse, - options: params[:request_options] - ) - end - # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index eed8fb5..a227441 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,14 +23,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi deleted file mode 100644 index 3d52ddf..0000000 --- a/rbi/vers/models/vm_get_ssh_key_params.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi deleted file mode 100644 index 6061670..0000000 --- a/rbi/vers/models/vm_ssh_key_response.rbi +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } - - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - sig { returns(Integer) } - attr_accessor :ssh_port - - # Private SSH key in stringified OpenSSH format - sig { returns(String) } - attr_accessor :ssh_private_key - - # Response body for GET /api/vm/{vm_id}/ssh_key - sig do - params(ssh_port: Integer, ssh_private_key: String).returns( - T.attached_class - ) - end - def self.new( - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - ssh_port:, - # Private SSH key in stringified OpenSSH format - ssh_private_key: - ) - end - - sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 8acd637..a4f84f7 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,19 +63,6 @@ module Vers ) end - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::VmSSHKeyResponse) - end - def get_ssh_key( - # Node ID - vm_id, - request_options: {} - ) - end - sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5e455b8..9bc9977 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,14 +21,10 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest - class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs deleted file mode 100644 index ec8298e..0000000 --- a/sig/vers/models/vm_get_ssh_key_params.rbs +++ /dev/null @@ -1,14 +0,0 @@ -module Vers - module Models - type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters - - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end -end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs deleted file mode 100644 index 0fa28d1..0000000 --- a/sig/vers/models/vm_ssh_key_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } - - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - attr_accessor ssh_port: Integer - - attr_accessor ssh_private_key: String - - def initialize: (ssh_port: Integer, ssh_private_key: String) -> void - - def to_hash: -> { ssh_port: Integer, ssh_private_key: String } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 19b6723..b139a6f 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,11 +25,6 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse - def get_ssh_key: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::VmSSHKeyResponse - def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 618875d..87e7393 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,23 +78,6 @@ def test_create_root_required_params end end - def test_get_ssh_key - skip("Prism tests are disabled") - - response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") - - assert_pattern do - response => Vers::VmSSHKeyResponse - end - - assert_pattern do - response => { - ssh_port: Integer, - ssh_private_key: String - } - end - end - def test_restore_from_commit_required_params skip("Prism tests are disabled") From 79debb29c0a891cdbce9965252380a730aad6d68 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 01:18:06 +0000 Subject: [PATCH 042/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 ++ lib/vers/models.rb | 4 +++ lib/vers/models/vm_get_ssh_key_params.rb | 14 +++++++++ lib/vers/models/vm_ssh_key_response.rb | 31 ++++++++++++++++++ lib/vers/resources/vm.rb | 18 +++++++++++ rbi/vers/models.rbi | 4 +++ rbi/vers/models/vm_get_ssh_key_params.rbi | 25 +++++++++++++++ rbi/vers/models/vm_ssh_key_response.rbi | 38 +++++++++++++++++++++++ rbi/vers/resources/vm.rbi | 13 ++++++++ sig/vers/models.rbs | 4 +++ sig/vers/models/vm_get_ssh_key_params.rbs | 14 +++++++++ sig/vers/models/vm_ssh_key_response.rbs | 15 +++++++++ sig/vers/resources/vm.rbs | 5 +++ test/vers/resources/vm_test.rb | 17 ++++++++++ 15 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/vm_get_ssh_key_params.rb create mode 100644 lib/vers/models/vm_ssh_key_response.rb create mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi create mode 100644 rbi/vers/models/vm_ssh_key_response.rbi create mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs create mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 5d0b3fc..3f79e3f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml -openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 -config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a +configured_endpoints: 8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml +openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab +config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers.rb b/lib/vers.rb index 854c5b3..86ff1d2 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,9 +63,11 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" +require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 01feb41..2ca5c3e 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,10 +61,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb new file mode 100644 index 0000000..5b51187 --- /dev/null +++ b/lib/vers/models/vm_get_ssh_key_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb new file mode 100644 index 0000000..9be14fb --- /dev/null +++ b/lib/vers/models/vm_ssh_key_response.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + # @!attribute ssh_port + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + # + # @return [Integer] + required :ssh_port, Integer + + # @!attribute ssh_private_key + # Private SSH key in stringified OpenSSH format + # + # @return [String] + required :ssh_private_key, String + + # @!method initialize(ssh_port:, ssh_private_key:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmSSHKeyResponse} for more details. + # + # Response body for GET /api/vm/{vm_id}/ssh_key + # + # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev + # + # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7adb1a8..f1fbd18 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,6 +93,24 @@ def create_root(params) ) end + # @overload get_ssh_key(vm_id, request_options: {}) + # + # @param vm_id [String] Node ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmSSHKeyResponse] + # + # @see Vers::Models::VmGetSSHKeyParams + def get_ssh_key(vm_id, params = {}) + @client.request( + method: :get, + path: ["vm/%1$s/ssh_key", vm_id], + model: Vers::VmSSHKeyResponse, + options: params[:request_options] + ) + end + # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a227441..eed8fb5 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,10 +23,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi new file mode 100644 index 0000000..3d52ddf --- /dev/null +++ b/rbi/vers/models/vm_get_ssh_key_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi new file mode 100644 index 0000000..6061670 --- /dev/null +++ b/rbi/vers/models/vm_ssh_key_response.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Vers + module Models + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } + + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + sig { returns(Integer) } + attr_accessor :ssh_port + + # Private SSH key in stringified OpenSSH format + sig { returns(String) } + attr_accessor :ssh_private_key + + # Response body for GET /api/vm/{vm_id}/ssh_key + sig do + params(ssh_port: Integer, ssh_private_key: String).returns( + T.attached_class + ) + end + def self.new( + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + ssh_port:, + # Private SSH key in stringified OpenSSH format + ssh_private_key: + ) + end + + sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index a4f84f7..8acd637 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,6 +63,19 @@ module Vers ) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmSSHKeyResponse) + end + def get_ssh_key( + # Node ID + vm_id, + request_options: {} + ) + end + sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 9bc9977..5e455b8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,10 +21,14 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs new file mode 100644 index 0000000..ec8298e --- /dev/null +++ b/sig/vers/models/vm_get_ssh_key_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters + + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs new file mode 100644 index 0000000..0fa28d1 --- /dev/null +++ b/sig/vers/models/vm_ssh_key_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } + + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + attr_accessor ssh_port: Integer + + attr_accessor ssh_private_key: String + + def initialize: (ssh_port: Integer, ssh_private_key: String) -> void + + def to_hash: -> { ssh_port: Integer, ssh_private_key: String } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index b139a6f..19b6723 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,6 +25,11 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def get_ssh_key: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmSSHKeyResponse + def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 87e7393..618875d 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,6 +78,23 @@ def test_create_root_required_params end end + def test_get_ssh_key + skip("Prism tests are disabled") + + response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmSSHKeyResponse + end + + assert_pattern do + response => { + ssh_port: Integer, + ssh_private_key: String + } + end + end + def test_restore_from_commit_required_params skip("Prism tests are disabled") From 64feb4617cc9645b10c497a927ee7ec595f59032 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 06:03:33 +0000 Subject: [PATCH 043/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 -- lib/vers/models.rb | 4 --- lib/vers/models/vm_get_ssh_key_params.rb | 14 --------- lib/vers/models/vm_ssh_key_response.rb | 31 ------------------ lib/vers/resources/vm.rb | 18 ----------- rbi/vers/models.rbi | 4 --- rbi/vers/models/vm_get_ssh_key_params.rbi | 25 --------------- rbi/vers/models/vm_ssh_key_response.rbi | 38 ----------------------- rbi/vers/resources/vm.rbi | 13 -------- sig/vers/models.rbs | 4 --- sig/vers/models/vm_get_ssh_key_params.rbs | 14 --------- sig/vers/models/vm_ssh_key_response.rbs | 15 --------- sig/vers/resources/vm.rbs | 5 --- test/vers/resources/vm_test.rb | 17 ---------- 15 files changed, 4 insertions(+), 208 deletions(-) delete mode 100644 lib/vers/models/vm_get_ssh_key_params.rb delete mode 100644 lib/vers/models/vm_ssh_key_response.rb delete mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi delete mode 100644 rbi/vers/models/vm_ssh_key_response.rbi delete mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs delete mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 3f79e3f..5d0b3fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml -openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab -config_hash: ba476ff7e5c71b83e72ad86fcb01beeb +configured_endpoints: 7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml +openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 +config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/lib/vers.rb b/lib/vers.rb index 86ff1d2..854c5b3 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,11 +63,9 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" -require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" -require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2ca5c3e..01feb41 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,14 +61,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb deleted file mode 100644 index 5b51187..0000000 --- a/lib/vers/models/vm_get_ssh_key_params.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb deleted file mode 100644 index 9be14fb..0000000 --- a/lib/vers/models/vm_ssh_key_response.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - # @!attribute ssh_port - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute ssh_private_key - # Private SSH key in stringified OpenSSH format - # - # @return [String] - required :ssh_private_key, String - - # @!method initialize(ssh_port:, ssh_private_key:) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmSSHKeyResponse} for more details. - # - # Response body for GET /api/vm/{vm_id}/ssh_key - # - # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev - # - # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f1fbd18..7adb1a8 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,24 +93,6 @@ def create_root(params) ) end - # @overload get_ssh_key(vm_id, request_options: {}) - # - # @param vm_id [String] Node ID - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::VmSSHKeyResponse] - # - # @see Vers::Models::VmGetSSHKeyParams - def get_ssh_key(vm_id, params = {}) - @client.request( - method: :get, - path: ["vm/%1$s/ssh_key", vm_id], - model: Vers::VmSSHKeyResponse, - options: params[:request_options] - ) - end - # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index eed8fb5..a227441 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,14 +23,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi deleted file mode 100644 index 3d52ddf..0000000 --- a/rbi/vers/models/vm_get_ssh_key_params.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi deleted file mode 100644 index 6061670..0000000 --- a/rbi/vers/models/vm_ssh_key_response.rbi +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } - - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - sig { returns(Integer) } - attr_accessor :ssh_port - - # Private SSH key in stringified OpenSSH format - sig { returns(String) } - attr_accessor :ssh_private_key - - # Response body for GET /api/vm/{vm_id}/ssh_key - sig do - params(ssh_port: Integer, ssh_private_key: String).returns( - T.attached_class - ) - end - def self.new( - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - ssh_port:, - # Private SSH key in stringified OpenSSH format - ssh_private_key: - ) - end - - sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 8acd637..a4f84f7 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,19 +63,6 @@ module Vers ) end - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::VmSSHKeyResponse) - end - def get_ssh_key( - # Node ID - vm_id, - request_options: {} - ) - end - sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5e455b8..9bc9977 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,14 +21,10 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest - class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs deleted file mode 100644 index ec8298e..0000000 --- a/sig/vers/models/vm_get_ssh_key_params.rbs +++ /dev/null @@ -1,14 +0,0 @@ -module Vers - module Models - type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters - - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end -end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs deleted file mode 100644 index 0fa28d1..0000000 --- a/sig/vers/models/vm_ssh_key_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } - - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - attr_accessor ssh_port: Integer - - attr_accessor ssh_private_key: String - - def initialize: (ssh_port: Integer, ssh_private_key: String) -> void - - def to_hash: -> { ssh_port: Integer, ssh_private_key: String } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 19b6723..b139a6f 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,11 +25,6 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse - def get_ssh_key: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::VmSSHKeyResponse - def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 618875d..87e7393 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,23 +78,6 @@ def test_create_root_required_params end end - def test_get_ssh_key - skip("Prism tests are disabled") - - response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") - - assert_pattern do - response => Vers::VmSSHKeyResponse - end - - assert_pattern do - response => { - ssh_port: Integer, - ssh_private_key: String - } - end - end - def test_restore_from_commit_required_params skip("Prism tests are disabled") From d19bf01e3a6e5eaabd4fe6058215ccd8958f2d2b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 18:20:32 +0000 Subject: [PATCH 044/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 ++ lib/vers/models.rb | 4 +++ lib/vers/models/vm_get_ssh_key_params.rb | 14 +++++++++ lib/vers/models/vm_ssh_key_response.rb | 31 ++++++++++++++++++ lib/vers/resources/vm.rb | 18 +++++++++++ rbi/vers/models.rbi | 4 +++ rbi/vers/models/vm_get_ssh_key_params.rbi | 25 +++++++++++++++ rbi/vers/models/vm_ssh_key_response.rbi | 38 +++++++++++++++++++++++ rbi/vers/resources/vm.rbi | 13 ++++++++ sig/vers/models.rbs | 4 +++ sig/vers/models/vm_get_ssh_key_params.rbs | 14 +++++++++ sig/vers/models/vm_ssh_key_response.rbs | 15 +++++++++ sig/vers/resources/vm.rbs | 5 +++ test/vers/resources/vm_test.rb | 17 ++++++++++ 15 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/vm_get_ssh_key_params.rb create mode 100644 lib/vers/models/vm_ssh_key_response.rb create mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi create mode 100644 rbi/vers/models/vm_ssh_key_response.rbi create mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs create mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 5d0b3fc..3f79e3f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml -openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 -config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a +configured_endpoints: 8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml +openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab +config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers.rb b/lib/vers.rb index 854c5b3..86ff1d2 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,9 +63,11 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" +require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 01feb41..2ca5c3e 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,10 +61,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb new file mode 100644 index 0000000..5b51187 --- /dev/null +++ b/lib/vers/models/vm_get_ssh_key_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb new file mode 100644 index 0000000..9be14fb --- /dev/null +++ b/lib/vers/models/vm_ssh_key_response.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + # @!attribute ssh_port + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + # + # @return [Integer] + required :ssh_port, Integer + + # @!attribute ssh_private_key + # Private SSH key in stringified OpenSSH format + # + # @return [String] + required :ssh_private_key, String + + # @!method initialize(ssh_port:, ssh_private_key:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmSSHKeyResponse} for more details. + # + # Response body for GET /api/vm/{vm_id}/ssh_key + # + # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev + # + # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7adb1a8..f1fbd18 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,6 +93,24 @@ def create_root(params) ) end + # @overload get_ssh_key(vm_id, request_options: {}) + # + # @param vm_id [String] Node ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmSSHKeyResponse] + # + # @see Vers::Models::VmGetSSHKeyParams + def get_ssh_key(vm_id, params = {}) + @client.request( + method: :get, + path: ["vm/%1$s/ssh_key", vm_id], + model: Vers::VmSSHKeyResponse, + options: params[:request_options] + ) + end + # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a227441..eed8fb5 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,10 +23,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi new file mode 100644 index 0000000..3d52ddf --- /dev/null +++ b/rbi/vers/models/vm_get_ssh_key_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi new file mode 100644 index 0000000..6061670 --- /dev/null +++ b/rbi/vers/models/vm_ssh_key_response.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Vers + module Models + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } + + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + sig { returns(Integer) } + attr_accessor :ssh_port + + # Private SSH key in stringified OpenSSH format + sig { returns(String) } + attr_accessor :ssh_private_key + + # Response body for GET /api/vm/{vm_id}/ssh_key + sig do + params(ssh_port: Integer, ssh_private_key: String).returns( + T.attached_class + ) + end + def self.new( + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + ssh_port:, + # Private SSH key in stringified OpenSSH format + ssh_private_key: + ) + end + + sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index a4f84f7..8acd637 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,6 +63,19 @@ module Vers ) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmSSHKeyResponse) + end + def get_ssh_key( + # Node ID + vm_id, + request_options: {} + ) + end + sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 9bc9977..5e455b8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,10 +21,14 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs new file mode 100644 index 0000000..ec8298e --- /dev/null +++ b/sig/vers/models/vm_get_ssh_key_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters + + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs new file mode 100644 index 0000000..0fa28d1 --- /dev/null +++ b/sig/vers/models/vm_ssh_key_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } + + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + attr_accessor ssh_port: Integer + + attr_accessor ssh_private_key: String + + def initialize: (ssh_port: Integer, ssh_private_key: String) -> void + + def to_hash: -> { ssh_port: Integer, ssh_private_key: String } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index b139a6f..19b6723 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,6 +25,11 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def get_ssh_key: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmSSHKeyResponse + def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 87e7393..618875d 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,6 +78,23 @@ def test_create_root_required_params end end + def test_get_ssh_key + skip("Prism tests are disabled") + + response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmSSHKeyResponse + end + + assert_pattern do + response => { + ssh_port: Integer, + ssh_private_key: String + } + end + end + def test_restore_from_commit_required_params skip("Prism tests are disabled") From 96d1dc7cd75e33b1e6b234df930f371e5e1d8b46 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 11 Nov 2025 21:21:24 +0000 Subject: [PATCH 045/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 -- lib/vers/models.rb | 4 --- lib/vers/models/vm_get_ssh_key_params.rb | 14 --------- lib/vers/models/vm_ssh_key_response.rb | 31 ------------------ lib/vers/resources/vm.rb | 18 ----------- rbi/vers/models.rbi | 4 --- rbi/vers/models/vm_get_ssh_key_params.rbi | 25 --------------- rbi/vers/models/vm_ssh_key_response.rbi | 38 ----------------------- rbi/vers/resources/vm.rbi | 13 -------- sig/vers/models.rbs | 4 --- sig/vers/models/vm_get_ssh_key_params.rbs | 14 --------- sig/vers/models/vm_ssh_key_response.rbs | 15 --------- sig/vers/resources/vm.rbs | 5 --- test/vers/resources/vm_test.rb | 17 ---------- 15 files changed, 4 insertions(+), 208 deletions(-) delete mode 100644 lib/vers/models/vm_get_ssh_key_params.rb delete mode 100644 lib/vers/models/vm_ssh_key_response.rb delete mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi delete mode 100644 rbi/vers/models/vm_ssh_key_response.rbi delete mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs delete mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 3f79e3f..5d0b3fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml -openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab -config_hash: ba476ff7e5c71b83e72ad86fcb01beeb +configured_endpoints: 7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml +openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 +config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/lib/vers.rb b/lib/vers.rb index 86ff1d2..854c5b3 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,11 +63,9 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" -require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" -require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2ca5c3e..01feb41 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,14 +61,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb deleted file mode 100644 index 5b51187..0000000 --- a/lib/vers/models/vm_get_ssh_key_params.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb deleted file mode 100644 index 9be14fb..0000000 --- a/lib/vers/models/vm_ssh_key_response.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - # @!attribute ssh_port - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute ssh_private_key - # Private SSH key in stringified OpenSSH format - # - # @return [String] - required :ssh_private_key, String - - # @!method initialize(ssh_port:, ssh_private_key:) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmSSHKeyResponse} for more details. - # - # Response body for GET /api/vm/{vm_id}/ssh_key - # - # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev - # - # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f1fbd18..7adb1a8 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,24 +93,6 @@ def create_root(params) ) end - # @overload get_ssh_key(vm_id, request_options: {}) - # - # @param vm_id [String] Node ID - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::VmSSHKeyResponse] - # - # @see Vers::Models::VmGetSSHKeyParams - def get_ssh_key(vm_id, params = {}) - @client.request( - method: :get, - path: ["vm/%1$s/ssh_key", vm_id], - model: Vers::VmSSHKeyResponse, - options: params[:request_options] - ) - end - # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index eed8fb5..a227441 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,14 +23,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi deleted file mode 100644 index 3d52ddf..0000000 --- a/rbi/vers/models/vm_get_ssh_key_params.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi deleted file mode 100644 index 6061670..0000000 --- a/rbi/vers/models/vm_ssh_key_response.rbi +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } - - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - sig { returns(Integer) } - attr_accessor :ssh_port - - # Private SSH key in stringified OpenSSH format - sig { returns(String) } - attr_accessor :ssh_private_key - - # Response body for GET /api/vm/{vm_id}/ssh_key - sig do - params(ssh_port: Integer, ssh_private_key: String).returns( - T.attached_class - ) - end - def self.new( - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - ssh_port:, - # Private SSH key in stringified OpenSSH format - ssh_private_key: - ) - end - - sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 8acd637..a4f84f7 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,19 +63,6 @@ module Vers ) end - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::VmSSHKeyResponse) - end - def get_ssh_key( - # Node ID - vm_id, - request_options: {} - ) - end - sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5e455b8..9bc9977 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,14 +21,10 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest - class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs deleted file mode 100644 index ec8298e..0000000 --- a/sig/vers/models/vm_get_ssh_key_params.rbs +++ /dev/null @@ -1,14 +0,0 @@ -module Vers - module Models - type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters - - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end -end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs deleted file mode 100644 index 0fa28d1..0000000 --- a/sig/vers/models/vm_ssh_key_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } - - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - attr_accessor ssh_port: Integer - - attr_accessor ssh_private_key: String - - def initialize: (ssh_port: Integer, ssh_private_key: String) -> void - - def to_hash: -> { ssh_port: Integer, ssh_private_key: String } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 19b6723..b139a6f 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,11 +25,6 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse - def get_ssh_key: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::VmSSHKeyResponse - def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 618875d..87e7393 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,23 +78,6 @@ def test_create_root_required_params end end - def test_get_ssh_key - skip("Prism tests are disabled") - - response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") - - assert_pattern do - response => Vers::VmSSHKeyResponse - end - - assert_pattern do - response => { - ssh_port: Integer, - ssh_private_key: String - } - end - end - def test_restore_from_commit_required_params skip("Prism tests are disabled") From d567bf0d09f939165476fa2cfb4f57d6365ee445 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 00:37:53 +0000 Subject: [PATCH 046/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 ++ lib/vers/models.rb | 4 +++ lib/vers/models/vm_get_ssh_key_params.rb | 14 +++++++++ lib/vers/models/vm_ssh_key_response.rb | 31 ++++++++++++++++++ lib/vers/resources/vm.rb | 18 +++++++++++ rbi/vers/models.rbi | 4 +++ rbi/vers/models/vm_get_ssh_key_params.rbi | 25 +++++++++++++++ rbi/vers/models/vm_ssh_key_response.rbi | 38 +++++++++++++++++++++++ rbi/vers/resources/vm.rbi | 13 ++++++++ sig/vers/models.rbs | 4 +++ sig/vers/models/vm_get_ssh_key_params.rbs | 14 +++++++++ sig/vers/models/vm_ssh_key_response.rbs | 15 +++++++++ sig/vers/resources/vm.rbs | 5 +++ test/vers/resources/vm_test.rb | 17 ++++++++++ 15 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/vm_get_ssh_key_params.rb create mode 100644 lib/vers/models/vm_ssh_key_response.rb create mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi create mode 100644 rbi/vers/models/vm_ssh_key_response.rbi create mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs create mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 5d0b3fc..3f79e3f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml -openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 -config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a +configured_endpoints: 8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml +openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab +config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers.rb b/lib/vers.rb index 854c5b3..86ff1d2 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,9 +63,11 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" +require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 01feb41..2ca5c3e 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,10 +61,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb new file mode 100644 index 0000000..5b51187 --- /dev/null +++ b/lib/vers/models/vm_get_ssh_key_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb new file mode 100644 index 0000000..9be14fb --- /dev/null +++ b/lib/vers/models/vm_ssh_key_response.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + # @!attribute ssh_port + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + # + # @return [Integer] + required :ssh_port, Integer + + # @!attribute ssh_private_key + # Private SSH key in stringified OpenSSH format + # + # @return [String] + required :ssh_private_key, String + + # @!method initialize(ssh_port:, ssh_private_key:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmSSHKeyResponse} for more details. + # + # Response body for GET /api/vm/{vm_id}/ssh_key + # + # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev + # + # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7adb1a8..f1fbd18 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,6 +93,24 @@ def create_root(params) ) end + # @overload get_ssh_key(vm_id, request_options: {}) + # + # @param vm_id [String] Node ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmSSHKeyResponse] + # + # @see Vers::Models::VmGetSSHKeyParams + def get_ssh_key(vm_id, params = {}) + @client.request( + method: :get, + path: ["vm/%1$s/ssh_key", vm_id], + model: Vers::VmSSHKeyResponse, + options: params[:request_options] + ) + end + # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a227441..eed8fb5 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,10 +23,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi new file mode 100644 index 0000000..3d52ddf --- /dev/null +++ b/rbi/vers/models/vm_get_ssh_key_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi new file mode 100644 index 0000000..6061670 --- /dev/null +++ b/rbi/vers/models/vm_ssh_key_response.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Vers + module Models + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } + + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + sig { returns(Integer) } + attr_accessor :ssh_port + + # Private SSH key in stringified OpenSSH format + sig { returns(String) } + attr_accessor :ssh_private_key + + # Response body for GET /api/vm/{vm_id}/ssh_key + sig do + params(ssh_port: Integer, ssh_private_key: String).returns( + T.attached_class + ) + end + def self.new( + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + ssh_port:, + # Private SSH key in stringified OpenSSH format + ssh_private_key: + ) + end + + sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index a4f84f7..8acd637 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,6 +63,19 @@ module Vers ) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmSSHKeyResponse) + end + def get_ssh_key( + # Node ID + vm_id, + request_options: {} + ) + end + sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 9bc9977..5e455b8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,10 +21,14 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs new file mode 100644 index 0000000..ec8298e --- /dev/null +++ b/sig/vers/models/vm_get_ssh_key_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters + + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs new file mode 100644 index 0000000..0fa28d1 --- /dev/null +++ b/sig/vers/models/vm_ssh_key_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } + + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + attr_accessor ssh_port: Integer + + attr_accessor ssh_private_key: String + + def initialize: (ssh_port: Integer, ssh_private_key: String) -> void + + def to_hash: -> { ssh_port: Integer, ssh_private_key: String } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index b139a6f..19b6723 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,6 +25,11 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def get_ssh_key: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmSSHKeyResponse + def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 87e7393..618875d 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,6 +78,23 @@ def test_create_root_required_params end end + def test_get_ssh_key + skip("Prism tests are disabled") + + response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmSSHKeyResponse + end + + assert_pattern do + response => { + ssh_port: Integer, + ssh_private_key: String + } + end + end + def test_restore_from_commit_required_params skip("Prism tests are disabled") From cb57d71515935194ddc9f1b930cfd4606cd143ec Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 01:38:18 +0000 Subject: [PATCH 047/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 -- lib/vers/models.rb | 4 --- lib/vers/models/vm_get_ssh_key_params.rb | 14 --------- lib/vers/models/vm_ssh_key_response.rb | 31 ------------------ lib/vers/resources/vm.rb | 18 ----------- rbi/vers/models.rbi | 4 --- rbi/vers/models/vm_get_ssh_key_params.rbi | 25 --------------- rbi/vers/models/vm_ssh_key_response.rbi | 38 ----------------------- rbi/vers/resources/vm.rbi | 13 -------- sig/vers/models.rbs | 4 --- sig/vers/models/vm_get_ssh_key_params.rbs | 14 --------- sig/vers/models/vm_ssh_key_response.rbs | 15 --------- sig/vers/resources/vm.rbs | 5 --- test/vers/resources/vm_test.rb | 17 ---------- 15 files changed, 4 insertions(+), 208 deletions(-) delete mode 100644 lib/vers/models/vm_get_ssh_key_params.rb delete mode 100644 lib/vers/models/vm_ssh_key_response.rb delete mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi delete mode 100644 rbi/vers/models/vm_ssh_key_response.rbi delete mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs delete mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 3f79e3f..5d0b3fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml -openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab -config_hash: ba476ff7e5c71b83e72ad86fcb01beeb +configured_endpoints: 7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml +openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 +config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/lib/vers.rb b/lib/vers.rb index 86ff1d2..854c5b3 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,11 +63,9 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" -require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" -require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2ca5c3e..01feb41 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,14 +61,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb deleted file mode 100644 index 5b51187..0000000 --- a/lib/vers/models/vm_get_ssh_key_params.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb deleted file mode 100644 index 9be14fb..0000000 --- a/lib/vers/models/vm_ssh_key_response.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - # @!attribute ssh_port - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute ssh_private_key - # Private SSH key in stringified OpenSSH format - # - # @return [String] - required :ssh_private_key, String - - # @!method initialize(ssh_port:, ssh_private_key:) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmSSHKeyResponse} for more details. - # - # Response body for GET /api/vm/{vm_id}/ssh_key - # - # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev - # - # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f1fbd18..7adb1a8 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,24 +93,6 @@ def create_root(params) ) end - # @overload get_ssh_key(vm_id, request_options: {}) - # - # @param vm_id [String] Node ID - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::VmSSHKeyResponse] - # - # @see Vers::Models::VmGetSSHKeyParams - def get_ssh_key(vm_id, params = {}) - @client.request( - method: :get, - path: ["vm/%1$s/ssh_key", vm_id], - model: Vers::VmSSHKeyResponse, - options: params[:request_options] - ) - end - # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index eed8fb5..a227441 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,14 +23,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi deleted file mode 100644 index 3d52ddf..0000000 --- a/rbi/vers/models/vm_get_ssh_key_params.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi deleted file mode 100644 index 6061670..0000000 --- a/rbi/vers/models/vm_ssh_key_response.rbi +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } - - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - sig { returns(Integer) } - attr_accessor :ssh_port - - # Private SSH key in stringified OpenSSH format - sig { returns(String) } - attr_accessor :ssh_private_key - - # Response body for GET /api/vm/{vm_id}/ssh_key - sig do - params(ssh_port: Integer, ssh_private_key: String).returns( - T.attached_class - ) - end - def self.new( - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - ssh_port:, - # Private SSH key in stringified OpenSSH format - ssh_private_key: - ) - end - - sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 8acd637..a4f84f7 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,19 +63,6 @@ module Vers ) end - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::VmSSHKeyResponse) - end - def get_ssh_key( - # Node ID - vm_id, - request_options: {} - ) - end - sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5e455b8..9bc9977 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,14 +21,10 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest - class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs deleted file mode 100644 index ec8298e..0000000 --- a/sig/vers/models/vm_get_ssh_key_params.rbs +++ /dev/null @@ -1,14 +0,0 @@ -module Vers - module Models - type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters - - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end -end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs deleted file mode 100644 index 0fa28d1..0000000 --- a/sig/vers/models/vm_ssh_key_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } - - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - attr_accessor ssh_port: Integer - - attr_accessor ssh_private_key: String - - def initialize: (ssh_port: Integer, ssh_private_key: String) -> void - - def to_hash: -> { ssh_port: Integer, ssh_private_key: String } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 19b6723..b139a6f 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,11 +25,6 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse - def get_ssh_key: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::VmSSHKeyResponse - def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 618875d..87e7393 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,23 +78,6 @@ def test_create_root_required_params end end - def test_get_ssh_key - skip("Prism tests are disabled") - - response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") - - assert_pattern do - response => Vers::VmSSHKeyResponse - end - - assert_pattern do - response => { - ssh_port: Integer, - ssh_private_key: String - } - end - end - def test_restore_from_commit_required_params skip("Prism tests are disabled") From 1f5c78817197492cf1af0bb53a0298dfc464afe9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 19:27:19 +0000 Subject: [PATCH 048/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 ++ lib/vers/models.rb | 4 +++ lib/vers/models/vm_get_ssh_key_params.rb | 14 +++++++++ lib/vers/models/vm_ssh_key_response.rb | 31 ++++++++++++++++++ lib/vers/resources/vm.rb | 18 +++++++++++ rbi/vers/models.rbi | 4 +++ rbi/vers/models/vm_get_ssh_key_params.rbi | 25 +++++++++++++++ rbi/vers/models/vm_ssh_key_response.rbi | 38 +++++++++++++++++++++++ rbi/vers/resources/vm.rbi | 13 ++++++++ sig/vers/models.rbs | 4 +++ sig/vers/models/vm_get_ssh_key_params.rbs | 14 +++++++++ sig/vers/models/vm_ssh_key_response.rbs | 15 +++++++++ sig/vers/resources/vm.rbs | 5 +++ test/vers/resources/vm_test.rb | 17 ++++++++++ 15 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/vm_get_ssh_key_params.rb create mode 100644 lib/vers/models/vm_ssh_key_response.rb create mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi create mode 100644 rbi/vers/models/vm_ssh_key_response.rbi create mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs create mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 5d0b3fc..3f79e3f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml -openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 -config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a +configured_endpoints: 8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml +openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab +config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers.rb b/lib/vers.rb index 854c5b3..86ff1d2 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,9 +63,11 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" +require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 01feb41..2ca5c3e 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,10 +61,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb new file mode 100644 index 0000000..5b51187 --- /dev/null +++ b/lib/vers/models/vm_get_ssh_key_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb new file mode 100644 index 0000000..9be14fb --- /dev/null +++ b/lib/vers/models/vm_ssh_key_response.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + # @!attribute ssh_port + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + # + # @return [Integer] + required :ssh_port, Integer + + # @!attribute ssh_private_key + # Private SSH key in stringified OpenSSH format + # + # @return [String] + required :ssh_private_key, String + + # @!method initialize(ssh_port:, ssh_private_key:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmSSHKeyResponse} for more details. + # + # Response body for GET /api/vm/{vm_id}/ssh_key + # + # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev + # + # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7adb1a8..f1fbd18 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,6 +93,24 @@ def create_root(params) ) end + # @overload get_ssh_key(vm_id, request_options: {}) + # + # @param vm_id [String] Node ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmSSHKeyResponse] + # + # @see Vers::Models::VmGetSSHKeyParams + def get_ssh_key(vm_id, params = {}) + @client.request( + method: :get, + path: ["vm/%1$s/ssh_key", vm_id], + model: Vers::VmSSHKeyResponse, + options: params[:request_options] + ) + end + # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a227441..eed8fb5 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,10 +23,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi new file mode 100644 index 0000000..3d52ddf --- /dev/null +++ b/rbi/vers/models/vm_get_ssh_key_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi new file mode 100644 index 0000000..6061670 --- /dev/null +++ b/rbi/vers/models/vm_ssh_key_response.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Vers + module Models + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } + + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + sig { returns(Integer) } + attr_accessor :ssh_port + + # Private SSH key in stringified OpenSSH format + sig { returns(String) } + attr_accessor :ssh_private_key + + # Response body for GET /api/vm/{vm_id}/ssh_key + sig do + params(ssh_port: Integer, ssh_private_key: String).returns( + T.attached_class + ) + end + def self.new( + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + ssh_port:, + # Private SSH key in stringified OpenSSH format + ssh_private_key: + ) + end + + sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index a4f84f7..8acd637 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,6 +63,19 @@ module Vers ) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmSSHKeyResponse) + end + def get_ssh_key( + # Node ID + vm_id, + request_options: {} + ) + end + sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 9bc9977..5e455b8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,10 +21,14 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs new file mode 100644 index 0000000..ec8298e --- /dev/null +++ b/sig/vers/models/vm_get_ssh_key_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters + + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs new file mode 100644 index 0000000..0fa28d1 --- /dev/null +++ b/sig/vers/models/vm_ssh_key_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } + + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + attr_accessor ssh_port: Integer + + attr_accessor ssh_private_key: String + + def initialize: (ssh_port: Integer, ssh_private_key: String) -> void + + def to_hash: -> { ssh_port: Integer, ssh_private_key: String } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index b139a6f..19b6723 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,6 +25,11 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def get_ssh_key: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmSSHKeyResponse + def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 87e7393..618875d 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,6 +78,23 @@ def test_create_root_required_params end end + def test_get_ssh_key + skip("Prism tests are disabled") + + response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmSSHKeyResponse + end + + assert_pattern do + response => { + ssh_port: Integer, + ssh_private_key: String + } + end + end + def test_restore_from_commit_required_params skip("Prism tests are disabled") From 8dc995b6fb67fc46186f097074d1a0c5a154ef6e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 12 Nov 2025 20:04:26 +0000 Subject: [PATCH 049/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 -- lib/vers/models.rb | 4 --- lib/vers/models/vm_get_ssh_key_params.rb | 14 --------- lib/vers/models/vm_ssh_key_response.rb | 31 ------------------ lib/vers/resources/vm.rb | 18 ----------- rbi/vers/models.rbi | 4 --- rbi/vers/models/vm_get_ssh_key_params.rbi | 25 --------------- rbi/vers/models/vm_ssh_key_response.rbi | 38 ----------------------- rbi/vers/resources/vm.rbi | 13 -------- sig/vers/models.rbs | 4 --- sig/vers/models/vm_get_ssh_key_params.rbs | 14 --------- sig/vers/models/vm_ssh_key_response.rbs | 15 --------- sig/vers/resources/vm.rbs | 5 --- test/vers/resources/vm_test.rb | 17 ---------- 15 files changed, 4 insertions(+), 208 deletions(-) delete mode 100644 lib/vers/models/vm_get_ssh_key_params.rb delete mode 100644 lib/vers/models/vm_ssh_key_response.rb delete mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi delete mode 100644 rbi/vers/models/vm_ssh_key_response.rbi delete mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs delete mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 3f79e3f..5d0b3fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml -openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab -config_hash: ba476ff7e5c71b83e72ad86fcb01beeb +configured_endpoints: 7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml +openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 +config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a diff --git a/lib/vers.rb b/lib/vers.rb index 86ff1d2..854c5b3 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,11 +63,9 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" -require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" -require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2ca5c3e..01feb41 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,14 +61,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb deleted file mode 100644 index 5b51187..0000000 --- a/lib/vers/models/vm_get_ssh_key_params.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!method initialize(request_options: {}) - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb deleted file mode 100644 index 9be14fb..0000000 --- a/lib/vers/models/vm_ssh_key_response.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#get_ssh_key - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - # @!attribute ssh_port - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - # - # @return [Integer] - required :ssh_port, Integer - - # @!attribute ssh_private_key - # Private SSH key in stringified OpenSSH format - # - # @return [String] - required :ssh_private_key, String - - # @!method initialize(ssh_port:, ssh_private_key:) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmSSHKeyResponse} for more details. - # - # Response body for GET /api/vm/{vm_id}/ssh_key - # - # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev - # - # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f1fbd18..7adb1a8 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,24 +93,6 @@ def create_root(params) ) end - # @overload get_ssh_key(vm_id, request_options: {}) - # - # @param vm_id [String] Node ID - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::VmSSHKeyResponse] - # - # @see Vers::Models::VmGetSSHKeyParams - def get_ssh_key(vm_id, params = {}) - @client.request( - method: :get, - path: ["vm/%1$s/ssh_key", vm_id], - model: Vers::VmSSHKeyResponse, - options: params[:request_options] - ) - end - # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index eed8fb5..a227441 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,14 +23,10 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest - VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi deleted file mode 100644 index 3d52ddf..0000000 --- a/rbi/vers/models/vm_get_ssh_key_params.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } - - sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) - end - def self.new(request_options: {}) - end - - sig { override.returns({ request_options: Vers::RequestOptions }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi deleted file mode 100644 index 6061670..0000000 --- a/rbi/vers/models/vm_ssh_key_response.rbi +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } - - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - sig { returns(Integer) } - attr_accessor :ssh_port - - # Private SSH key in stringified OpenSSH format - sig { returns(String) } - attr_accessor :ssh_private_key - - # Response body for GET /api/vm/{vm_id}/ssh_key - sig do - params(ssh_port: Integer, ssh_private_key: String).returns( - T.attached_class - ) - end - def self.new( - # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP - # device) - ssh_port:, - # Private SSH key in stringified OpenSSH format - ssh_private_key: - ) - end - - sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 8acd637..a4f84f7 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,19 +63,6 @@ module Vers ) end - sig do - params( - vm_id: String, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::VmSSHKeyResponse) - end - def get_ssh_key( - # Node ID - vm_id, - request_options: {} - ) - end - sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5e455b8..9bc9977 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,14 +21,10 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest - class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams - class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams - class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse - class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs deleted file mode 100644 index ec8298e..0000000 --- a/sig/vers/models/vm_get_ssh_key_params.rbs +++ /dev/null @@ -1,14 +0,0 @@ -module Vers - module Models - type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters - - class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - def initialize: (?request_options: Vers::request_opts) -> void - - def to_hash: -> { request_options: Vers::RequestOptions } - end - end -end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs deleted file mode 100644 index 0fa28d1..0000000 --- a/sig/vers/models/vm_ssh_key_response.rbs +++ /dev/null @@ -1,15 +0,0 @@ -module Vers - module Models - type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } - - class VmSSHKeyResponse < Vers::Internal::Type::BaseModel - attr_accessor ssh_port: Integer - - attr_accessor ssh_private_key: String - - def initialize: (ssh_port: Integer, ssh_private_key: String) -> void - - def to_hash: -> { ssh_port: Integer, ssh_private_key: String } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 19b6723..b139a6f 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,11 +25,6 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse - def get_ssh_key: ( - String vm_id, - ?request_options: Vers::request_opts - ) -> Vers::VmSSHKeyResponse - def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 618875d..87e7393 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,23 +78,6 @@ def test_create_root_required_params end end - def test_get_ssh_key - skip("Prism tests are disabled") - - response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") - - assert_pattern do - response => Vers::VmSSHKeyResponse - end - - assert_pattern do - response => { - ssh_port: Integer, - ssh_private_key: String - } - end - end - def test_restore_from_commit_required_params skip("Prism tests are disabled") From e4f2210c676bae01ff182c18305de87af135a202 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 13 Nov 2025 01:45:55 +0000 Subject: [PATCH 050/100] feat(api): api update --- .stats.yml | 8 ++--- lib/vers.rb | 2 ++ lib/vers/models.rb | 4 +++ lib/vers/models/vm_get_ssh_key_params.rb | 14 +++++++++ lib/vers/models/vm_ssh_key_response.rb | 31 ++++++++++++++++++ lib/vers/resources/vm.rb | 18 +++++++++++ rbi/vers/models.rbi | 4 +++ rbi/vers/models/vm_get_ssh_key_params.rbi | 25 +++++++++++++++ rbi/vers/models/vm_ssh_key_response.rbi | 38 +++++++++++++++++++++++ rbi/vers/resources/vm.rbi | 13 ++++++++ sig/vers/models.rbs | 4 +++ sig/vers/models/vm_get_ssh_key_params.rbs | 14 +++++++++ sig/vers/models/vm_ssh_key_response.rbs | 15 +++++++++ sig/vers/resources/vm.rbs | 5 +++ test/vers/resources/vm_test.rb | 17 ++++++++++ 15 files changed, 208 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/vm_get_ssh_key_params.rb create mode 100644 lib/vers/models/vm_ssh_key_response.rb create mode 100644 rbi/vers/models/vm_get_ssh_key_params.rbi create mode 100644 rbi/vers/models/vm_ssh_key_response.rbi create mode 100644 sig/vers/models/vm_get_ssh_key_params.rbs create mode 100644 sig/vers/models/vm_ssh_key_response.rbs diff --git a/.stats.yml b/.stats.yml index 5d0b3fc..3f79e3f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 7 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e437b231abf7c48339f3b91cc26b37cd57008742bd55df4226bf8f0e9e1b3970.yml -openapi_spec_hash: 189d321433e96518f0bb624713ea99c1 -config_hash: 0037c36dcde8ddfbd28cf75bb77d0c2a +configured_endpoints: 8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml +openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab +config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers.rb b/lib/vers.rb index 854c5b3..86ff1d2 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -63,9 +63,11 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" +require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 01feb41..2ca5c3e 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,10 +61,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb new file mode 100644 index 0000000..5b51187 --- /dev/null +++ b/lib/vers/models/vm_get_ssh_key_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_ssh_key_response.rb b/lib/vers/models/vm_ssh_key_response.rb new file mode 100644 index 0000000..9be14fb --- /dev/null +++ b/lib/vers/models/vm_ssh_key_response.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_ssh_key + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + # @!attribute ssh_port + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + # + # @return [Integer] + required :ssh_port, Integer + + # @!attribute ssh_private_key + # Private SSH key in stringified OpenSSH format + # + # @return [String] + required :ssh_private_key, String + + # @!method initialize(ssh_port:, ssh_private_key:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmSSHKeyResponse} for more details. + # + # Response body for GET /api/vm/{vm_id}/ssh_key + # + # @param ssh_port [Integer] The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP dev + # + # @param ssh_private_key [String] Private SSH key in stringified OpenSSH format + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 7adb1a8..f1fbd18 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -93,6 +93,24 @@ def create_root(params) ) end + # @overload get_ssh_key(vm_id, request_options: {}) + # + # @param vm_id [String] Node ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmSSHKeyResponse] + # + # @see Vers::Models::VmGetSSHKeyParams + def get_ssh_key(vm_id, params = {}) + @client.request( + method: :get, + path: ["vm/%1$s/ssh_key", vm_id], + model: Vers::VmSSHKeyResponse, + options: params[:request_options] + ) + end + # @overload restore_from_commit(commit_id:, request_options: {}) # # @param commit_id [String] diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a227441..eed8fb5 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,10 +23,14 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + VmListParams = Vers::Models::VmListParams VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi new file mode 100644 index 0000000..3d52ddf --- /dev/null +++ b/rbi/vers/models/vm_get_ssh_key_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_ssh_key_response.rbi b/rbi/vers/models/vm_ssh_key_response.rbi new file mode 100644 index 0000000..6061670 --- /dev/null +++ b/rbi/vers/models/vm_ssh_key_response.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Vers + module Models + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmSSHKeyResponse, Vers::Internal::AnyHash) } + + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + sig { returns(Integer) } + attr_accessor :ssh_port + + # Private SSH key in stringified OpenSSH format + sig { returns(String) } + attr_accessor :ssh_private_key + + # Response body for GET /api/vm/{vm_id}/ssh_key + sig do + params(ssh_port: Integer, ssh_private_key: String).returns( + T.attached_class + ) + end + def self.new( + # The SSH port that will be DNAT'd to the VM's netns (and, in turn, to its TAP + # device) + ssh_port:, + # Private SSH key in stringified OpenSSH format + ssh_private_key: + ) + end + + sig { override.returns({ ssh_port: Integer, ssh_private_key: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index a4f84f7..8acd637 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -63,6 +63,19 @@ module Vers ) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmSSHKeyResponse) + end + def get_ssh_key( + # Node ID + vm_id, + request_options: {} + ) + end + sig do params( commit_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 9bc9977..5e455b8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,10 +21,14 @@ module Vers class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams + class VmListParams = Vers::Models::VmListParams class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams + class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs new file mode 100644 index 0000000..ec8298e --- /dev/null +++ b/sig/vers/models/vm_get_ssh_key_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters + + class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_ssh_key_response.rbs b/sig/vers/models/vm_ssh_key_response.rbs new file mode 100644 index 0000000..0fa28d1 --- /dev/null +++ b/sig/vers/models/vm_ssh_key_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type vm_ssh_key_response = { ssh_port: Integer, ssh_private_key: String } + + class VmSSHKeyResponse < Vers::Internal::Type::BaseModel + attr_accessor ssh_port: Integer + + attr_accessor ssh_private_key: String + + def initialize: (ssh_port: Integer, ssh_private_key: String) -> void + + def to_hash: -> { ssh_port: Integer, ssh_private_key: String } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index b139a6f..19b6723 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,6 +25,11 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def get_ssh_key: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmSSHKeyResponse + def restore_from_commit: ( commit_id: String, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 87e7393..618875d 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -78,6 +78,23 @@ def test_create_root_required_params end end + def test_get_ssh_key + skip("Prism tests are disabled") + + response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmSSHKeyResponse + end + + assert_pattern do + response => { + ssh_port: Integer, + ssh_private_key: String + } + end + end + def test_restore_from_commit_required_params skip("Prism tests are disabled") From d845469452ac4f0255c10b4cea5c29821022d014 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 21 Nov 2025 03:48:06 +0000 Subject: [PATCH 051/100] chore: explicitly require "base64" gem --- lib/vers.rb | 1 + manifest.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/vers.rb b/lib/vers.rb index 86ff1d2..df3af0d 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -3,6 +3,7 @@ # Standard libraries. # rubocop:disable Lint/RedundantRequireStatement require "English" +require "base64" require "cgi" require "date" require "erb" diff --git a/manifest.yaml b/manifest.yaml index 7853f4a..a1fd74a 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -1,5 +1,6 @@ dependencies: - English + - base64 - cgi - date - erb From 46da556ef7ba1842dc4a8c9b5c321ca993983452 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 04:09:22 +0000 Subject: [PATCH 052/100] feat(api): api update --- .stats.yml | 4 +- lib/vers/models.rb | 2 - lib/vers/models/vm.rb | 32 +++++++++++---- lib/vers/models/vm_commit_params.rb | 18 +++++++- lib/vers/models/vm_commit_response.rb | 15 ++----- lib/vers/models/vm_create_root_params.rb | 14 ++++++- lib/vers/models/vm_delete_params.rb | 10 ++++- lib/vers/models/vm_delete_response.rb | 10 ++--- lib/vers/models/vm_update_state_params.rb | 10 ++++- lib/vers/resources/vm.rb | 48 ++++++++++++++++------ rbi/vers/models.rbi | 2 - rbi/vers/models/vm.rbi | 39 ++++++++++++++---- rbi/vers/models/vm_commit_params.rbi | 40 +++++++++++++++--- rbi/vers/models/vm_commit_response.rbi | 26 ++++-------- rbi/vers/models/vm_create_root_params.rbi | 28 ++++++++++--- rbi/vers/models/vm_delete_params.rbi | 26 +++++++++--- rbi/vers/models/vm_delete_response.rbi | 10 ++--- rbi/vers/models/vm_update_state_params.rbi | 26 +++++++++--- rbi/vers/resources/vm.rbi | 25 +++++++++-- sig/vers/models.rbs | 2 - sig/vers/models/vm.rbs | 31 ++++++++++---- sig/vers/models/vm_commit_params.rbs | 24 +++++++++-- sig/vers/models/vm_commit_response.rbs | 8 ++-- sig/vers/models/vm_create_root_params.rbs | 14 +++++-- sig/vers/models/vm_delete_params.rbs | 17 ++++++-- sig/vers/models/vm_delete_response.rbs | 8 ++-- sig/vers/models/vm_update_state_params.rbs | 16 ++++++-- sig/vers/resources/vm.rbs | 7 +++- test/vers/resources/vm_test.rb | 7 ++-- 29 files changed, 382 insertions(+), 137 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3f79e3f..16828a3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-07b6a4a1a7515802531be41461e4d9b4badad13e93492f5a408d54f51693d717.yml -openapi_spec_hash: aba885b7687af21c2151833c9d7a2dab +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fc1351bc8599fc6873d1be7f16ed805907442c3a50f68659b312076be10bd5d0.yml +openapi_spec_hash: 15a3d34206ed2dca0702a8a3291e1d7b config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2ca5c3e..f541f90 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -51,8 +51,6 @@ module Vers VmCommitParams = Vers::Models::VmCommitParams - VmCommitResponse = Vers::Models::VmCommitResponse - VmCreateRootParams = Vers::Models::VmCreateRootParams VmDeleteParams = Vers::Models::VmDeleteParams diff --git a/lib/vers/models/vm.rb b/lib/vers/models/vm.rb index 1fbaf36..bbc7040 100644 --- a/lib/vers/models/vm.rb +++ b/lib/vers/models/vm.rb @@ -13,21 +13,39 @@ class VmAPI < Vers::Internal::Type::BaseModel # @return [String] required :owner_id, String + # @!attribute state + # The state of a VM + # + # @return [Symbol, Vers::Models::VmAPI::State] + required :state, enum: -> { Vers::VmAPI::State } + # @!attribute vm_id # # @return [String] required :vm_id, String - # @!attribute parent - # - # @return [String, nil] - optional :parent, String, nil?: true - - # @!method initialize(created_at:, owner_id:, vm_id:, parent: nil) + # @!method initialize(created_at:, owner_id:, state:, vm_id:) # @param created_at [Time] + # # @param owner_id [String] + # + # @param state [Symbol, Vers::Models::VmAPI::State] The state of a VM + # # @param vm_id [String] - # @param parent [String, nil] + + # The state of a VM + # + # @see Vers::Models::VmAPI#state + module State + extend Vers::Internal::Type::Enum + + BOOTING = :booting + RUNNING = :running + PAUSED = :paused + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/vers/models/vm_commit_params.rb b/lib/vers/models/vm_commit_params.rb index 5c139c7..59dbfc6 100644 --- a/lib/vers/models/vm_commit_params.rb +++ b/lib/vers/models/vm_commit_params.rb @@ -7,7 +7,23 @@ class VmCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute keep_paused + # If true, keep VM paused after commit + # + # @return [Boolean, nil] + optional :keep_paused, Vers::Internal::Type::Boolean + + # @!attribute skip_wait_boot + # If true, return an error immediately if the VM is still booting. Default: false + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/models/vm_commit_response.rb b/lib/vers/models/vm_commit_response.rb index f6d40f6..0d3a3d3 100644 --- a/lib/vers/models/vm_commit_response.rb +++ b/lib/vers/models/vm_commit_response.rb @@ -5,23 +5,14 @@ module Models # @see Vers::Resources::Vm#commit class VmCommitResponse < Vers::Internal::Type::BaseModel # @!attribute commit_id - # The commit ID, a (v4) UUID # # @return [String] required :commit_id, String - # @!attribute host_architecture - # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + # @!method initialize(commit_id:) + # A summary of a commit, appropriate for displaying on the frontend # - # @return [String] - required :host_architecture, String - - # @!method initialize(commit_id:, host_architecture:) - # The response body for POST /api/vm/{vm_id}/commit - # - # @param commit_id [String] The commit ID, a (v4) UUID - # - # @param host_architecture [String] The host architecture, eg: "x86_64" (currently implemented with `uname -m``) + # @param commit_id [String] end end end diff --git a/lib/vers/models/vm_create_root_params.rb b/lib/vers/models/vm_create_root_params.rb index d452f0a..c28f67d 100644 --- a/lib/vers/models/vm_create_root_params.rb +++ b/lib/vers/models/vm_create_root_params.rb @@ -7,7 +7,19 @@ class VmCreateRootParams < Vers::Models::NewRootRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute wait_boot + # If true, wait for the newly-created VM to finish booting before returning. + # Default: false. + # + # @return [Boolean, nil] + optional :wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(wait_boot: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmCreateRootParams} for more details. + # + # @param wait_boot [Boolean] If true, wait for the newly-created VM to finish booting before returning. Defau + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/models/vm_delete_params.rb b/lib/vers/models/vm_delete_params.rb index dd2ab85..130115f 100644 --- a/lib/vers/models/vm_delete_params.rb +++ b/lib/vers/models/vm_delete_params.rb @@ -7,7 +7,15 @@ class VmDeleteParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute skip_wait_boot + # If true, return an error immediately if the VM is still booting. Default: false + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(skip_wait_boot: nil, request_options: {}) + # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/models/vm_delete_response.rb b/lib/vers/models/vm_delete_response.rb index 7b2d99b..2960a1c 100644 --- a/lib/vers/models/vm_delete_response.rb +++ b/lib/vers/models/vm_delete_response.rb @@ -4,15 +4,15 @@ module Vers module Models # @see Vers::Resources::Vm#delete class VmDeleteResponse < Vers::Internal::Type::BaseModel - # @!attribute deleted_ids + # @!attribute vm_id # - # @return [Array] - required :deleted_ids, Vers::Internal::Type::ArrayOf[String] + # @return [String] + required :vm_id, String - # @!method initialize(deleted_ids:) + # @!method initialize(vm_id:) # Response body for DELETE /api/vm/{vm_id} # - # @param deleted_ids [Array] + # @param vm_id [String] end end end diff --git a/lib/vers/models/vm_update_state_params.rb b/lib/vers/models/vm_update_state_params.rb index cf8a00e..11b0c39 100644 --- a/lib/vers/models/vm_update_state_params.rb +++ b/lib/vers/models/vm_update_state_params.rb @@ -7,7 +7,15 @@ class VmUpdateStateParams < Vers::Models::VmUpdateStateRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute skip_wait_boot + # If true, error immediately if the VM is not finished booting. Defaults to false + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(skip_wait_boot: nil, request_options: {}) + # @param skip_wait_boot [Boolean] If true, error immediately if the VM is not finished booting. Defaults to false + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f1fbd18..0969209 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -19,21 +19,25 @@ def list(params = {}) ) end - # @overload delete(vm_id, request_options: {}) + # @overload delete(vm_id, skip_wait_boot: nil, request_options: {}) # # @param vm_id [String] VM ID to delete # + # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Vers::Models::VmDeleteResponse] # # @see Vers::Models::VmDeleteParams def delete(vm_id, params = {}) + parsed, options = Vers::VmDeleteParams.dump_request(params) @client.request( method: :delete, path: ["vm/%1$s", vm_id], + query: parsed, model: Vers::VmDeleteResponse, - options: params[:request_options] + options: options ) end @@ -55,27 +59,38 @@ def branch(vm_id, params = {}) ) end - # @overload commit(vm_id, request_options: {}) + # @overload commit(vm_id, keep_paused: nil, skip_wait_boot: nil, request_options: {}) # # @param vm_id [String] VM ID to commit # + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Vers::Models::VmCommitResponse] # # @see Vers::Models::VmCommitParams def commit(vm_id, params = {}) + parsed, options = Vers::VmCommitParams.dump_request(params) @client.request( method: :post, path: ["vm/%1$s/commit", vm_id], - model: Vers::VmCommitResponse, - options: params[:request_options] + query: parsed, + model: Vers::Models::VmCommitResponse, + options: options ) end - # @overload create_root(vm_config:, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmCreateRootParams} for more details. # - # @param vm_config [Vers::Models::NewRootRequest::VmConfig] Struct representing configuration options common to all VMs + # @overload create_root(vm_config:, wait_boot: nil, request_options: {}) + # + # @param vm_config [Vers::Models::NewRootRequest::VmConfig] Body param: Struct representing configuration options common to all VMs + # + # @param wait_boot [Boolean] Query param: If true, wait for the newly-created VM to finish booting before ret # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -84,10 +99,12 @@ def commit(vm_id, params = {}) # @see Vers::Models::VmCreateRootParams def create_root(params) parsed, options = Vers::VmCreateRootParams.dump_request(params) + query_params = [:wait_boot] @client.request( method: :post, path: "vm/new_root", - body: parsed, + query: parsed.slice(*query_params), + body: parsed.except(*query_params), model: Vers::NewVmResponse, options: options ) @@ -130,11 +147,16 @@ def restore_from_commit(params) ) end - # @overload update_state(vm_id, state:, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmUpdateStateParams} for more details. # - # @param vm_id [String] VM ID + # @overload update_state(vm_id, state:, skip_wait_boot: nil, request_options: {}) # - # @param state [Symbol, Vers::Models::VmUpdateStateRequest::State] The requested state for the VM + # @param vm_id [String] Path param: VM ID + # + # @param state [Symbol, Vers::Models::VmUpdateStateRequest::State] Body param: The requested state for the VM + # + # @param skip_wait_boot [Boolean] Query param: If true, error immediately if the VM is not finished booting. Defau # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -143,10 +165,12 @@ def restore_from_commit(params) # @see Vers::Models::VmUpdateStateParams def update_state(vm_id, params) parsed, options = Vers::VmUpdateStateParams.dump_request(params) + query_params = [:skip_wait_boot] @client.request( method: :patch, path: ["vm/%1$s/state", vm_id], - body: parsed, + query: parsed.slice(*query_params), + body: parsed.except(*query_params), model: NilClass, options: options ) diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index eed8fb5..f5245e6 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -13,8 +13,6 @@ module Vers VmCommitParams = Vers::Models::VmCommitParams - VmCommitResponse = Vers::Models::VmCommitResponse - VmCreateRootParams = Vers::Models::VmCreateRootParams VmDeleteParams = Vers::Models::VmDeleteParams diff --git a/rbi/vers/models/vm.rbi b/rbi/vers/models/vm.rbi index 8716320..27206e4 100644 --- a/rbi/vers/models/vm.rbi +++ b/rbi/vers/models/vm.rbi @@ -11,21 +11,28 @@ module Vers sig { returns(String) } attr_accessor :owner_id + # The state of a VM + sig { returns(Vers::VmAPI::State::TaggedSymbol) } + attr_accessor :state + sig { returns(String) } attr_accessor :vm_id - sig { returns(T.nilable(String)) } - attr_accessor :parent - sig do params( created_at: Time, owner_id: String, - vm_id: String, - parent: T.nilable(String) + state: Vers::VmAPI::State::OrSymbol, + vm_id: String ).returns(T.attached_class) end - def self.new(created_at:, owner_id:, vm_id:, parent: nil) + def self.new( + created_at:, + owner_id:, + # The state of a VM + state:, + vm_id: + ) end sig do @@ -33,13 +40,29 @@ module Vers { created_at: Time, owner_id: String, - vm_id: String, - parent: T.nilable(String) + state: Vers::VmAPI::State::TaggedSymbol, + vm_id: String } ) end def to_hash end + + # The state of a VM + module State + extend Vers::Internal::Type::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, Vers::VmAPI::State) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + BOOTING = T.let(:booting, Vers::VmAPI::State::TaggedSymbol) + RUNNING = T.let(:running, Vers::VmAPI::State::TaggedSymbol) + PAUSED = T.let(:paused, Vers::VmAPI::State::TaggedSymbol) + + sig { override.returns(T::Array[Vers::VmAPI::State::TaggedSymbol]) } + def self.values + end + end end end end diff --git a/rbi/vers/models/vm_commit_params.rbi b/rbi/vers/models/vm_commit_params.rbi index abe535a..2f3a26f 100644 --- a/rbi/vers/models/vm_commit_params.rbi +++ b/rbi/vers/models/vm_commit_params.rbi @@ -9,15 +9,45 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmCommitParams, Vers::Internal::AnyHash) } + # If true, keep VM paused after commit + sig { returns(T.nilable(T::Boolean)) } + attr_reader :keep_paused + + sig { params(keep_paused: T::Boolean).void } + attr_writer :keep_paused + + # If true, return an error immediately if the VM is still booting. Default: false + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new( + # If true, keep VM paused after commit + keep_paused: nil, + # If true, return an error immediately if the VM is still booting. Default: false + skip_wait_boot: nil, + request_options: {} + ) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end def to_hash end end diff --git a/rbi/vers/models/vm_commit_response.rbi b/rbi/vers/models/vm_commit_response.rbi index 118b9fe..2002e98 100644 --- a/rbi/vers/models/vm_commit_response.rbi +++ b/rbi/vers/models/vm_commit_response.rbi @@ -4,31 +4,19 @@ module Vers module Models class VmCommitResponse < Vers::Internal::Type::BaseModel OrHash = - T.type_alias { T.any(Vers::VmCommitResponse, Vers::Internal::AnyHash) } + T.type_alias do + T.any(Vers::Models::VmCommitResponse, Vers::Internal::AnyHash) + end - # The commit ID, a (v4) UUID sig { returns(String) } attr_accessor :commit_id - # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) - sig { returns(String) } - attr_accessor :host_architecture - - # The response body for POST /api/vm/{vm_id}/commit - sig do - params(commit_id: String, host_architecture: String).returns( - T.attached_class - ) - end - def self.new( - # The commit ID, a (v4) UUID - commit_id:, - # The host architecture, eg: "x86_64" (currently implemented with `uname -m``) - host_architecture: - ) + # A summary of a commit, appropriate for displaying on the frontend + sig { params(commit_id: String).returns(T.attached_class) } + def self.new(commit_id:) end - sig { override.returns({ commit_id: String, host_architecture: String }) } + sig { override.returns({ commit_id: String }) } def to_hash end end diff --git a/rbi/vers/models/vm_create_root_params.rbi b/rbi/vers/models/vm_create_root_params.rbi index 32b4608..280af41 100644 --- a/rbi/vers/models/vm_create_root_params.rbi +++ b/rbi/vers/models/vm_create_root_params.rbi @@ -11,15 +11,33 @@ module Vers T.any(Vers::VmCreateRootParams, Vers::Internal::AnyHash) end + # If true, wait for the newly-created VM to finish booting before returning. + # Default: false. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :wait_boot + + sig { params(wait_boot: T::Boolean).void } + attr_writer :wait_boot + sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new( + # If true, wait for the newly-created VM to finish booting before returning. + # Default: false. + wait_boot: nil, + request_options: {} + ) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { wait_boot: T::Boolean, request_options: Vers::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/vers/models/vm_delete_params.rbi b/rbi/vers/models/vm_delete_params.rbi index eb45ca2..1969845 100644 --- a/rbi/vers/models/vm_delete_params.rbi +++ b/rbi/vers/models/vm_delete_params.rbi @@ -9,15 +9,31 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmDeleteParams, Vers::Internal::AnyHash) } + # If true, return an error immediately if the VM is still booting. Default: false + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new( + # If true, return an error immediately if the VM is still booting. Default: false + skip_wait_boot: nil, + request_options: {} + ) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/vers/models/vm_delete_response.rbi b/rbi/vers/models/vm_delete_response.rbi index 098427a..a58c25a 100644 --- a/rbi/vers/models/vm_delete_response.rbi +++ b/rbi/vers/models/vm_delete_response.rbi @@ -6,15 +6,15 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmDeleteResponse, Vers::Internal::AnyHash) } - sig { returns(T::Array[String]) } - attr_accessor :deleted_ids + sig { returns(String) } + attr_accessor :vm_id # Response body for DELETE /api/vm/{vm_id} - sig { params(deleted_ids: T::Array[String]).returns(T.attached_class) } - def self.new(deleted_ids:) + sig { params(vm_id: String).returns(T.attached_class) } + def self.new(vm_id:) end - sig { override.returns({ deleted_ids: T::Array[String] }) } + sig { override.returns({ vm_id: String }) } def to_hash end end diff --git a/rbi/vers/models/vm_update_state_params.rbi b/rbi/vers/models/vm_update_state_params.rbi index ff369ad..a4affee 100644 --- a/rbi/vers/models/vm_update_state_params.rbi +++ b/rbi/vers/models/vm_update_state_params.rbi @@ -11,15 +11,31 @@ module Vers T.any(Vers::VmUpdateStateParams, Vers::Internal::AnyHash) end + # If true, error immediately if the VM is not finished booting. Defaults to false + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new( + # If true, error immediately if the VM is not finished booting. Defaults to false + skip_wait_boot: nil, + request_options: {} + ) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 8acd637..2cda6dd 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -14,12 +14,15 @@ module Vers sig do params( vm_id: String, + skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash ).returns(Vers::VmDeleteResponse) end def delete( # VM ID to delete vm_id, + # If true, return an error immediately if the VM is still booting. Default: false + skip_wait_boot: nil, request_options: {} ) end @@ -40,12 +43,18 @@ module Vers sig do params( vm_id: String, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::VmCommitResponse) + ).returns(Vers::Models::VmCommitResponse) end def commit( # VM ID to commit vm_id, + # If true, keep VM paused after commit + keep_paused: nil, + # If true, return an error immediately if the VM is still booting. Default: false + skip_wait_boot: nil, request_options: {} ) end @@ -53,12 +62,16 @@ module Vers sig do params( vm_config: Vers::NewRootRequest::VmConfig::OrHash, + wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash ).returns(Vers::NewVmResponse) end def create_root( - # Struct representing configuration options common to all VMs + # Body param: Struct representing configuration options common to all VMs vm_config:, + # Query param: If true, wait for the newly-created VM to finish booting before + # returning. Default: false. + wait_boot: nil, request_options: {} ) end @@ -89,14 +102,18 @@ module Vers params( vm_id: String, state: Vers::VmUpdateStateRequest::State::OrSymbol, + skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash ).void end def update_state( - # VM ID + # Path param: VM ID vm_id, - # The requested state for the VM + # Body param: The requested state for the VM state:, + # Query param: If true, error immediately if the VM is not finished booting. + # Defaults to false + skip_wait_boot: nil, request_options: {} ) end diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5e455b8..40d4c47 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -11,8 +11,6 @@ module Vers class VmCommitParams = Vers::Models::VmCommitParams - class VmCommitResponse = Vers::Models::VmCommitResponse - class VmCreateRootParams = Vers::Models::VmCreateRootParams class VmDeleteParams = Vers::Models::VmDeleteParams diff --git a/sig/vers/models/vm.rbs b/sig/vers/models/vm.rbs index 5dc71f3..7b2c0b1 100644 --- a/sig/vers/models/vm.rbs +++ b/sig/vers/models/vm.rbs @@ -1,30 +1,47 @@ module Vers module Models type vm_api = - { created_at: Time, owner_id: String, vm_id: String, parent: String? } + { + created_at: Time, + owner_id: String, + state: Vers::Models::VmAPI::state, + vm_id: String + } class VmAPI < Vers::Internal::Type::BaseModel attr_accessor created_at: Time attr_accessor owner_id: String - attr_accessor vm_id: String + attr_accessor state: Vers::Models::VmAPI::state - attr_accessor parent: String? + attr_accessor vm_id: String def initialize: ( created_at: Time, owner_id: String, - vm_id: String, - ?parent: String? + state: Vers::Models::VmAPI::state, + vm_id: String ) -> void def to_hash: -> { created_at: Time, owner_id: String, - vm_id: String, - parent: String? + state: Vers::Models::VmAPI::state, + vm_id: String } + + type state = :booting | :running | :paused + + module State + extend Vers::Internal::Type::Enum + + BOOTING: :booting + RUNNING: :running + PAUSED: :paused + + def self?.values: -> ::Array[Vers::Models::VmAPI::state] + end end end end diff --git a/sig/vers/models/vm_commit_params.rbs b/sig/vers/models/vm_commit_params.rbs index 6d423b3..def2106 100644 --- a/sig/vers/models/vm_commit_params.rbs +++ b/sig/vers/models/vm_commit_params.rbs @@ -1,14 +1,32 @@ module Vers module Models - type vm_commit_params = { } & Vers::Internal::Type::request_parameters + type vm_commit_params = + { keep_paused: bool, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters class VmCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + attr_reader keep_paused: bool? - def to_hash: -> { request_options: Vers::RequestOptions } + def keep_paused=: (bool) -> bool + + attr_reader skip_wait_boot: bool? + + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + keep_paused: bool, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } end end end diff --git a/sig/vers/models/vm_commit_response.rbs b/sig/vers/models/vm_commit_response.rbs index 7de9fdc..e6be978 100644 --- a/sig/vers/models/vm_commit_response.rbs +++ b/sig/vers/models/vm_commit_response.rbs @@ -1,15 +1,13 @@ module Vers module Models - type vm_commit_response = { commit_id: String, host_architecture: String } + type vm_commit_response = { commit_id: String } class VmCommitResponse < Vers::Internal::Type::BaseModel attr_accessor commit_id: String - attr_accessor host_architecture: String + def initialize: (commit_id: String) -> void - def initialize: (commit_id: String, host_architecture: String) -> void - - def to_hash: -> { commit_id: String, host_architecture: String } + def to_hash: -> { commit_id: String } end end end diff --git a/sig/vers/models/vm_create_root_params.rbs b/sig/vers/models/vm_create_root_params.rbs index cbcdb4a..041070b 100644 --- a/sig/vers/models/vm_create_root_params.rbs +++ b/sig/vers/models/vm_create_root_params.rbs @@ -1,14 +1,22 @@ module Vers module Models - type vm_create_root_params = { } & Vers::Internal::Type::request_parameters + type vm_create_root_params = + { wait_boot: bool } & Vers::Internal::Type::request_parameters class VmCreateRootParams < Vers::Models::NewRootRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + def wait_boot: -> bool? - def to_hash: -> { request_options: Vers::RequestOptions } + def wait_boot=: (bool _) -> bool + + def initialize: ( + ?wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { wait_boot: bool, request_options: Vers::RequestOptions } end end end diff --git a/sig/vers/models/vm_delete_params.rbs b/sig/vers/models/vm_delete_params.rbs index 52776e9..8664541 100644 --- a/sig/vers/models/vm_delete_params.rbs +++ b/sig/vers/models/vm_delete_params.rbs @@ -1,14 +1,25 @@ module Vers module Models - type vm_delete_params = { } & Vers::Internal::Type::request_parameters + type vm_delete_params = + { skip_wait_boot: bool } & Vers::Internal::Type::request_parameters class VmDeleteParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + attr_reader skip_wait_boot: bool? - def to_hash: -> { request_options: Vers::RequestOptions } + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } end end end diff --git a/sig/vers/models/vm_delete_response.rbs b/sig/vers/models/vm_delete_response.rbs index e156c8a..bbb7bfc 100644 --- a/sig/vers/models/vm_delete_response.rbs +++ b/sig/vers/models/vm_delete_response.rbs @@ -1,13 +1,13 @@ module Vers module Models - type vm_delete_response = { deleted_ids: ::Array[String] } + type vm_delete_response = { vm_id: String } class VmDeleteResponse < Vers::Internal::Type::BaseModel - attr_accessor deleted_ids: ::Array[String] + attr_accessor vm_id: String - def initialize: (deleted_ids: ::Array[String]) -> void + def initialize: (vm_id: String) -> void - def to_hash: -> { deleted_ids: ::Array[String] } + def to_hash: -> { vm_id: String } end end end diff --git a/sig/vers/models/vm_update_state_params.rbs b/sig/vers/models/vm_update_state_params.rbs index a7cc506..ced1000 100644 --- a/sig/vers/models/vm_update_state_params.rbs +++ b/sig/vers/models/vm_update_state_params.rbs @@ -1,15 +1,25 @@ module Vers module Models type vm_update_state_params = - { } & Vers::Internal::Type::request_parameters + { skip_wait_boot: bool } & Vers::Internal::Type::request_parameters class VmUpdateStateParams < Vers::Models::VmUpdateStateRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + def skip_wait_boot: -> bool? - def to_hash: -> { request_options: Vers::RequestOptions } + def skip_wait_boot=: (bool _) -> bool + + def initialize: ( + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } end end end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 19b6723..1e51ea1 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -7,6 +7,7 @@ module Vers def delete: ( String vm_id, + ?skip_wait_boot: bool, ?request_options: Vers::request_opts ) -> Vers::VmDeleteResponse @@ -17,11 +18,14 @@ module Vers def commit: ( String vm_id, + ?keep_paused: bool, + ?skip_wait_boot: bool, ?request_options: Vers::request_opts - ) -> Vers::VmCommitResponse + ) -> Vers::Models::VmCommitResponse def create_root: ( vm_config: Vers::NewRootRequest::VmConfig, + ?wait_boot: bool, ?request_options: Vers::request_opts ) -> Vers::NewVmResponse @@ -38,6 +42,7 @@ module Vers def update_state: ( String vm_id, state: Vers::Models::VmUpdateStateRequest::state, + ?skip_wait_boot: bool, ?request_options: Vers::request_opts ) -> nil diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 618875d..50c3c73 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -24,7 +24,7 @@ def test_delete assert_pattern do response => { - deleted_ids: ^(Vers::Internal::Type::ArrayOf[String]) + vm_id: String } end end @@ -51,13 +51,12 @@ def test_commit response = @vers.vm.commit("vm_id") assert_pattern do - response => Vers::VmCommitResponse + response => Vers::Models::VmCommitResponse end assert_pattern do response => { - commit_id: String, - host_architecture: String + commit_id: String } end end From ecfd33518fef29c6222e056f78c4560ebade717f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 17 Dec 2025 04:01:20 +0000 Subject: [PATCH 053/100] fix: calling `break` out of streams should be instantaneous --- .../transport/pooled_net_requester.rb | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/vers/internal/transport/pooled_net_requester.rb b/lib/vers/internal/transport/pooled_net_requester.rb index 6e9972b..a123ae8 100644 --- a/lib/vers/internal/transport/pooled_net_requester.rb +++ b/lib/vers/internal/transport/pooled_net_requester.rb @@ -153,17 +153,19 @@ def execute(request) end self.class.calibrate_socket_timeout(conn, deadline) - conn.request(req) do |rsp| - y << [req, rsp] - break if finished - - rsp.read_body do |bytes| - y << bytes.force_encoding(Encoding::BINARY) - break if finished - - self.class.calibrate_socket_timeout(conn, deadline) + ::Kernel.catch(:jump) do + conn.request(req) do |rsp| + y << [req, rsp] + ::Kernel.throw(:jump) if finished + + rsp.read_body do |bytes| + y << bytes.force_encoding(Encoding::BINARY) + ::Kernel.throw(:jump) if finished + + self.class.calibrate_socket_timeout(conn, deadline) + end + eof = true end - eof = true end end ensure From 87443ec15fceb3e2e34bf9aaf8c78ffd7cae3528 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 19 Dec 2025 03:57:26 +0000 Subject: [PATCH 054/100] fix: issue where json.parse errors when receiving HTTP 204 with nobody --- lib/vers/internal/util.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index 2a34206..c72a09b 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -655,7 +655,8 @@ def force_charset!(content_type, text:) def decode_content(headers, stream:, suppress_error: false) case (content_type = headers["content-type"]) in Vers::Internal::Util::JSON_CONTENT - json = stream.to_a.join + return nil if (json = stream.to_a.join).empty? + begin JSON.parse(json, symbolize_names: true) rescue JSON::ParserError => e @@ -665,7 +666,11 @@ def decode_content(headers, stream:, suppress_error: false) in Vers::Internal::Util::JSONL_CONTENT lines = decode_lines(stream) chain_fused(lines) do |y| - lines.each { y << JSON.parse(_1, symbolize_names: true) } + lines.each do + next if _1.empty? + + y << JSON.parse(_1, symbolize_names: true) + end end in %r{^text/event-stream} lines = decode_lines(stream) From ae49c775e7c235dc56393aef5b41bd9d5090a916 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 03:43:39 +0000 Subject: [PATCH 055/100] chore(internal): codegen related update --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index bf01594..e227afe 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2025 Vers + Copyright 2026 Vers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 5abf2d1ff4ac07c40567bc145809d7de6c4af53f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 6 Jan 2026 23:23:22 +0000 Subject: [PATCH 056/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models.rb | 2 ++ lib/vers/models/vm_commit_response.rb | 5 +++-- lib/vers/resources/vm.rb | 2 +- rbi/vers/models.rbi | 2 ++ rbi/vers/models/vm_commit_response.rbi | 12 +++++++----- rbi/vers/resources/vm.rbi | 2 +- sig/vers/models.rbs | 2 ++ sig/vers/resources/vm.rbs | 2 +- test/vers/resources/vm_test.rb | 2 +- 10 files changed, 22 insertions(+), 13 deletions(-) diff --git a/.stats.yml b/.stats.yml index 16828a3..49c6b01 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fc1351bc8599fc6873d1be7f16ed805907442c3a50f68659b312076be10bd5d0.yml -openapi_spec_hash: 15a3d34206ed2dca0702a8a3291e1d7b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e4e806d7bbd9f29183380a2736f000b33129a9a6e020dda25f29d5aa39b4acc5.yml +openapi_spec_hash: 72b673e69b50af628d52dcdd6906b09a config_hash: ba476ff7e5c71b83e72ad86fcb01beeb diff --git a/lib/vers/models.rb b/lib/vers/models.rb index f541f90..2ca5c3e 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -51,6 +51,8 @@ module Vers VmCommitParams = Vers::Models::VmCommitParams + VmCommitResponse = Vers::Models::VmCommitResponse + VmCreateRootParams = Vers::Models::VmCreateRootParams VmDeleteParams = Vers::Models::VmDeleteParams diff --git a/lib/vers/models/vm_commit_response.rb b/lib/vers/models/vm_commit_response.rb index 0d3a3d3..feeb8a7 100644 --- a/lib/vers/models/vm_commit_response.rb +++ b/lib/vers/models/vm_commit_response.rb @@ -5,14 +5,15 @@ module Models # @see Vers::Resources::Vm#commit class VmCommitResponse < Vers::Internal::Type::BaseModel # @!attribute commit_id + # The UUID of the newly-created commit # # @return [String] required :commit_id, String # @!method initialize(commit_id:) - # A summary of a commit, appropriate for displaying on the frontend + # The response body for POST /api/vm/{vm_id}/commit # - # @param commit_id [String] + # @param commit_id [String] The UUID of the newly-created commit end end end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 0969209..e231c26 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -78,7 +78,7 @@ def commit(vm_id, params = {}) method: :post, path: ["vm/%1$s/commit", vm_id], query: parsed, - model: Vers::Models::VmCommitResponse, + model: Vers::VmCommitResponse, options: options ) end diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index f5245e6..eed8fb5 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -13,6 +13,8 @@ module Vers VmCommitParams = Vers::Models::VmCommitParams + VmCommitResponse = Vers::Models::VmCommitResponse + VmCreateRootParams = Vers::Models::VmCreateRootParams VmDeleteParams = Vers::Models::VmDeleteParams diff --git a/rbi/vers/models/vm_commit_response.rbi b/rbi/vers/models/vm_commit_response.rbi index 2002e98..c396a2e 100644 --- a/rbi/vers/models/vm_commit_response.rbi +++ b/rbi/vers/models/vm_commit_response.rbi @@ -4,16 +4,18 @@ module Vers module Models class VmCommitResponse < Vers::Internal::Type::BaseModel OrHash = - T.type_alias do - T.any(Vers::Models::VmCommitResponse, Vers::Internal::AnyHash) - end + T.type_alias { T.any(Vers::VmCommitResponse, Vers::Internal::AnyHash) } + # The UUID of the newly-created commit sig { returns(String) } attr_accessor :commit_id - # A summary of a commit, appropriate for displaying on the frontend + # The response body for POST /api/vm/{vm_id}/commit sig { params(commit_id: String).returns(T.attached_class) } - def self.new(commit_id:) + def self.new( + # The UUID of the newly-created commit + commit_id: + ) end sig { override.returns({ commit_id: String }) } diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 2cda6dd..780cec8 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -46,7 +46,7 @@ module Vers keep_paused: T::Boolean, skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::VmCommitResponse) + ).returns(Vers::VmCommitResponse) end def commit( # VM ID to commit diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 40d4c47..5e455b8 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -11,6 +11,8 @@ module Vers class VmCommitParams = Vers::Models::VmCommitParams + class VmCommitResponse = Vers::Models::VmCommitResponse + class VmCreateRootParams = Vers::Models::VmCreateRootParams class VmDeleteParams = Vers::Models::VmDeleteParams diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 1e51ea1..5cb4da0 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -21,7 +21,7 @@ module Vers ?keep_paused: bool, ?skip_wait_boot: bool, ?request_options: Vers::request_opts - ) -> Vers::Models::VmCommitResponse + ) -> Vers::VmCommitResponse def create_root: ( vm_config: Vers::NewRootRequest::VmConfig, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 50c3c73..9906f9c 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -51,7 +51,7 @@ def test_commit response = @vers.vm.commit("vm_id") assert_pattern do - response => Vers::Models::VmCommitResponse + response => Vers::VmCommitResponse end assert_pattern do From 262b442e179fe8f8b403c24ecb8d1b9a7e953a75 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 9 Jan 2026 22:57:35 +0000 Subject: [PATCH 057/100] feat(api): api update --- .stats.yml | 8 +-- README.md | 25 +++++---- lib/vers.rb | 1 + lib/vers/models.rb | 2 + lib/vers/models/vm.rb | 1 + lib/vers/models/vm_from_commit_request.rb | 2 +- lib/vers/models/vm_status_params.rb | 14 +++++ lib/vers/resources/vm.rb | 34 +++++++++--- rbi/vers/models.rbi | 2 + rbi/vers/models/vm_from_commit_request.rbi | 2 +- rbi/vers/models/vm_status_params.rbi | 25 +++++++++ rbi/vers/resources/vm.rbi | 13 +++++ sig/vers/models.rbs | 2 + sig/vers/models/vm_status_params.rbs | 14 +++++ sig/vers/resources/vm.rbs | 5 ++ test/vers/client_test.rb | 63 +++++++++++----------- test/vers/resources/vm_test.rb | 19 +++++++ 17 files changed, 172 insertions(+), 60 deletions(-) create mode 100644 lib/vers/models/vm_status_params.rb create mode 100644 rbi/vers/models/vm_status_params.rbi create mode 100644 sig/vers/models/vm_status_params.rbs diff --git a/.stats.yml b/.stats.yml index 49c6b01..61d1226 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e4e806d7bbd9f29183380a2736f000b33129a9a6e020dda25f29d5aa39b4acc5.yml -openapi_spec_hash: 72b673e69b50af628d52dcdd6906b09a -config_hash: ba476ff7e5c71b83e72ad86fcb01beeb +configured_endpoints: 9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5059939812be54fef1fa80906b3d87dbf16babf5ff0e95bc48b9a230c6ad5517.yml +openapi_spec_hash: c613a981a1c17b4359f9d1f6b807030b +config_hash: a265f9be607af5c048e2b5ba70543420 diff --git a/README.md b/README.md index c37f769..83acb0b 100644 --- a/README.md +++ b/README.md @@ -32,9 +32,9 @@ vers = Vers::Client.new( api_key: ENV["VERS_API_KEY"] # This is the default and can be omitted ) -new_vm_response = vers.vm.create_root(vm_config: {}) +vms = vers.vm.list -puts(new_vm_response.vm_id) +puts(vms) ``` ### Handling errors @@ -43,7 +43,7 @@ When the library is unable to connect to the API, or if the API returns a non-su ```ruby begin - vm = vers.vm.create_root(vm_config: {}) + vm = vers.vm.list rescue Vers::Errors::APIConnectionError => e puts("The server could not be reached") puts(e.cause) # an underlying Exception, likely raised within `net/http` @@ -86,7 +86,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.vm.create_root(vm_config: {}, request_options: {max_retries: 5}) +vers.vm.list(request_options: {max_retries: 5}) ``` ### Timeouts @@ -100,7 +100,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.vm.create_root(vm_config: {}, request_options: {timeout: 5}) +vers.vm.list(request_options: {timeout: 5}) ``` On timeout, `Vers::Errors::APITimeoutError` is raised. @@ -130,9 +130,8 @@ You can send undocumented parameters to any endpoint, and read undocumented resp Note: the `extra_` parameters of the same name overrides the documented parameters. ```ruby -new_vm_response = - vers.vm.create_root( - vm_config: {}, +vms = + vers.vm.list( request_options: { extra_query: {my_query_parameter: value}, extra_body: {my_body_parameter: value}, @@ -140,7 +139,7 @@ new_vm_response = } ) -puts(new_vm_response[:my_undocumented_property]) +puts(vms[:my_undocumented_property]) ``` #### Undocumented request params @@ -178,18 +177,18 @@ This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitio You can provide typesafe request parameters like so: ```ruby -vers.vm.create_root(vm_config: Vers::NewRootRequest::VmConfig.new) +vers.vm.list ``` Or, equivalently: ```ruby # Hashes work, but are not typesafe: -vers.vm.create_root(vm_config: {}) +vers.vm.list # You can also splat a full Params class: -params = Vers::VmCreateRootParams.new(vm_config: Vers::NewRootRequest::VmConfig.new) -vers.vm.create_root(**params) +params = Vers::VmListParams.new +vers.vm.list(**params) ``` ### Enums diff --git a/lib/vers.rb b/lib/vers.rb index df3af0d..4ff3ecd 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -69,6 +69,7 @@ require_relative "vers/models/vm_list_response" require_relative "vers/models/vm_restore_from_commit_params" require_relative "vers/models/vm_ssh_key_response" +require_relative "vers/models/vm_status_params" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" require_relative "vers/resources/vm" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 2ca5c3e..aeed936 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -69,6 +69,8 @@ module Vers VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmStatusParams = Vers::Models::VmStatusParams + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/lib/vers/models/vm.rb b/lib/vers/models/vm.rb index bbc7040..9e343e5 100644 --- a/lib/vers/models/vm.rb +++ b/lib/vers/models/vm.rb @@ -2,6 +2,7 @@ module Vers module Models + # @see Vers::Resources::Vm#status class VmAPI < Vers::Internal::Type::BaseModel # @!attribute created_at # diff --git a/lib/vers/models/vm_from_commit_request.rb b/lib/vers/models/vm_from_commit_request.rb index 8b410f2..7d429cc 100644 --- a/lib/vers/models/vm_from_commit_request.rb +++ b/lib/vers/models/vm_from_commit_request.rb @@ -9,7 +9,7 @@ class VmFromCommitRequest < Vers::Internal::Type::BaseModel required :commit_id, String # @!method initialize(commit_id:) - # Request body for POST /api/vm/from_commit + # Request body for POST /api/v1/vm/from_commit # # @param commit_id [String] end diff --git a/lib/vers/models/vm_status_params.rb b/lib/vers/models/vm_status_params.rb new file mode 100644 index 0000000..289f430 --- /dev/null +++ b/lib/vers/models/vm_status_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#status + class VmStatusParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index e231c26..2414ada 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -13,7 +13,7 @@ class Vm def list(params = {}) @client.request( method: :get, - path: "vms", + path: "api/v1/vms", model: Vers::Internal::Type::ArrayOf[Vers::VmAPI], options: params[:request_options] ) @@ -34,7 +34,7 @@ def delete(vm_id, params = {}) parsed, options = Vers::VmDeleteParams.dump_request(params) @client.request( method: :delete, - path: ["vm/%1$s", vm_id], + path: ["api/v1/vm/%1$s", vm_id], query: parsed, model: Vers::VmDeleteResponse, options: options @@ -53,7 +53,7 @@ def delete(vm_id, params = {}) def branch(vm_id, params = {}) @client.request( method: :post, - path: ["vm/%1$s/branch", vm_id], + path: ["api/v1/vm/%1$s/branch", vm_id], model: Vers::NewVmResponse, options: params[:request_options] ) @@ -76,7 +76,7 @@ def commit(vm_id, params = {}) parsed, options = Vers::VmCommitParams.dump_request(params) @client.request( method: :post, - path: ["vm/%1$s/commit", vm_id], + path: ["api/v1/vm/%1$s/commit", vm_id], query: parsed, model: Vers::VmCommitResponse, options: options @@ -102,7 +102,7 @@ def create_root(params) query_params = [:wait_boot] @client.request( method: :post, - path: "vm/new_root", + path: "api/v1/vm/new_root", query: parsed.slice(*query_params), body: parsed.except(*query_params), model: Vers::NewVmResponse, @@ -122,7 +122,7 @@ def create_root(params) def get_ssh_key(vm_id, params = {}) @client.request( method: :get, - path: ["vm/%1$s/ssh_key", vm_id], + path: ["api/v1/vm/%1$s/ssh_key", vm_id], model: Vers::VmSSHKeyResponse, options: params[:request_options] ) @@ -140,13 +140,31 @@ def restore_from_commit(params) parsed, options = Vers::VmRestoreFromCommitParams.dump_request(params) @client.request( method: :post, - path: "vm/from_commit", + path: "api/v1/vm/from_commit", body: parsed, model: Vers::NewVmResponse, options: options ) end + # @overload status(vm_id, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmAPI] + # + # @see Vers::Models::VmStatusParams + def status(vm_id, params = {}) + @client.request( + method: :get, + path: ["api/v1/vm/%1$s/status", vm_id], + model: Vers::VmAPI, + options: params[:request_options] + ) + end + # Some parameter documentations has been truncated, see # {Vers::Models::VmUpdateStateParams} for more details. # @@ -168,7 +186,7 @@ def update_state(vm_id, params) query_params = [:skip_wait_boot] @client.request( method: :patch, - path: ["vm/%1$s/state", vm_id], + path: ["api/v1/vm/%1$s/state", vm_id], query: parsed.slice(*query_params), body: parsed.except(*query_params), model: NilClass, diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index eed8fb5..e538279 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -31,6 +31,8 @@ module Vers VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + VmStatusParams = Vers::Models::VmStatusParams + VmUpdateStateParams = Vers::Models::VmUpdateStateParams VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/rbi/vers/models/vm_from_commit_request.rbi b/rbi/vers/models/vm_from_commit_request.rbi index e7c2584..fd2323c 100644 --- a/rbi/vers/models/vm_from_commit_request.rbi +++ b/rbi/vers/models/vm_from_commit_request.rbi @@ -11,7 +11,7 @@ module Vers sig { returns(String) } attr_accessor :commit_id - # Request body for POST /api/vm/from_commit + # Request body for POST /api/v1/vm/from_commit sig { params(commit_id: String).returns(T.attached_class) } def self.new(commit_id:) end diff --git a/rbi/vers/models/vm_status_params.rbi b/rbi/vers/models/vm_status_params.rbi new file mode 100644 index 0000000..5298235 --- /dev/null +++ b/rbi/vers/models/vm_status_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class VmStatusParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmStatusParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 780cec8..9d9d6a5 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -98,6 +98,19 @@ module Vers def restore_from_commit(commit_id:, request_options: {}) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmAPI) + end + def status( + # VM ID + vm_id, + request_options: {} + ) + end + sig do params( vm_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 5e455b8..2737e15 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -29,6 +29,8 @@ module Vers class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse + class VmStatusParams = Vers::Models::VmStatusParams + class VmUpdateStateParams = Vers::Models::VmUpdateStateParams class VmUpdateStateRequest = Vers::Models::VmUpdateStateRequest diff --git a/sig/vers/models/vm_status_params.rbs b/sig/vers/models/vm_status_params.rbs new file mode 100644 index 0000000..0514e35 --- /dev/null +++ b/sig/vers/models/vm_status_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type vm_status_params = { } & Vers::Internal::Type::request_parameters + + class VmStatusParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 5cb4da0..bcf846b 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -39,6 +39,11 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def status: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmAPI + def update_state: ( String vm_id, state: Vers::Models::VmUpdateStateRequest::state, diff --git a/test/vers/client_test.rb b/test/vers/client_test.rb index c667015..566f7ba 100644 --- a/test/vers/client_test.rb +++ b/test/vers/client_test.rb @@ -28,55 +28,55 @@ def after_all end def test_client_default_request_default_retry_attempts - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}) + vers.vm.list end assert_requested(:any, /./, times: 3) end def test_client_given_request_default_retry_attempts - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}) + vers.vm.list end assert_requested(:any, /./, times: 4) end def test_client_default_request_given_retry_attempts - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}, request_options: {max_retries: 3}) + vers.vm.list(request_options: {max_retries: 3}) end assert_requested(:any, /./, times: 4) end def test_client_given_request_given_retry_attempts - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}, request_options: {max_retries: 4}) + vers.vm.list(request_options: {max_retries: 4}) end assert_requested(:any, /./, times: 5) end def test_client_retry_after_seconds - stub_request(:post, "http://localhost/vm/new_root").to_return_json( + stub_request(:get, "http://localhost/api/v1/vms").to_return_json( status: 500, headers: {"retry-after" => "1.3"}, body: {} @@ -85,7 +85,7 @@ def test_client_retry_after_seconds vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}) + vers.vm.list end assert_requested(:any, /./, times: 2) @@ -93,7 +93,7 @@ def test_client_retry_after_seconds end def test_client_retry_after_date - stub_request(:post, "http://localhost/vm/new_root").to_return_json( + stub_request(:get, "http://localhost/api/v1/vms").to_return_json( status: 500, headers: {"retry-after" => (Time.now + 10).httpdate}, body: {} @@ -103,7 +103,7 @@ def test_client_retry_after_date assert_raises(Vers::Errors::InternalServerError) do Thread.current.thread_variable_set(:time_now, Time.now) - vers.vm.create_root(vm_config: {}) + vers.vm.list Thread.current.thread_variable_set(:time_now, nil) end @@ -112,7 +112,7 @@ def test_client_retry_after_date end def test_client_retry_after_ms - stub_request(:post, "http://localhost/vm/new_root").to_return_json( + stub_request(:get, "http://localhost/api/v1/vms").to_return_json( status: 500, headers: {"retry-after-ms" => "1300"}, body: {} @@ -121,7 +121,7 @@ def test_client_retry_after_ms vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}) + vers.vm.list end assert_requested(:any, /./, times: 2) @@ -129,12 +129,12 @@ def test_client_retry_after_ms end def test_retry_count_header - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}) + vers.vm.list end 3.times do @@ -143,12 +143,12 @@ def test_retry_count_header end def test_omit_retry_count_header - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"x-stainless-retry-count" => nil}}) + vers.vm.list(request_options: {extra_headers: {"x-stainless-retry-count" => nil}}) end assert_requested(:any, /./, times: 3) do @@ -157,22 +157,19 @@ def test_omit_retry_count_header end def test_overwrite_retry_count_header - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 500, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.create_root( - vm_config: {}, - request_options: {extra_headers: {"x-stainless-retry-count" => "42"}} - ) + vers.vm.list(request_options: {extra_headers: {"x-stainless-retry-count" => "42"}}) end assert_requested(:any, /./, headers: {"x-stainless-retry-count" => "42"}, times: 3) end def test_client_redirect_307 - stub_request(:post, "http://localhost/vm/new_root").to_return_json( + stub_request(:get, "http://localhost/api/v1/vms").to_return_json( status: 307, headers: {"location" => "/redirected"}, body: {} @@ -185,7 +182,7 @@ def test_client_redirect_307 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) + vers.vm.list(request_options: {extra_headers: {}}) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -201,7 +198,7 @@ def test_client_redirect_307 end def test_client_redirect_303 - stub_request(:post, "http://localhost/vm/new_root").to_return_json( + stub_request(:get, "http://localhost/api/v1/vms").to_return_json( status: 303, headers: {"location" => "/redirected"}, body: {} @@ -214,7 +211,7 @@ def test_client_redirect_303 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) + vers.vm.list(request_options: {extra_headers: {}}) end assert_requested(:get, "http://localhost/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -225,7 +222,7 @@ def test_client_redirect_303 end def test_client_redirect_auth_keep_same_origin - stub_request(:post, "http://localhost/vm/new_root").to_return_json( + stub_request(:get, "http://localhost/api/v1/vms").to_return_json( status: 307, headers: {"location" => "/redirected"}, body: {} @@ -238,7 +235,7 @@ def test_client_redirect_auth_keep_same_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) + vers.vm.list(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -252,7 +249,7 @@ def test_client_redirect_auth_keep_same_origin end def test_client_redirect_auth_strip_cross_origin - stub_request(:post, "http://localhost/vm/new_root").to_return_json( + stub_request(:get, "http://localhost/api/v1/vms").to_return_json( status: 307, headers: {"location" => "https://example.com/redirected"}, body: {} @@ -265,7 +262,7 @@ def test_client_redirect_auth_strip_cross_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) + vers.vm.list(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end assert_requested(:any, "https://example.com/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -275,11 +272,11 @@ def test_client_redirect_auth_strip_cross_origin end def test_default_headers - stub_request(:post, "http://localhost/vm/new_root").to_return_json(status: 200, body: {}) + stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 200, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") - vers.vm.create_root(vm_config: {}) + vers.vm.list assert_requested(:any, /./) do |req| headers = req.headers.transform_keys(&:downcase).fetch_values("accept", "content-type") diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 9906f9c..1866513 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -110,6 +110,25 @@ def test_restore_from_commit_required_params end end + def test_status + skip("Prism tests are disabled") + + response = @vers.vm.status("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmAPI + end + + assert_pattern do + response => { + created_at: Time, + owner_id: String, + state: Vers::VmAPI::State, + vm_id: String + } + end + end + def test_update_state_required_params skip("Prism tests are disabled") From 5ef92c7bf6da8239a508b5872e795c2d98d683fc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 9 Jan 2026 23:02:19 +0000 Subject: [PATCH 058/100] feat(api): api update --- .stats.yml | 2 +- README.md | 25 ++++++++-------- test/vers/client_test.rb | 63 +++++++++++++++++++++------------------- 3 files changed, 47 insertions(+), 43 deletions(-) diff --git a/.stats.yml b/.stats.yml index 61d1226..18a5049 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 9 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5059939812be54fef1fa80906b3d87dbf16babf5ff0e95bc48b9a230c6ad5517.yml openapi_spec_hash: c613a981a1c17b4359f9d1f6b807030b -config_hash: a265f9be607af5c048e2b5ba70543420 +config_hash: 04113bae34ac921557f097de132338a1 diff --git a/README.md b/README.md index 83acb0b..c37f769 100644 --- a/README.md +++ b/README.md @@ -32,9 +32,9 @@ vers = Vers::Client.new( api_key: ENV["VERS_API_KEY"] # This is the default and can be omitted ) -vms = vers.vm.list +new_vm_response = vers.vm.create_root(vm_config: {}) -puts(vms) +puts(new_vm_response.vm_id) ``` ### Handling errors @@ -43,7 +43,7 @@ When the library is unable to connect to the API, or if the API returns a non-su ```ruby begin - vm = vers.vm.list + vm = vers.vm.create_root(vm_config: {}) rescue Vers::Errors::APIConnectionError => e puts("The server could not be reached") puts(e.cause) # an underlying Exception, likely raised within `net/http` @@ -86,7 +86,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.vm.list(request_options: {max_retries: 5}) +vers.vm.create_root(vm_config: {}, request_options: {max_retries: 5}) ``` ### Timeouts @@ -100,7 +100,7 @@ vers = Vers::Client.new( ) # Or, configure per-request: -vers.vm.list(request_options: {timeout: 5}) +vers.vm.create_root(vm_config: {}, request_options: {timeout: 5}) ``` On timeout, `Vers::Errors::APITimeoutError` is raised. @@ -130,8 +130,9 @@ You can send undocumented parameters to any endpoint, and read undocumented resp Note: the `extra_` parameters of the same name overrides the documented parameters. ```ruby -vms = - vers.vm.list( +new_vm_response = + vers.vm.create_root( + vm_config: {}, request_options: { extra_query: {my_query_parameter: value}, extra_body: {my_body_parameter: value}, @@ -139,7 +140,7 @@ vms = } ) -puts(vms[:my_undocumented_property]) +puts(new_vm_response[:my_undocumented_property]) ``` #### Undocumented request params @@ -177,18 +178,18 @@ This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitio You can provide typesafe request parameters like so: ```ruby -vers.vm.list +vers.vm.create_root(vm_config: Vers::NewRootRequest::VmConfig.new) ``` Or, equivalently: ```ruby # Hashes work, but are not typesafe: -vers.vm.list +vers.vm.create_root(vm_config: {}) # You can also splat a full Params class: -params = Vers::VmListParams.new -vers.vm.list(**params) +params = Vers::VmCreateRootParams.new(vm_config: Vers::NewRootRequest::VmConfig.new) +vers.vm.create_root(**params) ``` ### Enums diff --git a/test/vers/client_test.rb b/test/vers/client_test.rb index 566f7ba..b192390 100644 --- a/test/vers/client_test.rb +++ b/test/vers/client_test.rb @@ -28,55 +28,55 @@ def after_all end def test_client_default_request_default_retry_attempts - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 3) end def test_client_given_request_default_retry_attempts - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 4) end def test_client_default_request_given_retry_attempts - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list(request_options: {max_retries: 3}) + vers.vm.create_root(vm_config: {}, request_options: {max_retries: 3}) end assert_requested(:any, /./, times: 4) end def test_client_given_request_given_retry_attempts - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list(request_options: {max_retries: 4}) + vers.vm.create_root(vm_config: {}, request_options: {max_retries: 4}) end assert_requested(:any, /./, times: 5) end def test_client_retry_after_seconds - stub_request(:get, "http://localhost/api/v1/vms").to_return_json( + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 500, headers: {"retry-after" => "1.3"}, body: {} @@ -85,7 +85,7 @@ def test_client_retry_after_seconds vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 2) @@ -93,7 +93,7 @@ def test_client_retry_after_seconds end def test_client_retry_after_date - stub_request(:get, "http://localhost/api/v1/vms").to_return_json( + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 500, headers: {"retry-after" => (Time.now + 10).httpdate}, body: {} @@ -103,7 +103,7 @@ def test_client_retry_after_date assert_raises(Vers::Errors::InternalServerError) do Thread.current.thread_variable_set(:time_now, Time.now) - vers.vm.list + vers.vm.create_root(vm_config: {}) Thread.current.thread_variable_set(:time_now, nil) end @@ -112,7 +112,7 @@ def test_client_retry_after_date end def test_client_retry_after_ms - stub_request(:get, "http://localhost/api/v1/vms").to_return_json( + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 500, headers: {"retry-after-ms" => "1300"}, body: {} @@ -121,7 +121,7 @@ def test_client_retry_after_ms vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list + vers.vm.create_root(vm_config: {}) end assert_requested(:any, /./, times: 2) @@ -129,12 +129,12 @@ def test_client_retry_after_ms end def test_retry_count_header - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list + vers.vm.create_root(vm_config: {}) end 3.times do @@ -143,12 +143,12 @@ def test_retry_count_header end def test_omit_retry_count_header - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list(request_options: {extra_headers: {"x-stainless-retry-count" => nil}}) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"x-stainless-retry-count" => nil}}) end assert_requested(:any, /./, times: 3) do @@ -157,19 +157,22 @@ def test_omit_retry_count_header end def test_overwrite_retry_count_header - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 500, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 500, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::InternalServerError) do - vers.vm.list(request_options: {extra_headers: {"x-stainless-retry-count" => "42"}}) + vers.vm.create_root( + vm_config: {}, + request_options: {extra_headers: {"x-stainless-retry-count" => "42"}} + ) end assert_requested(:any, /./, headers: {"x-stainless-retry-count" => "42"}, times: 3) end def test_client_redirect_307 - stub_request(:get, "http://localhost/api/v1/vms").to_return_json( + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 307, headers: {"location" => "/redirected"}, body: {} @@ -182,7 +185,7 @@ def test_client_redirect_307 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.list(request_options: {extra_headers: {}}) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -198,7 +201,7 @@ def test_client_redirect_307 end def test_client_redirect_303 - stub_request(:get, "http://localhost/api/v1/vms").to_return_json( + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 303, headers: {"location" => "/redirected"}, body: {} @@ -211,7 +214,7 @@ def test_client_redirect_303 vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.list(request_options: {extra_headers: {}}) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {}}) end assert_requested(:get, "http://localhost/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -222,7 +225,7 @@ def test_client_redirect_303 end def test_client_redirect_auth_keep_same_origin - stub_request(:get, "http://localhost/api/v1/vms").to_return_json( + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 307, headers: {"location" => "/redirected"}, body: {} @@ -235,7 +238,7 @@ def test_client_redirect_auth_keep_same_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.list(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first @@ -249,7 +252,7 @@ def test_client_redirect_auth_keep_same_origin end def test_client_redirect_auth_strip_cross_origin - stub_request(:get, "http://localhost/api/v1/vms").to_return_json( + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 307, headers: {"location" => "https://example.com/redirected"}, body: {} @@ -262,7 +265,7 @@ def test_client_redirect_auth_strip_cross_origin vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Vers::Errors::APIConnectionError) do - vers.vm.list(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) + vers.vm.create_root(vm_config: {}, request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end assert_requested(:any, "https://example.com/redirected", times: Vers::Client::MAX_REDIRECTS) do @@ -272,11 +275,11 @@ def test_client_redirect_auth_strip_cross_origin end def test_default_headers - stub_request(:get, "http://localhost/api/v1/vms").to_return_json(status: 200, body: {}) + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json(status: 200, body: {}) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key") - vers.vm.list + vers.vm.create_root(vm_config: {}) assert_requested(:any, /./) do |req| headers = req.headers.transform_keys(&:downcase).fetch_values("accept", "content-type") From 21a953a1d3e5276073d7a1efb89f3bd5cad92ed9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 10 Jan 2026 03:57:40 +0000 Subject: [PATCH 059/100] chore: move `cgi` into dependencies for ruby 4 --- Gemfile.lock | 2 ++ vers.gemspec | 1 + 2 files changed, 3 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index 997f3a5..42cfe66 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,6 +12,7 @@ PATH remote: . specs: vers (0.1.0.pre.alpha.2) + cgi connection_pool GEM @@ -42,6 +43,7 @@ GEM base64 (0.3.0) benchmark (0.5.0) bigdecimal (3.3.1) + cgi (0.5.1) concurrent-ruby (1.3.5) connection_pool (2.5.4) console (1.34.2) diff --git a/vers.gemspec b/vers.gemspec index 914e1d6..8c0161b 100644 --- a/vers.gemspec +++ b/vers.gemspec @@ -24,5 +24,6 @@ Gem::Specification.new do |s| ".ignore" ] s.extra_rdoc_files = ["README.md"] + s.add_dependency "cgi" s.add_dependency "connection_pool" end From f663a6d59595989bfab82876c04e9827b5500354 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 16:24:23 +0000 Subject: [PATCH 060/100] feat(api): api update --- .stats.yml | 8 +-- lib/vers.rb | 4 ++ lib/vers/models.rb | 4 ++ lib/vers/models/vm_branch_by_commit_params.rb | 22 ++++++ .../models/vm_branch_by_commit_response.rb | 16 +++++ lib/vers/models/vm_branch_by_vm_params.rb | 38 ++++++++++ lib/vers/models/vm_branch_by_vm_response.rb | 16 +++++ lib/vers/models/vm_branch_params.rb | 30 +++++++- lib/vers/resources/vm.rb | 69 +++++++++++++++++-- rbi/vers/models.rbi | 4 ++ .../models/vm_branch_by_commit_params.rbi | 43 ++++++++++++ .../models/vm_branch_by_commit_response.rbi | 27 ++++++++ rbi/vers/models/vm_branch_by_vm_params.rbi | 68 ++++++++++++++++++ rbi/vers/models/vm_branch_by_vm_response.rbi | 27 ++++++++ rbi/vers/models/vm_branch_params.rbi | 53 ++++++++++++-- rbi/vers/resources/vm.rbi | 52 +++++++++++++- sig/vers/models.rbs | 4 ++ .../models/vm_branch_by_commit_params.rbs | 22 ++++++ .../models/vm_branch_by_commit_response.rbs | 13 ++++ sig/vers/models/vm_branch_by_vm_params.rbs | 38 ++++++++++ sig/vers/models/vm_branch_by_vm_response.rbs | 13 ++++ sig/vers/models/vm_branch_params.rbs | 30 +++++++- sig/vers/resources/vm.rbs | 19 ++++- test/vers/resources/vm_test.rb | 34 ++++++++- 24 files changed, 632 insertions(+), 22 deletions(-) create mode 100644 lib/vers/models/vm_branch_by_commit_params.rb create mode 100644 lib/vers/models/vm_branch_by_commit_response.rb create mode 100644 lib/vers/models/vm_branch_by_vm_params.rb create mode 100644 lib/vers/models/vm_branch_by_vm_response.rb create mode 100644 rbi/vers/models/vm_branch_by_commit_params.rbi create mode 100644 rbi/vers/models/vm_branch_by_commit_response.rbi create mode 100644 rbi/vers/models/vm_branch_by_vm_params.rbi create mode 100644 rbi/vers/models/vm_branch_by_vm_response.rbi create mode 100644 sig/vers/models/vm_branch_by_commit_params.rbs create mode 100644 sig/vers/models/vm_branch_by_commit_response.rbs create mode 100644 sig/vers/models/vm_branch_by_vm_params.rbs create mode 100644 sig/vers/models/vm_branch_by_vm_response.rbs diff --git a/.stats.yml b/.stats.yml index 18a5049..79e92b9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 9 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5059939812be54fef1fa80906b3d87dbf16babf5ff0e95bc48b9a230c6ad5517.yml -openapi_spec_hash: c613a981a1c17b4359f9d1f6b807030b -config_hash: 04113bae34ac921557f097de132338a1 +configured_endpoints: 11 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-d766c2e74a589557e18e00d3b95982a0d15b6708077beae922b31b855c31e270.yml +openapi_spec_hash: 8fe3ce53d0fd5f8bd5e0bd2ac7b537e2 +config_hash: f92a0208e18402af1b4baf09994da3e8 diff --git a/lib/vers.rb b/lib/vers.rb index 4ff3ecd..fde33a5 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -58,6 +58,10 @@ require_relative "vers/models/error_response" require_relative "vers/models/new_vm_response" require_relative "vers/models/vm" +require_relative "vers/models/vm_branch_by_commit_params" +require_relative "vers/models/vm_branch_by_commit_response" +require_relative "vers/models/vm_branch_by_vm_params" +require_relative "vers/models/vm_branch_by_vm_response" require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" require_relative "vers/models/vm_commit_response" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index aeed936..ed5d500 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -47,6 +47,10 @@ module Vers VmAPI = Vers::Models::VmAPI + VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + VmBranchByVmParams = Vers::Models::VmBranchByVmParams + VmBranchParams = Vers::Models::VmBranchParams VmCommitParams = Vers::Models::VmCommitParams diff --git a/lib/vers/models/vm_branch_by_commit_params.rb b/lib/vers/models/vm_branch_by_commit_params.rb new file mode 100644 index 0000000..bf4846c --- /dev/null +++ b/lib/vers/models/vm_branch_by_commit_params.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_commit + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!method initialize(count: nil, request_options: {}) + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_branch_by_commit_response.rb b/lib/vers/models/vm_branch_by_commit_response.rb new file mode 100644 index 0000000..ed1f5ca --- /dev/null +++ b/lib/vers/models/vm_branch_by_commit_response.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_commit + class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel + # @!attribute vms + # + # @return [Array] + required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } + + # @!method initialize(vms:) + # @param vms [Array] + end + end +end diff --git a/lib/vers/models/vm_branch_by_vm_params.rb b/lib/vers/models/vm_branch_by_vm_params.rb new file mode 100644 index 0000000..857fe84 --- /dev/null +++ b/lib/vers/models/vm_branch_by_vm_params.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_vm + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!attribute keep_paused + # If true, keep VM paused after commit + # + # @return [Boolean, nil] + optional :keep_paused, Vers::Internal::Type::Boolean + + # @!attribute skip_wait_boot + # If true, immediately return an error if VM is booting instead of waiting + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_branch_by_vm_response.rb b/lib/vers/models/vm_branch_by_vm_response.rb new file mode 100644 index 0000000..78dc415 --- /dev/null +++ b/lib/vers/models/vm_branch_by_vm_response.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_vm + class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + # @!attribute vms + # + # @return [Array] + required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } + + # @!method initialize(vms:) + # @param vms [Array] + end + end +end diff --git a/lib/vers/models/vm_branch_params.rb b/lib/vers/models/vm_branch_params.rb index cfba905..b5fdb4f 100644 --- a/lib/vers/models/vm_branch_params.rb +++ b/lib/vers/models/vm_branch_params.rb @@ -7,7 +7,35 @@ class VmBranchParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!attribute keep_paused + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @return [Boolean, nil] + optional :keep_paused, Vers::Internal::Type::Boolean + + # @!attribute skip_wait_boot + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmBranchParams} for more details. + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 2414ada..f21bc41 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -41,21 +41,80 @@ def delete(vm_id, params = {}) ) end - # @overload branch(vm_id, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmBranchParams} for more details. + # + # @overload branch(vm_or_commit_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # + # @param vm_or_commit_id [String] Parent VM or commit ID + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. # - # @param vm_id [String] Parent VM ID + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Vers::Models::NewVmResponse] # # @see Vers::Models::VmBranchParams - def branch(vm_id, params = {}) + def branch(vm_or_commit_id, params = {}) + parsed, options = Vers::VmBranchParams.dump_request(params) @client.request( method: :post, - path: ["api/v1/vm/%1$s/branch", vm_id], + path: ["api/v1/vm/%1$s/branch", vm_or_commit_id], + query: parsed, model: Vers::NewVmResponse, - options: params[:request_options] + options: options + ) + end + + # @overload branch_by_commit(commit_id, count: nil, request_options: {}) + # + # @param commit_id [String] The commit id to branch off + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmBranchByCommitResponse] + # + # @see Vers::Models::VmBranchByCommitParams + def branch_by_commit(commit_id, params = {}) + parsed, options = Vers::VmBranchByCommitParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/branch/by_commit/%1$s", commit_id], + query: parsed, + model: Vers::Models::VmBranchByCommitResponse, + options: options + ) + end + + # @overload branch_by_vm(vm_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # + # @param vm_id [String] VM to commit and then branch off of + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmBranchByVmResponse] + # + # @see Vers::Models::VmBranchByVmParams + def branch_by_vm(vm_id, params = {}) + parsed, options = Vers::VmBranchByVmParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/branch/by_vm/%1$s", vm_id], + query: parsed, + model: Vers::Models::VmBranchByVmResponse, + options: options ) end diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index e538279..c01e1b9 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -9,6 +9,10 @@ module Vers VmAPI = Vers::Models::VmAPI + VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + VmBranchByVmParams = Vers::Models::VmBranchByVmParams + VmBranchParams = Vers::Models::VmBranchParams VmCommitParams = Vers::Models::VmCommitParams diff --git a/rbi/vers/models/vm_branch_by_commit_params.rbi b/rbi/vers/models/vm_branch_by_commit_params.rbi new file mode 100644 index 0000000..707bac2 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_commit_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmBranchByCommitParams, Vers::Internal::AnyHash) + end + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + sig do + params( + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + + sig do + override.returns( + { count: Integer, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_commit_response.rbi b/rbi/vers/models/vm_branch_by_commit_response.rbi new file mode 100644 index 0000000..e9976fb --- /dev/null +++ b/rbi/vers/models/vm_branch_by_commit_response.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Models::VmBranchByCommitResponse, Vers::Internal::AnyHash) + end + + sig { returns(T::Array[Vers::NewVmResponse]) } + attr_accessor :vms + + sig do + params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( + T.attached_class + ) + end + def self.new(vms:) + end + + sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_vm_params.rbi b/rbi/vers/models/vm_branch_by_vm_params.rbi new file mode 100644 index 0000000..bc43cd5 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_vm_params.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Vers + module Models + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmBranchByVmParams, Vers::Internal::AnyHash) + end + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + # If true, keep VM paused after commit + sig { returns(T.nilable(T::Boolean)) } + attr_reader :keep_paused + + sig { params(keep_paused: T::Boolean).void } + attr_writer :keep_paused + + # If true, immediately return an error if VM is booting instead of waiting + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + + sig do + params( + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_vm_response.rbi b/rbi/vers/models/vm_branch_by_vm_response.rbi new file mode 100644 index 0000000..2877332 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_vm_response.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Models::VmBranchByVmResponse, Vers::Internal::AnyHash) + end + + sig { returns(T::Array[Vers::NewVmResponse]) } + attr_accessor :vms + + sig do + params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( + T.attached_class + ) + end + def self.new(vms:) + end + + sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_params.rbi b/rbi/vers/models/vm_branch_params.rbi index aa9189e..082b029 100644 --- a/rbi/vers/models/vm_branch_params.rbi +++ b/rbi/vers/models/vm_branch_params.rbi @@ -9,15 +9,58 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmBranchParams, Vers::Internal::AnyHash) } + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :keep_paused + + sig { params(keep_paused: T::Boolean).void } + attr_writer :keep_paused + + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + skip_wait_boot: nil, + request_options: {} + ) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end def to_hash end end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 9d9d6a5..176479d 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -29,13 +29,61 @@ module Vers sig do params( - vm_id: String, + vm_or_commit_id: String, + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash ).returns(Vers::NewVmResponse) end def branch( - # Parent VM ID + # Parent VM or commit ID + vm_or_commit_id, + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + params( + commit_id: String, + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Models::VmBranchByCommitResponse) + end + def branch_by_commit( + # The commit id to branch off + commit_id, + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Models::VmBranchByVmResponse) + end + def branch_by_vm( + # VM to commit and then branch off of vm_id, + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting + skip_wait_boot: nil, request_options: {} ) end diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 2737e15..ddb066b 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -7,6 +7,10 @@ module Vers class VmAPI = Vers::Models::VmAPI + class VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + class VmBranchByVmParams = Vers::Models::VmBranchByVmParams + class VmBranchParams = Vers::Models::VmBranchParams class VmCommitParams = Vers::Models::VmCommitParams diff --git a/sig/vers/models/vm_branch_by_commit_params.rbs b/sig/vers/models/vm_branch_by_commit_params.rbs new file mode 100644 index 0000000..473236a --- /dev/null +++ b/sig/vers/models/vm_branch_by_commit_params.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type vm_branch_by_commit_params = + { count: Integer } & Vers::Internal::Type::request_parameters + + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + def initialize: ( + ?count: Integer, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { count: Integer, request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_branch_by_commit_response.rbs b/sig/vers/models/vm_branch_by_commit_response.rbs new file mode 100644 index 0000000..23339cd --- /dev/null +++ b/sig/vers/models/vm_branch_by_commit_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type vm_branch_by_commit_response = { vms: ::Array[Vers::NewVmResponse] } + + class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel + attr_accessor vms: ::Array[Vers::NewVmResponse] + + def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void + + def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } + end + end +end diff --git a/sig/vers/models/vm_branch_by_vm_params.rbs b/sig/vers/models/vm_branch_by_vm_params.rbs new file mode 100644 index 0000000..14e8050 --- /dev/null +++ b/sig/vers/models/vm_branch_by_vm_params.rbs @@ -0,0 +1,38 @@ +module Vers + module Models + type vm_branch_by_vm_params = + { count: Integer, keep_paused: bool, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters + + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + attr_reader keep_paused: bool? + + def keep_paused=: (bool) -> bool + + attr_reader skip_wait_boot: bool? + + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + count: Integer, + keep_paused: bool, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/vm_branch_by_vm_response.rbs b/sig/vers/models/vm_branch_by_vm_response.rbs new file mode 100644 index 0000000..d66eebd --- /dev/null +++ b/sig/vers/models/vm_branch_by_vm_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type vm_branch_by_vm_response = { vms: ::Array[Vers::NewVmResponse] } + + class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + attr_accessor vms: ::Array[Vers::NewVmResponse] + + def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void + + def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } + end + end +end diff --git a/sig/vers/models/vm_branch_params.rbs b/sig/vers/models/vm_branch_params.rbs index f9fb8d0..93a0791 100644 --- a/sig/vers/models/vm_branch_params.rbs +++ b/sig/vers/models/vm_branch_params.rbs @@ -1,14 +1,38 @@ module Vers module Models - type vm_branch_params = { } & Vers::Internal::Type::request_parameters + type vm_branch_params = + { count: Integer, keep_paused: bool, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters class VmBranchParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + attr_reader count: Integer? - def to_hash: -> { request_options: Vers::RequestOptions } + def count=: (Integer) -> Integer + + attr_reader keep_paused: bool? + + def keep_paused=: (bool) -> bool + + attr_reader skip_wait_boot: bool? + + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + count: Integer, + keep_paused: bool, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } end end end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index bcf846b..10234d5 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -12,10 +12,27 @@ module Vers ) -> Vers::VmDeleteResponse def branch: ( - String vm_id, + String vm_or_commit_id, + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def branch_by_commit: ( + String commit_id, + ?count: Integer, + ?request_options: Vers::request_opts + ) -> Vers::Models::VmBranchByCommitResponse + + def branch_by_vm: ( + String vm_id, + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> Vers::Models::VmBranchByVmResponse + def commit: ( String vm_id, ?keep_paused: bool, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 1866513..cf8ffa3 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -32,7 +32,7 @@ def test_delete def test_branch skip("Prism tests are disabled") - response = @vers.vm.branch("vm_id") + response = @vers.vm.branch("vm_or_commit_id") assert_pattern do response => Vers::NewVmResponse @@ -45,6 +45,38 @@ def test_branch end end + def test_branch_by_commit + skip("Prism tests are disabled") + + response = @vers.vm.branch_by_commit("commit_id") + + assert_pattern do + response => Vers::Models::VmBranchByCommitResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + + def test_branch_by_vm + skip("Prism tests are disabled") + + response = @vers.vm.branch_by_vm("vm_id") + + assert_pattern do + response => Vers::Models::VmBranchByVmResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + def test_commit skip("Prism tests are disabled") From 4926510abaf5fe7d1d3d195331604758298f0b04 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 17:37:17 +0000 Subject: [PATCH 061/100] feat(api): api update --- .stats.yml | 4 +- lib/vers.rb | 5 -- lib/vers/models.rb | 6 -- lib/vers/models/new_vm_response.rb | 2 +- lib/vers/models/vm_branch_by_commit_params.rb | 22 ------ .../models/vm_branch_by_commit_response.rb | 16 ---- lib/vers/models/vm_branch_by_vm_params.rb | 38 --------- lib/vers/models/vm_branch_by_vm_response.rb | 16 ---- lib/vers/models/vm_branch_params.rb | 42 ---------- lib/vers/resources/vm.rb | 77 ------------------- rbi/vers/models.rbi | 6 -- .../models/vm_branch_by_commit_params.rbi | 43 ----------- .../models/vm_branch_by_commit_response.rbi | 27 ------- rbi/vers/models/vm_branch_by_vm_params.rbi | 68 ---------------- rbi/vers/models/vm_branch_by_vm_response.rbi | 27 ------- rbi/vers/models/vm_branch_params.rbi | 68 ---------------- rbi/vers/resources/vm.rbi | 61 --------------- sig/vers/models.rbs | 6 -- .../models/vm_branch_by_commit_params.rbs | 22 ------ .../models/vm_branch_by_commit_response.rbs | 13 ---- sig/vers/models/vm_branch_by_vm_params.rbs | 38 --------- sig/vers/models/vm_branch_by_vm_response.rbs | 13 ---- sig/vers/models/vm_branch_params.rbs | 38 --------- sig/vers/resources/vm.rbs | 22 ------ test/vers/resources/vm_test.rb | 48 ------------ 25 files changed, 3 insertions(+), 725 deletions(-) delete mode 100644 lib/vers/models/vm_branch_by_commit_params.rb delete mode 100644 lib/vers/models/vm_branch_by_commit_response.rb delete mode 100644 lib/vers/models/vm_branch_by_vm_params.rb delete mode 100644 lib/vers/models/vm_branch_by_vm_response.rb delete mode 100644 lib/vers/models/vm_branch_params.rb delete mode 100644 rbi/vers/models/vm_branch_by_commit_params.rbi delete mode 100644 rbi/vers/models/vm_branch_by_commit_response.rbi delete mode 100644 rbi/vers/models/vm_branch_by_vm_params.rbi delete mode 100644 rbi/vers/models/vm_branch_by_vm_response.rbi delete mode 100644 rbi/vers/models/vm_branch_params.rbi delete mode 100644 sig/vers/models/vm_branch_by_commit_params.rbs delete mode 100644 sig/vers/models/vm_branch_by_commit_response.rbs delete mode 100644 sig/vers/models/vm_branch_by_vm_params.rbs delete mode 100644 sig/vers/models/vm_branch_by_vm_response.rbs delete mode 100644 sig/vers/models/vm_branch_params.rbs diff --git a/.stats.yml b/.stats.yml index 79e92b9..a79d4eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 11 +configured_endpoints: 8 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-d766c2e74a589557e18e00d3b95982a0d15b6708077beae922b31b855c31e270.yml openapi_spec_hash: 8fe3ce53d0fd5f8bd5e0bd2ac7b537e2 -config_hash: f92a0208e18402af1b4baf09994da3e8 +config_hash: 04113bae34ac921557f097de132338a1 diff --git a/lib/vers.rb b/lib/vers.rb index fde33a5..f4d34fc 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -58,11 +58,6 @@ require_relative "vers/models/error_response" require_relative "vers/models/new_vm_response" require_relative "vers/models/vm" -require_relative "vers/models/vm_branch_by_commit_params" -require_relative "vers/models/vm_branch_by_commit_response" -require_relative "vers/models/vm_branch_by_vm_params" -require_relative "vers/models/vm_branch_by_vm_response" -require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" require_relative "vers/models/vm_commit_response" require_relative "vers/models/vm_create_root_params" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index ed5d500..74d5cb7 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -47,12 +47,6 @@ module Vers VmAPI = Vers::Models::VmAPI - VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams - - VmBranchByVmParams = Vers::Models::VmBranchByVmParams - - VmBranchParams = Vers::Models::VmBranchParams - VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/lib/vers/models/new_vm_response.rb b/lib/vers/models/new_vm_response.rb index 45b211a..d5adccb 100644 --- a/lib/vers/models/new_vm_response.rb +++ b/lib/vers/models/new_vm_response.rb @@ -2,7 +2,7 @@ module Vers module Models - # @see Vers::Resources::Vm#branch + # @see Vers::Resources::Vm#create_root class NewVmResponse < Vers::Internal::Type::BaseModel # @!attribute vm_id # diff --git a/lib/vers/models/vm_branch_by_commit_params.rb b/lib/vers/models/vm_branch_by_commit_params.rb deleted file mode 100644 index bf4846c..0000000 --- a/lib/vers/models/vm_branch_by_commit_params.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch_by_commit - class VmBranchByCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute count - # Number of VMs to branch (optional; default 1) - # - # @return [Integer, nil] - optional :count, Integer - - # @!method initialize(count: nil, request_options: {}) - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_branch_by_commit_response.rb b/lib/vers/models/vm_branch_by_commit_response.rb deleted file mode 100644 index ed1f5ca..0000000 --- a/lib/vers/models/vm_branch_by_commit_response.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch_by_commit - class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel - # @!attribute vms - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } - - # @!method initialize(vms:) - # @param vms [Array] - end - end -end diff --git a/lib/vers/models/vm_branch_by_vm_params.rb b/lib/vers/models/vm_branch_by_vm_params.rb deleted file mode 100644 index 857fe84..0000000 --- a/lib/vers/models/vm_branch_by_vm_params.rb +++ /dev/null @@ -1,38 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch_by_vm - class VmBranchByVmParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute count - # Number of VMs to branch (optional; default 1) - # - # @return [Integer, nil] - optional :count, Integer - - # @!attribute keep_paused - # If true, keep VM paused after commit - # - # @return [Boolean, nil] - optional :keep_paused, Vers::Internal::Type::Boolean - - # @!attribute skip_wait_boot - # If true, immediately return an error if VM is booting instead of waiting - # - # @return [Boolean, nil] - optional :skip_wait_boot, Vers::Internal::Type::Boolean - - # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_branch_by_vm_response.rb b/lib/vers/models/vm_branch_by_vm_response.rb deleted file mode 100644 index 78dc415..0000000 --- a/lib/vers/models/vm_branch_by_vm_response.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch_by_vm - class VmBranchByVmResponse < Vers::Internal::Type::BaseModel - # @!attribute vms - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } - - # @!method initialize(vms:) - # @param vms [Array] - end - end -end diff --git a/lib/vers/models/vm_branch_params.rb b/lib/vers/models/vm_branch_params.rb deleted file mode 100644 index b5fdb4f..0000000 --- a/lib/vers/models/vm_branch_params.rb +++ /dev/null @@ -1,42 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute count - # Number of VMs to branch (optional; default 1) - # - # @return [Integer, nil] - optional :count, Integer - - # @!attribute keep_paused - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - # - # @return [Boolean, nil] - optional :keep_paused, Vers::Internal::Type::Boolean - - # @!attribute skip_wait_boot - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - # - # @return [Boolean, nil] - optional :skip_wait_boot, Vers::Internal::Type::Boolean - - # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmBranchParams} for more details. - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f21bc41..1352add 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -41,83 +41,6 @@ def delete(vm_id, params = {}) ) end - # Some parameter documentations has been truncated, see - # {Vers::Models::VmBranchParams} for more details. - # - # @overload branch(vm_or_commit_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # - # @param vm_or_commit_id [String] Parent VM or commit ID - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::NewVmResponse] - # - # @see Vers::Models::VmBranchParams - def branch(vm_or_commit_id, params = {}) - parsed, options = Vers::VmBranchParams.dump_request(params) - @client.request( - method: :post, - path: ["api/v1/vm/%1$s/branch", vm_or_commit_id], - query: parsed, - model: Vers::NewVmResponse, - options: options - ) - end - - # @overload branch_by_commit(commit_id, count: nil, request_options: {}) - # - # @param commit_id [String] The commit id to branch off - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::VmBranchByCommitResponse] - # - # @see Vers::Models::VmBranchByCommitParams - def branch_by_commit(commit_id, params = {}) - parsed, options = Vers::VmBranchByCommitParams.dump_request(params) - @client.request( - method: :post, - path: ["api/v1/vm/branch/by_commit/%1$s", commit_id], - query: parsed, - model: Vers::Models::VmBranchByCommitResponse, - options: options - ) - end - - # @overload branch_by_vm(vm_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # - # @param vm_id [String] VM to commit and then branch off of - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::VmBranchByVmResponse] - # - # @see Vers::Models::VmBranchByVmParams - def branch_by_vm(vm_id, params = {}) - parsed, options = Vers::VmBranchByVmParams.dump_request(params) - @client.request( - method: :post, - path: ["api/v1/vm/branch/by_vm/%1$s", vm_id], - query: parsed, - model: Vers::Models::VmBranchByVmResponse, - options: options - ) - end - # @overload commit(vm_id, keep_paused: nil, skip_wait_boot: nil, request_options: {}) # # @param vm_id [String] VM ID to commit diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index c01e1b9..a37ffc8 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -9,12 +9,6 @@ module Vers VmAPI = Vers::Models::VmAPI - VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams - - VmBranchByVmParams = Vers::Models::VmBranchByVmParams - - VmBranchParams = Vers::Models::VmBranchParams - VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/rbi/vers/models/vm_branch_by_commit_params.rbi b/rbi/vers/models/vm_branch_by_commit_params.rbi deleted file mode 100644 index 707bac2..0000000 --- a/rbi/vers/models/vm_branch_by_commit_params.rbi +++ /dev/null @@ -1,43 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchByCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::VmBranchByCommitParams, Vers::Internal::AnyHash) - end - - # Number of VMs to branch (optional; default 1) - sig { returns(T.nilable(Integer)) } - attr_reader :count - - sig { params(count: Integer).void } - attr_writer :count - - sig do - params( - count: Integer, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Number of VMs to branch (optional; default 1) - count: nil, - request_options: {} - ) - end - - sig do - override.returns( - { count: Integer, request_options: Vers::RequestOptions } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_branch_by_commit_response.rbi b/rbi/vers/models/vm_branch_by_commit_response.rbi deleted file mode 100644 index e9976fb..0000000 --- a/rbi/vers/models/vm_branch_by_commit_response.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Models::VmBranchByCommitResponse, Vers::Internal::AnyHash) - end - - sig { returns(T::Array[Vers::NewVmResponse]) } - attr_accessor :vms - - sig do - params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( - T.attached_class - ) - end - def self.new(vms:) - end - - sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_branch_by_vm_params.rbi b/rbi/vers/models/vm_branch_by_vm_params.rbi deleted file mode 100644 index bc43cd5..0000000 --- a/rbi/vers/models/vm_branch_by_vm_params.rbi +++ /dev/null @@ -1,68 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchByVmParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::VmBranchByVmParams, Vers::Internal::AnyHash) - end - - # Number of VMs to branch (optional; default 1) - sig { returns(T.nilable(Integer)) } - attr_reader :count - - sig { params(count: Integer).void } - attr_writer :count - - # If true, keep VM paused after commit - sig { returns(T.nilable(T::Boolean)) } - attr_reader :keep_paused - - sig { params(keep_paused: T::Boolean).void } - attr_writer :keep_paused - - # If true, immediately return an error if VM is booting instead of waiting - sig { returns(T.nilable(T::Boolean)) } - attr_reader :skip_wait_boot - - sig { params(skip_wait_boot: T::Boolean).void } - attr_writer :skip_wait_boot - - sig do - params( - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting - skip_wait_boot: nil, - request_options: {} - ) - end - - sig do - override.returns( - { - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_branch_by_vm_response.rbi b/rbi/vers/models/vm_branch_by_vm_response.rbi deleted file mode 100644 index 2877332..0000000 --- a/rbi/vers/models/vm_branch_by_vm_response.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchByVmResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Models::VmBranchByVmResponse, Vers::Internal::AnyHash) - end - - sig { returns(T::Array[Vers::NewVmResponse]) } - attr_accessor :vms - - sig do - params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( - T.attached_class - ) - end - def self.new(vms:) - end - - sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_branch_params.rbi b/rbi/vers/models/vm_branch_params.rbi deleted file mode 100644 index 082b029..0000000 --- a/rbi/vers/models/vm_branch_params.rbi +++ /dev/null @@ -1,68 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias { T.any(Vers::VmBranchParams, Vers::Internal::AnyHash) } - - # Number of VMs to branch (optional; default 1) - sig { returns(T.nilable(Integer)) } - attr_reader :count - - sig { params(count: Integer).void } - attr_writer :count - - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - sig { returns(T.nilable(T::Boolean)) } - attr_reader :keep_paused - - sig { params(keep_paused: T::Boolean).void } - attr_writer :keep_paused - - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - sig { returns(T.nilable(T::Boolean)) } - attr_reader :skip_wait_boot - - sig { params(skip_wait_boot: T::Boolean).void } - attr_writer :skip_wait_boot - - sig do - params( - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - skip_wait_boot: nil, - request_options: {} - ) - end - - sig do - override.returns( - { - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 176479d..108d799 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -27,67 +27,6 @@ module Vers ) end - sig do - params( - vm_or_commit_id: String, - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmResponse) - end - def branch( - # Parent VM or commit ID - vm_or_commit_id, - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - skip_wait_boot: nil, - request_options: {} - ) - end - - sig do - params( - commit_id: String, - count: Integer, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::VmBranchByCommitResponse) - end - def branch_by_commit( - # The commit id to branch off - commit_id, - # Number of VMs to branch (optional; default 1) - count: nil, - request_options: {} - ) - end - - sig do - params( - vm_id: String, - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::VmBranchByVmResponse) - end - def branch_by_vm( - # VM to commit and then branch off of - vm_id, - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting - skip_wait_boot: nil, - request_options: {} - ) - end - sig do params( vm_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index ddb066b..26844ce 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -7,12 +7,6 @@ module Vers class VmAPI = Vers::Models::VmAPI - class VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams - - class VmBranchByVmParams = Vers::Models::VmBranchByVmParams - - class VmBranchParams = Vers::Models::VmBranchParams - class VmCommitParams = Vers::Models::VmCommitParams class VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/sig/vers/models/vm_branch_by_commit_params.rbs b/sig/vers/models/vm_branch_by_commit_params.rbs deleted file mode 100644 index 473236a..0000000 --- a/sig/vers/models/vm_branch_by_commit_params.rbs +++ /dev/null @@ -1,22 +0,0 @@ -module Vers - module Models - type vm_branch_by_commit_params = - { count: Integer } & Vers::Internal::Type::request_parameters - - class VmBranchByCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_reader count: Integer? - - def count=: (Integer) -> Integer - - def initialize: ( - ?count: Integer, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { count: Integer, request_options: Vers::RequestOptions } - end - end -end diff --git a/sig/vers/models/vm_branch_by_commit_response.rbs b/sig/vers/models/vm_branch_by_commit_response.rbs deleted file mode 100644 index 23339cd..0000000 --- a/sig/vers/models/vm_branch_by_commit_response.rbs +++ /dev/null @@ -1,13 +0,0 @@ -module Vers - module Models - type vm_branch_by_commit_response = { vms: ::Array[Vers::NewVmResponse] } - - class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel - attr_accessor vms: ::Array[Vers::NewVmResponse] - - def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void - - def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } - end - end -end diff --git a/sig/vers/models/vm_branch_by_vm_params.rbs b/sig/vers/models/vm_branch_by_vm_params.rbs deleted file mode 100644 index 14e8050..0000000 --- a/sig/vers/models/vm_branch_by_vm_params.rbs +++ /dev/null @@ -1,38 +0,0 @@ -module Vers - module Models - type vm_branch_by_vm_params = - { count: Integer, keep_paused: bool, skip_wait_boot: bool } - & Vers::Internal::Type::request_parameters - - class VmBranchByVmParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_reader count: Integer? - - def count=: (Integer) -> Integer - - attr_reader keep_paused: bool? - - def keep_paused=: (bool) -> bool - - attr_reader skip_wait_boot: bool? - - def skip_wait_boot=: (bool) -> bool - - def initialize: ( - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - count: Integer, - keep_paused: bool, - skip_wait_boot: bool, - request_options: Vers::RequestOptions - } - end - end -end diff --git a/sig/vers/models/vm_branch_by_vm_response.rbs b/sig/vers/models/vm_branch_by_vm_response.rbs deleted file mode 100644 index d66eebd..0000000 --- a/sig/vers/models/vm_branch_by_vm_response.rbs +++ /dev/null @@ -1,13 +0,0 @@ -module Vers - module Models - type vm_branch_by_vm_response = { vms: ::Array[Vers::NewVmResponse] } - - class VmBranchByVmResponse < Vers::Internal::Type::BaseModel - attr_accessor vms: ::Array[Vers::NewVmResponse] - - def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void - - def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } - end - end -end diff --git a/sig/vers/models/vm_branch_params.rbs b/sig/vers/models/vm_branch_params.rbs deleted file mode 100644 index 93a0791..0000000 --- a/sig/vers/models/vm_branch_params.rbs +++ /dev/null @@ -1,38 +0,0 @@ -module Vers - module Models - type vm_branch_params = - { count: Integer, keep_paused: bool, skip_wait_boot: bool } - & Vers::Internal::Type::request_parameters - - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_reader count: Integer? - - def count=: (Integer) -> Integer - - attr_reader keep_paused: bool? - - def keep_paused=: (bool) -> bool - - attr_reader skip_wait_boot: bool? - - def skip_wait_boot=: (bool) -> bool - - def initialize: ( - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - count: Integer, - keep_paused: bool, - skip_wait_boot: bool, - request_options: Vers::RequestOptions - } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 10234d5..e23bbe5 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -11,28 +11,6 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::VmDeleteResponse - def branch: ( - String vm_or_commit_id, - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> Vers::NewVmResponse - - def branch_by_commit: ( - String commit_id, - ?count: Integer, - ?request_options: Vers::request_opts - ) -> Vers::Models::VmBranchByCommitResponse - - def branch_by_vm: ( - String vm_id, - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> Vers::Models::VmBranchByVmResponse - def commit: ( String vm_id, ?keep_paused: bool, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index cf8ffa3..59f206c 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -29,54 +29,6 @@ def test_delete end end - def test_branch - skip("Prism tests are disabled") - - response = @vers.vm.branch("vm_or_commit_id") - - assert_pattern do - response => Vers::NewVmResponse - end - - assert_pattern do - response => { - vm_id: String - } - end - end - - def test_branch_by_commit - skip("Prism tests are disabled") - - response = @vers.vm.branch_by_commit("commit_id") - - assert_pattern do - response => Vers::Models::VmBranchByCommitResponse - end - - assert_pattern do - response => { - vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) - } - end - end - - def test_branch_by_vm - skip("Prism tests are disabled") - - response = @vers.vm.branch_by_vm("vm_id") - - assert_pattern do - response => Vers::Models::VmBranchByVmResponse - end - - assert_pattern do - response => { - vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) - } - end - end - def test_commit skip("Prism tests are disabled") From f0665a8afe73bcb01c877bbec6c44b738fa4ec01 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 17:44:33 +0000 Subject: [PATCH 062/100] feat(api): api update --- .stats.yml | 4 +- lib/vers.rb | 5 ++ lib/vers/models.rb | 6 ++ lib/vers/models/new_vm_response.rb | 2 +- lib/vers/models/vm_branch_by_commit_params.rb | 22 ++++++ .../models/vm_branch_by_commit_response.rb | 16 ++++ lib/vers/models/vm_branch_by_vm_params.rb | 38 +++++++++ lib/vers/models/vm_branch_by_vm_response.rb | 16 ++++ lib/vers/models/vm_branch_params.rb | 42 ++++++++++ lib/vers/resources/vm.rb | 77 +++++++++++++++++++ rbi/vers/models.rbi | 6 ++ .../models/vm_branch_by_commit_params.rbi | 43 +++++++++++ .../models/vm_branch_by_commit_response.rbi | 27 +++++++ rbi/vers/models/vm_branch_by_vm_params.rbi | 68 ++++++++++++++++ rbi/vers/models/vm_branch_by_vm_response.rbi | 27 +++++++ rbi/vers/models/vm_branch_params.rbi | 68 ++++++++++++++++ rbi/vers/resources/vm.rbi | 61 +++++++++++++++ sig/vers/models.rbs | 6 ++ .../models/vm_branch_by_commit_params.rbs | 22 ++++++ .../models/vm_branch_by_commit_response.rbs | 13 ++++ sig/vers/models/vm_branch_by_vm_params.rbs | 38 +++++++++ sig/vers/models/vm_branch_by_vm_response.rbs | 13 ++++ sig/vers/models/vm_branch_params.rbs | 38 +++++++++ sig/vers/resources/vm.rbs | 22 ++++++ test/vers/resources/vm_test.rb | 48 ++++++++++++ 25 files changed, 725 insertions(+), 3 deletions(-) create mode 100644 lib/vers/models/vm_branch_by_commit_params.rb create mode 100644 lib/vers/models/vm_branch_by_commit_response.rb create mode 100644 lib/vers/models/vm_branch_by_vm_params.rb create mode 100644 lib/vers/models/vm_branch_by_vm_response.rb create mode 100644 lib/vers/models/vm_branch_params.rb create mode 100644 rbi/vers/models/vm_branch_by_commit_params.rbi create mode 100644 rbi/vers/models/vm_branch_by_commit_response.rbi create mode 100644 rbi/vers/models/vm_branch_by_vm_params.rbi create mode 100644 rbi/vers/models/vm_branch_by_vm_response.rbi create mode 100644 rbi/vers/models/vm_branch_params.rbi create mode 100644 sig/vers/models/vm_branch_by_commit_params.rbs create mode 100644 sig/vers/models/vm_branch_by_commit_response.rbs create mode 100644 sig/vers/models/vm_branch_by_vm_params.rbs create mode 100644 sig/vers/models/vm_branch_by_vm_response.rbs create mode 100644 sig/vers/models/vm_branch_params.rbs diff --git a/.stats.yml b/.stats.yml index a79d4eb..79e92b9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 +configured_endpoints: 11 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-d766c2e74a589557e18e00d3b95982a0d15b6708077beae922b31b855c31e270.yml openapi_spec_hash: 8fe3ce53d0fd5f8bd5e0bd2ac7b537e2 -config_hash: 04113bae34ac921557f097de132338a1 +config_hash: f92a0208e18402af1b4baf09994da3e8 diff --git a/lib/vers.rb b/lib/vers.rb index f4d34fc..fde33a5 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -58,6 +58,11 @@ require_relative "vers/models/error_response" require_relative "vers/models/new_vm_response" require_relative "vers/models/vm" +require_relative "vers/models/vm_branch_by_commit_params" +require_relative "vers/models/vm_branch_by_commit_response" +require_relative "vers/models/vm_branch_by_vm_params" +require_relative "vers/models/vm_branch_by_vm_response" +require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" require_relative "vers/models/vm_commit_response" require_relative "vers/models/vm_create_root_params" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 74d5cb7..ed5d500 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -47,6 +47,12 @@ module Vers VmAPI = Vers::Models::VmAPI + VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + VmBranchByVmParams = Vers::Models::VmBranchByVmParams + + VmBranchParams = Vers::Models::VmBranchParams + VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/lib/vers/models/new_vm_response.rb b/lib/vers/models/new_vm_response.rb index d5adccb..45b211a 100644 --- a/lib/vers/models/new_vm_response.rb +++ b/lib/vers/models/new_vm_response.rb @@ -2,7 +2,7 @@ module Vers module Models - # @see Vers::Resources::Vm#create_root + # @see Vers::Resources::Vm#branch class NewVmResponse < Vers::Internal::Type::BaseModel # @!attribute vm_id # diff --git a/lib/vers/models/vm_branch_by_commit_params.rb b/lib/vers/models/vm_branch_by_commit_params.rb new file mode 100644 index 0000000..bf4846c --- /dev/null +++ b/lib/vers/models/vm_branch_by_commit_params.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_commit + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!method initialize(count: nil, request_options: {}) + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_branch_by_commit_response.rb b/lib/vers/models/vm_branch_by_commit_response.rb new file mode 100644 index 0000000..ed1f5ca --- /dev/null +++ b/lib/vers/models/vm_branch_by_commit_response.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_commit + class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel + # @!attribute vms + # + # @return [Array] + required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } + + # @!method initialize(vms:) + # @param vms [Array] + end + end +end diff --git a/lib/vers/models/vm_branch_by_vm_params.rb b/lib/vers/models/vm_branch_by_vm_params.rb new file mode 100644 index 0000000..857fe84 --- /dev/null +++ b/lib/vers/models/vm_branch_by_vm_params.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_vm + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!attribute keep_paused + # If true, keep VM paused after commit + # + # @return [Boolean, nil] + optional :keep_paused, Vers::Internal::Type::Boolean + + # @!attribute skip_wait_boot + # If true, immediately return an error if VM is booting instead of waiting + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_branch_by_vm_response.rb b/lib/vers/models/vm_branch_by_vm_response.rb new file mode 100644 index 0000000..78dc415 --- /dev/null +++ b/lib/vers/models/vm_branch_by_vm_response.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_vm + class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + # @!attribute vms + # + # @return [Array] + required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } + + # @!method initialize(vms:) + # @param vms [Array] + end + end +end diff --git a/lib/vers/models/vm_branch_params.rb b/lib/vers/models/vm_branch_params.rb new file mode 100644 index 0000000..b5fdb4f --- /dev/null +++ b/lib/vers/models/vm_branch_params.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!attribute keep_paused + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @return [Boolean, nil] + optional :keep_paused, Vers::Internal::Type::Boolean + + # @!attribute skip_wait_boot + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmBranchParams} for more details. + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 1352add..f21bc41 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -41,6 +41,83 @@ def delete(vm_id, params = {}) ) end + # Some parameter documentations has been truncated, see + # {Vers::Models::VmBranchParams} for more details. + # + # @overload branch(vm_or_commit_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # + # @param vm_or_commit_id [String] Parent VM or commit ID + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmResponse] + # + # @see Vers::Models::VmBranchParams + def branch(vm_or_commit_id, params = {}) + parsed, options = Vers::VmBranchParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/%1$s/branch", vm_or_commit_id], + query: parsed, + model: Vers::NewVmResponse, + options: options + ) + end + + # @overload branch_by_commit(commit_id, count: nil, request_options: {}) + # + # @param commit_id [String] The commit id to branch off + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmBranchByCommitResponse] + # + # @see Vers::Models::VmBranchByCommitParams + def branch_by_commit(commit_id, params = {}) + parsed, options = Vers::VmBranchByCommitParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/branch/by_commit/%1$s", commit_id], + query: parsed, + model: Vers::Models::VmBranchByCommitResponse, + options: options + ) + end + + # @overload branch_by_vm(vm_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # + # @param vm_id [String] VM to commit and then branch off of + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmBranchByVmResponse] + # + # @see Vers::Models::VmBranchByVmParams + def branch_by_vm(vm_id, params = {}) + parsed, options = Vers::VmBranchByVmParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/branch/by_vm/%1$s", vm_id], + query: parsed, + model: Vers::Models::VmBranchByVmResponse, + options: options + ) + end + # @overload commit(vm_id, keep_paused: nil, skip_wait_boot: nil, request_options: {}) # # @param vm_id [String] VM ID to commit diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a37ffc8..c01e1b9 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -9,6 +9,12 @@ module Vers VmAPI = Vers::Models::VmAPI + VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + VmBranchByVmParams = Vers::Models::VmBranchByVmParams + + VmBranchParams = Vers::Models::VmBranchParams + VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/rbi/vers/models/vm_branch_by_commit_params.rbi b/rbi/vers/models/vm_branch_by_commit_params.rbi new file mode 100644 index 0000000..707bac2 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_commit_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmBranchByCommitParams, Vers::Internal::AnyHash) + end + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + sig do + params( + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + + sig do + override.returns( + { count: Integer, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_commit_response.rbi b/rbi/vers/models/vm_branch_by_commit_response.rbi new file mode 100644 index 0000000..e9976fb --- /dev/null +++ b/rbi/vers/models/vm_branch_by_commit_response.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Models::VmBranchByCommitResponse, Vers::Internal::AnyHash) + end + + sig { returns(T::Array[Vers::NewVmResponse]) } + attr_accessor :vms + + sig do + params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( + T.attached_class + ) + end + def self.new(vms:) + end + + sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_vm_params.rbi b/rbi/vers/models/vm_branch_by_vm_params.rbi new file mode 100644 index 0000000..bc43cd5 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_vm_params.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Vers + module Models + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmBranchByVmParams, Vers::Internal::AnyHash) + end + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + # If true, keep VM paused after commit + sig { returns(T.nilable(T::Boolean)) } + attr_reader :keep_paused + + sig { params(keep_paused: T::Boolean).void } + attr_writer :keep_paused + + # If true, immediately return an error if VM is booting instead of waiting + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + + sig do + params( + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_vm_response.rbi b/rbi/vers/models/vm_branch_by_vm_response.rbi new file mode 100644 index 0000000..2877332 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_vm_response.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::Models::VmBranchByVmResponse, Vers::Internal::AnyHash) + end + + sig { returns(T::Array[Vers::NewVmResponse]) } + attr_accessor :vms + + sig do + params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( + T.attached_class + ) + end + def self.new(vms:) + end + + sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_params.rbi b/rbi/vers/models/vm_branch_params.rbi new file mode 100644 index 0000000..082b029 --- /dev/null +++ b/rbi/vers/models/vm_branch_params.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Vers + module Models + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmBranchParams, Vers::Internal::AnyHash) } + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :keep_paused + + sig { params(keep_paused: T::Boolean).void } + attr_writer :keep_paused + + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + + sig do + params( + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 108d799..176479d 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -27,6 +27,67 @@ module Vers ) end + sig do + params( + vm_or_commit_id: String, + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmResponse) + end + def branch( + # Parent VM or commit ID + vm_or_commit_id, + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + params( + commit_id: String, + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Models::VmBranchByCommitResponse) + end + def branch_by_commit( + # The commit id to branch off + commit_id, + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::Models::VmBranchByVmResponse) + end + def branch_by_vm( + # VM to commit and then branch off of + vm_id, + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting + skip_wait_boot: nil, + request_options: {} + ) + end + sig do params( vm_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 26844ce..ddb066b 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -7,6 +7,12 @@ module Vers class VmAPI = Vers::Models::VmAPI + class VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + class VmBranchByVmParams = Vers::Models::VmBranchByVmParams + + class VmBranchParams = Vers::Models::VmBranchParams + class VmCommitParams = Vers::Models::VmCommitParams class VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/sig/vers/models/vm_branch_by_commit_params.rbs b/sig/vers/models/vm_branch_by_commit_params.rbs new file mode 100644 index 0000000..473236a --- /dev/null +++ b/sig/vers/models/vm_branch_by_commit_params.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type vm_branch_by_commit_params = + { count: Integer } & Vers::Internal::Type::request_parameters + + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + def initialize: ( + ?count: Integer, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { count: Integer, request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_branch_by_commit_response.rbs b/sig/vers/models/vm_branch_by_commit_response.rbs new file mode 100644 index 0000000..23339cd --- /dev/null +++ b/sig/vers/models/vm_branch_by_commit_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type vm_branch_by_commit_response = { vms: ::Array[Vers::NewVmResponse] } + + class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel + attr_accessor vms: ::Array[Vers::NewVmResponse] + + def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void + + def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } + end + end +end diff --git a/sig/vers/models/vm_branch_by_vm_params.rbs b/sig/vers/models/vm_branch_by_vm_params.rbs new file mode 100644 index 0000000..14e8050 --- /dev/null +++ b/sig/vers/models/vm_branch_by_vm_params.rbs @@ -0,0 +1,38 @@ +module Vers + module Models + type vm_branch_by_vm_params = + { count: Integer, keep_paused: bool, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters + + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + attr_reader keep_paused: bool? + + def keep_paused=: (bool) -> bool + + attr_reader skip_wait_boot: bool? + + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + count: Integer, + keep_paused: bool, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/vm_branch_by_vm_response.rbs b/sig/vers/models/vm_branch_by_vm_response.rbs new file mode 100644 index 0000000..d66eebd --- /dev/null +++ b/sig/vers/models/vm_branch_by_vm_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type vm_branch_by_vm_response = { vms: ::Array[Vers::NewVmResponse] } + + class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + attr_accessor vms: ::Array[Vers::NewVmResponse] + + def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void + + def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } + end + end +end diff --git a/sig/vers/models/vm_branch_params.rbs b/sig/vers/models/vm_branch_params.rbs new file mode 100644 index 0000000..93a0791 --- /dev/null +++ b/sig/vers/models/vm_branch_params.rbs @@ -0,0 +1,38 @@ +module Vers + module Models + type vm_branch_params = + { count: Integer, keep_paused: bool, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters + + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + attr_reader keep_paused: bool? + + def keep_paused=: (bool) -> bool + + attr_reader skip_wait_boot: bool? + + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + count: Integer, + keep_paused: bool, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index e23bbe5..10234d5 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -11,6 +11,28 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::VmDeleteResponse + def branch: ( + String vm_or_commit_id, + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> Vers::NewVmResponse + + def branch_by_commit: ( + String commit_id, + ?count: Integer, + ?request_options: Vers::request_opts + ) -> Vers::Models::VmBranchByCommitResponse + + def branch_by_vm: ( + String vm_id, + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> Vers::Models::VmBranchByVmResponse + def commit: ( String vm_id, ?keep_paused: bool, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 59f206c..cf8ffa3 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -29,6 +29,54 @@ def test_delete end end + def test_branch + skip("Prism tests are disabled") + + response = @vers.vm.branch("vm_or_commit_id") + + assert_pattern do + response => Vers::NewVmResponse + end + + assert_pattern do + response => { + vm_id: String + } + end + end + + def test_branch_by_commit + skip("Prism tests are disabled") + + response = @vers.vm.branch_by_commit("commit_id") + + assert_pattern do + response => Vers::Models::VmBranchByCommitResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + + def test_branch_by_vm + skip("Prism tests are disabled") + + response = @vers.vm.branch_by_vm("vm_id") + + assert_pattern do + response => Vers::Models::VmBranchByVmResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + def test_commit skip("Prism tests are disabled") From 0867e3761f6f59f297a076fc264bea452fb7f750 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 20:44:44 +0000 Subject: [PATCH 063/100] feat(api): api update --- .stats.yml | 2 +- lib/vers.rb | 3 +-- lib/vers/models.rb | 2 ++ ...commit_response.rb => new_vms_response.rb} | 2 +- lib/vers/models/vm_branch_by_vm_response.rb | 16 ----------- lib/vers/resources/vm.rb | 8 +++--- rbi/vers/models.rbi | 2 ++ ...y_vm_response.rbi => new_vms_response.rbi} | 6 ++--- .../models/vm_branch_by_commit_response.rbi | 27 ------------------- rbi/vers/resources/vm.rbi | 4 +-- sig/vers/models.rbs | 2 ++ ...y_vm_response.rbs => new_vms_response.rbs} | 4 +-- .../models/vm_branch_by_commit_response.rbs | 13 --------- sig/vers/resources/vm.rbs | 4 +-- test/vers/resources/vm_test.rb | 4 +-- 15 files changed, 23 insertions(+), 76 deletions(-) rename lib/vers/models/{vm_branch_by_commit_response.rb => new_vms_response.rb} (84%) delete mode 100644 lib/vers/models/vm_branch_by_vm_response.rb rename rbi/vers/models/{vm_branch_by_vm_response.rbi => new_vms_response.rbi} (70%) delete mode 100644 rbi/vers/models/vm_branch_by_commit_response.rbi rename sig/vers/models/{vm_branch_by_vm_response.rbs => new_vms_response.rbs} (62%) delete mode 100644 sig/vers/models/vm_branch_by_commit_response.rbs diff --git a/.stats.yml b/.stats.yml index 79e92b9..6ec8b76 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-d766c2e74a589557e18e00d3b95982a0d15b6708077beae922b31b855c31e270.yml openapi_spec_hash: 8fe3ce53d0fd5f8bd5e0bd2ac7b537e2 -config_hash: f92a0208e18402af1b4baf09994da3e8 +config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd diff --git a/lib/vers.rb b/lib/vers.rb index fde33a5..7fd8597 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -57,11 +57,10 @@ require_relative "vers/models/vm_update_state_request" require_relative "vers/models/error_response" require_relative "vers/models/new_vm_response" +require_relative "vers/models/new_vms_response" require_relative "vers/models/vm" require_relative "vers/models/vm_branch_by_commit_params" -require_relative "vers/models/vm_branch_by_commit_response" require_relative "vers/models/vm_branch_by_vm_params" -require_relative "vers/models/vm_branch_by_vm_response" require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" require_relative "vers/models/vm_commit_response" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index ed5d500..e41bcd1 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -45,6 +45,8 @@ module Vers NewVmResponse = Vers::Models::NewVmResponse + NewVmsResponse = Vers::Models::NewVmsResponse + VmAPI = Vers::Models::VmAPI VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams diff --git a/lib/vers/models/vm_branch_by_commit_response.rb b/lib/vers/models/new_vms_response.rb similarity index 84% rename from lib/vers/models/vm_branch_by_commit_response.rb rename to lib/vers/models/new_vms_response.rb index ed1f5ca..cb7e64d 100644 --- a/lib/vers/models/vm_branch_by_commit_response.rb +++ b/lib/vers/models/new_vms_response.rb @@ -3,7 +3,7 @@ module Vers module Models # @see Vers::Resources::Vm#branch_by_commit - class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel + class NewVmsResponse < Vers::Internal::Type::BaseModel # @!attribute vms # # @return [Array] diff --git a/lib/vers/models/vm_branch_by_vm_response.rb b/lib/vers/models/vm_branch_by_vm_response.rb deleted file mode 100644 index 78dc415..0000000 --- a/lib/vers/models/vm_branch_by_vm_response.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch_by_vm - class VmBranchByVmResponse < Vers::Internal::Type::BaseModel - # @!attribute vms - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } - - # @!method initialize(vms:) - # @param vms [Array] - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index f21bc41..af0f791 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -78,7 +78,7 @@ def branch(vm_or_commit_id, params = {}) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Vers::Models::VmBranchByCommitResponse] + # @return [Vers::Models::NewVmsResponse] # # @see Vers::Models::VmBranchByCommitParams def branch_by_commit(commit_id, params = {}) @@ -87,7 +87,7 @@ def branch_by_commit(commit_id, params = {}) method: :post, path: ["api/v1/vm/branch/by_commit/%1$s", commit_id], query: parsed, - model: Vers::Models::VmBranchByCommitResponse, + model: Vers::NewVmsResponse, options: options ) end @@ -104,7 +104,7 @@ def branch_by_commit(commit_id, params = {}) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Vers::Models::VmBranchByVmResponse] + # @return [Vers::Models::NewVmsResponse] # # @see Vers::Models::VmBranchByVmParams def branch_by_vm(vm_id, params = {}) @@ -113,7 +113,7 @@ def branch_by_vm(vm_id, params = {}) method: :post, path: ["api/v1/vm/branch/by_vm/%1$s", vm_id], query: parsed, - model: Vers::Models::VmBranchByVmResponse, + model: Vers::NewVmsResponse, options: options ) end diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index c01e1b9..9bba7c1 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -7,6 +7,8 @@ module Vers NewVmResponse = Vers::Models::NewVmResponse + NewVmsResponse = Vers::Models::NewVmsResponse + VmAPI = Vers::Models::VmAPI VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams diff --git a/rbi/vers/models/vm_branch_by_vm_response.rbi b/rbi/vers/models/new_vms_response.rbi similarity index 70% rename from rbi/vers/models/vm_branch_by_vm_response.rbi rename to rbi/vers/models/new_vms_response.rbi index 2877332..8b61a4d 100644 --- a/rbi/vers/models/vm_branch_by_vm_response.rbi +++ b/rbi/vers/models/new_vms_response.rbi @@ -2,11 +2,9 @@ module Vers module Models - class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + class NewVmsResponse < Vers::Internal::Type::BaseModel OrHash = - T.type_alias do - T.any(Vers::Models::VmBranchByVmResponse, Vers::Internal::AnyHash) - end + T.type_alias { T.any(Vers::NewVmsResponse, Vers::Internal::AnyHash) } sig { returns(T::Array[Vers::NewVmResponse]) } attr_accessor :vms diff --git a/rbi/vers/models/vm_branch_by_commit_response.rbi b/rbi/vers/models/vm_branch_by_commit_response.rbi deleted file mode 100644 index e9976fb..0000000 --- a/rbi/vers/models/vm_branch_by_commit_response.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias do - T.any(Vers::Models::VmBranchByCommitResponse, Vers::Internal::AnyHash) - end - - sig { returns(T::Array[Vers::NewVmResponse]) } - attr_accessor :vms - - sig do - params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( - T.attached_class - ) - end - def self.new(vms:) - end - - sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 176479d..f78148e 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -55,7 +55,7 @@ module Vers commit_id: String, count: Integer, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::VmBranchByCommitResponse) + ).returns(Vers::NewVmsResponse) end def branch_by_commit( # The commit id to branch off @@ -73,7 +73,7 @@ module Vers keep_paused: T::Boolean, skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::Models::VmBranchByVmResponse) + ).returns(Vers::NewVmsResponse) end def branch_by_vm( # VM to commit and then branch off of diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index ddb066b..6d1dca2 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -5,6 +5,8 @@ module Vers class NewVmResponse = Vers::Models::NewVmResponse + class NewVmsResponse = Vers::Models::NewVmsResponse + class VmAPI = Vers::Models::VmAPI class VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams diff --git a/sig/vers/models/vm_branch_by_vm_response.rbs b/sig/vers/models/new_vms_response.rbs similarity index 62% rename from sig/vers/models/vm_branch_by_vm_response.rbs rename to sig/vers/models/new_vms_response.rbs index d66eebd..6417a63 100644 --- a/sig/vers/models/vm_branch_by_vm_response.rbs +++ b/sig/vers/models/new_vms_response.rbs @@ -1,8 +1,8 @@ module Vers module Models - type vm_branch_by_vm_response = { vms: ::Array[Vers::NewVmResponse] } + type new_vms_response = { vms: ::Array[Vers::NewVmResponse] } - class VmBranchByVmResponse < Vers::Internal::Type::BaseModel + class NewVmsResponse < Vers::Internal::Type::BaseModel attr_accessor vms: ::Array[Vers::NewVmResponse] def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void diff --git a/sig/vers/models/vm_branch_by_commit_response.rbs b/sig/vers/models/vm_branch_by_commit_response.rbs deleted file mode 100644 index 23339cd..0000000 --- a/sig/vers/models/vm_branch_by_commit_response.rbs +++ /dev/null @@ -1,13 +0,0 @@ -module Vers - module Models - type vm_branch_by_commit_response = { vms: ::Array[Vers::NewVmResponse] } - - class VmBranchByCommitResponse < Vers::Internal::Type::BaseModel - attr_accessor vms: ::Array[Vers::NewVmResponse] - - def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void - - def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 10234d5..09f34d2 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -23,7 +23,7 @@ module Vers String commit_id, ?count: Integer, ?request_options: Vers::request_opts - ) -> Vers::Models::VmBranchByCommitResponse + ) -> Vers::NewVmsResponse def branch_by_vm: ( String vm_id, @@ -31,7 +31,7 @@ module Vers ?keep_paused: bool, ?skip_wait_boot: bool, ?request_options: Vers::request_opts - ) -> Vers::Models::VmBranchByVmResponse + ) -> Vers::NewVmsResponse def commit: ( String vm_id, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index cf8ffa3..0c076e8 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -51,7 +51,7 @@ def test_branch_by_commit response = @vers.vm.branch_by_commit("commit_id") assert_pattern do - response => Vers::Models::VmBranchByCommitResponse + response => Vers::NewVmsResponse end assert_pattern do @@ -67,7 +67,7 @@ def test_branch_by_vm response = @vers.vm.branch_by_vm("vm_id") assert_pattern do - response => Vers::Models::VmBranchByVmResponse + response => Vers::NewVmsResponse end assert_pattern do From ab92aaee0801f14edc87894a25b37d75b82e6a37 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 14 Jan 2026 21:11:53 +0000 Subject: [PATCH 064/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models/new_vm_response.rb | 2 +- lib/vers/models/new_vms_response.rb | 2 +- lib/vers/resources/vm.rb | 4 ++-- rbi/vers/resources/vm.rbi | 2 +- sig/vers/resources/vm.rbs | 2 +- test/vers/resources/vm_test.rb | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6ec8b76..1ad58a3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-d766c2e74a589557e18e00d3b95982a0d15b6708077beae922b31b855c31e270.yml -openapi_spec_hash: 8fe3ce53d0fd5f8bd5e0bd2ac7b537e2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fae1f083d953513e33863a4bc3f2f156f9959095dd9955803d88f33cde3917bb.yml +openapi_spec_hash: c67c9359802b7879c60503f0f50aaac5 config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd diff --git a/lib/vers/models/new_vm_response.rb b/lib/vers/models/new_vm_response.rb index 45b211a..d5adccb 100644 --- a/lib/vers/models/new_vm_response.rb +++ b/lib/vers/models/new_vm_response.rb @@ -2,7 +2,7 @@ module Vers module Models - # @see Vers::Resources::Vm#branch + # @see Vers::Resources::Vm#create_root class NewVmResponse < Vers::Internal::Type::BaseModel # @!attribute vm_id # diff --git a/lib/vers/models/new_vms_response.rb b/lib/vers/models/new_vms_response.rb index cb7e64d..c843346 100644 --- a/lib/vers/models/new_vms_response.rb +++ b/lib/vers/models/new_vms_response.rb @@ -2,7 +2,7 @@ module Vers module Models - # @see Vers::Resources::Vm#branch_by_commit + # @see Vers::Resources::Vm#branch class NewVmsResponse < Vers::Internal::Type::BaseModel # @!attribute vms # diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index af0f791..785c7bc 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -56,7 +56,7 @@ def delete(vm_id, params = {}) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Vers::Models::NewVmResponse] + # @return [Vers::Models::NewVmsResponse] # # @see Vers::Models::VmBranchParams def branch(vm_or_commit_id, params = {}) @@ -65,7 +65,7 @@ def branch(vm_or_commit_id, params = {}) method: :post, path: ["api/v1/vm/%1$s/branch", vm_or_commit_id], query: parsed, - model: Vers::NewVmResponse, + model: Vers::NewVmsResponse, options: options ) end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index f78148e..72879b2 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -34,7 +34,7 @@ module Vers keep_paused: T::Boolean, skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmResponse) + ).returns(Vers::NewVmsResponse) end def branch( # Parent VM or commit ID diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 09f34d2..79c0671 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -17,7 +17,7 @@ module Vers ?keep_paused: bool, ?skip_wait_boot: bool, ?request_options: Vers::request_opts - ) -> Vers::NewVmResponse + ) -> Vers::NewVmsResponse def branch_by_commit: ( String commit_id, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 0c076e8..98fbfb0 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -35,12 +35,12 @@ def test_branch response = @vers.vm.branch("vm_or_commit_id") assert_pattern do - response => Vers::NewVmResponse + response => Vers::NewVmsResponse end assert_pattern do response => { - vm_id: String + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) } end end From de1f4dd2da66c7a3c12706e516ce55f3c25b8f7e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 15 Jan 2026 19:44:41 +0000 Subject: [PATCH 065/100] feat(api): api update --- .stats.yml | 8 +- lib/vers.rb | 4 - lib/vers/models.rb | 8 -- lib/vers/models/new_vms_response.rb | 16 ---- lib/vers/models/vm_branch_by_commit_params.rb | 22 ------ lib/vers/models/vm_branch_by_vm_params.rb | 38 --------- lib/vers/models/vm_branch_params.rb | 42 ---------- lib/vers/resources/vm.rb | 77 ------------------- rbi/vers/models.rbi | 8 -- rbi/vers/models/new_vms_response.rbi | 25 ------ .../models/vm_branch_by_commit_params.rbi | 43 ----------- rbi/vers/models/vm_branch_by_vm_params.rbi | 68 ---------------- rbi/vers/models/vm_branch_params.rbi | 68 ---------------- rbi/vers/resources/vm.rbi | 61 --------------- sig/vers/models.rbs | 8 -- sig/vers/models/new_vms_response.rbs | 13 ---- .../models/vm_branch_by_commit_params.rbs | 22 ------ sig/vers/models/vm_branch_by_vm_params.rbs | 38 --------- sig/vers/models/vm_branch_params.rbs | 38 --------- sig/vers/resources/vm.rbs | 22 ------ test/vers/resources/vm_test.rb | 48 ------------ 21 files changed, 4 insertions(+), 673 deletions(-) delete mode 100644 lib/vers/models/new_vms_response.rb delete mode 100644 lib/vers/models/vm_branch_by_commit_params.rb delete mode 100644 lib/vers/models/vm_branch_by_vm_params.rb delete mode 100644 lib/vers/models/vm_branch_params.rb delete mode 100644 rbi/vers/models/new_vms_response.rbi delete mode 100644 rbi/vers/models/vm_branch_by_commit_params.rbi delete mode 100644 rbi/vers/models/vm_branch_by_vm_params.rbi delete mode 100644 rbi/vers/models/vm_branch_params.rbi delete mode 100644 sig/vers/models/new_vms_response.rbs delete mode 100644 sig/vers/models/vm_branch_by_commit_params.rbs delete mode 100644 sig/vers/models/vm_branch_by_vm_params.rbs delete mode 100644 sig/vers/models/vm_branch_params.rbs diff --git a/.stats.yml b/.stats.yml index 1ad58a3..a79d4eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fae1f083d953513e33863a4bc3f2f156f9959095dd9955803d88f33cde3917bb.yml -openapi_spec_hash: c67c9359802b7879c60503f0f50aaac5 -config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd +configured_endpoints: 8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-d766c2e74a589557e18e00d3b95982a0d15b6708077beae922b31b855c31e270.yml +openapi_spec_hash: 8fe3ce53d0fd5f8bd5e0bd2ac7b537e2 +config_hash: 04113bae34ac921557f097de132338a1 diff --git a/lib/vers.rb b/lib/vers.rb index 7fd8597..f4d34fc 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -57,11 +57,7 @@ require_relative "vers/models/vm_update_state_request" require_relative "vers/models/error_response" require_relative "vers/models/new_vm_response" -require_relative "vers/models/new_vms_response" require_relative "vers/models/vm" -require_relative "vers/models/vm_branch_by_commit_params" -require_relative "vers/models/vm_branch_by_vm_params" -require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" require_relative "vers/models/vm_commit_response" require_relative "vers/models/vm_create_root_params" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index e41bcd1..74d5cb7 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -45,16 +45,8 @@ module Vers NewVmResponse = Vers::Models::NewVmResponse - NewVmsResponse = Vers::Models::NewVmsResponse - VmAPI = Vers::Models::VmAPI - VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams - - VmBranchByVmParams = Vers::Models::VmBranchByVmParams - - VmBranchParams = Vers::Models::VmBranchParams - VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/lib/vers/models/new_vms_response.rb b/lib/vers/models/new_vms_response.rb deleted file mode 100644 index c843346..0000000 --- a/lib/vers/models/new_vms_response.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch - class NewVmsResponse < Vers::Internal::Type::BaseModel - # @!attribute vms - # - # @return [Array] - required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } - - # @!method initialize(vms:) - # @param vms [Array] - end - end -end diff --git a/lib/vers/models/vm_branch_by_commit_params.rb b/lib/vers/models/vm_branch_by_commit_params.rb deleted file mode 100644 index bf4846c..0000000 --- a/lib/vers/models/vm_branch_by_commit_params.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch_by_commit - class VmBranchByCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute count - # Number of VMs to branch (optional; default 1) - # - # @return [Integer, nil] - optional :count, Integer - - # @!method initialize(count: nil, request_options: {}) - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_branch_by_vm_params.rb b/lib/vers/models/vm_branch_by_vm_params.rb deleted file mode 100644 index 857fe84..0000000 --- a/lib/vers/models/vm_branch_by_vm_params.rb +++ /dev/null @@ -1,38 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch_by_vm - class VmBranchByVmParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute count - # Number of VMs to branch (optional; default 1) - # - # @return [Integer, nil] - optional :count, Integer - - # @!attribute keep_paused - # If true, keep VM paused after commit - # - # @return [Boolean, nil] - optional :keep_paused, Vers::Internal::Type::Boolean - - # @!attribute skip_wait_boot - # If true, immediately return an error if VM is booting instead of waiting - # - # @return [Boolean, nil] - optional :skip_wait_boot, Vers::Internal::Type::Boolean - - # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/models/vm_branch_params.rb b/lib/vers/models/vm_branch_params.rb deleted file mode 100644 index b5fdb4f..0000000 --- a/lib/vers/models/vm_branch_params.rb +++ /dev/null @@ -1,42 +0,0 @@ -# frozen_string_literal: true - -module Vers - module Models - # @see Vers::Resources::Vm#branch - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - # @!attribute count - # Number of VMs to branch (optional; default 1) - # - # @return [Integer, nil] - optional :count, Integer - - # @!attribute keep_paused - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - # - # @return [Boolean, nil] - optional :keep_paused, Vers::Internal::Type::Boolean - - # @!attribute skip_wait_boot - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - # - # @return [Boolean, nil] - optional :skip_wait_boot, Vers::Internal::Type::Boolean - - # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmBranchParams} for more details. - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] - end - end -end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 785c7bc..1352add 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -41,83 +41,6 @@ def delete(vm_id, params = {}) ) end - # Some parameter documentations has been truncated, see - # {Vers::Models::VmBranchParams} for more details. - # - # @overload branch(vm_or_commit_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # - # @param vm_or_commit_id [String] Parent VM or commit ID - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::NewVmsResponse] - # - # @see Vers::Models::VmBranchParams - def branch(vm_or_commit_id, params = {}) - parsed, options = Vers::VmBranchParams.dump_request(params) - @client.request( - method: :post, - path: ["api/v1/vm/%1$s/branch", vm_or_commit_id], - query: parsed, - model: Vers::NewVmsResponse, - options: options - ) - end - - # @overload branch_by_commit(commit_id, count: nil, request_options: {}) - # - # @param commit_id [String] The commit id to branch off - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::NewVmsResponse] - # - # @see Vers::Models::VmBranchByCommitParams - def branch_by_commit(commit_id, params = {}) - parsed, options = Vers::VmBranchByCommitParams.dump_request(params) - @client.request( - method: :post, - path: ["api/v1/vm/branch/by_commit/%1$s", commit_id], - query: parsed, - model: Vers::NewVmsResponse, - options: options - ) - end - - # @overload branch_by_vm(vm_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) - # - # @param vm_id [String] VM to commit and then branch off of - # - # @param count [Integer] Number of VMs to branch (optional; default 1) - # - # @param keep_paused [Boolean] If true, keep VM paused after commit - # - # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting - # - # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [Vers::Models::NewVmsResponse] - # - # @see Vers::Models::VmBranchByVmParams - def branch_by_vm(vm_id, params = {}) - parsed, options = Vers::VmBranchByVmParams.dump_request(params) - @client.request( - method: :post, - path: ["api/v1/vm/branch/by_vm/%1$s", vm_id], - query: parsed, - model: Vers::NewVmsResponse, - options: options - ) - end - # @overload commit(vm_id, keep_paused: nil, skip_wait_boot: nil, request_options: {}) # # @param vm_id [String] VM ID to commit diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index 9bba7c1..a37ffc8 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -7,16 +7,8 @@ module Vers NewVmResponse = Vers::Models::NewVmResponse - NewVmsResponse = Vers::Models::NewVmsResponse - VmAPI = Vers::Models::VmAPI - VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams - - VmBranchByVmParams = Vers::Models::VmBranchByVmParams - - VmBranchParams = Vers::Models::VmBranchParams - VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/rbi/vers/models/new_vms_response.rbi b/rbi/vers/models/new_vms_response.rbi deleted file mode 100644 index 8b61a4d..0000000 --- a/rbi/vers/models/new_vms_response.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Vers - module Models - class NewVmsResponse < Vers::Internal::Type::BaseModel - OrHash = - T.type_alias { T.any(Vers::NewVmsResponse, Vers::Internal::AnyHash) } - - sig { returns(T::Array[Vers::NewVmResponse]) } - attr_accessor :vms - - sig do - params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( - T.attached_class - ) - end - def self.new(vms:) - end - - sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_branch_by_commit_params.rbi b/rbi/vers/models/vm_branch_by_commit_params.rbi deleted file mode 100644 index 707bac2..0000000 --- a/rbi/vers/models/vm_branch_by_commit_params.rbi +++ /dev/null @@ -1,43 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchByCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::VmBranchByCommitParams, Vers::Internal::AnyHash) - end - - # Number of VMs to branch (optional; default 1) - sig { returns(T.nilable(Integer)) } - attr_reader :count - - sig { params(count: Integer).void } - attr_writer :count - - sig do - params( - count: Integer, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Number of VMs to branch (optional; default 1) - count: nil, - request_options: {} - ) - end - - sig do - override.returns( - { count: Integer, request_options: Vers::RequestOptions } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_branch_by_vm_params.rbi b/rbi/vers/models/vm_branch_by_vm_params.rbi deleted file mode 100644 index bc43cd5..0000000 --- a/rbi/vers/models/vm_branch_by_vm_params.rbi +++ /dev/null @@ -1,68 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchByVmParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias do - T.any(Vers::VmBranchByVmParams, Vers::Internal::AnyHash) - end - - # Number of VMs to branch (optional; default 1) - sig { returns(T.nilable(Integer)) } - attr_reader :count - - sig { params(count: Integer).void } - attr_writer :count - - # If true, keep VM paused after commit - sig { returns(T.nilable(T::Boolean)) } - attr_reader :keep_paused - - sig { params(keep_paused: T::Boolean).void } - attr_writer :keep_paused - - # If true, immediately return an error if VM is booting instead of waiting - sig { returns(T.nilable(T::Boolean)) } - attr_reader :skip_wait_boot - - sig { params(skip_wait_boot: T::Boolean).void } - attr_writer :skip_wait_boot - - sig do - params( - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting - skip_wait_boot: nil, - request_options: {} - ) - end - - sig do - override.returns( - { - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/vers/models/vm_branch_params.rbi b/rbi/vers/models/vm_branch_params.rbi deleted file mode 100644 index 082b029..0000000 --- a/rbi/vers/models/vm_branch_params.rbi +++ /dev/null @@ -1,68 +0,0 @@ -# typed: strong - -module Vers - module Models - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - OrHash = - T.type_alias { T.any(Vers::VmBranchParams, Vers::Internal::AnyHash) } - - # Number of VMs to branch (optional; default 1) - sig { returns(T.nilable(Integer)) } - attr_reader :count - - sig { params(count: Integer).void } - attr_writer :count - - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - sig { returns(T.nilable(T::Boolean)) } - attr_reader :keep_paused - - sig { params(keep_paused: T::Boolean).void } - attr_writer :keep_paused - - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - sig { returns(T.nilable(T::Boolean)) } - attr_reader :skip_wait_boot - - sig { params(skip_wait_boot: T::Boolean).void } - attr_writer :skip_wait_boot - - sig do - params( - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - skip_wait_boot: nil, - request_options: {} - ) - end - - sig do - override.returns( - { - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 72879b2..108d799 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -27,67 +27,6 @@ module Vers ) end - sig do - params( - vm_or_commit_id: String, - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmsResponse) - end - def branch( - # Parent VM or commit ID - vm_or_commit_id, - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit. Only applicable when branching a VM ID. - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting. Only - # applicable when branching a VM ID. - skip_wait_boot: nil, - request_options: {} - ) - end - - sig do - params( - commit_id: String, - count: Integer, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmsResponse) - end - def branch_by_commit( - # The commit id to branch off - commit_id, - # Number of VMs to branch (optional; default 1) - count: nil, - request_options: {} - ) - end - - sig do - params( - vm_id: String, - count: Integer, - keep_paused: T::Boolean, - skip_wait_boot: T::Boolean, - request_options: Vers::RequestOptions::OrHash - ).returns(Vers::NewVmsResponse) - end - def branch_by_vm( - # VM to commit and then branch off of - vm_id, - # Number of VMs to branch (optional; default 1) - count: nil, - # If true, keep VM paused after commit - keep_paused: nil, - # If true, immediately return an error if VM is booting instead of waiting - skip_wait_boot: nil, - request_options: {} - ) - end - sig do params( vm_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 6d1dca2..26844ce 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -5,16 +5,8 @@ module Vers class NewVmResponse = Vers::Models::NewVmResponse - class NewVmsResponse = Vers::Models::NewVmsResponse - class VmAPI = Vers::Models::VmAPI - class VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams - - class VmBranchByVmParams = Vers::Models::VmBranchByVmParams - - class VmBranchParams = Vers::Models::VmBranchParams - class VmCommitParams = Vers::Models::VmCommitParams class VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/sig/vers/models/new_vms_response.rbs b/sig/vers/models/new_vms_response.rbs deleted file mode 100644 index 6417a63..0000000 --- a/sig/vers/models/new_vms_response.rbs +++ /dev/null @@ -1,13 +0,0 @@ -module Vers - module Models - type new_vms_response = { vms: ::Array[Vers::NewVmResponse] } - - class NewVmsResponse < Vers::Internal::Type::BaseModel - attr_accessor vms: ::Array[Vers::NewVmResponse] - - def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void - - def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } - end - end -end diff --git a/sig/vers/models/vm_branch_by_commit_params.rbs b/sig/vers/models/vm_branch_by_commit_params.rbs deleted file mode 100644 index 473236a..0000000 --- a/sig/vers/models/vm_branch_by_commit_params.rbs +++ /dev/null @@ -1,22 +0,0 @@ -module Vers - module Models - type vm_branch_by_commit_params = - { count: Integer } & Vers::Internal::Type::request_parameters - - class VmBranchByCommitParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_reader count: Integer? - - def count=: (Integer) -> Integer - - def initialize: ( - ?count: Integer, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { count: Integer, request_options: Vers::RequestOptions } - end - end -end diff --git a/sig/vers/models/vm_branch_by_vm_params.rbs b/sig/vers/models/vm_branch_by_vm_params.rbs deleted file mode 100644 index 14e8050..0000000 --- a/sig/vers/models/vm_branch_by_vm_params.rbs +++ /dev/null @@ -1,38 +0,0 @@ -module Vers - module Models - type vm_branch_by_vm_params = - { count: Integer, keep_paused: bool, skip_wait_boot: bool } - & Vers::Internal::Type::request_parameters - - class VmBranchByVmParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_reader count: Integer? - - def count=: (Integer) -> Integer - - attr_reader keep_paused: bool? - - def keep_paused=: (bool) -> bool - - attr_reader skip_wait_boot: bool? - - def skip_wait_boot=: (bool) -> bool - - def initialize: ( - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - count: Integer, - keep_paused: bool, - skip_wait_boot: bool, - request_options: Vers::RequestOptions - } - end - end -end diff --git a/sig/vers/models/vm_branch_params.rbs b/sig/vers/models/vm_branch_params.rbs deleted file mode 100644 index 93a0791..0000000 --- a/sig/vers/models/vm_branch_params.rbs +++ /dev/null @@ -1,38 +0,0 @@ -module Vers - module Models - type vm_branch_params = - { count: Integer, keep_paused: bool, skip_wait_boot: bool } - & Vers::Internal::Type::request_parameters - - class VmBranchParams < Vers::Internal::Type::BaseModel - extend Vers::Internal::Type::RequestParameters::Converter - include Vers::Internal::Type::RequestParameters - - attr_reader count: Integer? - - def count=: (Integer) -> Integer - - attr_reader keep_paused: bool? - - def keep_paused=: (bool) -> bool - - attr_reader skip_wait_boot: bool? - - def skip_wait_boot=: (bool) -> bool - - def initialize: ( - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - count: Integer, - keep_paused: bool, - skip_wait_boot: bool, - request_options: Vers::RequestOptions - } - end - end -end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 79c0671..e23bbe5 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -11,28 +11,6 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::VmDeleteResponse - def branch: ( - String vm_or_commit_id, - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> Vers::NewVmsResponse - - def branch_by_commit: ( - String commit_id, - ?count: Integer, - ?request_options: Vers::request_opts - ) -> Vers::NewVmsResponse - - def branch_by_vm: ( - String vm_id, - ?count: Integer, - ?keep_paused: bool, - ?skip_wait_boot: bool, - ?request_options: Vers::request_opts - ) -> Vers::NewVmsResponse - def commit: ( String vm_id, ?keep_paused: bool, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 98fbfb0..59f206c 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -29,54 +29,6 @@ def test_delete end end - def test_branch - skip("Prism tests are disabled") - - response = @vers.vm.branch("vm_or_commit_id") - - assert_pattern do - response => Vers::NewVmsResponse - end - - assert_pattern do - response => { - vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) - } - end - end - - def test_branch_by_commit - skip("Prism tests are disabled") - - response = @vers.vm.branch_by_commit("commit_id") - - assert_pattern do - response => Vers::NewVmsResponse - end - - assert_pattern do - response => { - vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) - } - end - end - - def test_branch_by_vm - skip("Prism tests are disabled") - - response = @vers.vm.branch_by_vm("vm_id") - - assert_pattern do - response => Vers::NewVmsResponse - end - - assert_pattern do - response => { - vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) - } - end - end - def test_commit skip("Prism tests are disabled") From d1ef0f910a5d24c26dcc9c275c50fe6e7a07657e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 17 Jan 2026 04:22:06 +0000 Subject: [PATCH 066/100] chore(internal): update `actions/checkout` version --- .github/workflows/ci.yml | 4 ++-- .github/workflows/publish-gem.yml | 2 +- .github/workflows/release-doctor.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 876a276..c292483 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: @@ -36,7 +36,7 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/firecracker-manager-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: diff --git a/.github/workflows/publish-gem.yml b/.github/workflows/publish-gem.yml index 470b176..eecc00a 100644 --- a/.github/workflows/publish-gem.yml +++ b/.github/workflows/publish-gem.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index 3191ed7..3a57e29 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -12,7 +12,7 @@ jobs: if: github.repository == 'hdresearch/vers-sdk-ruby' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Check release environment run: | From fadc8ae72856b7f1356684fd9fb409aab17d05f7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 15:33:22 +0000 Subject: [PATCH 067/100] feat(api): api update --- .stats.yml | 8 +- lib/vers.rb | 4 + lib/vers/models.rb | 8 ++ lib/vers/models/new_vms_response.rb | 16 ++++ lib/vers/models/vm_branch_by_commit_params.rb | 22 ++++++ lib/vers/models/vm_branch_by_vm_params.rb | 38 +++++++++ lib/vers/models/vm_branch_params.rb | 42 ++++++++++ lib/vers/resources/vm.rb | 77 +++++++++++++++++++ rbi/vers/models.rbi | 8 ++ rbi/vers/models/new_vms_response.rbi | 25 ++++++ .../models/vm_branch_by_commit_params.rbi | 43 +++++++++++ rbi/vers/models/vm_branch_by_vm_params.rbi | 68 ++++++++++++++++ rbi/vers/models/vm_branch_params.rbi | 68 ++++++++++++++++ rbi/vers/resources/vm.rbi | 61 +++++++++++++++ sig/vers/models.rbs | 8 ++ sig/vers/models/new_vms_response.rbs | 13 ++++ .../models/vm_branch_by_commit_params.rbs | 22 ++++++ sig/vers/models/vm_branch_by_vm_params.rbs | 38 +++++++++ sig/vers/models/vm_branch_params.rbs | 38 +++++++++ sig/vers/resources/vm.rbs | 22 ++++++ test/vers/resources/vm_test.rb | 48 ++++++++++++ 21 files changed, 673 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/new_vms_response.rb create mode 100644 lib/vers/models/vm_branch_by_commit_params.rb create mode 100644 lib/vers/models/vm_branch_by_vm_params.rb create mode 100644 lib/vers/models/vm_branch_params.rb create mode 100644 rbi/vers/models/new_vms_response.rbi create mode 100644 rbi/vers/models/vm_branch_by_commit_params.rbi create mode 100644 rbi/vers/models/vm_branch_by_vm_params.rbi create mode 100644 rbi/vers/models/vm_branch_params.rbi create mode 100644 sig/vers/models/new_vms_response.rbs create mode 100644 sig/vers/models/vm_branch_by_commit_params.rbs create mode 100644 sig/vers/models/vm_branch_by_vm_params.rbs create mode 100644 sig/vers/models/vm_branch_params.rbs diff --git a/.stats.yml b/.stats.yml index a79d4eb..1ad58a3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 8 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-d766c2e74a589557e18e00d3b95982a0d15b6708077beae922b31b855c31e270.yml -openapi_spec_hash: 8fe3ce53d0fd5f8bd5e0bd2ac7b537e2 -config_hash: 04113bae34ac921557f097de132338a1 +configured_endpoints: 11 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fae1f083d953513e33863a4bc3f2f156f9959095dd9955803d88f33cde3917bb.yml +openapi_spec_hash: c67c9359802b7879c60503f0f50aaac5 +config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd diff --git a/lib/vers.rb b/lib/vers.rb index f4d34fc..7fd8597 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -57,7 +57,11 @@ require_relative "vers/models/vm_update_state_request" require_relative "vers/models/error_response" require_relative "vers/models/new_vm_response" +require_relative "vers/models/new_vms_response" require_relative "vers/models/vm" +require_relative "vers/models/vm_branch_by_commit_params" +require_relative "vers/models/vm_branch_by_vm_params" +require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" require_relative "vers/models/vm_commit_response" require_relative "vers/models/vm_create_root_params" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 74d5cb7..e41bcd1 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -45,8 +45,16 @@ module Vers NewVmResponse = Vers::Models::NewVmResponse + NewVmsResponse = Vers::Models::NewVmsResponse + VmAPI = Vers::Models::VmAPI + VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + VmBranchByVmParams = Vers::Models::VmBranchByVmParams + + VmBranchParams = Vers::Models::VmBranchParams + VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/lib/vers/models/new_vms_response.rb b/lib/vers/models/new_vms_response.rb new file mode 100644 index 0000000..c843346 --- /dev/null +++ b/lib/vers/models/new_vms_response.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch + class NewVmsResponse < Vers::Internal::Type::BaseModel + # @!attribute vms + # + # @return [Array] + required :vms, -> { Vers::Internal::Type::ArrayOf[Vers::NewVmResponse] } + + # @!method initialize(vms:) + # @param vms [Array] + end + end +end diff --git a/lib/vers/models/vm_branch_by_commit_params.rb b/lib/vers/models/vm_branch_by_commit_params.rb new file mode 100644 index 0000000..bf4846c --- /dev/null +++ b/lib/vers/models/vm_branch_by_commit_params.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_commit + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!method initialize(count: nil, request_options: {}) + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_branch_by_vm_params.rb b/lib/vers/models/vm_branch_by_vm_params.rb new file mode 100644 index 0000000..857fe84 --- /dev/null +++ b/lib/vers/models/vm_branch_by_vm_params.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_vm + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!attribute keep_paused + # If true, keep VM paused after commit + # + # @return [Boolean, nil] + optional :keep_paused, Vers::Internal::Type::Boolean + + # @!attribute skip_wait_boot + # If true, immediately return an error if VM is booting instead of waiting + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_branch_params.rb b/lib/vers/models/vm_branch_params.rb new file mode 100644 index 0000000..b5fdb4f --- /dev/null +++ b/lib/vers/models/vm_branch_params.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!attribute keep_paused + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @return [Boolean, nil] + optional :keep_paused, Vers::Internal::Type::Boolean + + # @!attribute skip_wait_boot + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmBranchParams} for more details. + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 1352add..785c7bc 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -41,6 +41,83 @@ def delete(vm_id, params = {}) ) end + # Some parameter documentations has been truncated, see + # {Vers::Models::VmBranchParams} for more details. + # + # @overload branch(vm_or_commit_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # + # @param vm_or_commit_id [String] Parent VM or commit ID + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting. Only a + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmsResponse] + # + # @see Vers::Models::VmBranchParams + def branch(vm_or_commit_id, params = {}) + parsed, options = Vers::VmBranchParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/%1$s/branch", vm_or_commit_id], + query: parsed, + model: Vers::NewVmsResponse, + options: options + ) + end + + # @overload branch_by_commit(commit_id, count: nil, request_options: {}) + # + # @param commit_id [String] The commit id to branch off + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmsResponse] + # + # @see Vers::Models::VmBranchByCommitParams + def branch_by_commit(commit_id, params = {}) + parsed, options = Vers::VmBranchByCommitParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/branch/by_commit/%1$s", commit_id], + query: parsed, + model: Vers::NewVmsResponse, + options: options + ) + end + + # @overload branch_by_vm(vm_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # + # @param vm_id [String] VM to commit and then branch off of + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param keep_paused [Boolean] If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] If true, immediately return an error if VM is booting instead of waiting + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmsResponse] + # + # @see Vers::Models::VmBranchByVmParams + def branch_by_vm(vm_id, params = {}) + parsed, options = Vers::VmBranchByVmParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/branch/by_vm/%1$s", vm_id], + query: parsed, + model: Vers::NewVmsResponse, + options: options + ) + end + # @overload commit(vm_id, keep_paused: nil, skip_wait_boot: nil, request_options: {}) # # @param vm_id [String] VM ID to commit diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index a37ffc8..9bba7c1 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -7,8 +7,16 @@ module Vers NewVmResponse = Vers::Models::NewVmResponse + NewVmsResponse = Vers::Models::NewVmsResponse + VmAPI = Vers::Models::VmAPI + VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + VmBranchByVmParams = Vers::Models::VmBranchByVmParams + + VmBranchParams = Vers::Models::VmBranchParams + VmCommitParams = Vers::Models::VmCommitParams VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/rbi/vers/models/new_vms_response.rbi b/rbi/vers/models/new_vms_response.rbi new file mode 100644 index 0000000..8b61a4d --- /dev/null +++ b/rbi/vers/models/new_vms_response.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class NewVmsResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::NewVmsResponse, Vers::Internal::AnyHash) } + + sig { returns(T::Array[Vers::NewVmResponse]) } + attr_accessor :vms + + sig do + params(vms: T::Array[Vers::NewVmResponse::OrHash]).returns( + T.attached_class + ) + end + def self.new(vms:) + end + + sig { override.returns({ vms: T::Array[Vers::NewVmResponse] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_commit_params.rbi b/rbi/vers/models/vm_branch_by_commit_params.rbi new file mode 100644 index 0000000..707bac2 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_commit_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmBranchByCommitParams, Vers::Internal::AnyHash) + end + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + sig do + params( + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + + sig do + override.returns( + { count: Integer, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_vm_params.rbi b/rbi/vers/models/vm_branch_by_vm_params.rbi new file mode 100644 index 0000000..bc43cd5 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_vm_params.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Vers + module Models + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmBranchByVmParams, Vers::Internal::AnyHash) + end + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + # If true, keep VM paused after commit + sig { returns(T.nilable(T::Boolean)) } + attr_reader :keep_paused + + sig { params(keep_paused: T::Boolean).void } + attr_writer :keep_paused + + # If true, immediately return an error if VM is booting instead of waiting + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + + sig do + params( + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_params.rbi b/rbi/vers/models/vm_branch_params.rbi new file mode 100644 index 0000000..082b029 --- /dev/null +++ b/rbi/vers/models/vm_branch_params.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Vers + module Models + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmBranchParams, Vers::Internal::AnyHash) } + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :keep_paused + + sig { params(keep_paused: T::Boolean).void } + attr_writer :keep_paused + + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + + sig do + params( + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 108d799..72879b2 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -27,6 +27,67 @@ module Vers ) end + sig do + params( + vm_or_commit_id: String, + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmsResponse) + end + def branch( + # Parent VM or commit ID + vm_or_commit_id, + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit. Only applicable when branching a VM ID. + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting. Only + # applicable when branching a VM ID. + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + params( + commit_id: String, + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmsResponse) + end + def branch_by_commit( + # The commit id to branch off + commit_id, + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + count: Integer, + keep_paused: T::Boolean, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmsResponse) + end + def branch_by_vm( + # VM to commit and then branch off of + vm_id, + # Number of VMs to branch (optional; default 1) + count: nil, + # If true, keep VM paused after commit + keep_paused: nil, + # If true, immediately return an error if VM is booting instead of waiting + skip_wait_boot: nil, + request_options: {} + ) + end + sig do params( vm_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 26844ce..6d1dca2 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -5,8 +5,16 @@ module Vers class NewVmResponse = Vers::Models::NewVmResponse + class NewVmsResponse = Vers::Models::NewVmsResponse + class VmAPI = Vers::Models::VmAPI + class VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + + class VmBranchByVmParams = Vers::Models::VmBranchByVmParams + + class VmBranchParams = Vers::Models::VmBranchParams + class VmCommitParams = Vers::Models::VmCommitParams class VmCommitResponse = Vers::Models::VmCommitResponse diff --git a/sig/vers/models/new_vms_response.rbs b/sig/vers/models/new_vms_response.rbs new file mode 100644 index 0000000..6417a63 --- /dev/null +++ b/sig/vers/models/new_vms_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type new_vms_response = { vms: ::Array[Vers::NewVmResponse] } + + class NewVmsResponse < Vers::Internal::Type::BaseModel + attr_accessor vms: ::Array[Vers::NewVmResponse] + + def initialize: (vms: ::Array[Vers::NewVmResponse]) -> void + + def to_hash: -> { vms: ::Array[Vers::NewVmResponse] } + end + end +end diff --git a/sig/vers/models/vm_branch_by_commit_params.rbs b/sig/vers/models/vm_branch_by_commit_params.rbs new file mode 100644 index 0000000..473236a --- /dev/null +++ b/sig/vers/models/vm_branch_by_commit_params.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type vm_branch_by_commit_params = + { count: Integer } & Vers::Internal::Type::request_parameters + + class VmBranchByCommitParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + def initialize: ( + ?count: Integer, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { count: Integer, request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_branch_by_vm_params.rbs b/sig/vers/models/vm_branch_by_vm_params.rbs new file mode 100644 index 0000000..14e8050 --- /dev/null +++ b/sig/vers/models/vm_branch_by_vm_params.rbs @@ -0,0 +1,38 @@ +module Vers + module Models + type vm_branch_by_vm_params = + { count: Integer, keep_paused: bool, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters + + class VmBranchByVmParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + attr_reader keep_paused: bool? + + def keep_paused=: (bool) -> bool + + attr_reader skip_wait_boot: bool? + + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + count: Integer, + keep_paused: bool, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/vm_branch_params.rbs b/sig/vers/models/vm_branch_params.rbs new file mode 100644 index 0000000..93a0791 --- /dev/null +++ b/sig/vers/models/vm_branch_params.rbs @@ -0,0 +1,38 @@ +module Vers + module Models + type vm_branch_params = + { count: Integer, keep_paused: bool, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters + + class VmBranchParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + attr_reader keep_paused: bool? + + def keep_paused=: (bool) -> bool + + attr_reader skip_wait_boot: bool? + + def skip_wait_boot=: (bool) -> bool + + def initialize: ( + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + count: Integer, + keep_paused: bool, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index e23bbe5..79c0671 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -11,6 +11,28 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::VmDeleteResponse + def branch: ( + String vm_or_commit_id, + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> Vers::NewVmsResponse + + def branch_by_commit: ( + String commit_id, + ?count: Integer, + ?request_options: Vers::request_opts + ) -> Vers::NewVmsResponse + + def branch_by_vm: ( + String vm_id, + ?count: Integer, + ?keep_paused: bool, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> Vers::NewVmsResponse + def commit: ( String vm_id, ?keep_paused: bool, diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 59f206c..98fbfb0 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -29,6 +29,54 @@ def test_delete end end + def test_branch + skip("Prism tests are disabled") + + response = @vers.vm.branch("vm_or_commit_id") + + assert_pattern do + response => Vers::NewVmsResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + + def test_branch_by_commit + skip("Prism tests are disabled") + + response = @vers.vm.branch_by_commit("commit_id") + + assert_pattern do + response => Vers::NewVmsResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + + def test_branch_by_vm + skip("Prism tests are disabled") + + response = @vers.vm.branch_by_vm("vm_id") + + assert_pattern do + response => Vers::NewVmsResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + def test_commit skip("Prism tests are disabled") From eb3ea7229cfc9b04e83fde2810fab81ff74c0fb4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 04:29:48 +0000 Subject: [PATCH 068/100] fix(client): always add content-length to post body, even when empty --- lib/vers/internal/transport/pooled_net_requester.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/vers/internal/transport/pooled_net_requester.rb b/lib/vers/internal/transport/pooled_net_requester.rb index a123ae8..2d158a8 100644 --- a/lib/vers/internal/transport/pooled_net_requester.rb +++ b/lib/vers/internal/transport/pooled_net_requester.rb @@ -75,7 +75,7 @@ def build_request(request, &blk) case body in nil - nil + req["content-length"] ||= 0 unless req["transfer-encoding"] in String req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"] req.body_stream = Vers::Internal::Util::ReadIOAdapter.new(body, &blk) From d505a1c50fa476eb29abe3bddf9b8036ae7b697e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 04:16:48 +0000 Subject: [PATCH 069/100] chore(docs): remove www prefix --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 30cf395..f60f390 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,13 +43,13 @@ If you’d like to use the repository from source, you can either install from g To install via git in your `Gemfile`: ```ruby -gem "vers", git: "https://www.github.com/hdresearch/vers-sdk-ruby" +gem "vers", git: "https://github.com/hdresearch/vers-sdk-ruby" ``` Alternatively, reference local copy of the repo: ```bash -$ git clone -- 'https://www.github.com/hdresearch/vers-sdk-ruby' '' +$ git clone -- 'https://github.com/hdresearch/vers-sdk-ruby' '' ``` ```ruby From e12113799d1417a7e9b1cb198c861d33734e415f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 13:44:22 +0000 Subject: [PATCH 070/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models/vm.rb | 1 + rbi/vers/models/vm.rbi | 1 + sig/vers/models/vm.rbs | 3 ++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1ad58a3..8a322c6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fae1f083d953513e33863a4bc3f2f156f9959095dd9955803d88f33cde3917bb.yml -openapi_spec_hash: c67c9359802b7879c60503f0f50aaac5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-b4186696d8be437c138fd1211718276ec22b21056cf0c30440cd4d2e616bd081.yml +openapi_spec_hash: 319b50b7811df9ec39a0542c45bd2bc4 config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd diff --git a/lib/vers/models/vm.rb b/lib/vers/models/vm.rb index 9e343e5..7419173 100644 --- a/lib/vers/models/vm.rb +++ b/lib/vers/models/vm.rb @@ -43,6 +43,7 @@ module State BOOTING = :booting RUNNING = :running PAUSED = :paused + SLEEPING = :sleeping # @!method self.values # @return [Array] diff --git a/rbi/vers/models/vm.rbi b/rbi/vers/models/vm.rbi index 27206e4..32bcb31 100644 --- a/rbi/vers/models/vm.rbi +++ b/rbi/vers/models/vm.rbi @@ -58,6 +58,7 @@ module Vers BOOTING = T.let(:booting, Vers::VmAPI::State::TaggedSymbol) RUNNING = T.let(:running, Vers::VmAPI::State::TaggedSymbol) PAUSED = T.let(:paused, Vers::VmAPI::State::TaggedSymbol) + SLEEPING = T.let(:sleeping, Vers::VmAPI::State::TaggedSymbol) sig { override.returns(T::Array[Vers::VmAPI::State::TaggedSymbol]) } def self.values diff --git a/sig/vers/models/vm.rbs b/sig/vers/models/vm.rbs index 7b2c0b1..2f31675 100644 --- a/sig/vers/models/vm.rbs +++ b/sig/vers/models/vm.rbs @@ -31,7 +31,7 @@ module Vers vm_id: String } - type state = :booting | :running | :paused + type state = :booting | :running | :paused | :sleeping module State extend Vers::Internal::Type::Enum @@ -39,6 +39,7 @@ module Vers BOOTING: :booting RUNNING: :running PAUSED: :paused + SLEEPING: :sleeping def self?.values: -> ::Array[Vers::Models::VmAPI::state] end From 957d35627b9416083c44e3b12b2c4afdb597a9aa Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Feb 2026 05:41:36 +0000 Subject: [PATCH 071/100] fix(client): loosen json header parsing --- lib/vers/internal/util.rb | 2 +- rbi/vers/internal/util.rbi | 2 +- test/vers/internal/util_test.rb | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index c72a09b..1a1a66a 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -485,7 +485,7 @@ def writable_enum(&blk) end # @type [Regexp] - JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)} + JSON_CONTENT = %r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)} # @type [Regexp] JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)} diff --git a/rbi/vers/internal/util.rbi b/rbi/vers/internal/util.rbi index 48f8b98..961826f 100644 --- a/rbi/vers/internal/util.rbi +++ b/rbi/vers/internal/util.rbi @@ -290,7 +290,7 @@ module Vers end JSON_CONTENT = - T.let(%r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}, Regexp) + T.let(%r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)}, Regexp) JSONL_CONTENT = T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp) diff --git a/test/vers/internal/util_test.rb b/test/vers/internal/util_test.rb index 2dbd6ad..7f21fe9 100644 --- a/test/vers/internal/util_test.rb +++ b/test/vers/internal/util_test.rb @@ -171,6 +171,8 @@ def test_json_content cases = { "application/json" => true, "application/jsonl" => false, + "application/arbitrary+json" => true, + "application/ARBITRARY+json" => true, "application/vnd.github.v3+json" => true, "application/vnd.api+json" => true } From 13cf8a82687157aca17404407fdc9c0810c1d935 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 12:17:28 +0000 Subject: [PATCH 072/100] chore(internal): remove mock server code --- scripts/mock | 41 ----------------------------------------- scripts/test | 46 ---------------------------------------------- 2 files changed, 87 deletions(-) delete mode 100755 scripts/mock diff --git a/scripts/mock b/scripts/mock deleted file mode 100755 index 0b28f6e..0000000 --- a/scripts/mock +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "$0")/.." - -if [[ -n "$1" && "$1" != '--'* ]]; then - URL="$1" - shift -else - URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)" -fi - -# Check if the URL is empty -if [ -z "$URL" ]; then - echo "Error: No OpenAPI spec path/url provided or found in .stats.yml" - exit 1 -fi - -echo "==> Starting mock server with URL ${URL}" - -# Run prism mock on the given spec -if [ "$1" == "--daemon" ]; then - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & - - # Wait for server to come online - echo -n "Waiting for server" - while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do - echo -n "." - sleep 0.1 - done - - if grep -q "✖ fatal" ".prism.log"; then - cat .prism.log - exit 1 - fi - - echo -else - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" -fi diff --git a/scripts/test b/scripts/test index e0dc137..df8caf9 100755 --- a/scripts/test +++ b/scripts/test @@ -4,53 +4,7 @@ set -e cd -- "$(dirname -- "$0")/.." -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -NC='\033[0m' # No Color -function prism_is_running() { - curl --silent "http://localhost:4010" >/dev/null 2>&1 -} - -kill_server_on_port() { - pids=$(lsof -t -i tcp:"$1" || echo "") - if [ "$pids" != "" ]; then - kill "$pids" - echo "Stopped $pids." - fi -} - -function is_overriding_api_base_url() { - [ -n "$TEST_API_BASE_URL" ] -} - -if ! is_overriding_api_base_url && ! prism_is_running ; then - # When we exit this script, make sure to kill the background mock server process - trap 'kill_server_on_port 4010' EXIT - - # Start the dev server - ./scripts/mock --daemon -fi - -if is_overriding_api_base_url ; then - echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}" - echo -elif ! prism_is_running ; then - echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server" - echo -e "running against your OpenAPI spec." - echo - echo -e "To run the server, pass in the path or url of your OpenAPI" - echo -e "spec to the prism command:" - echo - echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" - echo - - exit 1 -else - echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}" - echo -fi echo "==> Running tests" bundle exec rake test "$@" From abd9570808ca2cd921ac09952226fb7f61ce4044 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 12:18:22 +0000 Subject: [PATCH 073/100] chore: update mock server docs --- CONTRIBUTING.md | 6 ------ test/vers/resources/vm_test.rb | 22 +++++++++++----------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f60f390..2e02849 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,12 +66,6 @@ $ bundle exec rake ## Running tests -Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests. - -```bash -$ npx prism mock path/to/your/openapi.yml -``` - ```bash $ bundle exec rake test ``` diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 98fbfb0..22743c3 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -4,7 +4,7 @@ class Vers::Test::Resources::VmTest < Vers::Test::ResourceTest def test_list - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.list @@ -14,7 +14,7 @@ def test_list end def test_delete - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.delete("vm_id") @@ -30,7 +30,7 @@ def test_delete end def test_branch - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.branch("vm_or_commit_id") @@ -46,7 +46,7 @@ def test_branch end def test_branch_by_commit - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.branch_by_commit("commit_id") @@ -62,7 +62,7 @@ def test_branch_by_commit end def test_branch_by_vm - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.branch_by_vm("vm_id") @@ -78,7 +78,7 @@ def test_branch_by_vm end def test_commit - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.commit("vm_id") @@ -94,7 +94,7 @@ def test_commit end def test_create_root_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.create_root(vm_config: {}) @@ -110,7 +110,7 @@ def test_create_root_required_params end def test_get_ssh_key - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.get_ssh_key("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -127,7 +127,7 @@ def test_get_ssh_key end def test_restore_from_commit_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.restore_from_commit(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -143,7 +143,7 @@ def test_restore_from_commit_required_params end def test_status - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.status("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") @@ -162,7 +162,7 @@ def test_status end def test_update_state_required_params - skip("Prism tests are disabled") + skip("Mock server tests are disabled") response = @vers.vm.update_state("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", state: :Paused) From 8e7b32c6bcb46c9a067b5652ac0f85c4b8ef6339 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 19:22:18 +0000 Subject: [PATCH 074/100] feat(api): api update --- .stats.yml | 4 +- lib/vers/internal/type/union.rb | 11 +++ lib/vers/models/vm_from_commit_request.rb | 58 ++++++++++++--- .../models/vm_restore_from_commit_params.rb | 12 +++- lib/vers/resources/vm.rb | 10 ++- rbi/vers/models/vm_from_commit_request.rbi | 70 ++++++++++++++++--- .../models/vm_restore_from_commit_params.rbi | 41 +++++++++-- rbi/vers/resources/vm.rbi | 8 ++- sig/vers/models.rbs | 2 +- sig/vers/models/vm_from_commit_request.rbs | 29 ++++++-- .../models/vm_restore_from_commit_params.rbs | 21 ++++-- sig/vers/resources/vm.rbs | 2 +- 12 files changed, 224 insertions(+), 44 deletions(-) diff --git a/.stats.yml b/.stats.yml index 8a322c6..e475eee 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-b4186696d8be437c138fd1211718276ec22b21056cf0c30440cd4d2e616bd081.yml -openapi_spec_hash: 319b50b7811df9ec39a0542c45bd2bc4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-7780cef6a08e7b6da74d1c3919cd0dd4f3eadc76db1accda15efcf44537f5127.yml +openapi_spec_hash: 4bef3c04e959968c288a8e339e2bf02c config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd diff --git a/lib/vers/internal/type/union.rb b/lib/vers/internal/type/union.rb index 7e8d151..a58b5d5 100644 --- a/lib/vers/internal/type/union.rb +++ b/lib/vers/internal/type/union.rb @@ -4,6 +4,17 @@ module Vers module Internal module Type # @api private + # + # @example + # # `vm_from_commit_request` is a `Vers::VmFromCommitRequest` + # case vm_from_commit_request + # when Vers::VmFromCommitRequest::CommitID + # puts(vm_from_commit_request.commit_id) + # when Vers::VmFromCommitRequest::TagName + # puts(vm_from_commit_request.tag_name) + # else + # puts(vm_from_commit_request) + # end module Union include Vers::Internal::Type::Converter include Vers::Internal::Util::SorbetRuntimeSupport diff --git a/lib/vers/models/vm_from_commit_request.rb b/lib/vers/models/vm_from_commit_request.rb index 7d429cc..3cf8fb4 100644 --- a/lib/vers/models/vm_from_commit_request.rb +++ b/lib/vers/models/vm_from_commit_request.rb @@ -2,16 +2,54 @@ module Vers module Models - class VmFromCommitRequest < Vers::Internal::Type::BaseModel - # @!attribute commit_id - # - # @return [String] - required :commit_id, String - - # @!method initialize(commit_id:) - # Request body for POST /api/v1/vm/from_commit - # - # @param commit_id [String] + # Request body for POST /api/v1/vm/from_commit + module VmFromCommitRequest + extend Vers::Internal::Type::Union + + # The commit ID to restore from (exactly one of commit_id or tag_name must be provided) + variant -> { Vers::VmFromCommitRequest::CommitID } + + # The tag name to restore from (exactly one of commit_id or tag_name must be provided) + variant -> { Vers::VmFromCommitRequest::TagName } + + class CommitID < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID to restore from (exactly one of commit_id or tag_name must be + # provided) + # + # @return [String] + required :commit_id, String + + # @!method initialize(commit_id:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmFromCommitRequest::CommitID} for more details. + # + # The commit ID to restore from (exactly one of commit_id or tag_name must be + # provided) + # + # @param commit_id [String] The commit ID to restore from (exactly one of commit_id or tag_name must be prov + end + + class TagName < Vers::Internal::Type::BaseModel + # @!attribute tag_name + # The tag name to restore from (exactly one of commit_id or tag_name must be + # provided) + # + # @return [String] + required :tag_name, String + + # @!method initialize(tag_name:) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmFromCommitRequest::TagName} for more details. + # + # The tag name to restore from (exactly one of commit_id or tag_name must be + # provided) + # + # @param tag_name [String] The tag name to restore from (exactly one of commit_id or tag_name must be provi + end + + # @!method self.variants + # @return [Array(Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName)] end end end diff --git a/lib/vers/models/vm_restore_from_commit_params.rb b/lib/vers/models/vm_restore_from_commit_params.rb index 96f9232..ad0b315 100644 --- a/lib/vers/models/vm_restore_from_commit_params.rb +++ b/lib/vers/models/vm_restore_from_commit_params.rb @@ -3,11 +3,19 @@ module Vers module Models # @see Vers::Resources::Vm#restore_from_commit - class VmRestoreFromCommitParams < Vers::Models::VmFromCommitRequest + class VmRestoreFromCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute vm_from_commit_request + # Request body for POST /api/v1/vm/from_commit + # + # @return [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName] + required :vm_from_commit_request, union: -> { Vers::VmFromCommitRequest } + + # @!method initialize(vm_from_commit_request:, request_options: {}) + # @param vm_from_commit_request [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName] Request body for POST /api/v1/vm/from_commit + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 785c7bc..e731fa2 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -187,9 +187,10 @@ def get_ssh_key(vm_id, params = {}) ) end - # @overload restore_from_commit(commit_id:, request_options: {}) + # @overload restore_from_commit(vm_from_commit_request:, request_options: {}) + # + # @param vm_from_commit_request [Vers::VmFromCommitRequest] Request body for POST /api/v1/vm/from_commit # - # @param commit_id [String] # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Vers::Models::NewVmResponse] @@ -197,6 +198,11 @@ def get_ssh_key(vm_id, params = {}) # @see Vers::Models::VmRestoreFromCommitParams def restore_from_commit(params) parsed, options = Vers::VmRestoreFromCommitParams.dump_request(params) + case parsed + in {vm_from_commit_request: Hash => union, **rest} + parsed = {**rest, **union} + else + end @client.request( method: :post, path: "api/v1/vm/from_commit", diff --git a/rbi/vers/models/vm_from_commit_request.rbi b/rbi/vers/models/vm_from_commit_request.rbi index fd2323c..e606e96 100644 --- a/rbi/vers/models/vm_from_commit_request.rbi +++ b/rbi/vers/models/vm_from_commit_request.rbi @@ -2,22 +2,72 @@ module Vers module Models - class VmFromCommitRequest < Vers::Internal::Type::BaseModel - OrHash = + # Request body for POST /api/v1/vm/from_commit + module VmFromCommitRequest + extend Vers::Internal::Type::Union + + Variants = T.type_alias do - T.any(Vers::VmFromCommitRequest, Vers::Internal::AnyHash) + T.any( + Vers::VmFromCommitRequest::CommitID, + Vers::VmFromCommitRequest::TagName + ) + end + + class CommitID < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmFromCommitRequest::CommitID, Vers::Internal::AnyHash) + end + + # The commit ID to restore from (exactly one of commit_id or tag_name must be + # provided) + sig { returns(String) } + attr_accessor :commit_id + + # The commit ID to restore from (exactly one of commit_id or tag_name must be + # provided) + sig { params(commit_id: String).returns(T.attached_class) } + def self.new( + # The commit ID to restore from (exactly one of commit_id or tag_name must be + # provided) + commit_id: + ) + end + + sig { override.returns({ commit_id: String }) } + def to_hash end + end + + class TagName < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmFromCommitRequest::TagName, Vers::Internal::AnyHash) + end - sig { returns(String) } - attr_accessor :commit_id + # The tag name to restore from (exactly one of commit_id or tag_name must be + # provided) + sig { returns(String) } + attr_accessor :tag_name - # Request body for POST /api/v1/vm/from_commit - sig { params(commit_id: String).returns(T.attached_class) } - def self.new(commit_id:) + # The tag name to restore from (exactly one of commit_id or tag_name must be + # provided) + sig { params(tag_name: String).returns(T.attached_class) } + def self.new( + # The tag name to restore from (exactly one of commit_id or tag_name must be + # provided) + tag_name: + ) + end + + sig { override.returns({ tag_name: String }) } + def to_hash + end end - sig { override.returns({ commit_id: String }) } - def to_hash + sig { override.returns(T::Array[Vers::VmFromCommitRequest::Variants]) } + def self.variants end end end diff --git a/rbi/vers/models/vm_restore_from_commit_params.rbi b/rbi/vers/models/vm_restore_from_commit_params.rbi index ef543dd..0eec79d 100644 --- a/rbi/vers/models/vm_restore_from_commit_params.rbi +++ b/rbi/vers/models/vm_restore_from_commit_params.rbi @@ -2,7 +2,7 @@ module Vers module Models - class VmRestoreFromCommitParams < Vers::Models::VmFromCommitRequest + class VmRestoreFromCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters @@ -11,15 +11,46 @@ module Vers T.any(Vers::VmRestoreFromCommitParams, Vers::Internal::AnyHash) end + # Request body for POST /api/v1/vm/from_commit sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class + returns( + T.any( + Vers::VmFromCommitRequest::CommitID, + Vers::VmFromCommitRequest::TagName + ) ) end - def self.new(request_options: {}) + attr_accessor :vm_from_commit_request + + sig do + params( + vm_from_commit_request: + T.any( + Vers::VmFromCommitRequest::CommitID::OrHash, + Vers::VmFromCommitRequest::TagName::OrHash + ), + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Request body for POST /api/v1/vm/from_commit + vm_from_commit_request:, + request_options: {} + ) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { + vm_from_commit_request: + T.any( + Vers::VmFromCommitRequest::CommitID, + Vers::VmFromCommitRequest::TagName + ), + request_options: Vers::RequestOptions + } + ) + end def to_hash end end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 72879b2..987b37e 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -139,11 +139,15 @@ module Vers sig do params( - commit_id: String, + vm_from_commit_request: Vers::VmFromCommitRequest, request_options: Vers::RequestOptions::OrHash ).returns(Vers::NewVmResponse) end - def restore_from_commit(commit_id:, request_options: {}) + def restore_from_commit( + # Request body for POST /api/v1/vm/from_commit + vm_from_commit_request:, + request_options: {} + ) end sig do diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 6d1dca2..2f85251 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -25,7 +25,7 @@ module Vers class VmDeleteResponse = Vers::Models::VmDeleteResponse - class VmFromCommitRequest = Vers::Models::VmFromCommitRequest + module VmFromCommitRequest = Vers::Models::VmFromCommitRequest class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams diff --git a/sig/vers/models/vm_from_commit_request.rbs b/sig/vers/models/vm_from_commit_request.rbs index 1a97ab0..0b44d6a 100644 --- a/sig/vers/models/vm_from_commit_request.rbs +++ b/sig/vers/models/vm_from_commit_request.rbs @@ -1,13 +1,32 @@ module Vers module Models - type vm_from_commit_request = { commit_id: String } + type vm_from_commit_request = + Vers::VmFromCommitRequest::CommitID | Vers::VmFromCommitRequest::TagName - class VmFromCommitRequest < Vers::Internal::Type::BaseModel - attr_accessor commit_id: String + module VmFromCommitRequest + extend Vers::Internal::Type::Union - def initialize: (commit_id: String) -> void + type commit_id = { commit_id: String } - def to_hash: -> { commit_id: String } + class CommitID < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + def initialize: (commit_id: String) -> void + + def to_hash: -> { commit_id: String } + end + + type tag_name = { tag_name: String } + + class TagName < Vers::Internal::Type::BaseModel + attr_accessor tag_name: String + + def initialize: (tag_name: String) -> void + + def to_hash: -> { tag_name: String } + end + + def self?.variants: -> ::Array[Vers::Models::vm_from_commit_request] end end end diff --git a/sig/vers/models/vm_restore_from_commit_params.rbs b/sig/vers/models/vm_restore_from_commit_params.rbs index 7e795ae..dd43343 100644 --- a/sig/vers/models/vm_restore_from_commit_params.rbs +++ b/sig/vers/models/vm_restore_from_commit_params.rbs @@ -1,15 +1,28 @@ module Vers module Models type vm_restore_from_commit_params = - { } & Vers::Internal::Type::request_parameters + { vm_from_commit_request: Vers::Models::vm_from_commit_request } + & Vers::Internal::Type::request_parameters - class VmRestoreFromCommitParams < Vers::Models::VmFromCommitRequest + class VmRestoreFromCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + def vm_from_commit_request: -> Vers::Models::vm_from_commit_request - def to_hash: -> { request_options: Vers::RequestOptions } + def vm_from_commit_request=: ( + Vers::Models::vm_from_commit_request _ + ) -> Vers::Models::vm_from_commit_request + + def initialize: ( + vm_from_commit_request: Vers::Models::vm_from_commit_request, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + vm_from_commit_request: Vers::Models::vm_from_commit_request, + request_options: Vers::RequestOptions + } end end end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 79c0671..c5c87cf 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -52,7 +52,7 @@ module Vers ) -> Vers::VmSSHKeyResponse def restore_from_commit: ( - commit_id: String, + vm_from_commit_request: Vers::Models::VmFromCommitRequest, ?request_options: Vers::request_opts ) -> Vers::NewVmResponse From a2b09ea34e1ff2221ad9c83adc428573bfe1cafb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 02:01:39 +0000 Subject: [PATCH 075/100] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index e475eee..615a7fa 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-7780cef6a08e7b6da74d1c3919cd0dd4f3eadc76db1accda15efcf44537f5127.yml -openapi_spec_hash: 4bef3c04e959968c288a8e339e2bf02c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-f37f20c0d4c0658a553f45e08cb3267822821f24a8e0a76748c86aea578390e2.yml +openapi_spec_hash: 6ff49a4f734e6b5a9f92a8d116c794d2 config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd From 09f49a0bad8bc09321357bcdf1f49b3a9aaf7f2d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 06:26:09 +0000 Subject: [PATCH 076/100] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 615a7fa..e8a44ef 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-f37f20c0d4c0658a553f45e08cb3267822821f24a8e0a76748c86aea578390e2.yml -openapi_spec_hash: 6ff49a4f734e6b5a9f92a8d116c794d2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-04bd38cfe9f976397e4213727c2f3a0d702e721b29f4274ffb8e13739964960f.yml +openapi_spec_hash: 59bdbc1fa093baa7ca29d8348fa90f0d config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd From 895712fecdacc3629453b184b0dcc523c861d45c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 14:02:06 +0000 Subject: [PATCH 077/100] fix: properly mock time in ruby ci tests --- test/vers/client_test.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/vers/client_test.rb b/test/vers/client_test.rb index b192390..fb66b51 100644 --- a/test/vers/client_test.rb +++ b/test/vers/client_test.rb @@ -93,19 +93,21 @@ def test_client_retry_after_seconds end def test_client_retry_after_date + time_now = Time.now + stub_request(:post, "http://localhost/api/v1/vm/new_root").to_return_json( status: 500, - headers: {"retry-after" => (Time.now + 10).httpdate}, + headers: {"retry-after" => (time_now + 10).httpdate}, body: {} ) vers = Vers::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) + Thread.current.thread_variable_set(:time_now, time_now) assert_raises(Vers::Errors::InternalServerError) do - Thread.current.thread_variable_set(:time_now, Time.now) vers.vm.create_root(vm_config: {}) - Thread.current.thread_variable_set(:time_now, nil) end + Thread.current.thread_variable_set(:time_now, nil) assert_requested(:any, /./, times: 2) assert_in_delta(10, Thread.current.thread_variable_get(:mock_sleep).last, 1.0) From 09ce78f87e2d000c253e75d18d6521188f6860b8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 09:19:39 +0000 Subject: [PATCH 078/100] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index e8a44ef..d9c830f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-04bd38cfe9f976397e4213727c2f3a0d702e721b29f4274ffb8e13739964960f.yml -openapi_spec_hash: 59bdbc1fa093baa7ca29d8348fa90f0d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-a278e0cd81ddc7f455b2196c5239b3ead754d2a9e78cd0bfc46838d0473666d4.yml +openapi_spec_hash: 0375b84ead8d32c6d723866ad8f5105e config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd From fbb3b16e6995f970c537c778684a3820a871498b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 09:03:54 +0000 Subject: [PATCH 079/100] chore(internal): codegen related update --- lib/vers/internal/util.rb | 31 +++++++++++++++++++++++++++++++ lib/vers/resources/vm.rb | 25 ++++++++++++++++--------- rbi/vers/internal/util.rbi | 20 ++++++++++++++++++++ sig/vers/internal/util.rbs | 10 ++++++++++ 4 files changed, 77 insertions(+), 9 deletions(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index 1a1a66a..51a1961 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -490,6 +490,37 @@ def writable_enum(&blk) JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)} class << self + # @api private + # + # @param query [Hash{Symbol=>Object}] + # + # @return [Hash{Symbol=>Object}] + def encode_query_params(query) + out = {} + query.each { write_query_param_element!(out, _1, _2) } + out + end + + # @api private + # + # @param collection [Hash{Symbol=>Object}] + # @param key [String] + # @param element [Object] + # + # @return [nil] + private def write_query_param_element!(collection, key, element) + case element + in Hash + element.each do |name, value| + write_query_param_element!(collection, "#{key}[#{name}]", value) + end + in Array + collection[key] = element.map(&:to_s).join(",") + else + collection[key] = element.to_s + end + end + # @api private # # @param y [Enumerator::Yielder] diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index e731fa2..4d732d5 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -32,10 +32,11 @@ def list(params = {}) # @see Vers::Models::VmDeleteParams def delete(vm_id, params = {}) parsed, options = Vers::VmDeleteParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed) @client.request( method: :delete, path: ["api/v1/vm/%1$s", vm_id], - query: parsed, + query: query, model: Vers::VmDeleteResponse, options: options ) @@ -61,10 +62,11 @@ def delete(vm_id, params = {}) # @see Vers::Models::VmBranchParams def branch(vm_or_commit_id, params = {}) parsed, options = Vers::VmBranchParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed) @client.request( method: :post, path: ["api/v1/vm/%1$s/branch", vm_or_commit_id], - query: parsed, + query: query, model: Vers::NewVmsResponse, options: options ) @@ -83,10 +85,11 @@ def branch(vm_or_commit_id, params = {}) # @see Vers::Models::VmBranchByCommitParams def branch_by_commit(commit_id, params = {}) parsed, options = Vers::VmBranchByCommitParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed) @client.request( method: :post, path: ["api/v1/vm/branch/by_commit/%1$s", commit_id], - query: parsed, + query: query, model: Vers::NewVmsResponse, options: options ) @@ -109,10 +112,11 @@ def branch_by_commit(commit_id, params = {}) # @see Vers::Models::VmBranchByVmParams def branch_by_vm(vm_id, params = {}) parsed, options = Vers::VmBranchByVmParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed) @client.request( method: :post, path: ["api/v1/vm/branch/by_vm/%1$s", vm_id], - query: parsed, + query: query, model: Vers::NewVmsResponse, options: options ) @@ -133,10 +137,11 @@ def branch_by_vm(vm_id, params = {}) # @see Vers::Models::VmCommitParams def commit(vm_id, params = {}) parsed, options = Vers::VmCommitParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed) @client.request( method: :post, path: ["api/v1/vm/%1$s/commit", vm_id], - query: parsed, + query: query, model: Vers::VmCommitResponse, options: options ) @@ -157,12 +162,13 @@ def commit(vm_id, params = {}) # # @see Vers::Models::VmCreateRootParams def create_root(params) - parsed, options = Vers::VmCreateRootParams.dump_request(params) query_params = [:wait_boot] + parsed, options = Vers::VmCreateRootParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed.slice(*query_params)) @client.request( method: :post, path: "api/v1/vm/new_root", - query: parsed.slice(*query_params), + query: query, body: parsed.except(*query_params), model: Vers::NewVmResponse, options: options @@ -247,12 +253,13 @@ def status(vm_id, params = {}) # # @see Vers::Models::VmUpdateStateParams def update_state(vm_id, params) - parsed, options = Vers::VmUpdateStateParams.dump_request(params) query_params = [:skip_wait_boot] + parsed, options = Vers::VmUpdateStateParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed.slice(*query_params)) @client.request( method: :patch, path: ["api/v1/vm/%1$s/state", vm_id], - query: parsed.slice(*query_params), + query: query, body: parsed.except(*query_params), model: NilClass, options: options diff --git a/rbi/vers/internal/util.rbi b/rbi/vers/internal/util.rbi index 961826f..b3a57cf 100644 --- a/rbi/vers/internal/util.rbi +++ b/rbi/vers/internal/util.rbi @@ -295,6 +295,26 @@ module Vers T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp) class << self + # @api private + sig do + params(query: Vers::Internal::AnyHash).returns( + Vers::Internal::AnyHash + ) + end + def encode_query_params(query) + end + + # @api private + sig do + params( + collection: Vers::Internal::AnyHash, + key: String, + element: T.anything + ).void + end + private def write_query_param_element!(collection, key, element) + end + # @api private sig do params( diff --git a/sig/vers/internal/util.rbs b/sig/vers/internal/util.rbs index c6d2aab..84792fb 100644 --- a/sig/vers/internal/util.rbs +++ b/sig/vers/internal/util.rbs @@ -106,6 +106,16 @@ module Vers JSON_CONTENT: Regexp JSONL_CONTENT: Regexp + def encode_query_params: ( + ::Hash[Symbol, top] query + ) -> ::Hash[Symbol, top] + + private def write_query_param_element!: ( + ::Hash[Symbol, top] collection, + String key, + top element + ) -> nil + def self?.write_multipart_content: ( Enumerator::Yielder y, val: top, From d2fb9acfd5d994bccb502ff36ac6a110f9f57d62 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 4 Mar 2026 09:39:34 +0000 Subject: [PATCH 080/100] chore(ci): add build step --- .github/workflows/ci.yml | 34 ++++++++++ scripts/utils/upload-artifact.sh | 113 +++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100755 scripts/utils/upload-artifact.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c292483..55fa090 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,40 @@ on: - 'stl-preview-base/**' jobs: + build: + timeout-minutes: 10 + name: build + permissions: + contents: read + id-token: write + runs-on: ${{ github.repository == 'stainless-sdks/firecracker-manager-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + if: |- + github.repository == 'stainless-sdks/firecracker-manager-ruby' && + (github.event_name == 'push' || github.event.pull_request.head.repo.fork) + steps: + - uses: actions/checkout@v6 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: false + - run: |- + bundle install + + - name: Get GitHub OIDC Token + if: github.repository == 'stainless-sdks/firecracker-manager-ruby' + id: github-oidc + uses: actions/github-script@v8 + with: + script: core.setOutput('github_token', await core.getIDToken()); + + - name: Build and upload gem artifacts + if: github.repository == 'stainless-sdks/firecracker-manager-ruby' + env: + URL: https://pkg.stainless.com/s + AUTH: ${{ steps.github-oidc.outputs.github_token }} + SHA: ${{ github.sha }} + PACKAGE_NAME: vers + run: ./scripts/utils/upload-artifact.sh lint: timeout-minutes: 10 name: lint diff --git a/scripts/utils/upload-artifact.sh b/scripts/utils/upload-artifact.sh new file mode 100755 index 0000000..f2cfc4b --- /dev/null +++ b/scripts/utils/upload-artifact.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# ANSI Color Codes +GREEN='\033[32m' +RED='\033[31m' +NC='\033[0m' # No Color + +DIST_DIR="dist" + +log_error() { + local msg="$1" + local headers="$2" + local body="$3" + echo -e "${RED}${msg}${NC}" + [[ -f "$headers" ]] && echo -e "${RED}Headers:$(cat "$headers")${NC}" + echo -e "${RED}Body: ${body}${NC}" + exit 1 +} + +upload_file() { + local file_name="$1" + local tmp_headers + tmp_headers=$(mktemp) + + if [ -f "$file_name" ]; then + echo -e "${GREEN}Processing file: $file_name${NC}" + pkg_file_name="${file_name#"${DIST_DIR}/"}" + + # Get signed URL for uploading artifact file + signed_url_response=$(curl -X POST -G "$URL" \ + -sS --retry 5 \ + -D "$tmp_headers" \ + --data-urlencode "filename=$pkg_file_name" \ + -H "Authorization: Bearer $AUTH" \ + -H "Content-Type: application/json") + + # Validate JSON and extract URL + if ! signed_url=$(echo "$signed_url_response" | jq -e -r '.url' 2>/dev/null) || [[ "$signed_url" == "null" ]]; then + log_error "Failed to get valid signed URL" "$tmp_headers" "$signed_url_response" + fi + + # Set content-type based on file extension + local extension="${file_name##*.}" + local content_type + case "$extension" in + gem) content_type="application/octet-stream" ;; + gz) content_type="application/gzip" ;; + rz) content_type="application/octet-stream" ;; + html) content_type="text/html" ;; + *) content_type="application/octet-stream" ;; + esac + + # Upload file + upload_response=$(curl -v -X PUT \ + --retry 5 \ + --retry-all-errors \ + -D "$tmp_headers" \ + -H "Content-Type: $content_type" \ + --data-binary "@${file_name}" "$signed_url" 2>&1) + + if ! echo "$upload_response" | grep -q "HTTP/[0-9.]* 200"; then + log_error "Failed to upload artifact file" "$tmp_headers" "$upload_response" + fi + + # Insert small throttle to reduce rate limiting risk + sleep 0.1 + fi +} + +walk_tree() { + local current_dir="$1" + + for entry in "$current_dir"/*; do + # Check that entry is valid + [ -e "$entry" ] || [ -h "$entry" ] || continue + + if [ -d "$entry" ]; then + walk_tree "$entry" + else + upload_file "$entry" + fi + done +} + +cd "$(dirname "$0")/../.." + +echo "::group::Building gem" +VERSION_FILE="lib/${PACKAGE_NAME}/version.rb" +if [[ ! -f "$VERSION_FILE" ]]; then + echo -e "${RED}Version file not found: ${VERSION_FILE}${NC}" + exit 1 +fi +SHORT_SHA="${SHA:0:7}" +sed -i.bak -E "s/(VERSION = \"[^\"]+)\"/\1.beta.${SHORT_SHA}\"/" "$VERSION_FILE" +rm -f "${VERSION_FILE}.bak" + +gem build +mkdir -p "${DIST_DIR}/gems" +mv ./*.gem "${DIST_DIR}/gems/" +echo "::endgroup::" + +echo "::group::Generating gem index" +gem generate_index --directory "$DIST_DIR" +echo "::endgroup::" + +echo "::group::Uploading to pkg.stainless.com" +walk_tree "$DIST_DIR" +echo "::endgroup::" + +echo -e "${GREEN}Gem artifacts uploaded to Stainless storage.${NC}" +echo -e "\033[32mInstallation: bundle remove vers && bundle add vers --source 'https://pkg.stainless.com/s/firecracker-manager-ruby/$SHA'\033[0m" From de05ce752673e4bda50f397495377047e29f235f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 08:00:24 +0000 Subject: [PATCH 081/100] chore(internal): codegen related update --- lib/vers/models/vm_branch_by_commit_params.rb | 9 ++++- lib/vers/models/vm_branch_by_vm_params.rb | 9 ++++- lib/vers/models/vm_branch_params.rb | 9 ++++- lib/vers/models/vm_commit_params.rb | 9 ++++- lib/vers/models/vm_delete_params.rb | 9 ++++- lib/vers/models/vm_get_ssh_key_params.rb | 8 +++- .../models/vm_restore_from_commit_params.rb | 10 +---- lib/vers/models/vm_status_params.rb | 8 +++- lib/vers/models/vm_update_state_params.rb | 9 ++++- lib/vers/resources/vm.rb | 9 +---- .../models/vm_branch_by_commit_params.rbi | 11 +++++- rbi/vers/models/vm_branch_by_vm_params.rbi | 6 +++ rbi/vers/models/vm_branch_params.rbi | 6 +++ rbi/vers/models/vm_commit_params.rbi | 6 +++ rbi/vers/models/vm_delete_params.rbi | 11 +++++- rbi/vers/models/vm_get_ssh_key_params.rbi | 18 ++++++--- .../models/vm_restore_from_commit_params.rbi | 39 ++----------------- rbi/vers/models/vm_status_params.rbi | 18 ++++++--- rbi/vers/models/vm_update_state_params.rbi | 11 +++++- rbi/vers/resources/vm.rbi | 6 ++- .../models/vm_branch_by_commit_params.rbs | 12 +++++- sig/vers/models/vm_branch_by_vm_params.rbs | 6 ++- sig/vers/models/vm_branch_params.rbs | 11 +++++- sig/vers/models/vm_commit_params.rbs | 6 ++- sig/vers/models/vm_delete_params.rbs | 7 +++- sig/vers/models/vm_get_ssh_key_params.rbs | 12 ++++-- .../models/vm_restore_from_commit_params.rbs | 19 ++------- sig/vers/models/vm_status_params.rbs | 12 ++++-- sig/vers/models/vm_update_state_params.rbs | 9 ++++- sig/vers/resources/vm.rbs | 2 +- test/vers/resources/vm_test.rb | 3 +- 31 files changed, 216 insertions(+), 104 deletions(-) diff --git a/lib/vers/models/vm_branch_by_commit_params.rb b/lib/vers/models/vm_branch_by_commit_params.rb index bf4846c..9f1687f 100644 --- a/lib/vers/models/vm_branch_by_commit_params.rb +++ b/lib/vers/models/vm_branch_by_commit_params.rb @@ -7,13 +7,20 @@ class VmBranchByCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + # @!attribute commit_id + # + # @return [String] + required :commit_id, String + # @!attribute count # Number of VMs to branch (optional; default 1) # # @return [Integer, nil] optional :count, Integer - # @!method initialize(count: nil, request_options: {}) + # @!method initialize(commit_id:, count: nil, request_options: {}) + # @param commit_id [String] + # # @param count [Integer] Number of VMs to branch (optional; default 1) # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/vers/models/vm_branch_by_vm_params.rb b/lib/vers/models/vm_branch_by_vm_params.rb index 857fe84..1555020 100644 --- a/lib/vers/models/vm_branch_by_vm_params.rb +++ b/lib/vers/models/vm_branch_by_vm_params.rb @@ -7,6 +7,11 @@ class VmBranchByVmParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + # @!attribute count # Number of VMs to branch (optional; default 1) # @@ -25,7 +30,9 @@ class VmBranchByVmParams < Vers::Internal::Type::BaseModel # @return [Boolean, nil] optional :skip_wait_boot, Vers::Internal::Type::Boolean - # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @!method initialize(vm_id:, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @param vm_id [String] + # # @param count [Integer] Number of VMs to branch (optional; default 1) # # @param keep_paused [Boolean] If true, keep VM paused after commit diff --git a/lib/vers/models/vm_branch_params.rb b/lib/vers/models/vm_branch_params.rb index b5fdb4f..31559f5 100644 --- a/lib/vers/models/vm_branch_params.rb +++ b/lib/vers/models/vm_branch_params.rb @@ -7,6 +7,11 @@ class VmBranchParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + # @!attribute vm_or_commit_id + # + # @return [String] + required :vm_or_commit_id, String + # @!attribute count # Number of VMs to branch (optional; default 1) # @@ -26,10 +31,12 @@ class VmBranchParams < Vers::Internal::Type::BaseModel # @return [Boolean, nil] optional :skip_wait_boot, Vers::Internal::Type::Boolean - # @!method initialize(count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @!method initialize(vm_or_commit_id:, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) # Some parameter documentations has been truncated, see # {Vers::Models::VmBranchParams} for more details. # + # @param vm_or_commit_id [String] + # # @param count [Integer] Number of VMs to branch (optional; default 1) # # @param keep_paused [Boolean] If true, keep VM paused after commit. Only applicable when branching a VM ID. diff --git a/lib/vers/models/vm_commit_params.rb b/lib/vers/models/vm_commit_params.rb index 59dbfc6..b55faa4 100644 --- a/lib/vers/models/vm_commit_params.rb +++ b/lib/vers/models/vm_commit_params.rb @@ -7,6 +7,11 @@ class VmCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + # @!attribute keep_paused # If true, keep VM paused after commit # @@ -19,7 +24,9 @@ class VmCommitParams < Vers::Internal::Type::BaseModel # @return [Boolean, nil] optional :skip_wait_boot, Vers::Internal::Type::Boolean - # @!method initialize(keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @!method initialize(vm_id:, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @param vm_id [String] + # # @param keep_paused [Boolean] If true, keep VM paused after commit # # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false diff --git a/lib/vers/models/vm_delete_params.rb b/lib/vers/models/vm_delete_params.rb index 130115f..aeb8d4f 100644 --- a/lib/vers/models/vm_delete_params.rb +++ b/lib/vers/models/vm_delete_params.rb @@ -7,13 +7,20 @@ class VmDeleteParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + # @!attribute skip_wait_boot # If true, return an error immediately if the VM is still booting. Default: false # # @return [Boolean, nil] optional :skip_wait_boot, Vers::Internal::Type::Boolean - # @!method initialize(skip_wait_boot: nil, request_options: {}) + # @!method initialize(vm_id:, skip_wait_boot: nil, request_options: {}) + # @param vm_id [String] + # # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/vers/models/vm_get_ssh_key_params.rb b/lib/vers/models/vm_get_ssh_key_params.rb index 5b51187..32692de 100644 --- a/lib/vers/models/vm_get_ssh_key_params.rb +++ b/lib/vers/models/vm_get_ssh_key_params.rb @@ -7,7 +7,13 @@ class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:, request_options: {}) + # @param vm_id [String] # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/models/vm_restore_from_commit_params.rb b/lib/vers/models/vm_restore_from_commit_params.rb index ad0b315..6644333 100644 --- a/lib/vers/models/vm_restore_from_commit_params.rb +++ b/lib/vers/models/vm_restore_from_commit_params.rb @@ -7,15 +7,7 @@ class VmRestoreFromCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!attribute vm_from_commit_request - # Request body for POST /api/v1/vm/from_commit - # - # @return [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName] - required :vm_from_commit_request, union: -> { Vers::VmFromCommitRequest } - - # @!method initialize(vm_from_commit_request:, request_options: {}) - # @param vm_from_commit_request [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName] Request body for POST /api/v1/vm/from_commit - # + # @!method initialize(request_options: {}) # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/models/vm_status_params.rb b/lib/vers/models/vm_status_params.rb index 289f430..53855c7 100644 --- a/lib/vers/models/vm_status_params.rb +++ b/lib/vers/models/vm_status_params.rb @@ -7,7 +7,13 @@ class VmStatusParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:, request_options: {}) + # @param vm_id [String] # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/models/vm_update_state_params.rb b/lib/vers/models/vm_update_state_params.rb index 11b0c39..df87635 100644 --- a/lib/vers/models/vm_update_state_params.rb +++ b/lib/vers/models/vm_update_state_params.rb @@ -7,13 +7,20 @@ class VmUpdateStateParams < Vers::Models::VmUpdateStateRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + # @!attribute skip_wait_boot # If true, error immediately if the VM is not finished booting. Defaults to false # # @return [Boolean, nil] optional :skip_wait_boot, Vers::Internal::Type::Boolean - # @!method initialize(skip_wait_boot: nil, request_options: {}) + # @!method initialize(vm_id:, skip_wait_boot: nil, request_options: {}) + # @param vm_id [String] + # # @param skip_wait_boot [Boolean] If true, error immediately if the VM is not finished booting. Defaults to false # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 4d732d5..0fab286 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -195,7 +195,7 @@ def get_ssh_key(vm_id, params = {}) # @overload restore_from_commit(vm_from_commit_request:, request_options: {}) # - # @param vm_from_commit_request [Vers::VmFromCommitRequest] Request body for POST /api/v1/vm/from_commit + # @param vm_from_commit_request [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName] Request body for POST /api/v1/vm/from_commit # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -204,15 +204,10 @@ def get_ssh_key(vm_id, params = {}) # @see Vers::Models::VmRestoreFromCommitParams def restore_from_commit(params) parsed, options = Vers::VmRestoreFromCommitParams.dump_request(params) - case parsed - in {vm_from_commit_request: Hash => union, **rest} - parsed = {**rest, **union} - else - end @client.request( method: :post, path: "api/v1/vm/from_commit", - body: parsed, + body: parsed[:vm_from_commit_request], model: Vers::NewVmResponse, options: options ) diff --git a/rbi/vers/models/vm_branch_by_commit_params.rbi b/rbi/vers/models/vm_branch_by_commit_params.rbi index 707bac2..77259dd 100644 --- a/rbi/vers/models/vm_branch_by_commit_params.rbi +++ b/rbi/vers/models/vm_branch_by_commit_params.rbi @@ -11,6 +11,9 @@ module Vers T.any(Vers::VmBranchByCommitParams, Vers::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :commit_id + # Number of VMs to branch (optional; default 1) sig { returns(T.nilable(Integer)) } attr_reader :count @@ -20,11 +23,13 @@ module Vers sig do params( + commit_id: String, count: Integer, request_options: Vers::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + commit_id:, # Number of VMs to branch (optional; default 1) count: nil, request_options: {} @@ -33,7 +38,11 @@ module Vers sig do override.returns( - { count: Integer, request_options: Vers::RequestOptions } + { + commit_id: String, + count: Integer, + request_options: Vers::RequestOptions + } ) end def to_hash diff --git a/rbi/vers/models/vm_branch_by_vm_params.rbi b/rbi/vers/models/vm_branch_by_vm_params.rbi index bc43cd5..8e3c416 100644 --- a/rbi/vers/models/vm_branch_by_vm_params.rbi +++ b/rbi/vers/models/vm_branch_by_vm_params.rbi @@ -11,6 +11,9 @@ module Vers T.any(Vers::VmBranchByVmParams, Vers::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :vm_id + # Number of VMs to branch (optional; default 1) sig { returns(T.nilable(Integer)) } attr_reader :count @@ -34,6 +37,7 @@ module Vers sig do params( + vm_id: String, count: Integer, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, @@ -41,6 +45,7 @@ module Vers ).returns(T.attached_class) end def self.new( + vm_id:, # Number of VMs to branch (optional; default 1) count: nil, # If true, keep VM paused after commit @@ -54,6 +59,7 @@ module Vers sig do override.returns( { + vm_id: String, count: Integer, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, diff --git a/rbi/vers/models/vm_branch_params.rbi b/rbi/vers/models/vm_branch_params.rbi index 082b029..7415984 100644 --- a/rbi/vers/models/vm_branch_params.rbi +++ b/rbi/vers/models/vm_branch_params.rbi @@ -9,6 +9,9 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmBranchParams, Vers::Internal::AnyHash) } + sig { returns(String) } + attr_accessor :vm_or_commit_id + # Number of VMs to branch (optional; default 1) sig { returns(T.nilable(Integer)) } attr_reader :count @@ -33,6 +36,7 @@ module Vers sig do params( + vm_or_commit_id: String, count: Integer, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, @@ -40,6 +44,7 @@ module Vers ).returns(T.attached_class) end def self.new( + vm_or_commit_id:, # Number of VMs to branch (optional; default 1) count: nil, # If true, keep VM paused after commit. Only applicable when branching a VM ID. @@ -54,6 +59,7 @@ module Vers sig do override.returns( { + vm_or_commit_id: String, count: Integer, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, diff --git a/rbi/vers/models/vm_commit_params.rbi b/rbi/vers/models/vm_commit_params.rbi index 2f3a26f..5efc6f6 100644 --- a/rbi/vers/models/vm_commit_params.rbi +++ b/rbi/vers/models/vm_commit_params.rbi @@ -9,6 +9,9 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmCommitParams, Vers::Internal::AnyHash) } + sig { returns(String) } + attr_accessor :vm_id + # If true, keep VM paused after commit sig { returns(T.nilable(T::Boolean)) } attr_reader :keep_paused @@ -25,12 +28,14 @@ module Vers sig do params( + vm_id: String, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + vm_id:, # If true, keep VM paused after commit keep_paused: nil, # If true, return an error immediately if the VM is still booting. Default: false @@ -42,6 +47,7 @@ module Vers sig do override.returns( { + vm_id: String, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions diff --git a/rbi/vers/models/vm_delete_params.rbi b/rbi/vers/models/vm_delete_params.rbi index 1969845..d6c7372 100644 --- a/rbi/vers/models/vm_delete_params.rbi +++ b/rbi/vers/models/vm_delete_params.rbi @@ -9,6 +9,9 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmDeleteParams, Vers::Internal::AnyHash) } + sig { returns(String) } + attr_accessor :vm_id + # If true, return an error immediately if the VM is still booting. Default: false sig { returns(T.nilable(T::Boolean)) } attr_reader :skip_wait_boot @@ -18,11 +21,13 @@ module Vers sig do params( + vm_id: String, skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + vm_id:, # If true, return an error immediately if the VM is still booting. Default: false skip_wait_boot: nil, request_options: {} @@ -31,7 +36,11 @@ module Vers sig do override.returns( - { skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions } + { + vm_id: String, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } ) end def to_hash diff --git a/rbi/vers/models/vm_get_ssh_key_params.rbi b/rbi/vers/models/vm_get_ssh_key_params.rbi index 3d52ddf..fcc3e63 100644 --- a/rbi/vers/models/vm_get_ssh_key_params.rbi +++ b/rbi/vers/models/vm_get_ssh_key_params.rbi @@ -9,15 +9,23 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmGetSSHKeyParams, Vers::Internal::AnyHash) } + sig { returns(String) } + attr_accessor :vm_id + sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(vm_id:, request_options: {}) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { vm_id: String, request_options: Vers::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/vers/models/vm_restore_from_commit_params.rbi b/rbi/vers/models/vm_restore_from_commit_params.rbi index 0eec79d..53c9951 100644 --- a/rbi/vers/models/vm_restore_from_commit_params.rbi +++ b/rbi/vers/models/vm_restore_from_commit_params.rbi @@ -11,46 +11,15 @@ module Vers T.any(Vers::VmRestoreFromCommitParams, Vers::Internal::AnyHash) end - # Request body for POST /api/v1/vm/from_commit sig do - returns( - T.any( - Vers::VmFromCommitRequest::CommitID, - Vers::VmFromCommitRequest::TagName - ) + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class ) end - attr_accessor :vm_from_commit_request - - sig do - params( - vm_from_commit_request: - T.any( - Vers::VmFromCommitRequest::CommitID::OrHash, - Vers::VmFromCommitRequest::TagName::OrHash - ), - request_options: Vers::RequestOptions::OrHash - ).returns(T.attached_class) - end - def self.new( - # Request body for POST /api/v1/vm/from_commit - vm_from_commit_request:, - request_options: {} - ) + def self.new(request_options: {}) end - sig do - override.returns( - { - vm_from_commit_request: - T.any( - Vers::VmFromCommitRequest::CommitID, - Vers::VmFromCommitRequest::TagName - ), - request_options: Vers::RequestOptions - } - ) - end + sig { override.returns({ request_options: Vers::RequestOptions }) } def to_hash end end diff --git a/rbi/vers/models/vm_status_params.rbi b/rbi/vers/models/vm_status_params.rbi index 5298235..7a1e001 100644 --- a/rbi/vers/models/vm_status_params.rbi +++ b/rbi/vers/models/vm_status_params.rbi @@ -9,15 +9,23 @@ module Vers OrHash = T.type_alias { T.any(Vers::VmStatusParams, Vers::Internal::AnyHash) } + sig { returns(String) } + attr_accessor :vm_id + sig do - params(request_options: Vers::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(vm_id:, request_options: {}) end - sig { override.returns({ request_options: Vers::RequestOptions }) } + sig do + override.returns( + { vm_id: String, request_options: Vers::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/vers/models/vm_update_state_params.rbi b/rbi/vers/models/vm_update_state_params.rbi index a4affee..4e63e97 100644 --- a/rbi/vers/models/vm_update_state_params.rbi +++ b/rbi/vers/models/vm_update_state_params.rbi @@ -11,6 +11,9 @@ module Vers T.any(Vers::VmUpdateStateParams, Vers::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :vm_id + # If true, error immediately if the VM is not finished booting. Defaults to false sig { returns(T.nilable(T::Boolean)) } attr_reader :skip_wait_boot @@ -20,11 +23,13 @@ module Vers sig do params( + vm_id: String, skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + vm_id:, # If true, error immediately if the VM is not finished booting. Defaults to false skip_wait_boot: nil, request_options: {} @@ -33,7 +38,11 @@ module Vers sig do override.returns( - { skip_wait_boot: T::Boolean, request_options: Vers::RequestOptions } + { + vm_id: String, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } ) end def to_hash diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 987b37e..9819701 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -139,7 +139,11 @@ module Vers sig do params( - vm_from_commit_request: Vers::VmFromCommitRequest, + vm_from_commit_request: + T.any( + Vers::VmFromCommitRequest::CommitID::OrHash, + Vers::VmFromCommitRequest::TagName::OrHash + ), request_options: Vers::RequestOptions::OrHash ).returns(Vers::NewVmResponse) end diff --git a/sig/vers/models/vm_branch_by_commit_params.rbs b/sig/vers/models/vm_branch_by_commit_params.rbs index 473236a..dee56cd 100644 --- a/sig/vers/models/vm_branch_by_commit_params.rbs +++ b/sig/vers/models/vm_branch_by_commit_params.rbs @@ -1,22 +1,30 @@ module Vers module Models type vm_branch_by_commit_params = - { count: Integer } & Vers::Internal::Type::request_parameters + { commit_id: String, count: Integer } + & Vers::Internal::Type::request_parameters class VmBranchByCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + attr_accessor commit_id: String + attr_reader count: Integer? def count=: (Integer) -> Integer def initialize: ( + commit_id: String, ?count: Integer, ?request_options: Vers::request_opts ) -> void - def to_hash: -> { count: Integer, request_options: Vers::RequestOptions } + def to_hash: -> { + commit_id: String, + count: Integer, + request_options: Vers::RequestOptions + } end end end diff --git a/sig/vers/models/vm_branch_by_vm_params.rbs b/sig/vers/models/vm_branch_by_vm_params.rbs index 14e8050..5cbb6f8 100644 --- a/sig/vers/models/vm_branch_by_vm_params.rbs +++ b/sig/vers/models/vm_branch_by_vm_params.rbs @@ -1,13 +1,15 @@ module Vers module Models type vm_branch_by_vm_params = - { count: Integer, keep_paused: bool, skip_wait_boot: bool } + { vm_id: String, count: Integer, keep_paused: bool, skip_wait_boot: bool } & Vers::Internal::Type::request_parameters class VmBranchByVmParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + attr_accessor vm_id: String + attr_reader count: Integer? def count=: (Integer) -> Integer @@ -21,6 +23,7 @@ module Vers def skip_wait_boot=: (bool) -> bool def initialize: ( + vm_id: String, ?count: Integer, ?keep_paused: bool, ?skip_wait_boot: bool, @@ -28,6 +31,7 @@ module Vers ) -> void def to_hash: -> { + vm_id: String, count: Integer, keep_paused: bool, skip_wait_boot: bool, diff --git a/sig/vers/models/vm_branch_params.rbs b/sig/vers/models/vm_branch_params.rbs index 93a0791..84b1f7b 100644 --- a/sig/vers/models/vm_branch_params.rbs +++ b/sig/vers/models/vm_branch_params.rbs @@ -1,13 +1,20 @@ module Vers module Models type vm_branch_params = - { count: Integer, keep_paused: bool, skip_wait_boot: bool } + { + vm_or_commit_id: String, + count: Integer, + keep_paused: bool, + skip_wait_boot: bool + } & Vers::Internal::Type::request_parameters class VmBranchParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + attr_accessor vm_or_commit_id: String + attr_reader count: Integer? def count=: (Integer) -> Integer @@ -21,6 +28,7 @@ module Vers def skip_wait_boot=: (bool) -> bool def initialize: ( + vm_or_commit_id: String, ?count: Integer, ?keep_paused: bool, ?skip_wait_boot: bool, @@ -28,6 +36,7 @@ module Vers ) -> void def to_hash: -> { + vm_or_commit_id: String, count: Integer, keep_paused: bool, skip_wait_boot: bool, diff --git a/sig/vers/models/vm_commit_params.rbs b/sig/vers/models/vm_commit_params.rbs index def2106..0e5fea5 100644 --- a/sig/vers/models/vm_commit_params.rbs +++ b/sig/vers/models/vm_commit_params.rbs @@ -1,13 +1,15 @@ module Vers module Models type vm_commit_params = - { keep_paused: bool, skip_wait_boot: bool } + { vm_id: String, keep_paused: bool, skip_wait_boot: bool } & Vers::Internal::Type::request_parameters class VmCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + attr_accessor vm_id: String + attr_reader keep_paused: bool? def keep_paused=: (bool) -> bool @@ -17,12 +19,14 @@ module Vers def skip_wait_boot=: (bool) -> bool def initialize: ( + vm_id: String, ?keep_paused: bool, ?skip_wait_boot: bool, ?request_options: Vers::request_opts ) -> void def to_hash: -> { + vm_id: String, keep_paused: bool, skip_wait_boot: bool, request_options: Vers::RequestOptions diff --git a/sig/vers/models/vm_delete_params.rbs b/sig/vers/models/vm_delete_params.rbs index 8664541..da74ed8 100644 --- a/sig/vers/models/vm_delete_params.rbs +++ b/sig/vers/models/vm_delete_params.rbs @@ -1,22 +1,27 @@ module Vers module Models type vm_delete_params = - { skip_wait_boot: bool } & Vers::Internal::Type::request_parameters + { vm_id: String, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters class VmDeleteParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + attr_accessor vm_id: String + attr_reader skip_wait_boot: bool? def skip_wait_boot=: (bool) -> bool def initialize: ( + vm_id: String, ?skip_wait_boot: bool, ?request_options: Vers::request_opts ) -> void def to_hash: -> { + vm_id: String, skip_wait_boot: bool, request_options: Vers::RequestOptions } diff --git a/sig/vers/models/vm_get_ssh_key_params.rbs b/sig/vers/models/vm_get_ssh_key_params.rbs index ec8298e..50fc5b6 100644 --- a/sig/vers/models/vm_get_ssh_key_params.rbs +++ b/sig/vers/models/vm_get_ssh_key_params.rbs @@ -1,14 +1,20 @@ module Vers module Models - type vm_get_ssh_key_params = { } & Vers::Internal::Type::request_parameters + type vm_get_ssh_key_params = + { vm_id: String } & Vers::Internal::Type::request_parameters class VmGetSSHKeyParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + attr_accessor vm_id: String - def to_hash: -> { request_options: Vers::RequestOptions } + def initialize: ( + vm_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { vm_id: String, request_options: Vers::RequestOptions } end end end diff --git a/sig/vers/models/vm_restore_from_commit_params.rbs b/sig/vers/models/vm_restore_from_commit_params.rbs index dd43343..669749b 100644 --- a/sig/vers/models/vm_restore_from_commit_params.rbs +++ b/sig/vers/models/vm_restore_from_commit_params.rbs @@ -1,28 +1,15 @@ module Vers module Models type vm_restore_from_commit_params = - { vm_from_commit_request: Vers::Models::vm_from_commit_request } - & Vers::Internal::Type::request_parameters + { } & Vers::Internal::Type::request_parameters class VmRestoreFromCommitParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def vm_from_commit_request: -> Vers::Models::vm_from_commit_request + def initialize: (?request_options: Vers::request_opts) -> void - def vm_from_commit_request=: ( - Vers::Models::vm_from_commit_request _ - ) -> Vers::Models::vm_from_commit_request - - def initialize: ( - vm_from_commit_request: Vers::Models::vm_from_commit_request, - ?request_options: Vers::request_opts - ) -> void - - def to_hash: -> { - vm_from_commit_request: Vers::Models::vm_from_commit_request, - request_options: Vers::RequestOptions - } + def to_hash: -> { request_options: Vers::RequestOptions } end end end diff --git a/sig/vers/models/vm_status_params.rbs b/sig/vers/models/vm_status_params.rbs index 0514e35..da35561 100644 --- a/sig/vers/models/vm_status_params.rbs +++ b/sig/vers/models/vm_status_params.rbs @@ -1,14 +1,20 @@ module Vers module Models - type vm_status_params = { } & Vers::Internal::Type::request_parameters + type vm_status_params = + { vm_id: String } & Vers::Internal::Type::request_parameters class VmStatusParams < Vers::Internal::Type::BaseModel extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters - def initialize: (?request_options: Vers::request_opts) -> void + attr_accessor vm_id: String - def to_hash: -> { request_options: Vers::RequestOptions } + def initialize: ( + vm_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { vm_id: String, request_options: Vers::RequestOptions } end end end diff --git a/sig/vers/models/vm_update_state_params.rbs b/sig/vers/models/vm_update_state_params.rbs index ced1000..625a068 100644 --- a/sig/vers/models/vm_update_state_params.rbs +++ b/sig/vers/models/vm_update_state_params.rbs @@ -1,22 +1,29 @@ module Vers module Models type vm_update_state_params = - { skip_wait_boot: bool } & Vers::Internal::Type::request_parameters + { vm_id: String, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters class VmUpdateStateParams < Vers::Models::VmUpdateStateRequest extend Vers::Internal::Type::RequestParameters::Converter include Vers::Internal::Type::RequestParameters + def vm_id: -> String + + def vm_id=: (String _) -> String + def skip_wait_boot: -> bool? def skip_wait_boot=: (bool _) -> bool def initialize: ( + vm_id: String, ?skip_wait_boot: bool, ?request_options: Vers::request_opts ) -> void def to_hash: -> { + vm_id: String, skip_wait_boot: bool, request_options: Vers::RequestOptions } diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index c5c87cf..c303d51 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -52,7 +52,7 @@ module Vers ) -> Vers::VmSSHKeyResponse def restore_from_commit: ( - vm_from_commit_request: Vers::Models::VmFromCommitRequest, + vm_from_commit_request: Vers::Models::vm_from_commit_request, ?request_options: Vers::request_opts ) -> Vers::NewVmResponse diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 22743c3..652b9e7 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -129,7 +129,8 @@ def test_get_ssh_key def test_restore_from_commit_required_params skip("Mock server tests are disabled") - response = @vers.vm.restore_from_commit(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + response = + @vers.vm.restore_from_commit(vm_from_commit_request: {commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"}) assert_pattern do response => Vers::NewVmResponse From 3e091ad39499c0f9ef4c99249561a42267d4d93c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2026 01:16:19 +0000 Subject: [PATCH 082/100] chore(ci): skip uploading artifacts on stainless-internal branches --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55fa090..146637b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,14 +33,18 @@ jobs: bundle install - name: Get GitHub OIDC Token - if: github.repository == 'stainless-sdks/firecracker-manager-ruby' + if: |- + github.repository == 'stainless-sdks/firecracker-manager-ruby' && + !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc uses: actions/github-script@v8 with: script: core.setOutput('github_token', await core.getIDToken()); - name: Build and upload gem artifacts - if: github.repository == 'stainless-sdks/firecracker-manager-ruby' + if: |- + github.repository == 'stainless-sdks/firecracker-manager-ruby' && + !startsWith(github.ref, 'refs/heads/stl/') env: URL: https://pkg.stainless.com/s AUTH: ${{ steps.github-oidc.outputs.github_token }} From af4edce52c8fd2ef5d371a00bafa8bd1541602ec Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 01:23:52 +0000 Subject: [PATCH 083/100] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index d9c830f..02783f8 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-a278e0cd81ddc7f455b2196c5239b3ead754d2a9e78cd0bfc46838d0473666d4.yml -openapi_spec_hash: 0375b84ead8d32c6d723866ad8f5105e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fdc55dbbd5e7c7a0e2bab3a6a6569ebe57651783631c373ebb832b2f7a7d4583.yml +openapi_spec_hash: 7ba181ace92ffaf60efa30548f486117 config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd From 5fcf2ce59839b5c9bd6a4a126346d5c3838bf472 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Mar 2026 03:03:04 +0000 Subject: [PATCH 084/100] chore(internal): tweak CI branches --- .github/workflows/ci.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 146637b..2053a33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,14 @@ name: CI on: push: - branches-ignore: - - 'generated' - - 'codegen/**' - - 'integrated/**' - - 'stl-preview-head/**' - - 'stl-preview-base/**' + branches: + - '**' + - '!integrated/**' + - '!stl-preview-head/**' + - '!stl-preview-base/**' + - '!generated' + - '!codegen/**' + - 'codegen/stl/**' pull_request: branches-ignore: - 'stl-preview-head/**' From 34ff3afbbc644d5c667991968a66d764e5e2bb7f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 01:41:32 +0000 Subject: [PATCH 085/100] feat(api): api update --- .stats.yml | 8 +- lib/vers.rb | 26 ++++ lib/vers/client.rb | 8 ++ lib/vers/models.rb | 46 +++++++ lib/vers/models/commit_delete_params.rb | 20 +++ lib/vers/models/commit_info.rb | 58 +++++++++ lib/vers/models/commit_list_params.rb | 14 +++ lib/vers/models/commit_list_parents_params.rb | 20 +++ .../models/commit_list_parents_response.rb | 76 ++++++++++++ lib/vers/models/commit_list_public_params.rb | 14 +++ lib/vers/models/commit_tag_create_params.rb | 14 +++ lib/vers/models/commit_tag_delete_params.rb | 20 +++ lib/vers/models/commit_tag_get_params.rb | 20 +++ lib/vers/models/commit_tag_list_params.rb | 14 +++ lib/vers/models/commit_tag_update_params.rb | 20 +++ lib/vers/models/commit_update_params.rb | 20 +++ lib/vers/models/create_tag_request.rb | 34 +++++ lib/vers/models/create_tag_response.rb | 35 ++++++ lib/vers/models/list_commits_response.rb | 34 +++++ lib/vers/models/list_tags_response.rb | 19 +++ lib/vers/models/tag_info.rb | 62 ++++++++++ lib/vers/models/update_commit_request.rb | 17 +++ lib/vers/models/update_tag_request.rb | 36 ++++++ lib/vers/models/vm_branch_by_tag_params.rb | 29 +++++ lib/vers/models/vm_get_metadata_params.rb | 20 +++ lib/vers/models/vm_metadata_response.rb | 83 +++++++++++++ lib/vers/models/vm_resize_disk_params.rb | 29 +++++ lib/vers/models/vm_resize_disk_request.rb | 18 +++ lib/vers/resources/commit_tags.rb | 117 ++++++++++++++++++ lib/vers/resources/commits.rb | 104 ++++++++++++++++ lib/vers/resources/vm.rb | 71 +++++++++++ rbi/vers/client.rbi | 6 + rbi/vers/models.rbi | 46 +++++++ rbi/vers/models/commit_delete_params.rbi | 35 ++++++ rbi/vers/models/commit_info.rbi | 74 +++++++++++ rbi/vers/models/commit_list_params.rbi | 25 ++++ .../models/commit_list_parents_params.rbi | 35 ++++++ .../models/commit_list_parents_response.rbi | 98 +++++++++++++++ rbi/vers/models/commit_list_public_params.rbi | 27 ++++ rbi/vers/models/commit_tag_create_params.rbi | 27 ++++ rbi/vers/models/commit_tag_delete_params.rbi | 35 ++++++ rbi/vers/models/commit_tag_get_params.rbi | 35 ++++++ rbi/vers/models/commit_tag_list_params.rbi | 27 ++++ rbi/vers/models/commit_tag_update_params.rbi | 35 ++++++ rbi/vers/models/commit_update_params.rbi | 35 ++++++ rbi/vers/models/create_tag_request.rbi | 52 ++++++++ rbi/vers/models/create_tag_response.rbi | 46 +++++++ rbi/vers/models/list_commits_response.rbi | 48 +++++++ rbi/vers/models/list_tags_response.rbi | 28 +++++ rbi/vers/models/tag_info.rbi | 75 +++++++++++ rbi/vers/models/update_commit_request.rbi | 24 ++++ rbi/vers/models/update_tag_request.rbi | 49 ++++++++ rbi/vers/models/vm_branch_by_tag_params.rbi | 52 ++++++++ rbi/vers/models/vm_get_metadata_params.rbi | 35 ++++++ rbi/vers/models/vm_metadata_response.rbi | 103 +++++++++++++++ rbi/vers/models/vm_resize_disk_params.rbi | 52 ++++++++ rbi/vers/models/vm_resize_disk_request.rbi | 28 +++++ rbi/vers/resources/commit_tags.rbi | 85 +++++++++++++ rbi/vers/resources/commits.rbi | 69 +++++++++++ rbi/vers/resources/vm.rbi | 50 ++++++++ sig/vers/client.rbs | 4 + sig/vers/models.rbs | 46 +++++++ sig/vers/models/commit_delete_params.rbs | 23 ++++ sig/vers/models/commit_info.rbs | 55 ++++++++ sig/vers/models/commit_list_params.rbs | 14 +++ .../models/commit_list_parents_params.rbs | 23 ++++ .../models/commit_list_parents_response.rbs | 60 +++++++++ sig/vers/models/commit_list_public_params.rbs | 15 +++ sig/vers/models/commit_tag_create_params.rbs | 15 +++ sig/vers/models/commit_tag_delete_params.rbs | 23 ++++ sig/vers/models/commit_tag_get_params.rbs | 23 ++++ sig/vers/models/commit_tag_list_params.rbs | 15 +++ sig/vers/models/commit_tag_update_params.rbs | 25 ++++ sig/vers/models/commit_update_params.rbs | 25 ++++ sig/vers/models/create_tag_request.rbs | 26 ++++ sig/vers/models/create_tag_response.rbs | 22 ++++ sig/vers/models/list_commits_response.rbs | 35 ++++++ sig/vers/models/list_tags_response.rbs | 13 ++ sig/vers/models/tag_info.rbs | 45 +++++++ sig/vers/models/update_commit_request.rbs | 13 ++ sig/vers/models/update_tag_request.rbs | 15 +++ sig/vers/models/vm_branch_by_tag_params.rbs | 30 +++++ sig/vers/models/vm_get_metadata_params.rbs | 20 +++ sig/vers/models/vm_metadata_response.rbs | 68 ++++++++++ sig/vers/models/vm_resize_disk_params.rbs | 32 +++++ sig/vers/models/vm_resize_disk_request.rbs | 13 ++ sig/vers/resources/commit_tags.rbs | 30 +++++ sig/vers/resources/commits.rbs | 31 +++++ sig/vers/resources/vm.rbs | 18 +++ test/vers/resources/commit_tags_test.rb | 81 ++++++++++++ test/vers/resources/commits_test.rb | 86 +++++++++++++ test/vers/resources/vm_test.rb | 49 ++++++++ 92 files changed, 3431 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/commit_delete_params.rb create mode 100644 lib/vers/models/commit_info.rb create mode 100644 lib/vers/models/commit_list_params.rb create mode 100644 lib/vers/models/commit_list_parents_params.rb create mode 100644 lib/vers/models/commit_list_parents_response.rb create mode 100644 lib/vers/models/commit_list_public_params.rb create mode 100644 lib/vers/models/commit_tag_create_params.rb create mode 100644 lib/vers/models/commit_tag_delete_params.rb create mode 100644 lib/vers/models/commit_tag_get_params.rb create mode 100644 lib/vers/models/commit_tag_list_params.rb create mode 100644 lib/vers/models/commit_tag_update_params.rb create mode 100644 lib/vers/models/commit_update_params.rb create mode 100644 lib/vers/models/create_tag_request.rb create mode 100644 lib/vers/models/create_tag_response.rb create mode 100644 lib/vers/models/list_commits_response.rb create mode 100644 lib/vers/models/list_tags_response.rb create mode 100644 lib/vers/models/tag_info.rb create mode 100644 lib/vers/models/update_commit_request.rb create mode 100644 lib/vers/models/update_tag_request.rb create mode 100644 lib/vers/models/vm_branch_by_tag_params.rb create mode 100644 lib/vers/models/vm_get_metadata_params.rb create mode 100644 lib/vers/models/vm_metadata_response.rb create mode 100644 lib/vers/models/vm_resize_disk_params.rb create mode 100644 lib/vers/models/vm_resize_disk_request.rb create mode 100644 lib/vers/resources/commit_tags.rb create mode 100644 lib/vers/resources/commits.rb create mode 100644 rbi/vers/models/commit_delete_params.rbi create mode 100644 rbi/vers/models/commit_info.rbi create mode 100644 rbi/vers/models/commit_list_params.rbi create mode 100644 rbi/vers/models/commit_list_parents_params.rbi create mode 100644 rbi/vers/models/commit_list_parents_response.rbi create mode 100644 rbi/vers/models/commit_list_public_params.rbi create mode 100644 rbi/vers/models/commit_tag_create_params.rbi create mode 100644 rbi/vers/models/commit_tag_delete_params.rbi create mode 100644 rbi/vers/models/commit_tag_get_params.rbi create mode 100644 rbi/vers/models/commit_tag_list_params.rbi create mode 100644 rbi/vers/models/commit_tag_update_params.rbi create mode 100644 rbi/vers/models/commit_update_params.rbi create mode 100644 rbi/vers/models/create_tag_request.rbi create mode 100644 rbi/vers/models/create_tag_response.rbi create mode 100644 rbi/vers/models/list_commits_response.rbi create mode 100644 rbi/vers/models/list_tags_response.rbi create mode 100644 rbi/vers/models/tag_info.rbi create mode 100644 rbi/vers/models/update_commit_request.rbi create mode 100644 rbi/vers/models/update_tag_request.rbi create mode 100644 rbi/vers/models/vm_branch_by_tag_params.rbi create mode 100644 rbi/vers/models/vm_get_metadata_params.rbi create mode 100644 rbi/vers/models/vm_metadata_response.rbi create mode 100644 rbi/vers/models/vm_resize_disk_params.rbi create mode 100644 rbi/vers/models/vm_resize_disk_request.rbi create mode 100644 rbi/vers/resources/commit_tags.rbi create mode 100644 rbi/vers/resources/commits.rbi create mode 100644 sig/vers/models/commit_delete_params.rbs create mode 100644 sig/vers/models/commit_info.rbs create mode 100644 sig/vers/models/commit_list_params.rbs create mode 100644 sig/vers/models/commit_list_parents_params.rbs create mode 100644 sig/vers/models/commit_list_parents_response.rbs create mode 100644 sig/vers/models/commit_list_public_params.rbs create mode 100644 sig/vers/models/commit_tag_create_params.rbs create mode 100644 sig/vers/models/commit_tag_delete_params.rbs create mode 100644 sig/vers/models/commit_tag_get_params.rbs create mode 100644 sig/vers/models/commit_tag_list_params.rbs create mode 100644 sig/vers/models/commit_tag_update_params.rbs create mode 100644 sig/vers/models/commit_update_params.rbs create mode 100644 sig/vers/models/create_tag_request.rbs create mode 100644 sig/vers/models/create_tag_response.rbs create mode 100644 sig/vers/models/list_commits_response.rbs create mode 100644 sig/vers/models/list_tags_response.rbs create mode 100644 sig/vers/models/tag_info.rbs create mode 100644 sig/vers/models/update_commit_request.rbs create mode 100644 sig/vers/models/update_tag_request.rbs create mode 100644 sig/vers/models/vm_branch_by_tag_params.rbs create mode 100644 sig/vers/models/vm_get_metadata_params.rbs create mode 100644 sig/vers/models/vm_metadata_response.rbs create mode 100644 sig/vers/models/vm_resize_disk_params.rbs create mode 100644 sig/vers/models/vm_resize_disk_request.rbs create mode 100644 sig/vers/resources/commit_tags.rbs create mode 100644 sig/vers/resources/commits.rbs create mode 100644 test/vers/resources/commit_tags_test.rb create mode 100644 test/vers/resources/commits_test.rb diff --git a/.stats.yml b/.stats.yml index 02783f8..f4dfce9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 11 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-fdc55dbbd5e7c7a0e2bab3a6a6569ebe57651783631c373ebb832b2f7a7d4583.yml -openapi_spec_hash: 7ba181ace92ffaf60efa30548f486117 -config_hash: 21288c7b7480e9a2c3db9cafaa8bf8dd +configured_endpoints: 24 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e153147fe832cc795f48a1b5093a168c928b33d78bf4cb61ec6a58612976bdce.yml +openapi_spec_hash: d69255a38561f9ec976e2ff7cb31e0f0 +config_hash: 9329c6e401233d6bb50b1cb4cc7be574 diff --git a/lib/vers.rb b/lib/vers.rb index 7fd8597..693cc8b 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -52,14 +52,35 @@ require_relative "vers/internal/transport/base_client" require_relative "vers/internal/transport/pooled_net_requester" require_relative "vers/client" +require_relative "vers/models/create_tag_request" +require_relative "vers/models/update_tag_request" +require_relative "vers/models/update_commit_request" require_relative "vers/models/new_root_request" +require_relative "vers/models/vm_resize_disk_request" require_relative "vers/models/vm_from_commit_request" require_relative "vers/models/vm_update_state_request" +require_relative "vers/models/commit_delete_params" +require_relative "vers/models/commit_info" +require_relative "vers/models/commit_list_params" +require_relative "vers/models/commit_list_parents_params" +require_relative "vers/models/commit_list_parents_response" +require_relative "vers/models/commit_list_public_params" +require_relative "vers/models/commit_tag_create_params" +require_relative "vers/models/commit_tag_delete_params" +require_relative "vers/models/commit_tag_get_params" +require_relative "vers/models/commit_tag_list_params" +require_relative "vers/models/commit_tag_update_params" +require_relative "vers/models/commit_update_params" +require_relative "vers/models/create_tag_response" require_relative "vers/models/error_response" +require_relative "vers/models/list_commits_response" +require_relative "vers/models/list_tags_response" require_relative "vers/models/new_vm_response" require_relative "vers/models/new_vms_response" +require_relative "vers/models/tag_info" require_relative "vers/models/vm" require_relative "vers/models/vm_branch_by_commit_params" +require_relative "vers/models/vm_branch_by_tag_params" require_relative "vers/models/vm_branch_by_vm_params" require_relative "vers/models/vm_branch_params" require_relative "vers/models/vm_commit_params" @@ -67,12 +88,17 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_get_metadata_params" require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" require_relative "vers/models/vm_list_response" +require_relative "vers/models/vm_metadata_response" +require_relative "vers/models/vm_resize_disk_params" require_relative "vers/models/vm_restore_from_commit_params" require_relative "vers/models/vm_ssh_key_response" require_relative "vers/models/vm_status_params" require_relative "vers/models/vm_update_state_params" require_relative "vers/models" +require_relative "vers/resources/commits" +require_relative "vers/resources/commit_tags" require_relative "vers/resources/vm" diff --git a/lib/vers/client.rb b/lib/vers/client.rb index be6e91f..e5ebcab 100644 --- a/lib/vers/client.rb +++ b/lib/vers/client.rb @@ -21,6 +21,12 @@ class Client < Vers::Internal::Transport::BaseClient # @return [Vers::Resources::Vm] attr_reader :vm + # @return [Vers::Resources::Commits] + attr_reader :commits + + # @return [Vers::Resources::CommitTags] + attr_reader :commit_tags + # @api private # # @return [Hash{String=>String}] @@ -65,6 +71,8 @@ def initialize( ) @vm = Vers::Resources::Vm.new(client: self) + @commits = Vers::Resources::Commits.new(client: self) + @commit_tags = Vers::Resources::CommitTags.new(client: self) end end end diff --git a/lib/vers/models.rb b/lib/vers/models.rb index e41bcd1..526d9fe 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -39,18 +39,56 @@ module Vers mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } } end + CommitDeleteParams = Vers::Models::CommitDeleteParams + + CommitInfo = Vers::Models::CommitInfo + + CommitListParams = Vers::Models::CommitListParams + + CommitListParentsParams = Vers::Models::CommitListParentsParams + + CommitListPublicParams = Vers::Models::CommitListPublicParams + + CommitTagCreateParams = Vers::Models::CommitTagCreateParams + + CommitTagDeleteParams = Vers::Models::CommitTagDeleteParams + + CommitTagGetParams = Vers::Models::CommitTagGetParams + + CommitTagListParams = Vers::Models::CommitTagListParams + + CommitTagUpdateParams = Vers::Models::CommitTagUpdateParams + + CommitUpdateParams = Vers::Models::CommitUpdateParams + + CreateTagRequest = Vers::Models::CreateTagRequest + + CreateTagResponse = Vers::Models::CreateTagResponse + ErrorResponse = Vers::Models::ErrorResponse + ListCommitsResponse = Vers::Models::ListCommitsResponse + + ListTagsResponse = Vers::Models::ListTagsResponse + NewRootRequest = Vers::Models::NewRootRequest NewVmResponse = Vers::Models::NewVmResponse NewVmsResponse = Vers::Models::NewVmsResponse + TagInfo = Vers::Models::TagInfo + + UpdateCommitRequest = Vers::Models::UpdateCommitRequest + + UpdateTagRequest = Vers::Models::UpdateTagRequest + VmAPI = Vers::Models::VmAPI VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + VmBranchByTagParams = Vers::Models::VmBranchByTagParams + VmBranchByVmParams = Vers::Models::VmBranchByVmParams VmBranchParams = Vers::Models::VmBranchParams @@ -67,10 +105,18 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetMetadataParams = Vers::Models::VmGetMetadataParams + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams VmListParams = Vers::Models::VmListParams + VmMetadataResponse = Vers::Models::VmMetadataResponse + + VmResizeDiskParams = Vers::Models::VmResizeDiskParams + + VmResizeDiskRequest = Vers::Models::VmResizeDiskRequest + VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse diff --git a/lib/vers/models/commit_delete_params.rb b/lib/vers/models/commit_delete_params.rb new file mode 100644 index 0000000..99e169b --- /dev/null +++ b/lib/vers/models/commit_delete_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Commits#delete + class CommitDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute commit_id + # + # @return [String] + required :commit_id, String + + # @!method initialize(commit_id:, request_options: {}) + # @param commit_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_info.rb b/lib/vers/models/commit_info.rb new file mode 100644 index 0000000..e43a3ba --- /dev/null +++ b/lib/vers/models/commit_info.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Commits#update + class CommitInfo < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # + # @return [String] + required :commit_id, String + + # @!attribute created_at + # + # @return [String] + required :created_at, String + + # @!attribute is_public + # + # @return [Boolean] + required :is_public, Vers::Internal::Type::Boolean + + # @!attribute name + # + # @return [String] + required :name, String + + # @!attribute owner_id + # + # @return [String] + required :owner_id, String + + # @!attribute description + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!attribute grandparent_commit_id + # + # @return [String, nil] + optional :grandparent_commit_id, String, nil?: true + + # @!attribute parent_vm_id + # + # @return [String, nil] + optional :parent_vm_id, String, nil?: true + + # @!method initialize(commit_id:, created_at:, is_public:, name:, owner_id:, description: nil, grandparent_commit_id: nil, parent_vm_id: nil) + # @param commit_id [String] + # @param created_at [String] + # @param is_public [Boolean] + # @param name [String] + # @param owner_id [String] + # @param description [String, nil] + # @param grandparent_commit_id [String, nil] + # @param parent_vm_id [String, nil] + end + end +end diff --git a/lib/vers/models/commit_list_params.rb b/lib/vers/models/commit_list_params.rb new file mode 100644 index 0000000..fc03baa --- /dev/null +++ b/lib/vers/models/commit_list_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Commits#list + class CommitListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_list_parents_params.rb b/lib/vers/models/commit_list_parents_params.rb new file mode 100644 index 0000000..ee34dca --- /dev/null +++ b/lib/vers/models/commit_list_parents_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Commits#list_parents + class CommitListParentsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute commit_id + # + # @return [String] + required :commit_id, String + + # @!method initialize(commit_id:, request_options: {}) + # @param commit_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_list_parents_response.rb b/lib/vers/models/commit_list_parents_response.rb new file mode 100644 index 0000000..40e28f5 --- /dev/null +++ b/lib/vers/models/commit_list_parents_response.rb @@ -0,0 +1,76 @@ +# frozen_string_literal: true + +module Vers + module Models + class CommitListParentsResponseItem < Vers::Internal::Type::BaseModel + # @!attribute id + # + # @return [String] + required :id, String + + # @!attribute created_at + # + # @return [Time] + required :created_at, Time + + # @!attribute is_public + # Whether this commit is publicly accessible (readable/restorable by anyone). + # + # @return [Boolean] + required :is_public, Vers::Internal::Type::Boolean + + # @!attribute name + # + # @return [String] + required :name, String + + # @!attribute owner_id + # api key id. + # + # @return [String] + required :owner_id, String + + # @!attribute description + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!attribute grandparent_commit_id + # The commit that this commit's parent VM was started from, if any. Intended to + # optimize traversing the commit tree. + # + # @return [String, nil] + optional :grandparent_commit_id, String, nil?: true + + # @!attribute parent_vm_id + # The VM that this commit was created from, if any. + # + # @return [String, nil] + optional :parent_vm_id, String, nil?: true + + # @!method initialize(id:, created_at:, is_public:, name:, owner_id:, description: nil, grandparent_commit_id: nil, parent_vm_id: nil) + # Some parameter documentations has been truncated, see + # {Vers::Models::CommitListParentsResponseItem} for more details. + # + # @param id [String] + # + # @param created_at [Time] + # + # @param is_public [Boolean] Whether this commit is publicly accessible (readable/restorable by anyone). + # + # @param name [String] + # + # @param owner_id [String] api key id. + # + # @param description [String, nil] + # + # @param grandparent_commit_id [String, nil] The commit that this commit's parent VM was started from, if any. Intended to op + # + # @param parent_vm_id [String, nil] The VM that this commit was created from, if any. + end + + # @type [Vers::Internal::Type::Converter] + CommitListParentsResponse = + Vers::Internal::Type::ArrayOf[-> { Vers::Models::CommitListParentsResponseItem }] + end +end diff --git a/lib/vers/models/commit_list_public_params.rb b/lib/vers/models/commit_list_public_params.rb new file mode 100644 index 0000000..68c86e7 --- /dev/null +++ b/lib/vers/models/commit_list_public_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Commits#list_public + class CommitListPublicParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_tag_create_params.rb b/lib/vers/models/commit_tag_create_params.rb new file mode 100644 index 0000000..653c8b9 --- /dev/null +++ b/lib/vers/models/commit_tag_create_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#create + class CommitTagCreateParams < Vers::Models::CreateTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_tag_delete_params.rb b/lib/vers/models/commit_tag_delete_params.rb new file mode 100644 index 0000000..664e455 --- /dev/null +++ b/lib/vers/models/commit_tag_delete_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#delete + class CommitTagDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!method initialize(tag_name:, request_options: {}) + # @param tag_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_tag_get_params.rb b/lib/vers/models/commit_tag_get_params.rb new file mode 100644 index 0000000..98fe51b --- /dev/null +++ b/lib/vers/models/commit_tag_get_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#get + class CommitTagGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!method initialize(tag_name:, request_options: {}) + # @param tag_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_tag_list_params.rb b/lib/vers/models/commit_tag_list_params.rb new file mode 100644 index 0000000..2038d75 --- /dev/null +++ b/lib/vers/models/commit_tag_list_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#list + class CommitTagListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_tag_update_params.rb b/lib/vers/models/commit_tag_update_params.rb new file mode 100644 index 0000000..3437bf1 --- /dev/null +++ b/lib/vers/models/commit_tag_update_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#update + class CommitTagUpdateParams < Vers::Models::UpdateTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!method initialize(tag_name:, request_options: {}) + # @param tag_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/commit_update_params.rb b/lib/vers/models/commit_update_params.rb new file mode 100644 index 0000000..85556e3 --- /dev/null +++ b/lib/vers/models/commit_update_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Commits#update + class CommitUpdateParams < Vers::Models::UpdateCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute commit_id + # + # @return [String] + required :commit_id, String + + # @!method initialize(commit_id:, request_options: {}) + # @param commit_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/create_tag_request.rb b/lib/vers/models/create_tag_request.rb new file mode 100644 index 0000000..5b6a04d --- /dev/null +++ b/lib/vers/models/create_tag_request.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Vers + module Models + class CreateTagRequest < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID this tag should point to + # + # @return [String] + required :commit_id, String + + # @!attribute tag_name + # The name of the tag (alphanumeric, hyphens, underscores, dots, 1-64 chars) + # + # @return [String] + required :tag_name, String + + # @!attribute description + # Optional description of what this tag represents + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(commit_id:, tag_name:, description: nil) + # Request body for POST /api/v1/commit_tags + # + # @param commit_id [String] The commit ID this tag should point to + # + # @param tag_name [String] The name of the tag (alphanumeric, hyphens, underscores, dots, 1-64 chars) + # + # @param description [String, nil] Optional description of what this tag represents + end + end +end diff --git a/lib/vers/models/create_tag_response.rb b/lib/vers/models/create_tag_response.rb new file mode 100644 index 0000000..3f5a378 --- /dev/null +++ b/lib/vers/models/create_tag_response.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#create + class CreateTagResponse < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID this tag points to + # + # @return [String] + required :commit_id, String + + # @!attribute tag_id + # The ID of the newly created tag + # + # @return [String] + required :tag_id, String + + # @!attribute tag_name + # The name of the tag + # + # @return [String] + required :tag_name, String + + # @!method initialize(commit_id:, tag_id:, tag_name:) + # Response body for POST /api/v1/commit_tags + # + # @param commit_id [String] The commit ID this tag points to + # + # @param tag_id [String] The ID of the newly created tag + # + # @param tag_name [String] The name of the tag + end + end +end diff --git a/lib/vers/models/list_commits_response.rb b/lib/vers/models/list_commits_response.rb new file mode 100644 index 0000000..455d076 --- /dev/null +++ b/lib/vers/models/list_commits_response.rb @@ -0,0 +1,34 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Commits#list + class ListCommitsResponse < Vers::Internal::Type::BaseModel + # @!attribute commits + # + # @return [Array] + required :commits, -> { Vers::Internal::Type::ArrayOf[Vers::CommitInfo] } + + # @!attribute limit + # + # @return [Integer] + required :limit, Integer + + # @!attribute offset + # + # @return [Integer] + required :offset, Integer + + # @!attribute total + # + # @return [Integer] + required :total, Integer + + # @!method initialize(commits:, limit:, offset:, total:) + # @param commits [Array] + # @param limit [Integer] + # @param offset [Integer] + # @param total [Integer] + end + end +end diff --git a/lib/vers/models/list_tags_response.rb b/lib/vers/models/list_tags_response.rb new file mode 100644 index 0000000..3d2d7cc --- /dev/null +++ b/lib/vers/models/list_tags_response.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#list + class ListTagsResponse < Vers::Internal::Type::BaseModel + # @!attribute tags + # List of all tags in the user's organization + # + # @return [Array] + required :tags, -> { Vers::Internal::Type::ArrayOf[Vers::TagInfo] } + + # @!method initialize(tags:) + # Response body for GET /api/v1/commit_tags + # + # @param tags [Array] List of all tags in the user's organization + end + end +end diff --git a/lib/vers/models/tag_info.rb b/lib/vers/models/tag_info.rb new file mode 100644 index 0000000..3ca65db --- /dev/null +++ b/lib/vers/models/tag_info.rb @@ -0,0 +1,62 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::CommitTags#get + class TagInfo < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID this tag currently points to + # + # @return [String] + required :commit_id, String + + # @!attribute created_at + # When the tag was created + # + # @return [Time] + required :created_at, Time + + # @!attribute tag_id + # The tag's unique identifier + # + # @return [String] + required :tag_id, String + + # @!attribute tag_name + # The name of the tag + # + # @return [String] + required :tag_name, String + + # @!attribute updated_at + # When the tag was last updated (moved to different commit or description changed) + # + # @return [Time] + required :updated_at, Time + + # @!attribute description + # Optional description of what this tag represents + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(commit_id:, created_at:, tag_id:, tag_name:, updated_at:, description: nil) + # Some parameter documentations has been truncated, see {Vers::Models::TagInfo} + # for more details. + # + # Tag information returned in list and get operations + # + # @param commit_id [String] The commit ID this tag currently points to + # + # @param created_at [Time] When the tag was created + # + # @param tag_id [String] The tag's unique identifier + # + # @param tag_name [String] The name of the tag + # + # @param updated_at [Time] When the tag was last updated (moved to different commit or description changed) + # + # @param description [String, nil] Optional description of what this tag represents + end + end +end diff --git a/lib/vers/models/update_commit_request.rb b/lib/vers/models/update_commit_request.rb new file mode 100644 index 0000000..70e78fe --- /dev/null +++ b/lib/vers/models/update_commit_request.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module Vers + module Models + class UpdateCommitRequest < Vers::Internal::Type::BaseModel + # @!attribute is_public + # + # @return [Boolean] + required :is_public, Vers::Internal::Type::Boolean + + # @!method initialize(is_public:) + # Request body for PATCH /commits/{commit_id} + # + # @param is_public [Boolean] + end + end +end diff --git a/lib/vers/models/update_tag_request.rb b/lib/vers/models/update_tag_request.rb new file mode 100644 index 0000000..6a18555 --- /dev/null +++ b/lib/vers/models/update_tag_request.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module Vers + module Models + class UpdateTagRequest < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # Optional new commit ID to move the tag to + # + # @return [String, nil] + optional :commit_id, String, nil?: true + + # @!attribute description + # Optional new description for the tag. Send `null` to clear an existing + # description. + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(commit_id: nil, description: nil) + # Some parameter documentations has been truncated, see + # {Vers::Models::UpdateTagRequest} for more details. + # + # Request body for PATCH /api/v1/commit_tags/{tag_name} + # + # For `description`: + # + # - Field absent from JSON → don't change the description + # - Field present as `null` → clear the description + # - Field present as `"text"` → set the description to "text" + # + # @param commit_id [String, nil] Optional new commit ID to move the tag to + # + # @param description [String, nil] Optional new description for the tag. Send `null` to clear an existing descripti + end + end +end diff --git a/lib/vers/models/vm_branch_by_tag_params.rb b/lib/vers/models/vm_branch_by_tag_params.rb new file mode 100644 index 0000000..4ac9bc9 --- /dev/null +++ b/lib/vers/models/vm_branch_by_tag_params.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#branch_by_tag + class VmBranchByTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!attribute count + # Number of VMs to branch (optional; default 1) + # + # @return [Integer, nil] + optional :count, Integer + + # @!method initialize(tag_name:, count: nil, request_options: {}) + # @param tag_name [String] + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_get_metadata_params.rb b/lib/vers/models/vm_get_metadata_params.rb new file mode 100644 index 0000000..60772f6 --- /dev/null +++ b/lib/vers/models/vm_get_metadata_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_metadata + class VmGetMetadataParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:, request_options: {}) + # @param vm_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_metadata_response.rb b/lib/vers/models/vm_metadata_response.rb new file mode 100644 index 0000000..c6059af --- /dev/null +++ b/lib/vers/models/vm_metadata_response.rb @@ -0,0 +1,83 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_metadata + class VmMetadataResponse < Vers::Internal::Type::BaseModel + # @!attribute created_at + # + # @return [Time] + required :created_at, Time + + # @!attribute ip + # + # @return [String] + required :ip, String + + # @!attribute owner_id + # + # @return [String] + required :owner_id, String + + # @!attribute state + # The state of a VM + # + # @return [Symbol, Vers::Models::VmMetadataResponse::State] + required :state, enum: -> { Vers::VmMetadataResponse::State } + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!attribute deleted_at + # + # @return [Time, nil] + optional :deleted_at, Time, nil?: true + + # @!attribute grandparent_vm_id + # + # @return [String, nil] + optional :grandparent_vm_id, String, nil?: true + + # @!attribute parent_commit_id + # + # @return [String, nil] + optional :parent_commit_id, String, nil?: true + + # @!method initialize(created_at:, ip:, owner_id:, state:, vm_id:, deleted_at: nil, grandparent_vm_id: nil, parent_commit_id: nil) + # Response for GET /api/v1/vm/{vm_id}/metadata + # + # @param created_at [Time] + # + # @param ip [String] + # + # @param owner_id [String] + # + # @param state [Symbol, Vers::Models::VmMetadataResponse::State] The state of a VM + # + # @param vm_id [String] + # + # @param deleted_at [Time, nil] + # + # @param grandparent_vm_id [String, nil] + # + # @param parent_commit_id [String, nil] + + # The state of a VM + # + # @see Vers::Models::VmMetadataResponse#state + module State + extend Vers::Internal::Type::Enum + + BOOTING = :booting + RUNNING = :running + PAUSED = :paused + SLEEPING = :sleeping + + # @!method self.values + # @return [Array] + end + end + end +end diff --git a/lib/vers/models/vm_resize_disk_params.rb b/lib/vers/models/vm_resize_disk_params.rb new file mode 100644 index 0000000..f783d4f --- /dev/null +++ b/lib/vers/models/vm_resize_disk_params.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#resize_disk + class VmResizeDiskParams < Vers::Models::VmResizeDiskRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!attribute skip_wait_boot + # If true, return an error immediately if the VM is still booting. Default: false + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean + + # @!method initialize(vm_id:, skip_wait_boot: nil, request_options: {}) + # @param vm_id [String] + # + # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_resize_disk_request.rb b/lib/vers/models/vm_resize_disk_request.rb new file mode 100644 index 0000000..dc5b3d3 --- /dev/null +++ b/lib/vers/models/vm_resize_disk_request.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Vers + module Models + class VmResizeDiskRequest < Vers::Internal::Type::BaseModel + # @!attribute fs_size_mib + # The new disk size in MiB. Must be strictly greater than the current size. + # + # @return [Integer] + required :fs_size_mib, Integer + + # @!method initialize(fs_size_mib:) + # Request body for PATCH /api/vm/{vm_id}/disk + # + # @param fs_size_mib [Integer] The new disk size in MiB. Must be strictly greater than the current size. + end + end +end diff --git a/lib/vers/resources/commit_tags.rb b/lib/vers/resources/commit_tags.rb new file mode 100644 index 0000000..96c769b --- /dev/null +++ b/lib/vers/resources/commit_tags.rb @@ -0,0 +1,117 @@ +# frozen_string_literal: true + +module Vers + module Resources + class CommitTags + # @overload create(commit_id:, tag_name:, description: nil, request_options: {}) + # + # @param commit_id [String] The commit ID this tag should point to + # + # @param tag_name [String] The name of the tag (alphanumeric, hyphens, underscores, dots, 1-64 chars) + # + # @param description [String, nil] Optional description of what this tag represents + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::CreateTagResponse] + # + # @see Vers::Models::CommitTagCreateParams + def create(params) + parsed, options = Vers::CommitTagCreateParams.dump_request(params) + @client.request( + method: :post, + path: "api/v1/commit_tags", + body: parsed, + model: Vers::CreateTagResponse, + options: options + ) + end + + # Some parameter documentations has been truncated, see + # {Vers::Models::CommitTagUpdateParams} for more details. + # + # @overload update(tag_name, commit_id: nil, description: nil, request_options: {}) + # + # @param tag_name [String] The name of the tag to update + # + # @param commit_id [String, nil] Optional new commit ID to move the tag to + # + # @param description [String, nil] Optional new description for the tag. Send `null` to clear an existing descripti + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::CommitTagUpdateParams + def update(tag_name, params = {}) + parsed, options = Vers::CommitTagUpdateParams.dump_request(params) + @client.request( + method: :patch, + path: ["api/v1/commit_tags/%1$s", tag_name], + body: parsed, + model: NilClass, + options: options + ) + end + + # @overload list(request_options: {}) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ListTagsResponse] + # + # @see Vers::Models::CommitTagListParams + def list(params = {}) + @client.request( + method: :get, + path: "api/v1/commit_tags", + model: Vers::ListTagsResponse, + options: params[:request_options] + ) + end + + # @overload delete(tag_name, request_options: {}) + # + # @param tag_name [String] The name of the tag to delete + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::CommitTagDeleteParams + def delete(tag_name, params = {}) + @client.request( + method: :delete, + path: ["api/v1/commit_tags/%1$s", tag_name], + model: NilClass, + options: params[:request_options] + ) + end + + # @overload get(tag_name, request_options: {}) + # + # @param tag_name [String] The name of the tag to retrieve + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::TagInfo] + # + # @see Vers::Models::CommitTagGetParams + def get(tag_name, params = {}) + @client.request( + method: :get, + path: ["api/v1/commit_tags/%1$s", tag_name], + model: Vers::TagInfo, + options: params[:request_options] + ) + end + + # @api private + # + # @param client [Vers::Client] + def initialize(client:) + @client = client + end + end + end +end diff --git a/lib/vers/resources/commits.rb b/lib/vers/resources/commits.rb new file mode 100644 index 0000000..f66beff --- /dev/null +++ b/lib/vers/resources/commits.rb @@ -0,0 +1,104 @@ +# frozen_string_literal: true + +module Vers + module Resources + class Commits + # @overload update(commit_id, is_public:, request_options: {}) + # + # @param commit_id [String] The commit ID + # + # @param is_public [Boolean] + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::CommitInfo] + # + # @see Vers::Models::CommitUpdateParams + def update(commit_id, params) + parsed, options = Vers::CommitUpdateParams.dump_request(params) + @client.request( + method: :patch, + path: ["api/v1/commits/%1$s", commit_id], + body: parsed, + model: Vers::CommitInfo, + options: options + ) + end + + # @overload list(request_options: {}) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ListCommitsResponse] + # + # @see Vers::Models::CommitListParams + def list(params = {}) + @client.request( + method: :get, + path: "api/v1/commits", + model: Vers::ListCommitsResponse, + options: params[:request_options] + ) + end + + # @overload delete(commit_id, request_options: {}) + # + # @param commit_id [String] Commit ID to delete + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::CommitDeleteParams + def delete(commit_id, params = {}) + @client.request( + method: :delete, + path: ["api/v1/commits/%1$s", commit_id], + model: NilClass, + options: params[:request_options] + ) + end + + # @overload list_parents(commit_id, request_options: {}) + # + # @param commit_id [String] Commit ID to start from + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Array] + # + # @see Vers::Models::CommitListParentsParams + def list_parents(commit_id, params = {}) + @client.request( + method: :get, + path: ["api/v1/vm/commits/%1$s/parents", commit_id], + model: Vers::Internal::Type::ArrayOf[Vers::Models::CommitListParentsResponseItem], + options: params[:request_options] + ) + end + + # @overload list_public(request_options: {}) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ListCommitsResponse] + # + # @see Vers::Models::CommitListPublicParams + def list_public(params = {}) + @client.request( + method: :get, + path: "api/v1/commits/public", + model: Vers::ListCommitsResponse, + options: params[:request_options] + ) + end + + # @api private + # + # @param client [Vers::Client] + def initialize(client:) + @client = client + end + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 0fab286..b135882 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -95,6 +95,29 @@ def branch_by_commit(commit_id, params = {}) ) end + # @overload branch_by_tag(tag_name, count: nil, request_options: {}) + # + # @param tag_name [String] The tag name to branch off + # + # @param count [Integer] Number of VMs to branch (optional; default 1) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::NewVmsResponse] + # + # @see Vers::Models::VmBranchByTagParams + def branch_by_tag(tag_name, params = {}) + parsed, options = Vers::VmBranchByTagParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed) + @client.request( + method: :post, + path: ["api/v1/vm/branch/by_tag/%1$s", tag_name], + query: query, + model: Vers::NewVmsResponse, + options: options + ) + end + # @overload branch_by_vm(vm_id, count: nil, keep_paused: nil, skip_wait_boot: nil, request_options: {}) # # @param vm_id [String] VM to commit and then branch off of @@ -175,6 +198,24 @@ def create_root(params) ) end + # @overload get_metadata(vm_id, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmMetadataResponse] + # + # @see Vers::Models::VmGetMetadataParams + def get_metadata(vm_id, params = {}) + @client.request( + method: :get, + path: ["api/v1/vm/%1$s/metadata", vm_id], + model: Vers::VmMetadataResponse, + options: params[:request_options] + ) + end + # @overload get_ssh_key(vm_id, request_options: {}) # # @param vm_id [String] Node ID @@ -193,6 +234,36 @@ def get_ssh_key(vm_id, params = {}) ) end + # Some parameter documentations has been truncated, see + # {Vers::Models::VmResizeDiskParams} for more details. + # + # @overload resize_disk(vm_id, fs_size_mib:, skip_wait_boot: nil, request_options: {}) + # + # @param vm_id [String] Path param: VM ID whose disk to resize + # + # @param fs_size_mib [Integer] Body param: The new disk size in MiB. Must be strictly greater than the current + # + # @param skip_wait_boot [Boolean] Query param: If true, return an error immediately if the VM is still booting. De + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::VmResizeDiskParams + def resize_disk(vm_id, params) + query_params = [:skip_wait_boot] + parsed, options = Vers::VmResizeDiskParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed.slice(*query_params)) + @client.request( + method: :patch, + path: ["api/v1/vm/%1$s/disk", vm_id], + query: query, + body: parsed.except(*query_params), + model: NilClass, + options: options + ) + end + # @overload restore_from_commit(vm_from_commit_request:, request_options: {}) # # @param vm_from_commit_request [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName] Request body for POST /api/v1/vm/from_commit diff --git a/rbi/vers/client.rbi b/rbi/vers/client.rbi index 805966d..a1782c3 100644 --- a/rbi/vers/client.rbi +++ b/rbi/vers/client.rbi @@ -16,6 +16,12 @@ module Vers sig { returns(Vers::Resources::Vm) } attr_reader :vm + sig { returns(Vers::Resources::Commits) } + attr_reader :commits + + sig { returns(Vers::Resources::CommitTags) } + attr_reader :commit_tags + # @api private sig { override.returns(T::Hash[String, String]) } private def auth_headers diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index 9bba7c1..1544294 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -1,18 +1,56 @@ # typed: strong module Vers + CommitDeleteParams = Vers::Models::CommitDeleteParams + + CommitInfo = Vers::Models::CommitInfo + + CommitListParams = Vers::Models::CommitListParams + + CommitListParentsParams = Vers::Models::CommitListParentsParams + + CommitListPublicParams = Vers::Models::CommitListPublicParams + + CommitTagCreateParams = Vers::Models::CommitTagCreateParams + + CommitTagDeleteParams = Vers::Models::CommitTagDeleteParams + + CommitTagGetParams = Vers::Models::CommitTagGetParams + + CommitTagListParams = Vers::Models::CommitTagListParams + + CommitTagUpdateParams = Vers::Models::CommitTagUpdateParams + + CommitUpdateParams = Vers::Models::CommitUpdateParams + + CreateTagRequest = Vers::Models::CreateTagRequest + + CreateTagResponse = Vers::Models::CreateTagResponse + ErrorResponse = Vers::Models::ErrorResponse + ListCommitsResponse = Vers::Models::ListCommitsResponse + + ListTagsResponse = Vers::Models::ListTagsResponse + NewRootRequest = Vers::Models::NewRootRequest NewVmResponse = Vers::Models::NewVmResponse NewVmsResponse = Vers::Models::NewVmsResponse + TagInfo = Vers::Models::TagInfo + + UpdateCommitRequest = Vers::Models::UpdateCommitRequest + + UpdateTagRequest = Vers::Models::UpdateTagRequest + VmAPI = Vers::Models::VmAPI VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + VmBranchByTagParams = Vers::Models::VmBranchByTagParams + VmBranchByVmParams = Vers::Models::VmBranchByVmParams VmBranchParams = Vers::Models::VmBranchParams @@ -29,10 +67,18 @@ module Vers VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetMetadataParams = Vers::Models::VmGetMetadataParams + VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams VmListParams = Vers::Models::VmListParams + VmMetadataResponse = Vers::Models::VmMetadataResponse + + VmResizeDiskParams = Vers::Models::VmResizeDiskParams + + VmResizeDiskRequest = Vers::Models::VmResizeDiskRequest + VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse diff --git a/rbi/vers/models/commit_delete_params.rbi b/rbi/vers/models/commit_delete_params.rbi new file mode 100644 index 0000000..e5e6df6 --- /dev/null +++ b/rbi/vers/models/commit_delete_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class CommitDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitDeleteParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :commit_id + + sig do + params( + commit_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(commit_id:, request_options: {}) + end + + sig do + override.returns( + { commit_id: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_info.rbi b/rbi/vers/models/commit_info.rbi new file mode 100644 index 0000000..8213608 --- /dev/null +++ b/rbi/vers/models/commit_info.rbi @@ -0,0 +1,74 @@ +# typed: strong + +module Vers + module Models + class CommitInfo < Vers::Internal::Type::BaseModel + OrHash = T.type_alias { T.any(Vers::CommitInfo, Vers::Internal::AnyHash) } + + sig { returns(String) } + attr_accessor :commit_id + + sig { returns(String) } + attr_accessor :created_at + + sig { returns(T::Boolean) } + attr_accessor :is_public + + sig { returns(String) } + attr_accessor :name + + sig { returns(String) } + attr_accessor :owner_id + + sig { returns(T.nilable(String)) } + attr_accessor :description + + sig { returns(T.nilable(String)) } + attr_accessor :grandparent_commit_id + + sig { returns(T.nilable(String)) } + attr_accessor :parent_vm_id + + sig do + params( + commit_id: String, + created_at: String, + is_public: T::Boolean, + name: String, + owner_id: String, + description: T.nilable(String), + grandparent_commit_id: T.nilable(String), + parent_vm_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + commit_id:, + created_at:, + is_public:, + name:, + owner_id:, + description: nil, + grandparent_commit_id: nil, + parent_vm_id: nil + ) + end + + sig do + override.returns( + { + commit_id: String, + created_at: String, + is_public: T::Boolean, + name: String, + owner_id: String, + description: T.nilable(String), + grandparent_commit_id: T.nilable(String), + parent_vm_id: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_list_params.rbi b/rbi/vers/models/commit_list_params.rbi new file mode 100644 index 0000000..b524e0b --- /dev/null +++ b/rbi/vers/models/commit_list_params.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Vers + module Models + class CommitListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::CommitListParams, Vers::Internal::AnyHash) } + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_list_parents_params.rbi b/rbi/vers/models/commit_list_parents_params.rbi new file mode 100644 index 0000000..1190260 --- /dev/null +++ b/rbi/vers/models/commit_list_parents_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class CommitListParentsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitListParentsParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :commit_id + + sig do + params( + commit_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(commit_id:, request_options: {}) + end + + sig do + override.returns( + { commit_id: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_list_parents_response.rbi b/rbi/vers/models/commit_list_parents_response.rbi new file mode 100644 index 0000000..7098a13 --- /dev/null +++ b/rbi/vers/models/commit_list_parents_response.rbi @@ -0,0 +1,98 @@ +# typed: strong + +module Vers + module Models + class CommitListParentsResponseItem < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Vers::Models::CommitListParentsResponseItem, + Vers::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :id + + sig { returns(Time) } + attr_accessor :created_at + + # Whether this commit is publicly accessible (readable/restorable by anyone). + sig { returns(T::Boolean) } + attr_accessor :is_public + + sig { returns(String) } + attr_accessor :name + + # api key id. + sig { returns(String) } + attr_accessor :owner_id + + sig { returns(T.nilable(String)) } + attr_accessor :description + + # The commit that this commit's parent VM was started from, if any. Intended to + # optimize traversing the commit tree. + sig { returns(T.nilable(String)) } + attr_accessor :grandparent_commit_id + + # The VM that this commit was created from, if any. + sig { returns(T.nilable(String)) } + attr_accessor :parent_vm_id + + sig do + params( + id: String, + created_at: Time, + is_public: T::Boolean, + name: String, + owner_id: String, + description: T.nilable(String), + grandparent_commit_id: T.nilable(String), + parent_vm_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + id:, + created_at:, + # Whether this commit is publicly accessible (readable/restorable by anyone). + is_public:, + name:, + # api key id. + owner_id:, + description: nil, + # The commit that this commit's parent VM was started from, if any. Intended to + # optimize traversing the commit tree. + grandparent_commit_id: nil, + # The VM that this commit was created from, if any. + parent_vm_id: nil + ) + end + + sig do + override.returns( + { + id: String, + created_at: Time, + is_public: T::Boolean, + name: String, + owner_id: String, + description: T.nilable(String), + grandparent_commit_id: T.nilable(String), + parent_vm_id: T.nilable(String) + } + ) + end + def to_hash + end + end + + CommitListParentsResponse = + T.let( + Vers::Internal::Type::ArrayOf[ + Vers::Models::CommitListParentsResponseItem + ], + Vers::Internal::Type::Converter + ) + end +end diff --git a/rbi/vers/models/commit_list_public_params.rbi b/rbi/vers/models/commit_list_public_params.rbi new file mode 100644 index 0000000..c0e2eaa --- /dev/null +++ b/rbi/vers/models/commit_list_public_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class CommitListPublicParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitListPublicParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_tag_create_params.rbi b/rbi/vers/models/commit_tag_create_params.rbi new file mode 100644 index 0000000..ffd6e74 --- /dev/null +++ b/rbi/vers/models/commit_tag_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class CommitTagCreateParams < Vers::Models::CreateTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitTagCreateParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_tag_delete_params.rbi b/rbi/vers/models/commit_tag_delete_params.rbi new file mode 100644 index 0000000..25a69cb --- /dev/null +++ b/rbi/vers/models/commit_tag_delete_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class CommitTagDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitTagDeleteParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :tag_name + + sig do + params( + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(tag_name:, request_options: {}) + end + + sig do + override.returns( + { tag_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_tag_get_params.rbi b/rbi/vers/models/commit_tag_get_params.rbi new file mode 100644 index 0000000..16e25d9 --- /dev/null +++ b/rbi/vers/models/commit_tag_get_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class CommitTagGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitTagGetParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :tag_name + + sig do + params( + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(tag_name:, request_options: {}) + end + + sig do + override.returns( + { tag_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_tag_list_params.rbi b/rbi/vers/models/commit_tag_list_params.rbi new file mode 100644 index 0000000..5f3aabf --- /dev/null +++ b/rbi/vers/models/commit_tag_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class CommitTagListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitTagListParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_tag_update_params.rbi b/rbi/vers/models/commit_tag_update_params.rbi new file mode 100644 index 0000000..678cf1d --- /dev/null +++ b/rbi/vers/models/commit_tag_update_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class CommitTagUpdateParams < Vers::Models::UpdateTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitTagUpdateParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :tag_name + + sig do + params( + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(tag_name:, request_options: {}) + end + + sig do + override.returns( + { tag_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/commit_update_params.rbi b/rbi/vers/models/commit_update_params.rbi new file mode 100644 index 0000000..0969aa0 --- /dev/null +++ b/rbi/vers/models/commit_update_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class CommitUpdateParams < Vers::Models::UpdateCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::CommitUpdateParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :commit_id + + sig do + params( + commit_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(commit_id:, request_options: {}) + end + + sig do + override.returns( + { commit_id: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/create_tag_request.rbi b/rbi/vers/models/create_tag_request.rbi new file mode 100644 index 0000000..2ed51d8 --- /dev/null +++ b/rbi/vers/models/create_tag_request.rbi @@ -0,0 +1,52 @@ +# typed: strong + +module Vers + module Models + class CreateTagRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::CreateTagRequest, Vers::Internal::AnyHash) } + + # The commit ID this tag should point to + sig { returns(String) } + attr_accessor :commit_id + + # The name of the tag (alphanumeric, hyphens, underscores, dots, 1-64 chars) + sig { returns(String) } + attr_accessor :tag_name + + # Optional description of what this tag represents + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Request body for POST /api/v1/commit_tags + sig do + params( + commit_id: String, + tag_name: String, + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # The commit ID this tag should point to + commit_id:, + # The name of the tag (alphanumeric, hyphens, underscores, dots, 1-64 chars) + tag_name:, + # Optional description of what this tag represents + description: nil + ) + end + + sig do + override.returns( + { + commit_id: String, + tag_name: String, + description: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/create_tag_response.rbi b/rbi/vers/models/create_tag_response.rbi new file mode 100644 index 0000000..8a29a69 --- /dev/null +++ b/rbi/vers/models/create_tag_response.rbi @@ -0,0 +1,46 @@ +# typed: strong + +module Vers + module Models + class CreateTagResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::CreateTagResponse, Vers::Internal::AnyHash) } + + # The commit ID this tag points to + sig { returns(String) } + attr_accessor :commit_id + + # The ID of the newly created tag + sig { returns(String) } + attr_accessor :tag_id + + # The name of the tag + sig { returns(String) } + attr_accessor :tag_name + + # Response body for POST /api/v1/commit_tags + sig do + params(commit_id: String, tag_id: String, tag_name: String).returns( + T.attached_class + ) + end + def self.new( + # The commit ID this tag points to + commit_id:, + # The ID of the newly created tag + tag_id:, + # The name of the tag + tag_name: + ) + end + + sig do + override.returns( + { commit_id: String, tag_id: String, tag_name: String } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/list_commits_response.rbi b/rbi/vers/models/list_commits_response.rbi new file mode 100644 index 0000000..ff6d58c --- /dev/null +++ b/rbi/vers/models/list_commits_response.rbi @@ -0,0 +1,48 @@ +# typed: strong + +module Vers + module Models + class ListCommitsResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::ListCommitsResponse, Vers::Internal::AnyHash) + end + + sig { returns(T::Array[Vers::CommitInfo]) } + attr_accessor :commits + + sig { returns(Integer) } + attr_accessor :limit + + sig { returns(Integer) } + attr_accessor :offset + + sig { returns(Integer) } + attr_accessor :total + + sig do + params( + commits: T::Array[Vers::CommitInfo::OrHash], + limit: Integer, + offset: Integer, + total: Integer + ).returns(T.attached_class) + end + def self.new(commits:, limit:, offset:, total:) + end + + sig do + override.returns( + { + commits: T::Array[Vers::CommitInfo], + limit: Integer, + offset: Integer, + total: Integer + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/list_tags_response.rbi b/rbi/vers/models/list_tags_response.rbi new file mode 100644 index 0000000..09a4bf9 --- /dev/null +++ b/rbi/vers/models/list_tags_response.rbi @@ -0,0 +1,28 @@ +# typed: strong + +module Vers + module Models + class ListTagsResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::ListTagsResponse, Vers::Internal::AnyHash) } + + # List of all tags in the user's organization + sig { returns(T::Array[Vers::TagInfo]) } + attr_accessor :tags + + # Response body for GET /api/v1/commit_tags + sig do + params(tags: T::Array[Vers::TagInfo::OrHash]).returns(T.attached_class) + end + def self.new( + # List of all tags in the user's organization + tags: + ) + end + + sig { override.returns({ tags: T::Array[Vers::TagInfo] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/tag_info.rbi b/rbi/vers/models/tag_info.rbi new file mode 100644 index 0000000..f0fa27d --- /dev/null +++ b/rbi/vers/models/tag_info.rbi @@ -0,0 +1,75 @@ +# typed: strong + +module Vers + module Models + class TagInfo < Vers::Internal::Type::BaseModel + OrHash = T.type_alias { T.any(Vers::TagInfo, Vers::Internal::AnyHash) } + + # The commit ID this tag currently points to + sig { returns(String) } + attr_accessor :commit_id + + # When the tag was created + sig { returns(Time) } + attr_accessor :created_at + + # The tag's unique identifier + sig { returns(String) } + attr_accessor :tag_id + + # The name of the tag + sig { returns(String) } + attr_accessor :tag_name + + # When the tag was last updated (moved to different commit or description changed) + sig { returns(Time) } + attr_accessor :updated_at + + # Optional description of what this tag represents + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Tag information returned in list and get operations + sig do + params( + commit_id: String, + created_at: Time, + tag_id: String, + tag_name: String, + updated_at: Time, + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # The commit ID this tag currently points to + commit_id:, + # When the tag was created + created_at:, + # The tag's unique identifier + tag_id:, + # The name of the tag + tag_name:, + # When the tag was last updated (moved to different commit or description changed) + updated_at:, + # Optional description of what this tag represents + description: nil + ) + end + + sig do + override.returns( + { + commit_id: String, + created_at: Time, + tag_id: String, + tag_name: String, + updated_at: Time, + description: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/update_commit_request.rbi b/rbi/vers/models/update_commit_request.rbi new file mode 100644 index 0000000..fc24328 --- /dev/null +++ b/rbi/vers/models/update_commit_request.rbi @@ -0,0 +1,24 @@ +# typed: strong + +module Vers + module Models + class UpdateCommitRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::UpdateCommitRequest, Vers::Internal::AnyHash) + end + + sig { returns(T::Boolean) } + attr_accessor :is_public + + # Request body for PATCH /commits/{commit_id} + sig { params(is_public: T::Boolean).returns(T.attached_class) } + def self.new(is_public:) + end + + sig { override.returns({ is_public: T::Boolean }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/update_tag_request.rbi b/rbi/vers/models/update_tag_request.rbi new file mode 100644 index 0000000..3797aa1 --- /dev/null +++ b/rbi/vers/models/update_tag_request.rbi @@ -0,0 +1,49 @@ +# typed: strong + +module Vers + module Models + class UpdateTagRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::UpdateTagRequest, Vers::Internal::AnyHash) } + + # Optional new commit ID to move the tag to + sig { returns(T.nilable(String)) } + attr_accessor :commit_id + + # Optional new description for the tag. Send `null` to clear an existing + # description. + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Request body for PATCH /api/v1/commit_tags/{tag_name} + # + # For `description`: + # + # - Field absent from JSON → don't change the description + # - Field present as `null` → clear the description + # - Field present as `"text"` → set the description to "text" + sig do + params( + commit_id: T.nilable(String), + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # Optional new commit ID to move the tag to + commit_id: nil, + # Optional new description for the tag. Send `null` to clear an existing + # description. + description: nil + ) + end + + sig do + override.returns( + { commit_id: T.nilable(String), description: T.nilable(String) } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_branch_by_tag_params.rbi b/rbi/vers/models/vm_branch_by_tag_params.rbi new file mode 100644 index 0000000..42fbef6 --- /dev/null +++ b/rbi/vers/models/vm_branch_by_tag_params.rbi @@ -0,0 +1,52 @@ +# typed: strong + +module Vers + module Models + class VmBranchByTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmBranchByTagParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :tag_name + + # Number of VMs to branch (optional; default 1) + sig { returns(T.nilable(Integer)) } + attr_reader :count + + sig { params(count: Integer).void } + attr_writer :count + + sig do + params( + tag_name: String, + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + tag_name:, + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + tag_name: String, + count: Integer, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_get_metadata_params.rbi b/rbi/vers/models/vm_get_metadata_params.rbi new file mode 100644 index 0000000..97707a5 --- /dev/null +++ b/rbi/vers/models/vm_get_metadata_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class VmGetMetadataParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmGetMetadataParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :vm_id + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(vm_id:, request_options: {}) + end + + sig do + override.returns( + { vm_id: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_metadata_response.rbi b/rbi/vers/models/vm_metadata_response.rbi new file mode 100644 index 0000000..99ce0a7 --- /dev/null +++ b/rbi/vers/models/vm_metadata_response.rbi @@ -0,0 +1,103 @@ +# typed: strong + +module Vers + module Models + class VmMetadataResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmMetadataResponse, Vers::Internal::AnyHash) + end + + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(String) } + attr_accessor :ip + + sig { returns(String) } + attr_accessor :owner_id + + # The state of a VM + sig { returns(Vers::VmMetadataResponse::State::TaggedSymbol) } + attr_accessor :state + + sig { returns(String) } + attr_accessor :vm_id + + sig { returns(T.nilable(Time)) } + attr_accessor :deleted_at + + sig { returns(T.nilable(String)) } + attr_accessor :grandparent_vm_id + + sig { returns(T.nilable(String)) } + attr_accessor :parent_commit_id + + # Response for GET /api/v1/vm/{vm_id}/metadata + sig do + params( + created_at: Time, + ip: String, + owner_id: String, + state: Vers::VmMetadataResponse::State::OrSymbol, + vm_id: String, + deleted_at: T.nilable(Time), + grandparent_vm_id: T.nilable(String), + parent_commit_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + created_at:, + ip:, + owner_id:, + # The state of a VM + state:, + vm_id:, + deleted_at: nil, + grandparent_vm_id: nil, + parent_commit_id: nil + ) + end + + sig do + override.returns( + { + created_at: Time, + ip: String, + owner_id: String, + state: Vers::VmMetadataResponse::State::TaggedSymbol, + vm_id: String, + deleted_at: T.nilable(Time), + grandparent_vm_id: T.nilable(String), + parent_commit_id: T.nilable(String) + } + ) + end + def to_hash + end + + # The state of a VM + module State + extend Vers::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Vers::VmMetadataResponse::State) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + BOOTING = T.let(:booting, Vers::VmMetadataResponse::State::TaggedSymbol) + RUNNING = T.let(:running, Vers::VmMetadataResponse::State::TaggedSymbol) + PAUSED = T.let(:paused, Vers::VmMetadataResponse::State::TaggedSymbol) + SLEEPING = + T.let(:sleeping, Vers::VmMetadataResponse::State::TaggedSymbol) + + sig do + override.returns( + T::Array[Vers::VmMetadataResponse::State::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/vers/models/vm_resize_disk_params.rbi b/rbi/vers/models/vm_resize_disk_params.rbi new file mode 100644 index 0000000..af331c8 --- /dev/null +++ b/rbi/vers/models/vm_resize_disk_params.rbi @@ -0,0 +1,52 @@ +# typed: strong + +module Vers + module Models + class VmResizeDiskParams < Vers::Models::VmResizeDiskRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmResizeDiskParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :vm_id + + # If true, return an error immediately if the VM is still booting. Default: false + sig { returns(T.nilable(T::Boolean)) } + attr_reader :skip_wait_boot + + sig { params(skip_wait_boot: T::Boolean).void } + attr_writer :skip_wait_boot + + sig do + params( + vm_id: String, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + vm_id:, + # If true, return an error immediately if the VM is still booting. Default: false + skip_wait_boot: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + vm_id: String, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_resize_disk_request.rbi b/rbi/vers/models/vm_resize_disk_request.rbi new file mode 100644 index 0000000..37f32a2 --- /dev/null +++ b/rbi/vers/models/vm_resize_disk_request.rbi @@ -0,0 +1,28 @@ +# typed: strong + +module Vers + module Models + class VmResizeDiskRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmResizeDiskRequest, Vers::Internal::AnyHash) + end + + # The new disk size in MiB. Must be strictly greater than the current size. + sig { returns(Integer) } + attr_accessor :fs_size_mib + + # Request body for PATCH /api/vm/{vm_id}/disk + sig { params(fs_size_mib: Integer).returns(T.attached_class) } + def self.new( + # The new disk size in MiB. Must be strictly greater than the current size. + fs_size_mib: + ) + end + + sig { override.returns({ fs_size_mib: Integer }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/commit_tags.rbi b/rbi/vers/resources/commit_tags.rbi new file mode 100644 index 0000000..59d405b --- /dev/null +++ b/rbi/vers/resources/commit_tags.rbi @@ -0,0 +1,85 @@ +# typed: strong + +module Vers + module Resources + class CommitTags + sig do + params( + commit_id: String, + tag_name: String, + description: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::CreateTagResponse) + end + def create( + # The commit ID this tag should point to + commit_id:, + # The name of the tag (alphanumeric, hyphens, underscores, dots, 1-64 chars) + tag_name:, + # Optional description of what this tag represents + description: nil, + request_options: {} + ) + end + + sig do + params( + tag_name: String, + commit_id: T.nilable(String), + description: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).void + end + def update( + # The name of the tag to update + tag_name, + # Optional new commit ID to move the tag to + commit_id: nil, + # Optional new description for the tag. Send `null` to clear an existing + # description. + description: nil, + request_options: {} + ) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + Vers::ListTagsResponse + ) + end + def list(request_options: {}) + end + + sig do + params( + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).void + end + def delete( + # The name of the tag to delete + tag_name, + request_options: {} + ) + end + + sig do + params( + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::TagInfo) + end + def get( + # The name of the tag to retrieve + tag_name, + request_options: {} + ) + end + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/vers/resources/commits.rbi b/rbi/vers/resources/commits.rbi new file mode 100644 index 0000000..3726a35 --- /dev/null +++ b/rbi/vers/resources/commits.rbi @@ -0,0 +1,69 @@ +# typed: strong + +module Vers + module Resources + class Commits + sig do + params( + commit_id: String, + is_public: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::CommitInfo) + end + def update( + # The commit ID + commit_id, + is_public:, + request_options: {} + ) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + Vers::ListCommitsResponse + ) + end + def list(request_options: {}) + end + + sig do + params( + commit_id: String, + request_options: Vers::RequestOptions::OrHash + ).void + end + def delete( + # Commit ID to delete + commit_id, + request_options: {} + ) + end + + sig do + params( + commit_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T::Array[Vers::Models::CommitListParentsResponseItem]) + end + def list_parents( + # Commit ID to start from + commit_id, + request_options: {} + ) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + Vers::ListCommitsResponse + ) + end + def list_public(request_options: {}) + end + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 9819701..0dc711d 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -66,6 +66,22 @@ module Vers ) end + sig do + params( + tag_name: String, + count: Integer, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::NewVmsResponse) + end + def branch_by_tag( + # The tag name to branch off + tag_name, + # Number of VMs to branch (optional; default 1) + count: nil, + request_options: {} + ) + end + sig do params( vm_id: String, @@ -124,6 +140,19 @@ module Vers ) end + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmMetadataResponse) + end + def get_metadata( + # VM ID + vm_id, + request_options: {} + ) + end + sig do params( vm_id: String, @@ -137,6 +166,27 @@ module Vers ) end + sig do + params( + vm_id: String, + fs_size_mib: Integer, + skip_wait_boot: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).void + end + def resize_disk( + # Path param: VM ID whose disk to resize + vm_id, + # Body param: The new disk size in MiB. Must be strictly greater than the current + # size. + fs_size_mib:, + # Query param: If true, return an error immediately if the VM is still booting. + # Default: false + skip_wait_boot: nil, + request_options: {} + ) + end + sig do params( vm_from_commit_request: diff --git a/sig/vers/client.rbs b/sig/vers/client.rbs index f06d4c4..b0ec12c 100644 --- a/sig/vers/client.rbs +++ b/sig/vers/client.rbs @@ -12,6 +12,10 @@ module Vers attr_reader vm: Vers::Resources::Vm + attr_reader commits: Vers::Resources::Commits + + attr_reader commit_tags: Vers::Resources::CommitTags + private def auth_headers: -> ::Hash[String, String] def initialize: ( diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 2f85251..58550a4 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -1,16 +1,54 @@ module Vers + class CommitDeleteParams = Vers::Models::CommitDeleteParams + + class CommitInfo = Vers::Models::CommitInfo + + class CommitListParams = Vers::Models::CommitListParams + + class CommitListParentsParams = Vers::Models::CommitListParentsParams + + class CommitListPublicParams = Vers::Models::CommitListPublicParams + + class CommitTagCreateParams = Vers::Models::CommitTagCreateParams + + class CommitTagDeleteParams = Vers::Models::CommitTagDeleteParams + + class CommitTagGetParams = Vers::Models::CommitTagGetParams + + class CommitTagListParams = Vers::Models::CommitTagListParams + + class CommitTagUpdateParams = Vers::Models::CommitTagUpdateParams + + class CommitUpdateParams = Vers::Models::CommitUpdateParams + + class CreateTagRequest = Vers::Models::CreateTagRequest + + class CreateTagResponse = Vers::Models::CreateTagResponse + class ErrorResponse = Vers::Models::ErrorResponse + class ListCommitsResponse = Vers::Models::ListCommitsResponse + + class ListTagsResponse = Vers::Models::ListTagsResponse + class NewRootRequest = Vers::Models::NewRootRequest class NewVmResponse = Vers::Models::NewVmResponse class NewVmsResponse = Vers::Models::NewVmsResponse + class TagInfo = Vers::Models::TagInfo + + class UpdateCommitRequest = Vers::Models::UpdateCommitRequest + + class UpdateTagRequest = Vers::Models::UpdateTagRequest + class VmAPI = Vers::Models::VmAPI class VmBranchByCommitParams = Vers::Models::VmBranchByCommitParams + class VmBranchByTagParams = Vers::Models::VmBranchByTagParams + class VmBranchByVmParams = Vers::Models::VmBranchByVmParams class VmBranchParams = Vers::Models::VmBranchParams @@ -27,10 +65,18 @@ module Vers module VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetMetadataParams = Vers::Models::VmGetMetadataParams + class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams class VmListParams = Vers::Models::VmListParams + class VmMetadataResponse = Vers::Models::VmMetadataResponse + + class VmResizeDiskParams = Vers::Models::VmResizeDiskParams + + class VmResizeDiskRequest = Vers::Models::VmResizeDiskRequest + class VmRestoreFromCommitParams = Vers::Models::VmRestoreFromCommitParams class VmSSHKeyResponse = Vers::Models::VmSSHKeyResponse diff --git a/sig/vers/models/commit_delete_params.rbs b/sig/vers/models/commit_delete_params.rbs new file mode 100644 index 0000000..c43d63e --- /dev/null +++ b/sig/vers/models/commit_delete_params.rbs @@ -0,0 +1,23 @@ +module Vers + module Models + type commit_delete_params = + { commit_id: String } & Vers::Internal::Type::request_parameters + + class CommitDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor commit_id: String + + def initialize: ( + commit_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + commit_id: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/commit_info.rbs b/sig/vers/models/commit_info.rbs new file mode 100644 index 0000000..f013403 --- /dev/null +++ b/sig/vers/models/commit_info.rbs @@ -0,0 +1,55 @@ +module Vers + module Models + type commit_info = + { + commit_id: String, + created_at: String, + is_public: bool, + name: String, + owner_id: String, + description: String?, + grandparent_commit_id: String?, + parent_vm_id: String? + } + + class CommitInfo < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor created_at: String + + attr_accessor is_public: bool + + attr_accessor name: String + + attr_accessor owner_id: String + + attr_accessor description: String? + + attr_accessor grandparent_commit_id: String? + + attr_accessor parent_vm_id: String? + + def initialize: ( + commit_id: String, + created_at: String, + is_public: bool, + name: String, + owner_id: String, + ?description: String?, + ?grandparent_commit_id: String?, + ?parent_vm_id: String? + ) -> void + + def to_hash: -> { + commit_id: String, + created_at: String, + is_public: bool, + name: String, + owner_id: String, + description: String?, + grandparent_commit_id: String?, + parent_vm_id: String? + } + end + end +end diff --git a/sig/vers/models/commit_list_params.rbs b/sig/vers/models/commit_list_params.rbs new file mode 100644 index 0000000..425442e --- /dev/null +++ b/sig/vers/models/commit_list_params.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type commit_list_params = { } & Vers::Internal::Type::request_parameters + + class CommitListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/commit_list_parents_params.rbs b/sig/vers/models/commit_list_parents_params.rbs new file mode 100644 index 0000000..51f5363 --- /dev/null +++ b/sig/vers/models/commit_list_parents_params.rbs @@ -0,0 +1,23 @@ +module Vers + module Models + type commit_list_parents_params = + { commit_id: String } & Vers::Internal::Type::request_parameters + + class CommitListParentsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor commit_id: String + + def initialize: ( + commit_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + commit_id: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/commit_list_parents_response.rbs b/sig/vers/models/commit_list_parents_response.rbs new file mode 100644 index 0000000..55fb15a --- /dev/null +++ b/sig/vers/models/commit_list_parents_response.rbs @@ -0,0 +1,60 @@ +module Vers + module Models + type commit_list_parents_response_item = + { + id: String, + created_at: Time, + is_public: bool, + name: String, + owner_id: String, + description: String?, + grandparent_commit_id: String?, + parent_vm_id: String? + } + + class CommitListParentsResponseItem < Vers::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor created_at: Time + + attr_accessor is_public: bool + + attr_accessor name: String + + attr_accessor owner_id: String + + attr_accessor description: String? + + attr_accessor grandparent_commit_id: String? + + attr_accessor parent_vm_id: String? + + def initialize: ( + id: String, + created_at: Time, + is_public: bool, + name: String, + owner_id: String, + ?description: String?, + ?grandparent_commit_id: String?, + ?parent_vm_id: String? + ) -> void + + def to_hash: -> { + id: String, + created_at: Time, + is_public: bool, + name: String, + owner_id: String, + description: String?, + grandparent_commit_id: String?, + parent_vm_id: String? + } + end + + type commit_list_parents_response = + ::Array[Vers::Models::CommitListParentsResponseItem] + + CommitListParentsResponse: Vers::Internal::Type::Converter + end +end diff --git a/sig/vers/models/commit_list_public_params.rbs b/sig/vers/models/commit_list_public_params.rbs new file mode 100644 index 0000000..00bec44 --- /dev/null +++ b/sig/vers/models/commit_list_public_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type commit_list_public_params = + { } & Vers::Internal::Type::request_parameters + + class CommitListPublicParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/commit_tag_create_params.rbs b/sig/vers/models/commit_tag_create_params.rbs new file mode 100644 index 0000000..b660b39 --- /dev/null +++ b/sig/vers/models/commit_tag_create_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type commit_tag_create_params = + { } & Vers::Internal::Type::request_parameters + + class CommitTagCreateParams < Vers::Models::CreateTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/commit_tag_delete_params.rbs b/sig/vers/models/commit_tag_delete_params.rbs new file mode 100644 index 0000000..b353970 --- /dev/null +++ b/sig/vers/models/commit_tag_delete_params.rbs @@ -0,0 +1,23 @@ +module Vers + module Models + type commit_tag_delete_params = + { tag_name: String } & Vers::Internal::Type::request_parameters + + class CommitTagDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor tag_name: String + + def initialize: ( + tag_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + tag_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/commit_tag_get_params.rbs b/sig/vers/models/commit_tag_get_params.rbs new file mode 100644 index 0000000..d5a5d78 --- /dev/null +++ b/sig/vers/models/commit_tag_get_params.rbs @@ -0,0 +1,23 @@ +module Vers + module Models + type commit_tag_get_params = + { tag_name: String } & Vers::Internal::Type::request_parameters + + class CommitTagGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor tag_name: String + + def initialize: ( + tag_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + tag_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/commit_tag_list_params.rbs b/sig/vers/models/commit_tag_list_params.rbs new file mode 100644 index 0000000..c893f3d --- /dev/null +++ b/sig/vers/models/commit_tag_list_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type commit_tag_list_params = + { } & Vers::Internal::Type::request_parameters + + class CommitTagListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/commit_tag_update_params.rbs b/sig/vers/models/commit_tag_update_params.rbs new file mode 100644 index 0000000..59e2756 --- /dev/null +++ b/sig/vers/models/commit_tag_update_params.rbs @@ -0,0 +1,25 @@ +module Vers + module Models + type commit_tag_update_params = + { tag_name: String } & Vers::Internal::Type::request_parameters + + class CommitTagUpdateParams < Vers::Models::UpdateTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def tag_name: -> String + + def tag_name=: (String _) -> String + + def initialize: ( + tag_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + tag_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/commit_update_params.rbs b/sig/vers/models/commit_update_params.rbs new file mode 100644 index 0000000..2ee4c8b --- /dev/null +++ b/sig/vers/models/commit_update_params.rbs @@ -0,0 +1,25 @@ +module Vers + module Models + type commit_update_params = + { commit_id: String } & Vers::Internal::Type::request_parameters + + class CommitUpdateParams < Vers::Models::UpdateCommitRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def commit_id: -> String + + def commit_id=: (String _) -> String + + def initialize: ( + commit_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + commit_id: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/create_tag_request.rbs b/sig/vers/models/create_tag_request.rbs new file mode 100644 index 0000000..0351811 --- /dev/null +++ b/sig/vers/models/create_tag_request.rbs @@ -0,0 +1,26 @@ +module Vers + module Models + type create_tag_request = + { commit_id: String, tag_name: String, description: String? } + + class CreateTagRequest < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor tag_name: String + + attr_accessor description: String? + + def initialize: ( + commit_id: String, + tag_name: String, + ?description: String? + ) -> void + + def to_hash: -> { + commit_id: String, + tag_name: String, + description: String? + } + end + end +end diff --git a/sig/vers/models/create_tag_response.rbs b/sig/vers/models/create_tag_response.rbs new file mode 100644 index 0000000..46b3d67 --- /dev/null +++ b/sig/vers/models/create_tag_response.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type create_tag_response = + { commit_id: String, tag_id: String, tag_name: String } + + class CreateTagResponse < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor tag_id: String + + attr_accessor tag_name: String + + def initialize: ( + commit_id: String, + tag_id: String, + tag_name: String + ) -> void + + def to_hash: -> { commit_id: String, tag_id: String, tag_name: String } + end + end +end diff --git a/sig/vers/models/list_commits_response.rbs b/sig/vers/models/list_commits_response.rbs new file mode 100644 index 0000000..1e78fa6 --- /dev/null +++ b/sig/vers/models/list_commits_response.rbs @@ -0,0 +1,35 @@ +module Vers + module Models + type list_commits_response = + { + commits: ::Array[Vers::CommitInfo], + limit: Integer, + offset: Integer, + total: Integer + } + + class ListCommitsResponse < Vers::Internal::Type::BaseModel + attr_accessor commits: ::Array[Vers::CommitInfo] + + attr_accessor limit: Integer + + attr_accessor offset: Integer + + attr_accessor total: Integer + + def initialize: ( + commits: ::Array[Vers::CommitInfo], + limit: Integer, + offset: Integer, + total: Integer + ) -> void + + def to_hash: -> { + commits: ::Array[Vers::CommitInfo], + limit: Integer, + offset: Integer, + total: Integer + } + end + end +end diff --git a/sig/vers/models/list_tags_response.rbs b/sig/vers/models/list_tags_response.rbs new file mode 100644 index 0000000..8e1e79f --- /dev/null +++ b/sig/vers/models/list_tags_response.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type list_tags_response = { tags: ::Array[Vers::TagInfo] } + + class ListTagsResponse < Vers::Internal::Type::BaseModel + attr_accessor tags: ::Array[Vers::TagInfo] + + def initialize: (tags: ::Array[Vers::TagInfo]) -> void + + def to_hash: -> { tags: ::Array[Vers::TagInfo] } + end + end +end diff --git a/sig/vers/models/tag_info.rbs b/sig/vers/models/tag_info.rbs new file mode 100644 index 0000000..6f87aad --- /dev/null +++ b/sig/vers/models/tag_info.rbs @@ -0,0 +1,45 @@ +module Vers + module Models + type tag_info = + { + commit_id: String, + created_at: Time, + tag_id: String, + tag_name: String, + updated_at: Time, + description: String? + } + + class TagInfo < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor created_at: Time + + attr_accessor tag_id: String + + attr_accessor tag_name: String + + attr_accessor updated_at: Time + + attr_accessor description: String? + + def initialize: ( + commit_id: String, + created_at: Time, + tag_id: String, + tag_name: String, + updated_at: Time, + ?description: String? + ) -> void + + def to_hash: -> { + commit_id: String, + created_at: Time, + tag_id: String, + tag_name: String, + updated_at: Time, + description: String? + } + end + end +end diff --git a/sig/vers/models/update_commit_request.rbs b/sig/vers/models/update_commit_request.rbs new file mode 100644 index 0000000..8019f3e --- /dev/null +++ b/sig/vers/models/update_commit_request.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type update_commit_request = { is_public: bool } + + class UpdateCommitRequest < Vers::Internal::Type::BaseModel + attr_accessor is_public: bool + + def initialize: (is_public: bool) -> void + + def to_hash: -> { is_public: bool } + end + end +end diff --git a/sig/vers/models/update_tag_request.rbs b/sig/vers/models/update_tag_request.rbs new file mode 100644 index 0000000..f1852a8 --- /dev/null +++ b/sig/vers/models/update_tag_request.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type update_tag_request = { commit_id: String?, description: String? } + + class UpdateTagRequest < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String? + + attr_accessor description: String? + + def initialize: (?commit_id: String?, ?description: String?) -> void + + def to_hash: -> { commit_id: String?, description: String? } + end + end +end diff --git a/sig/vers/models/vm_branch_by_tag_params.rbs b/sig/vers/models/vm_branch_by_tag_params.rbs new file mode 100644 index 0000000..8c5c895 --- /dev/null +++ b/sig/vers/models/vm_branch_by_tag_params.rbs @@ -0,0 +1,30 @@ +module Vers + module Models + type vm_branch_by_tag_params = + { tag_name: String, count: Integer } + & Vers::Internal::Type::request_parameters + + class VmBranchByTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor tag_name: String + + attr_reader count: Integer? + + def count=: (Integer) -> Integer + + def initialize: ( + tag_name: String, + ?count: Integer, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + tag_name: String, + count: Integer, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/vm_get_metadata_params.rbs b/sig/vers/models/vm_get_metadata_params.rbs new file mode 100644 index 0000000..115b3d5 --- /dev/null +++ b/sig/vers/models/vm_get_metadata_params.rbs @@ -0,0 +1,20 @@ +module Vers + module Models + type vm_get_metadata_params = + { vm_id: String } & Vers::Internal::Type::request_parameters + + class VmGetMetadataParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor vm_id: String + + def initialize: ( + vm_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { vm_id: String, request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_metadata_response.rbs b/sig/vers/models/vm_metadata_response.rbs new file mode 100644 index 0000000..0ddd3e6 --- /dev/null +++ b/sig/vers/models/vm_metadata_response.rbs @@ -0,0 +1,68 @@ +module Vers + module Models + type vm_metadata_response = + { + created_at: Time, + ip: String, + owner_id: String, + state: Vers::Models::VmMetadataResponse::state, + vm_id: String, + deleted_at: Time?, + grandparent_vm_id: String?, + parent_commit_id: String? + } + + class VmMetadataResponse < Vers::Internal::Type::BaseModel + attr_accessor created_at: Time + + attr_accessor ip: String + + attr_accessor owner_id: String + + attr_accessor state: Vers::Models::VmMetadataResponse::state + + attr_accessor vm_id: String + + attr_accessor deleted_at: Time? + + attr_accessor grandparent_vm_id: String? + + attr_accessor parent_commit_id: String? + + def initialize: ( + created_at: Time, + ip: String, + owner_id: String, + state: Vers::Models::VmMetadataResponse::state, + vm_id: String, + ?deleted_at: Time?, + ?grandparent_vm_id: String?, + ?parent_commit_id: String? + ) -> void + + def to_hash: -> { + created_at: Time, + ip: String, + owner_id: String, + state: Vers::Models::VmMetadataResponse::state, + vm_id: String, + deleted_at: Time?, + grandparent_vm_id: String?, + parent_commit_id: String? + } + + type state = :booting | :running | :paused | :sleeping + + module State + extend Vers::Internal::Type::Enum + + BOOTING: :booting + RUNNING: :running + PAUSED: :paused + SLEEPING: :sleeping + + def self?.values: -> ::Array[Vers::Models::VmMetadataResponse::state] + end + end + end +end diff --git a/sig/vers/models/vm_resize_disk_params.rbs b/sig/vers/models/vm_resize_disk_params.rbs new file mode 100644 index 0000000..6571da8 --- /dev/null +++ b/sig/vers/models/vm_resize_disk_params.rbs @@ -0,0 +1,32 @@ +module Vers + module Models + type vm_resize_disk_params = + { vm_id: String, skip_wait_boot: bool } + & Vers::Internal::Type::request_parameters + + class VmResizeDiskParams < Vers::Models::VmResizeDiskRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def vm_id: -> String + + def vm_id=: (String _) -> String + + def skip_wait_boot: -> bool? + + def skip_wait_boot=: (bool _) -> bool + + def initialize: ( + vm_id: String, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + vm_id: String, + skip_wait_boot: bool, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/vm_resize_disk_request.rbs b/sig/vers/models/vm_resize_disk_request.rbs new file mode 100644 index 0000000..3f5c732 --- /dev/null +++ b/sig/vers/models/vm_resize_disk_request.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type vm_resize_disk_request = { fs_size_mib: Integer } + + class VmResizeDiskRequest < Vers::Internal::Type::BaseModel + attr_accessor fs_size_mib: Integer + + def initialize: (fs_size_mib: Integer) -> void + + def to_hash: -> { fs_size_mib: Integer } + end + end +end diff --git a/sig/vers/resources/commit_tags.rbs b/sig/vers/resources/commit_tags.rbs new file mode 100644 index 0000000..f373745 --- /dev/null +++ b/sig/vers/resources/commit_tags.rbs @@ -0,0 +1,30 @@ +module Vers + module Resources + class CommitTags + def create: ( + commit_id: String, + tag_name: String, + ?description: String?, + ?request_options: Vers::request_opts + ) -> Vers::CreateTagResponse + + def update: ( + String tag_name, + ?commit_id: String?, + ?description: String?, + ?request_options: Vers::request_opts + ) -> nil + + def list: (?request_options: Vers::request_opts) -> Vers::ListTagsResponse + + def delete: (String tag_name, ?request_options: Vers::request_opts) -> nil + + def get: ( + String tag_name, + ?request_options: Vers::request_opts + ) -> Vers::TagInfo + + def initialize: (client: Vers::Client) -> void + end + end +end diff --git a/sig/vers/resources/commits.rbs b/sig/vers/resources/commits.rbs new file mode 100644 index 0000000..c72fbfe --- /dev/null +++ b/sig/vers/resources/commits.rbs @@ -0,0 +1,31 @@ +module Vers + module Resources + class Commits + def update: ( + String commit_id, + is_public: bool, + ?request_options: Vers::request_opts + ) -> Vers::CommitInfo + + def list: ( + ?request_options: Vers::request_opts + ) -> Vers::ListCommitsResponse + + def delete: ( + String commit_id, + ?request_options: Vers::request_opts + ) -> nil + + def list_parents: ( + String commit_id, + ?request_options: Vers::request_opts + ) -> Vers::Models::commit_list_parents_response + + def list_public: ( + ?request_options: Vers::request_opts + ) -> Vers::ListCommitsResponse + + def initialize: (client: Vers::Client) -> void + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index c303d51..5e8433c 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -25,6 +25,12 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmsResponse + def branch_by_tag: ( + String tag_name, + ?count: Integer, + ?request_options: Vers::request_opts + ) -> Vers::NewVmsResponse + def branch_by_vm: ( String vm_id, ?count: Integer, @@ -46,11 +52,23 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def get_metadata: ( + String vm_id, + ?request_options: Vers::request_opts + ) -> Vers::VmMetadataResponse + def get_ssh_key: ( String vm_id, ?request_options: Vers::request_opts ) -> Vers::VmSSHKeyResponse + def resize_disk: ( + String vm_id, + fs_size_mib: Integer, + ?skip_wait_boot: bool, + ?request_options: Vers::request_opts + ) -> nil + def restore_from_commit: ( vm_from_commit_request: Vers::Models::vm_from_commit_request, ?request_options: Vers::request_opts diff --git a/test/vers/resources/commit_tags_test.rb b/test/vers/resources/commit_tags_test.rb new file mode 100644 index 0000000..fe07d9b --- /dev/null +++ b/test/vers/resources/commit_tags_test.rb @@ -0,0 +1,81 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +class Vers::Test::Resources::CommitTagsTest < Vers::Test::ResourceTest + def test_create_required_params + skip("Mock server tests are disabled") + + response = + @vers.commit_tags.create(commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", tag_name: "tag_name") + + assert_pattern do + response => Vers::CreateTagResponse + end + + assert_pattern do + response => { + commit_id: String, + tag_id: String, + tag_name: String + } + end + end + + def test_update + skip("Mock server tests are disabled") + + response = @vers.commit_tags.update("tag_name") + + assert_pattern do + response => nil + end + end + + def test_list + skip("Mock server tests are disabled") + + response = @vers.commit_tags.list + + assert_pattern do + response => Vers::ListTagsResponse + end + + assert_pattern do + response => { + tags: ^(Vers::Internal::Type::ArrayOf[Vers::TagInfo]) + } + end + end + + def test_delete + skip("Mock server tests are disabled") + + response = @vers.commit_tags.delete("tag_name") + + assert_pattern do + response => nil + end + end + + def test_get + skip("Mock server tests are disabled") + + response = @vers.commit_tags.get("tag_name") + + assert_pattern do + response => Vers::TagInfo + end + + assert_pattern do + response => { + commit_id: String, + created_at: Time, + tag_id: String, + tag_name: String, + updated_at: Time, + description: String | nil + } + end + end +end diff --git a/test/vers/resources/commits_test.rb b/test/vers/resources/commits_test.rb new file mode 100644 index 0000000..49e866e --- /dev/null +++ b/test/vers/resources/commits_test.rb @@ -0,0 +1,86 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +class Vers::Test::Resources::CommitsTest < Vers::Test::ResourceTest + def test_update_required_params + skip("Mock server tests are disabled") + + response = @vers.commits.update("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", is_public: true) + + assert_pattern do + response => Vers::CommitInfo + end + + assert_pattern do + response => { + commit_id: String, + created_at: String, + is_public: Vers::Internal::Type::Boolean, + name: String, + owner_id: String, + description: String | nil, + grandparent_commit_id: String | nil, + parent_vm_id: String | nil + } + end + end + + def test_list + skip("Mock server tests are disabled") + + response = @vers.commits.list + + assert_pattern do + response => Vers::ListCommitsResponse + end + + assert_pattern do + response => { + commits: ^(Vers::Internal::Type::ArrayOf[Vers::CommitInfo]), + limit: Integer, + offset: Integer, + total: Integer + } + end + end + + def test_delete + skip("Mock server tests are disabled") + + response = @vers.commits.delete("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => nil + end + end + + def test_list_parents + skip("Mock server tests are disabled") + + response = @vers.commits.list_parents("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => ^(Vers::Internal::Type::ArrayOf[Vers::Models::CommitListParentsResponseItem]) + end + end + + def test_list_public + skip("Mock server tests are disabled") + + response = @vers.commits.list_public + + assert_pattern do + response => Vers::ListCommitsResponse + end + + assert_pattern do + response => { + commits: ^(Vers::Internal::Type::ArrayOf[Vers::CommitInfo]), + limit: Integer, + offset: Integer, + total: Integer + } + end + end +end diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index 652b9e7..bad1056 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -61,6 +61,22 @@ def test_branch_by_commit end end + def test_branch_by_tag + skip("Mock server tests are disabled") + + response = @vers.vm.branch_by_tag("tag_name") + + assert_pattern do + response => Vers::NewVmsResponse + end + + assert_pattern do + response => { + vms: ^(Vers::Internal::Type::ArrayOf[Vers::NewVmResponse]) + } + end + end + def test_branch_by_vm skip("Mock server tests are disabled") @@ -109,6 +125,29 @@ def test_create_root_required_params end end + def test_get_metadata + skip("Mock server tests are disabled") + + response = @vers.vm.get_metadata("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmMetadataResponse + end + + assert_pattern do + response => { + created_at: Time, + ip: String, + owner_id: String, + state: Vers::VmMetadataResponse::State, + vm_id: String, + deleted_at: Time | nil, + grandparent_vm_id: String | nil, + parent_commit_id: String | nil + } + end + end + def test_get_ssh_key skip("Mock server tests are disabled") @@ -126,6 +165,16 @@ def test_get_ssh_key end end + def test_resize_disk_required_params + skip("Mock server tests are disabled") + + response = @vers.vm.resize_disk("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", fs_size_mib: 0) + + assert_pattern do + response => nil + end + end + def test_restore_from_commit_required_params skip("Mock server tests are disabled") From 7afc1881784089f78224b57d23f7188a1210cf53 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 02:01:12 +0000 Subject: [PATCH 086/100] chore(internal): update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3d26cee..fc9eb28 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .idea/ .ignore .prism.log +.stdy.log .ruby-lsp/ .yardoc/ bin/tapioca From 01835c30c2428cd97bd6bfa2eab6a2f7d009c737 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 02:04:26 +0000 Subject: [PATCH 087/100] chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2053a33..f1dfe81 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,8 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/firecracker-manager-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: |- github.repository == 'stainless-sdks/firecracker-manager-ruby' && - (github.event_name == 'push' || github.event.pull_request.head.repo.fork) + (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && + (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@v6 - name: Set up Ruby From 0356f523708b84f343b713e15a88460b035efafc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 20:41:05 +0000 Subject: [PATCH 088/100] feat(api): api update --- .stats.yml | 4 +- lib/vers/internal/type/union.rb | 2 + lib/vers/models/vm_from_commit_request.rb | 42 ++++++++++++--------- lib/vers/resources/commit_tags.rb | 6 +-- lib/vers/resources/vm.rb | 2 +- rbi/vers/models/vm_from_commit_request.rbi | 44 +++++++++++++++------- rbi/vers/resources/commit_tags.rbi | 6 +-- rbi/vers/resources/vm.rbi | 3 +- sig/vers/models/vm_from_commit_request.rbs | 14 ++++++- 9 files changed, 81 insertions(+), 42 deletions(-) diff --git a/.stats.yml b/.stats.yml index f4dfce9..eb3e2a9 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 24 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-e153147fe832cc795f48a1b5093a168c928b33d78bf4cb61ec6a58612976bdce.yml -openapi_spec_hash: d69255a38561f9ec976e2ff7cb31e0f0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-b352e5ec0ad2ea91fada7931fb136b3341b380b8d23d8de65eaf9acd2d65c6dd.yml +openapi_spec_hash: 64a0bb2977b1b2e74128d7dc0e50726c config_hash: 9329c6e401233d6bb50b1cb4cc7be574 diff --git a/lib/vers/internal/type/union.rb b/lib/vers/internal/type/union.rb index a58b5d5..64415ec 100644 --- a/lib/vers/internal/type/union.rb +++ b/lib/vers/internal/type/union.rb @@ -12,6 +12,8 @@ module Type # puts(vm_from_commit_request.commit_id) # when Vers::VmFromCommitRequest::TagName # puts(vm_from_commit_request.tag_name) + # when Vers::VmFromCommitRequest::Ref + # puts(vm_from_commit_request.ref) # else # puts(vm_from_commit_request) # end diff --git a/lib/vers/models/vm_from_commit_request.rb b/lib/vers/models/vm_from_commit_request.rb index 3cf8fb4..5b716ca 100644 --- a/lib/vers/models/vm_from_commit_request.rb +++ b/lib/vers/models/vm_from_commit_request.rb @@ -6,50 +6,56 @@ module Models module VmFromCommitRequest extend Vers::Internal::Type::Union - # The commit ID to restore from (exactly one of commit_id or tag_name must be provided) + # The commit ID to restore from variant -> { Vers::VmFromCommitRequest::CommitID } - # The tag name to restore from (exactly one of commit_id or tag_name must be provided) + # The tag name to restore from (legacy org-scoped tag) variant -> { Vers::VmFromCommitRequest::TagName } + # A repository reference in "repo_name:tag_name" format + variant -> { Vers::VmFromCommitRequest::Ref } + class CommitID < Vers::Internal::Type::BaseModel # @!attribute commit_id - # The commit ID to restore from (exactly one of commit_id or tag_name must be - # provided) + # The commit ID to restore from # # @return [String] required :commit_id, String # @!method initialize(commit_id:) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmFromCommitRequest::CommitID} for more details. - # - # The commit ID to restore from (exactly one of commit_id or tag_name must be - # provided) + # The commit ID to restore from # - # @param commit_id [String] The commit ID to restore from (exactly one of commit_id or tag_name must be prov + # @param commit_id [String] The commit ID to restore from end class TagName < Vers::Internal::Type::BaseModel # @!attribute tag_name - # The tag name to restore from (exactly one of commit_id or tag_name must be - # provided) + # The tag name to restore from (legacy org-scoped tag) # # @return [String] required :tag_name, String # @!method initialize(tag_name:) - # Some parameter documentations has been truncated, see - # {Vers::Models::VmFromCommitRequest::TagName} for more details. + # The tag name to restore from (legacy org-scoped tag) # - # The tag name to restore from (exactly one of commit_id or tag_name must be - # provided) + # @param tag_name [String] The tag name to restore from (legacy org-scoped tag) + end + + class Ref < Vers::Internal::Type::BaseModel + # @!attribute ref + # A repository reference in "repo_name:tag_name" format + # + # @return [String] + required :ref, String + + # @!method initialize(ref:) + # A repository reference in "repo_name:tag_name" format # - # @param tag_name [String] The tag name to restore from (exactly one of commit_id or tag_name must be provi + # @param ref [String] A repository reference in "repo_name:tag_name" format end # @!method self.variants - # @return [Array(Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName)] + # @return [Array(Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName, Vers::Models::VmFromCommitRequest::Ref)] end end end diff --git a/lib/vers/resources/commit_tags.rb b/lib/vers/resources/commit_tags.rb index 96c769b..45d3300 100644 --- a/lib/vers/resources/commit_tags.rb +++ b/lib/vers/resources/commit_tags.rb @@ -32,7 +32,7 @@ def create(params) # # @overload update(tag_name, commit_id: nil, description: nil, request_options: {}) # - # @param tag_name [String] The name of the tag to update + # @param tag_name [String] Tag name # # @param commit_id [String, nil] Optional new commit ID to move the tag to # @@ -72,7 +72,7 @@ def list(params = {}) # @overload delete(tag_name, request_options: {}) # - # @param tag_name [String] The name of the tag to delete + # @param tag_name [String] Tag name # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -90,7 +90,7 @@ def delete(tag_name, params = {}) # @overload get(tag_name, request_options: {}) # - # @param tag_name [String] The name of the tag to retrieve + # @param tag_name [String] Tag name # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index b135882..1028133 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -266,7 +266,7 @@ def resize_disk(vm_id, params) # @overload restore_from_commit(vm_from_commit_request:, request_options: {}) # - # @param vm_from_commit_request [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName] Request body for POST /api/v1/vm/from_commit + # @param vm_from_commit_request [Vers::Models::VmFromCommitRequest::CommitID, Vers::Models::VmFromCommitRequest::TagName, Vers::Models::VmFromCommitRequest::Ref] Request body for POST /api/v1/vm/from_commit # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # diff --git a/rbi/vers/models/vm_from_commit_request.rbi b/rbi/vers/models/vm_from_commit_request.rbi index e606e96..f76c322 100644 --- a/rbi/vers/models/vm_from_commit_request.rbi +++ b/rbi/vers/models/vm_from_commit_request.rbi @@ -10,7 +10,8 @@ module Vers T.type_alias do T.any( Vers::VmFromCommitRequest::CommitID, - Vers::VmFromCommitRequest::TagName + Vers::VmFromCommitRequest::TagName, + Vers::VmFromCommitRequest::Ref ) end @@ -20,17 +21,14 @@ module Vers T.any(Vers::VmFromCommitRequest::CommitID, Vers::Internal::AnyHash) end - # The commit ID to restore from (exactly one of commit_id or tag_name must be - # provided) + # The commit ID to restore from sig { returns(String) } attr_accessor :commit_id - # The commit ID to restore from (exactly one of commit_id or tag_name must be - # provided) + # The commit ID to restore from sig { params(commit_id: String).returns(T.attached_class) } def self.new( - # The commit ID to restore from (exactly one of commit_id or tag_name must be - # provided) + # The commit ID to restore from commit_id: ) end @@ -46,17 +44,14 @@ module Vers T.any(Vers::VmFromCommitRequest::TagName, Vers::Internal::AnyHash) end - # The tag name to restore from (exactly one of commit_id or tag_name must be - # provided) + # The tag name to restore from (legacy org-scoped tag) sig { returns(String) } attr_accessor :tag_name - # The tag name to restore from (exactly one of commit_id or tag_name must be - # provided) + # The tag name to restore from (legacy org-scoped tag) sig { params(tag_name: String).returns(T.attached_class) } def self.new( - # The tag name to restore from (exactly one of commit_id or tag_name must be - # provided) + # The tag name to restore from (legacy org-scoped tag) tag_name: ) end @@ -66,6 +61,29 @@ module Vers end end + class Ref < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmFromCommitRequest::Ref, Vers::Internal::AnyHash) + end + + # A repository reference in "repo_name:tag_name" format + sig { returns(String) } + attr_accessor :ref + + # A repository reference in "repo_name:tag_name" format + sig { params(ref: String).returns(T.attached_class) } + def self.new( + # A repository reference in "repo_name:tag_name" format + ref: + ) + end + + sig { override.returns({ ref: String }) } + def to_hash + end + end + sig { override.returns(T::Array[Vers::VmFromCommitRequest::Variants]) } def self.variants end diff --git a/rbi/vers/resources/commit_tags.rbi b/rbi/vers/resources/commit_tags.rbi index 59d405b..eda519a 100644 --- a/rbi/vers/resources/commit_tags.rbi +++ b/rbi/vers/resources/commit_tags.rbi @@ -31,7 +31,7 @@ module Vers ).void end def update( - # The name of the tag to update + # Tag name tag_name, # Optional new commit ID to move the tag to commit_id: nil, @@ -57,7 +57,7 @@ module Vers ).void end def delete( - # The name of the tag to delete + # Tag name tag_name, request_options: {} ) @@ -70,7 +70,7 @@ module Vers ).returns(Vers::TagInfo) end def get( - # The name of the tag to retrieve + # Tag name tag_name, request_options: {} ) diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 0dc711d..98b0fb7 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -192,7 +192,8 @@ module Vers vm_from_commit_request: T.any( Vers::VmFromCommitRequest::CommitID::OrHash, - Vers::VmFromCommitRequest::TagName::OrHash + Vers::VmFromCommitRequest::TagName::OrHash, + Vers::VmFromCommitRequest::Ref::OrHash ), request_options: Vers::RequestOptions::OrHash ).returns(Vers::NewVmResponse) diff --git a/sig/vers/models/vm_from_commit_request.rbs b/sig/vers/models/vm_from_commit_request.rbs index 0b44d6a..c3a4eff 100644 --- a/sig/vers/models/vm_from_commit_request.rbs +++ b/sig/vers/models/vm_from_commit_request.rbs @@ -1,7 +1,9 @@ module Vers module Models type vm_from_commit_request = - Vers::VmFromCommitRequest::CommitID | Vers::VmFromCommitRequest::TagName + Vers::VmFromCommitRequest::CommitID + | Vers::VmFromCommitRequest::TagName + | Vers::VmFromCommitRequest::Ref module VmFromCommitRequest extend Vers::Internal::Type::Union @@ -26,6 +28,16 @@ module Vers def to_hash: -> { tag_name: String } end + type ref = { ref: String } + + class Ref < Vers::Internal::Type::BaseModel + attr_accessor ref: String + + def initialize: (ref: String) -> void + + def to_hash: -> { ref: String } + end + def self?.variants: -> ::Array[Vers::Models::vm_from_commit_request] end end From f6eae252cf9442d958ac43b3f7116e4d90d75694 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 02:08:51 +0000 Subject: [PATCH 089/100] fix(internal): correct multipart form field name encoding --- lib/vers/internal/util.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index 51a1961..8cc9648 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -571,8 +571,7 @@ def encode_query_params(query) y << "Content-Disposition: form-data" unless key.nil? - name = ERB::Util.url_encode(key.to_s) - y << "; name=\"#{name}\"" + y << "; name=\"#{key}\"" end case val From b63d6c9c4048bbe26db81f10a2ca18f8a1e86ce2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 28 Mar 2026 02:04:46 +0000 Subject: [PATCH 090/100] chore(ci): support opting out of skipping builds on metadata-only commits --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f1dfe81..f156efb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,8 +24,7 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/firecracker-manager-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: |- github.repository == 'stainless-sdks/firecracker-manager-ruby' && - (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && - (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') + (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@v6 - name: Set up Ruby From 6564f11649a0323a74f2a507f84399aadd41d6c7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 02:22:50 +0000 Subject: [PATCH 091/100] fix: variable name typo --- lib/vers/internal/util.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index 8cc9648..0391a19 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -157,7 +157,7 @@ def coerce_hash!(input) in Hash | nil => coerced coerced else - message = "Expected a #{Hash} or #{Vers::Internal::Type::BaseModel}, got #{data.inspect}" + message = "Expected a #{Hash} or #{Vers::Internal::Type::BaseModel}, got #{input.inspect}" raise ArgumentError.new(message) end end From b35149faf463fd5e8e33a994e9d5729f6933b052 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 02:25:21 +0000 Subject: [PATCH 092/100] fix: align path encoding with RFC 3986 section 3.3 --- lib/vers/internal/util.rb | 20 +++++++++++++++++--- rbi/vers/internal/util.rbi | 8 ++++++++ sig/vers/internal/util.rbs | 4 ++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index 0391a19..ce68c16 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -237,6 +237,11 @@ def dig(data, pick, &blk) end end + # @type [Regexp] + # + # https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3 + RFC_3986_NOT_PCHARS = /[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/ + class << self # @api private # @@ -247,6 +252,15 @@ def uri_origin(uri) "#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}" end + # @api private + # + # @param path [String, Integer] + # + # @return [String] + def encode_path(path) + path.to_s.gsub(Vers::Internal::Util::RFC_3986_NOT_PCHARS) { ERB::Util.url_encode(_1) } + end + # @api private # # @param path [String, Array] @@ -259,7 +273,7 @@ def interpolate_path(path) in [] "" in [String => p, *interpolations] - encoded = interpolations.map { ERB::Util.url_encode(_1) } + encoded = interpolations.map { encode_path(_1) } format(p, *encoded) end end @@ -576,10 +590,10 @@ def encode_query_params(query) case val in Vers::FilePart unless val.filename.nil? - filename = ERB::Util.url_encode(val.filename) + filename = encode_path(val.filename) y << "; filename=\"#{filename}\"" in Pathname | IO - filename = ERB::Util.url_encode(::File.basename(val.to_path)) + filename = encode_path(::File.basename(val.to_path)) y << "; filename=\"#{filename}\"" else end diff --git a/rbi/vers/internal/util.rbi b/rbi/vers/internal/util.rbi index b3a57cf..75d61fa 100644 --- a/rbi/vers/internal/util.rbi +++ b/rbi/vers/internal/util.rbi @@ -144,12 +144,20 @@ module Vers end end + # https://www.rfc-editor.org/rfc/rfc3986.html#section-3.3 + RFC_3986_NOT_PCHARS = T.let(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/, Regexp) + class << self # @api private sig { params(uri: URI::Generic).returns(String) } def uri_origin(uri) end + # @api private + sig { params(path: T.any(String, Integer)).returns(String) } + def encode_path(path) + end + # @api private sig { params(path: T.any(String, T::Array[String])).returns(String) } def interpolate_path(path) diff --git a/sig/vers/internal/util.rbs b/sig/vers/internal/util.rbs index 84792fb..6ac641e 100644 --- a/sig/vers/internal/util.rbs +++ b/sig/vers/internal/util.rbs @@ -45,8 +45,12 @@ module Vers -> top? } -> top? + RFC_3986_NOT_PCHARS: Regexp + def self?.uri_origin: (URI::Generic uri) -> String + def self?.encode_path: (String | Integer path) -> String + def self?.interpolate_path: (String | ::Array[String] path) -> String def self?.decode_query: (String? query) -> ::Hash[String, ::Array[String]] From 1b58905b0693003a011fd0ca2a852dd3b1962062 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 23:25:32 +0000 Subject: [PATCH 093/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models/vm.rb | 1 + lib/vers/models/vm_metadata_response.rb | 1 + rbi/vers/models/vm.rbi | 1 + rbi/vers/models/vm_metadata_response.rbi | 1 + sig/vers/models/vm.rbs | 3 ++- sig/vers/models/vm_metadata_response.rbs | 3 ++- 7 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index eb3e2a9..70600be 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 24 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-b352e5ec0ad2ea91fada7931fb136b3341b380b8d23d8de65eaf9acd2d65c6dd.yml -openapi_spec_hash: 64a0bb2977b1b2e74128d7dc0e50726c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5e10e273830028a4c50110cd100705c394f290e2da86ea6a4d91cb9b7f8be3cb.yml +openapi_spec_hash: a3025f877a753fddd2fd630d2485bec3 config_hash: 9329c6e401233d6bb50b1cb4cc7be574 diff --git a/lib/vers/models/vm.rb b/lib/vers/models/vm.rb index 7419173..cc9c46e 100644 --- a/lib/vers/models/vm.rb +++ b/lib/vers/models/vm.rb @@ -44,6 +44,7 @@ module State RUNNING = :running PAUSED = :paused SLEEPING = :sleeping + DEAD = :dead # @!method self.values # @return [Array] diff --git a/lib/vers/models/vm_metadata_response.rb b/lib/vers/models/vm_metadata_response.rb index c6059af..5dfb592 100644 --- a/lib/vers/models/vm_metadata_response.rb +++ b/lib/vers/models/vm_metadata_response.rb @@ -74,6 +74,7 @@ module State RUNNING = :running PAUSED = :paused SLEEPING = :sleeping + DEAD = :dead # @!method self.values # @return [Array] diff --git a/rbi/vers/models/vm.rbi b/rbi/vers/models/vm.rbi index 32bcb31..9180e7d 100644 --- a/rbi/vers/models/vm.rbi +++ b/rbi/vers/models/vm.rbi @@ -59,6 +59,7 @@ module Vers RUNNING = T.let(:running, Vers::VmAPI::State::TaggedSymbol) PAUSED = T.let(:paused, Vers::VmAPI::State::TaggedSymbol) SLEEPING = T.let(:sleeping, Vers::VmAPI::State::TaggedSymbol) + DEAD = T.let(:dead, Vers::VmAPI::State::TaggedSymbol) sig { override.returns(T::Array[Vers::VmAPI::State::TaggedSymbol]) } def self.values diff --git a/rbi/vers/models/vm_metadata_response.rbi b/rbi/vers/models/vm_metadata_response.rbi index 99ce0a7..d047086 100644 --- a/rbi/vers/models/vm_metadata_response.rbi +++ b/rbi/vers/models/vm_metadata_response.rbi @@ -89,6 +89,7 @@ module Vers PAUSED = T.let(:paused, Vers::VmMetadataResponse::State::TaggedSymbol) SLEEPING = T.let(:sleeping, Vers::VmMetadataResponse::State::TaggedSymbol) + DEAD = T.let(:dead, Vers::VmMetadataResponse::State::TaggedSymbol) sig do override.returns( diff --git a/sig/vers/models/vm.rbs b/sig/vers/models/vm.rbs index 2f31675..3d122c7 100644 --- a/sig/vers/models/vm.rbs +++ b/sig/vers/models/vm.rbs @@ -31,7 +31,7 @@ module Vers vm_id: String } - type state = :booting | :running | :paused | :sleeping + type state = :booting | :running | :paused | :sleeping | :dead module State extend Vers::Internal::Type::Enum @@ -40,6 +40,7 @@ module Vers RUNNING: :running PAUSED: :paused SLEEPING: :sleeping + DEAD: :dead def self?.values: -> ::Array[Vers::Models::VmAPI::state] end diff --git a/sig/vers/models/vm_metadata_response.rbs b/sig/vers/models/vm_metadata_response.rbs index 0ddd3e6..8880984 100644 --- a/sig/vers/models/vm_metadata_response.rbs +++ b/sig/vers/models/vm_metadata_response.rbs @@ -51,7 +51,7 @@ module Vers parent_commit_id: String? } - type state = :booting | :running | :paused | :sleeping + type state = :booting | :running | :paused | :sleeping | :dead module State extend Vers::Internal::Type::Enum @@ -60,6 +60,7 @@ module Vers RUNNING: :running PAUSED: :paused SLEEPING: :sleeping + DEAD: :dead def self?.values: -> ::Array[Vers::Models::VmMetadataResponse::state] end From 4b788030b373f81a5e9a395279fa2c344a200f4c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 6 Apr 2026 21:17:15 +0000 Subject: [PATCH 094/100] feat(api): api update --- .stats.yml | 4 +- lib/vers.rb | 31 ++ lib/vers/client.rb | 8 + lib/vers/models.rb | 58 ++++ lib/vers/models/create_repo_tag_request.rb | 35 +++ lib/vers/models/create_repo_tag_response.rb | 35 +++ lib/vers/models/create_repository_request.rb | 30 ++ lib/vers/models/create_repository_response.rb | 27 ++ lib/vers/models/fork_repository_request.rb | 50 ++++ lib/vers/models/fork_repository_response.rb | 51 ++++ .../list_public_repositories_response.rb | 18 ++ lib/vers/models/list_repo_tags_response.rb | 27 ++ lib/vers/models/list_repositories_response.rb | 19 ++ .../models/public_repository_get_params.rb | 26 ++ .../public_repository_get_tag_params.rb | 32 +++ lib/vers/models/public_repository_info.rb | 59 ++++ .../models/public_repository_list_params.rb | 14 + .../public_repository_list_tags_params.rb | 26 ++ lib/vers/models/repo_tag_info.rb | 67 +++++ lib/vers/models/repository_create_params.rb | 14 + .../models/repository_create_tag_params.rb | 20 ++ lib/vers/models/repository_delete_params.rb | 20 ++ .../models/repository_delete_tag_params.rb | 26 ++ lib/vers/models/repository_fork_params.rb | 14 + lib/vers/models/repository_get_params.rb | 20 ++ lib/vers/models/repository_get_tag_params.rb | 26 ++ lib/vers/models/repository_info.rb | 51 ++++ lib/vers/models/repository_list_params.rb | 14 + .../models/repository_list_tags_params.rb | 20 ++ .../repository_set_visibility_params.rb | 20 ++ .../models/repository_update_tag_params.rb | 26 ++ .../set_repository_visibility_request.rb | 18 ++ lib/vers/models/update_repo_tag_request.rb | 26 ++ lib/vers/resources/public_repositories.rb | 111 ++++++++ lib/vers/resources/repositories.rb | 265 ++++++++++++++++++ rbi/vers/client.rbi | 6 + rbi/vers/models.rbi | 58 ++++ rbi/vers/models/create_repo_tag_request.rbi | 55 ++++ rbi/vers/models/create_repo_tag_response.rbi | 48 ++++ rbi/vers/models/create_repository_request.rbi | 40 +++ .../models/create_repository_response.rbi | 34 +++ rbi/vers/models/fork_repository_request.rbi | 70 +++++ rbi/vers/models/fork_repository_response.rbi | 70 +++++ .../list_public_repositories_response.rbi | 30 ++ rbi/vers/models/list_repo_tags_response.rbi | 43 +++ .../models/list_repositories_response.rbi | 32 +++ .../models/public_repository_get_params.rbi | 43 +++ .../public_repository_get_tag_params.rbi | 48 ++++ rbi/vers/models/public_repository_info.rbi | 78 ++++++ .../models/public_repository_list_params.rbi | 27 ++ .../public_repository_list_tags_params.rbi | 43 +++ rbi/vers/models/repo_tag_info.rbi | 84 ++++++ rbi/vers/models/repository_create_params.rbi | 27 ++ .../models/repository_create_tag_params.rbi | 35 +++ rbi/vers/models/repository_delete_params.rbi | 35 +++ .../models/repository_delete_tag_params.rbi | 43 +++ rbi/vers/models/repository_fork_params.rbi | 27 ++ rbi/vers/models/repository_get_params.rbi | 35 +++ rbi/vers/models/repository_get_tag_params.rbi | 43 +++ rbi/vers/models/repository_info.rbi | 68 +++++ rbi/vers/models/repository_list_params.rbi | 27 ++ .../models/repository_list_tags_params.rbi | 35 +++ .../repository_set_visibility_params.rbi | 35 +++ .../models/repository_update_tag_params.rbi | 43 +++ .../set_repository_visibility_request.rbi | 28 ++ rbi/vers/models/update_repo_tag_request.rbi | 43 +++ rbi/vers/resources/public_repositories.rbi | 71 +++++ rbi/vers/resources/repositories.rbi | 193 +++++++++++++ sig/vers/client.rbs | 4 + sig/vers/models.rbs | 58 ++++ sig/vers/models/create_repo_tag_request.rbs | 26 ++ sig/vers/models/create_repo_tag_response.rbs | 22 ++ sig/vers/models/create_repository_request.rbs | 15 + .../models/create_repository_response.rbs | 15 + sig/vers/models/fork_repository_request.rbs | 40 +++ sig/vers/models/fork_repository_response.rbs | 40 +++ .../list_public_repositories_response.rbs | 16 ++ sig/vers/models/list_repo_tags_response.rbs | 19 ++ .../models/list_repositories_response.rbs | 14 + .../models/public_repository_get_params.rbs | 28 ++ .../public_repository_get_tag_params.rbs | 32 +++ sig/vers/models/public_repository_info.rbs | 45 +++ .../models/public_repository_list_params.rbs | 15 + .../public_repository_list_tags_params.rbs | 28 ++ sig/vers/models/repo_tag_info.rbs | 50 ++++ sig/vers/models/repository_create_params.rbs | 15 + .../models/repository_create_tag_params.rbs | 25 ++ sig/vers/models/repository_delete_params.rbs | 23 ++ .../models/repository_delete_tag_params.rbs | 28 ++ sig/vers/models/repository_fork_params.rbs | 15 + sig/vers/models/repository_get_params.rbs | 23 ++ sig/vers/models/repository_get_tag_params.rbs | 28 ++ sig/vers/models/repository_info.rbs | 40 +++ sig/vers/models/repository_list_params.rbs | 15 + .../models/repository_list_tags_params.rbs | 23 ++ .../repository_set_visibility_params.rbs | 25 ++ .../models/repository_update_tag_params.rbs | 32 +++ .../set_repository_visibility_request.rbs | 13 + sig/vers/models/update_repo_tag_request.rbs | 15 + sig/vers/resources/public_repositories.rbs | 30 ++ sig/vers/resources/repositories.rbs | 75 +++++ .../resources/public_repositories_test.rb | 81 ++++++ test/vers/resources/repositories_test.rb | 181 ++++++++++++ 103 files changed, 4057 insertions(+), 2 deletions(-) create mode 100644 lib/vers/models/create_repo_tag_request.rb create mode 100644 lib/vers/models/create_repo_tag_response.rb create mode 100644 lib/vers/models/create_repository_request.rb create mode 100644 lib/vers/models/create_repository_response.rb create mode 100644 lib/vers/models/fork_repository_request.rb create mode 100644 lib/vers/models/fork_repository_response.rb create mode 100644 lib/vers/models/list_public_repositories_response.rb create mode 100644 lib/vers/models/list_repo_tags_response.rb create mode 100644 lib/vers/models/list_repositories_response.rb create mode 100644 lib/vers/models/public_repository_get_params.rb create mode 100644 lib/vers/models/public_repository_get_tag_params.rb create mode 100644 lib/vers/models/public_repository_info.rb create mode 100644 lib/vers/models/public_repository_list_params.rb create mode 100644 lib/vers/models/public_repository_list_tags_params.rb create mode 100644 lib/vers/models/repo_tag_info.rb create mode 100644 lib/vers/models/repository_create_params.rb create mode 100644 lib/vers/models/repository_create_tag_params.rb create mode 100644 lib/vers/models/repository_delete_params.rb create mode 100644 lib/vers/models/repository_delete_tag_params.rb create mode 100644 lib/vers/models/repository_fork_params.rb create mode 100644 lib/vers/models/repository_get_params.rb create mode 100644 lib/vers/models/repository_get_tag_params.rb create mode 100644 lib/vers/models/repository_info.rb create mode 100644 lib/vers/models/repository_list_params.rb create mode 100644 lib/vers/models/repository_list_tags_params.rb create mode 100644 lib/vers/models/repository_set_visibility_params.rb create mode 100644 lib/vers/models/repository_update_tag_params.rb create mode 100644 lib/vers/models/set_repository_visibility_request.rb create mode 100644 lib/vers/models/update_repo_tag_request.rb create mode 100644 lib/vers/resources/public_repositories.rb create mode 100644 lib/vers/resources/repositories.rb create mode 100644 rbi/vers/models/create_repo_tag_request.rbi create mode 100644 rbi/vers/models/create_repo_tag_response.rbi create mode 100644 rbi/vers/models/create_repository_request.rbi create mode 100644 rbi/vers/models/create_repository_response.rbi create mode 100644 rbi/vers/models/fork_repository_request.rbi create mode 100644 rbi/vers/models/fork_repository_response.rbi create mode 100644 rbi/vers/models/list_public_repositories_response.rbi create mode 100644 rbi/vers/models/list_repo_tags_response.rbi create mode 100644 rbi/vers/models/list_repositories_response.rbi create mode 100644 rbi/vers/models/public_repository_get_params.rbi create mode 100644 rbi/vers/models/public_repository_get_tag_params.rbi create mode 100644 rbi/vers/models/public_repository_info.rbi create mode 100644 rbi/vers/models/public_repository_list_params.rbi create mode 100644 rbi/vers/models/public_repository_list_tags_params.rbi create mode 100644 rbi/vers/models/repo_tag_info.rbi create mode 100644 rbi/vers/models/repository_create_params.rbi create mode 100644 rbi/vers/models/repository_create_tag_params.rbi create mode 100644 rbi/vers/models/repository_delete_params.rbi create mode 100644 rbi/vers/models/repository_delete_tag_params.rbi create mode 100644 rbi/vers/models/repository_fork_params.rbi create mode 100644 rbi/vers/models/repository_get_params.rbi create mode 100644 rbi/vers/models/repository_get_tag_params.rbi create mode 100644 rbi/vers/models/repository_info.rbi create mode 100644 rbi/vers/models/repository_list_params.rbi create mode 100644 rbi/vers/models/repository_list_tags_params.rbi create mode 100644 rbi/vers/models/repository_set_visibility_params.rbi create mode 100644 rbi/vers/models/repository_update_tag_params.rbi create mode 100644 rbi/vers/models/set_repository_visibility_request.rbi create mode 100644 rbi/vers/models/update_repo_tag_request.rbi create mode 100644 rbi/vers/resources/public_repositories.rbi create mode 100644 rbi/vers/resources/repositories.rbi create mode 100644 sig/vers/models/create_repo_tag_request.rbs create mode 100644 sig/vers/models/create_repo_tag_response.rbs create mode 100644 sig/vers/models/create_repository_request.rbs create mode 100644 sig/vers/models/create_repository_response.rbs create mode 100644 sig/vers/models/fork_repository_request.rbs create mode 100644 sig/vers/models/fork_repository_response.rbs create mode 100644 sig/vers/models/list_public_repositories_response.rbs create mode 100644 sig/vers/models/list_repo_tags_response.rbs create mode 100644 sig/vers/models/list_repositories_response.rbs create mode 100644 sig/vers/models/public_repository_get_params.rbs create mode 100644 sig/vers/models/public_repository_get_tag_params.rbs create mode 100644 sig/vers/models/public_repository_info.rbs create mode 100644 sig/vers/models/public_repository_list_params.rbs create mode 100644 sig/vers/models/public_repository_list_tags_params.rbs create mode 100644 sig/vers/models/repo_tag_info.rbs create mode 100644 sig/vers/models/repository_create_params.rbs create mode 100644 sig/vers/models/repository_create_tag_params.rbs create mode 100644 sig/vers/models/repository_delete_params.rbs create mode 100644 sig/vers/models/repository_delete_tag_params.rbs create mode 100644 sig/vers/models/repository_fork_params.rbs create mode 100644 sig/vers/models/repository_get_params.rbs create mode 100644 sig/vers/models/repository_get_tag_params.rbs create mode 100644 sig/vers/models/repository_info.rbs create mode 100644 sig/vers/models/repository_list_params.rbs create mode 100644 sig/vers/models/repository_list_tags_params.rbs create mode 100644 sig/vers/models/repository_set_visibility_params.rbs create mode 100644 sig/vers/models/repository_update_tag_params.rbs create mode 100644 sig/vers/models/set_repository_visibility_request.rbs create mode 100644 sig/vers/models/update_repo_tag_request.rbs create mode 100644 sig/vers/resources/public_repositories.rbs create mode 100644 sig/vers/resources/repositories.rbs create mode 100644 test/vers/resources/public_repositories_test.rb create mode 100644 test/vers/resources/repositories_test.rb diff --git a/.stats.yml b/.stats.yml index 70600be..fb62c89 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 24 +configured_endpoints: 39 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5e10e273830028a4c50110cd100705c394f290e2da86ea6a4d91cb9b7f8be3cb.yml openapi_spec_hash: a3025f877a753fddd2fd630d2485bec3 -config_hash: 9329c6e401233d6bb50b1cb4cc7be574 +config_hash: 63459851725a409c20b6a71718872b53 diff --git a/lib/vers.rb b/lib/vers.rb index 693cc8b..45aeb81 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -55,6 +55,11 @@ require_relative "vers/models/create_tag_request" require_relative "vers/models/update_tag_request" require_relative "vers/models/update_commit_request" +require_relative "vers/models/create_repository_request" +require_relative "vers/models/create_repo_tag_request" +require_relative "vers/models/fork_repository_request" +require_relative "vers/models/set_repository_visibility_request" +require_relative "vers/models/update_repo_tag_request" require_relative "vers/models/new_root_request" require_relative "vers/models/vm_resize_disk_request" require_relative "vers/models/vm_from_commit_request" @@ -71,12 +76,36 @@ require_relative "vers/models/commit_tag_list_params" require_relative "vers/models/commit_tag_update_params" require_relative "vers/models/commit_update_params" +require_relative "vers/models/create_repository_response" +require_relative "vers/models/create_repo_tag_response" require_relative "vers/models/create_tag_response" require_relative "vers/models/error_response" +require_relative "vers/models/fork_repository_response" require_relative "vers/models/list_commits_response" +require_relative "vers/models/list_public_repositories_response" +require_relative "vers/models/list_repositories_response" +require_relative "vers/models/list_repo_tags_response" require_relative "vers/models/list_tags_response" require_relative "vers/models/new_vm_response" require_relative "vers/models/new_vms_response" +require_relative "vers/models/public_repository_get_params" +require_relative "vers/models/public_repository_get_tag_params" +require_relative "vers/models/public_repository_info" +require_relative "vers/models/public_repository_list_params" +require_relative "vers/models/public_repository_list_tags_params" +require_relative "vers/models/repository_create_params" +require_relative "vers/models/repository_create_tag_params" +require_relative "vers/models/repository_delete_params" +require_relative "vers/models/repository_delete_tag_params" +require_relative "vers/models/repository_fork_params" +require_relative "vers/models/repository_get_params" +require_relative "vers/models/repository_get_tag_params" +require_relative "vers/models/repository_info" +require_relative "vers/models/repository_list_params" +require_relative "vers/models/repository_list_tags_params" +require_relative "vers/models/repository_set_visibility_params" +require_relative "vers/models/repository_update_tag_params" +require_relative "vers/models/repo_tag_info" require_relative "vers/models/tag_info" require_relative "vers/models/vm" require_relative "vers/models/vm_branch_by_commit_params" @@ -101,4 +130,6 @@ require_relative "vers/models" require_relative "vers/resources/commits" require_relative "vers/resources/commit_tags" +require_relative "vers/resources/public_repositories" +require_relative "vers/resources/repositories" require_relative "vers/resources/vm" diff --git a/lib/vers/client.rb b/lib/vers/client.rb index e5ebcab..212ff4c 100644 --- a/lib/vers/client.rb +++ b/lib/vers/client.rb @@ -27,6 +27,12 @@ class Client < Vers::Internal::Transport::BaseClient # @return [Vers::Resources::CommitTags] attr_reader :commit_tags + # @return [Vers::Resources::Repositories] + attr_reader :repositories + + # @return [Vers::Resources::PublicRepositories] + attr_reader :public_repositories + # @api private # # @return [Hash{String=>String}] @@ -73,6 +79,8 @@ def initialize( @vm = Vers::Resources::Vm.new(client: self) @commits = Vers::Resources::Commits.new(client: self) @commit_tags = Vers::Resources::CommitTags.new(client: self) + @repositories = Vers::Resources::Repositories.new(client: self) + @public_repositories = Vers::Resources::PublicRepositories.new(client: self) end end end diff --git a/lib/vers/models.rb b/lib/vers/models.rb index 526d9fe..e93a099 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -61,14 +61,32 @@ module Vers CommitUpdateParams = Vers::Models::CommitUpdateParams + CreateRepositoryRequest = Vers::Models::CreateRepositoryRequest + + CreateRepositoryResponse = Vers::Models::CreateRepositoryResponse + + CreateRepoTagRequest = Vers::Models::CreateRepoTagRequest + + CreateRepoTagResponse = Vers::Models::CreateRepoTagResponse + CreateTagRequest = Vers::Models::CreateTagRequest CreateTagResponse = Vers::Models::CreateTagResponse ErrorResponse = Vers::Models::ErrorResponse + ForkRepositoryRequest = Vers::Models::ForkRepositoryRequest + + ForkRepositoryResponse = Vers::Models::ForkRepositoryResponse + ListCommitsResponse = Vers::Models::ListCommitsResponse + ListPublicRepositoriesResponse = Vers::Models::ListPublicRepositoriesResponse + + ListRepositoriesResponse = Vers::Models::ListRepositoriesResponse + + ListRepoTagsResponse = Vers::Models::ListRepoTagsResponse + ListTagsResponse = Vers::Models::ListTagsResponse NewRootRequest = Vers::Models::NewRootRequest @@ -77,10 +95,50 @@ module Vers NewVmsResponse = Vers::Models::NewVmsResponse + PublicRepositoryGetParams = Vers::Models::PublicRepositoryGetParams + + PublicRepositoryGetTagParams = Vers::Models::PublicRepositoryGetTagParams + + PublicRepositoryInfo = Vers::Models::PublicRepositoryInfo + + PublicRepositoryListParams = Vers::Models::PublicRepositoryListParams + + PublicRepositoryListTagsParams = Vers::Models::PublicRepositoryListTagsParams + + RepositoryCreateParams = Vers::Models::RepositoryCreateParams + + RepositoryCreateTagParams = Vers::Models::RepositoryCreateTagParams + + RepositoryDeleteParams = Vers::Models::RepositoryDeleteParams + + RepositoryDeleteTagParams = Vers::Models::RepositoryDeleteTagParams + + RepositoryForkParams = Vers::Models::RepositoryForkParams + + RepositoryGetParams = Vers::Models::RepositoryGetParams + + RepositoryGetTagParams = Vers::Models::RepositoryGetTagParams + + RepositoryInfo = Vers::Models::RepositoryInfo + + RepositoryListParams = Vers::Models::RepositoryListParams + + RepositoryListTagsParams = Vers::Models::RepositoryListTagsParams + + RepositorySetVisibilityParams = Vers::Models::RepositorySetVisibilityParams + + RepositoryUpdateTagParams = Vers::Models::RepositoryUpdateTagParams + + RepoTagInfo = Vers::Models::RepoTagInfo + + SetRepositoryVisibilityRequest = Vers::Models::SetRepositoryVisibilityRequest + TagInfo = Vers::Models::TagInfo UpdateCommitRequest = Vers::Models::UpdateCommitRequest + UpdateRepoTagRequest = Vers::Models::UpdateRepoTagRequest + UpdateTagRequest = Vers::Models::UpdateTagRequest VmAPI = Vers::Models::VmAPI diff --git a/lib/vers/models/create_repo_tag_request.rb b/lib/vers/models/create_repo_tag_request.rb new file mode 100644 index 0000000..773857c --- /dev/null +++ b/lib/vers/models/create_repo_tag_request.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +module Vers + module Models + class CreateRepoTagRequest < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID this tag should point to + # + # @return [String] + required :commit_id, String + + # @!attribute tag_name + # The tag name (e.g. "latest", "v1.0") + # + # @return [String] + required :tag_name, String + + # @!attribute description + # Optional description of what this tag represents + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(commit_id:, tag_name:, description: nil) + # Request body for creating a tag within a repository: POST + # /api/v1/repositories/{repo_name}/tags + # + # @param commit_id [String] The commit ID this tag should point to + # + # @param tag_name [String] The tag name (e.g. "latest", "v1.0") + # + # @param description [String, nil] Optional description of what this tag represents + end + end +end diff --git a/lib/vers/models/create_repo_tag_response.rb b/lib/vers/models/create_repo_tag_response.rb new file mode 100644 index 0000000..0033a0a --- /dev/null +++ b/lib/vers/models/create_repo_tag_response.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#create_tag + class CreateRepoTagResponse < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID this tag points to + # + # @return [String] + required :commit_id, String + + # @!attribute reference + # Full reference in image_name:tag format + # + # @return [String] + required :reference, String + + # @!attribute tag_id + # The ID of the newly created tag + # + # @return [String] + required :tag_id, String + + # @!method initialize(commit_id:, reference:, tag_id:) + # Response body for POST /api/v1/repositories/{repo_name}/tags + # + # @param commit_id [String] The commit ID this tag points to + # + # @param reference [String] Full reference in image_name:tag format + # + # @param tag_id [String] The ID of the newly created tag + end + end +end diff --git a/lib/vers/models/create_repository_request.rb b/lib/vers/models/create_repository_request.rb new file mode 100644 index 0000000..c105034 --- /dev/null +++ b/lib/vers/models/create_repository_request.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module Vers + module Models + class CreateRepositoryRequest < Vers::Internal::Type::BaseModel + # @!attribute name + # The name of the repository (alphanumeric, hyphens, underscores, dots, 1-64 + # chars) + # + # @return [String] + required :name, String + + # @!attribute description + # Optional description of the repository + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(name:, description: nil) + # Some parameter documentations has been truncated, see + # {Vers::Models::CreateRepositoryRequest} for more details. + # + # Request body for POST /api/v1/repositories + # + # @param name [String] The name of the repository (alphanumeric, hyphens, underscores, dots, 1-64 chars + # + # @param description [String, nil] Optional description of the repository + end + end +end diff --git a/lib/vers/models/create_repository_response.rb b/lib/vers/models/create_repository_response.rb new file mode 100644 index 0000000..64dd658 --- /dev/null +++ b/lib/vers/models/create_repository_response.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#create + class CreateRepositoryResponse < Vers::Internal::Type::BaseModel + # @!attribute name + # The name of the repository + # + # @return [String] + required :name, String + + # @!attribute repo_id + # The ID of the newly created repository + # + # @return [String] + required :repo_id, String + + # @!method initialize(name:, repo_id:) + # Response body for POST /api/v1/repositories + # + # @param name [String] The name of the repository + # + # @param repo_id [String] The ID of the newly created repository + end + end +end diff --git a/lib/vers/models/fork_repository_request.rb b/lib/vers/models/fork_repository_request.rb new file mode 100644 index 0000000..2a8856e --- /dev/null +++ b/lib/vers/models/fork_repository_request.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +module Vers + module Models + class ForkRepositoryRequest < Vers::Internal::Type::BaseModel + # @!attribute source_org + # The organization that owns the source public repository + # + # @return [String] + required :source_org, String + + # @!attribute source_repo + # The source repository name + # + # @return [String] + required :source_repo, String + + # @!attribute source_tag + # The tag to fork (e.g. "latest", "v1.0") + # + # @return [String] + required :source_tag, String + + # @!attribute repo_name + # Name for the new repository in your org (defaults to source_repo if omitted) + # + # @return [String, nil] + optional :repo_name, String, nil?: true + + # @!attribute tag_name + # Tag name in the new repo (defaults to source_tag if omitted) + # + # @return [String, nil] + optional :tag_name, String, nil?: true + + # @!method initialize(source_org:, source_repo:, source_tag:, repo_name: nil, tag_name: nil) + # Request body for POST /api/v1/repositories/fork + # + # @param source_org [String] The organization that owns the source public repository + # + # @param source_repo [String] The source repository name + # + # @param source_tag [String] The tag to fork (e.g. "latest", "v1.0") + # + # @param repo_name [String, nil] Name for the new repository in your org (defaults to source_repo if omitted) + # + # @param tag_name [String, nil] Tag name in the new repo (defaults to source_tag if omitted) + end + end +end diff --git a/lib/vers/models/fork_repository_response.rb b/lib/vers/models/fork_repository_response.rb new file mode 100644 index 0000000..18e67f4 --- /dev/null +++ b/lib/vers/models/fork_repository_response.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#fork_ + class ForkRepositoryResponse < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The new commit in your org (snapshot of the forked VM) + # + # @return [String] + required :commit_id, String + + # @!attribute reference + # Full reference: repo_name:tag_name + # + # @return [String] + required :reference, String + + # @!attribute repo_name + # The new repository name in your org + # + # @return [String] + required :repo_name, String + + # @!attribute tag_name + # The tag name pointing to the forked commit + # + # @return [String] + required :tag_name, String + + # @!attribute vm_id + # The new VM that was created from the fork + # + # @return [String] + required :vm_id, String + + # @!method initialize(commit_id:, reference:, repo_name:, tag_name:, vm_id:) + # Response body for POST /api/v1/repositories/fork + # + # @param commit_id [String] The new commit in your org (snapshot of the forked VM) + # + # @param reference [String] Full reference: repo_name:tag_name + # + # @param repo_name [String] The new repository name in your org + # + # @param tag_name [String] The tag name pointing to the forked commit + # + # @param vm_id [String] The new VM that was created from the fork + end + end +end diff --git a/lib/vers/models/list_public_repositories_response.rb b/lib/vers/models/list_public_repositories_response.rb new file mode 100644 index 0000000..2347ea5 --- /dev/null +++ b/lib/vers/models/list_public_repositories_response.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::PublicRepositories#list + class ListPublicRepositoriesResponse < Vers::Internal::Type::BaseModel + # @!attribute repositories + # + # @return [Array] + required :repositories, -> { Vers::Internal::Type::ArrayOf[Vers::PublicRepositoryInfo] } + + # @!method initialize(repositories:) + # Response body for GET /api/v1/public/repositories + # + # @param repositories [Array] + end + end +end diff --git a/lib/vers/models/list_repo_tags_response.rb b/lib/vers/models/list_repo_tags_response.rb new file mode 100644 index 0000000..7a54863 --- /dev/null +++ b/lib/vers/models/list_repo_tags_response.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#list_tags + class ListRepoTagsResponse < Vers::Internal::Type::BaseModel + # @!attribute repository + # The repository name + # + # @return [String] + required :repository, String + + # @!attribute tags + # List of tags in this repository + # + # @return [Array] + required :tags, -> { Vers::Internal::Type::ArrayOf[Vers::RepoTagInfo] } + + # @!method initialize(repository:, tags:) + # Response body for GET /api/v1/repositories/{repo_name}/tags + # + # @param repository [String] The repository name + # + # @param tags [Array] List of tags in this repository + end + end +end diff --git a/lib/vers/models/list_repositories_response.rb b/lib/vers/models/list_repositories_response.rb new file mode 100644 index 0000000..d0ade51 --- /dev/null +++ b/lib/vers/models/list_repositories_response.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#list + class ListRepositoriesResponse < Vers::Internal::Type::BaseModel + # @!attribute repositories + # List of all repositories in the user's organization + # + # @return [Array] + required :repositories, -> { Vers::Internal::Type::ArrayOf[Vers::RepositoryInfo] } + + # @!method initialize(repositories:) + # Response body for GET /api/v1/repositories + # + # @param repositories [Array] List of all repositories in the user's organization + end + end +end diff --git a/lib/vers/models/public_repository_get_params.rb b/lib/vers/models/public_repository_get_params.rb new file mode 100644 index 0000000..bd620ac --- /dev/null +++ b/lib/vers/models/public_repository_get_params.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::PublicRepositories#get + class PublicRepositoryGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute org_name + # + # @return [String] + required :org_name, String + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!method initialize(org_name:, repo_name:, request_options: {}) + # @param org_name [String] + # @param repo_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/public_repository_get_tag_params.rb b/lib/vers/models/public_repository_get_tag_params.rb new file mode 100644 index 0000000..efd4da8 --- /dev/null +++ b/lib/vers/models/public_repository_get_tag_params.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::PublicRepositories#get_tag + class PublicRepositoryGetTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute org_name + # + # @return [String] + required :org_name, String + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!method initialize(org_name:, repo_name:, tag_name:, request_options: {}) + # @param org_name [String] + # @param repo_name [String] + # @param tag_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/public_repository_info.rb b/lib/vers/models/public_repository_info.rb new file mode 100644 index 0000000..40be9df --- /dev/null +++ b/lib/vers/models/public_repository_info.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::PublicRepositories#get + class PublicRepositoryInfo < Vers::Internal::Type::BaseModel + # @!attribute created_at + # When the repository was created + # + # @return [Time] + required :created_at, Time + + # @!attribute full_name + # Full reference: org_name/repo_name + # + # @return [String] + required :full_name, String + + # @!attribute name + # The repository name + # + # @return [String] + required :name, String + + # @!attribute org_name + # The owning organization's name (namespace) + # + # @return [String] + required :org_name, String + + # @!attribute repo_id + # The repository's unique identifier + # + # @return [String] + required :repo_id, String + + # @!attribute description + # Optional description + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(created_at:, full_name:, name:, org_name:, repo_id:, description: nil) + # Public repository information (includes owner org name for namespacing) + # + # @param created_at [Time] When the repository was created + # + # @param full_name [String] Full reference: org_name/repo_name + # + # @param name [String] The repository name + # + # @param org_name [String] The owning organization's name (namespace) + # + # @param repo_id [String] The repository's unique identifier + # + # @param description [String, nil] Optional description + end + end +end diff --git a/lib/vers/models/public_repository_list_params.rb b/lib/vers/models/public_repository_list_params.rb new file mode 100644 index 0000000..08379e6 --- /dev/null +++ b/lib/vers/models/public_repository_list_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::PublicRepositories#list + class PublicRepositoryListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/public_repository_list_tags_params.rb b/lib/vers/models/public_repository_list_tags_params.rb new file mode 100644 index 0000000..2e50774 --- /dev/null +++ b/lib/vers/models/public_repository_list_tags_params.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::PublicRepositories#list_tags + class PublicRepositoryListTagsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute org_name + # + # @return [String] + required :org_name, String + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!method initialize(org_name:, repo_name:, request_options: {}) + # @param org_name [String] + # @param repo_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repo_tag_info.rb b/lib/vers/models/repo_tag_info.rb new file mode 100644 index 0000000..325c1d8 --- /dev/null +++ b/lib/vers/models/repo_tag_info.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#get_tag + class RepoTagInfo < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # The commit ID this tag currently points to + # + # @return [String] + required :commit_id, String + + # @!attribute created_at + # When the tag was created + # + # @return [Time] + required :created_at, Time + + # @!attribute reference + # Full reference in image_name:tag format + # + # @return [String] + required :reference, String + + # @!attribute tag_id + # The tag's unique identifier + # + # @return [String] + required :tag_id, String + + # @!attribute tag_name + # The tag name + # + # @return [String] + required :tag_name, String + + # @!attribute updated_at + # When the tag was last updated + # + # @return [Time] + required :updated_at, Time + + # @!attribute description + # Optional description + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(commit_id:, created_at:, reference:, tag_id:, tag_name:, updated_at:, description: nil) + # Tag information within a repository context + # + # @param commit_id [String] The commit ID this tag currently points to + # + # @param created_at [Time] When the tag was created + # + # @param reference [String] Full reference in image_name:tag format + # + # @param tag_id [String] The tag's unique identifier + # + # @param tag_name [String] The tag name + # + # @param updated_at [Time] When the tag was last updated + # + # @param description [String, nil] Optional description + end + end +end diff --git a/lib/vers/models/repository_create_params.rb b/lib/vers/models/repository_create_params.rb new file mode 100644 index 0000000..4a509e3 --- /dev/null +++ b/lib/vers/models/repository_create_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#create + class RepositoryCreateParams < Vers::Models::CreateRepositoryRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_create_tag_params.rb b/lib/vers/models/repository_create_tag_params.rb new file mode 100644 index 0000000..ea73204 --- /dev/null +++ b/lib/vers/models/repository_create_tag_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#create_tag + class RepositoryCreateTagParams < Vers::Models::CreateRepoTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!method initialize(repo_name:, request_options: {}) + # @param repo_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_delete_params.rb b/lib/vers/models/repository_delete_params.rb new file mode 100644 index 0000000..11fdb09 --- /dev/null +++ b/lib/vers/models/repository_delete_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#delete + class RepositoryDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!method initialize(repo_name:, request_options: {}) + # @param repo_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_delete_tag_params.rb b/lib/vers/models/repository_delete_tag_params.rb new file mode 100644 index 0000000..ef49931 --- /dev/null +++ b/lib/vers/models/repository_delete_tag_params.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#delete_tag + class RepositoryDeleteTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!method initialize(repo_name:, tag_name:, request_options: {}) + # @param repo_name [String] + # @param tag_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_fork_params.rb b/lib/vers/models/repository_fork_params.rb new file mode 100644 index 0000000..5317eeb --- /dev/null +++ b/lib/vers/models/repository_fork_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#fork_ + class RepositoryForkParams < Vers::Models::ForkRepositoryRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_get_params.rb b/lib/vers/models/repository_get_params.rb new file mode 100644 index 0000000..3caac9b --- /dev/null +++ b/lib/vers/models/repository_get_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#get + class RepositoryGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!method initialize(repo_name:, request_options: {}) + # @param repo_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_get_tag_params.rb b/lib/vers/models/repository_get_tag_params.rb new file mode 100644 index 0000000..6315d29 --- /dev/null +++ b/lib/vers/models/repository_get_tag_params.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#get_tag + class RepositoryGetTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!method initialize(repo_name:, tag_name:, request_options: {}) + # @param repo_name [String] + # @param tag_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_info.rb b/lib/vers/models/repository_info.rb new file mode 100644 index 0000000..f928111 --- /dev/null +++ b/lib/vers/models/repository_info.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#get + class RepositoryInfo < Vers::Internal::Type::BaseModel + # @!attribute created_at + # When the repository was created + # + # @return [Time] + required :created_at, Time + + # @!attribute is_public + # Whether this repository is publicly visible + # + # @return [Boolean] + required :is_public, Vers::Internal::Type::Boolean + + # @!attribute name + # The repository name + # + # @return [String] + required :name, String + + # @!attribute repo_id + # The repository's unique identifier + # + # @return [String] + required :repo_id, String + + # @!attribute description + # Optional description + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(created_at:, is_public:, name:, repo_id:, description: nil) + # Repository information returned in list and get operations + # + # @param created_at [Time] When the repository was created + # + # @param is_public [Boolean] Whether this repository is publicly visible + # + # @param name [String] The repository name + # + # @param repo_id [String] The repository's unique identifier + # + # @param description [String, nil] Optional description + end + end +end diff --git a/lib/vers/models/repository_list_params.rb b/lib/vers/models/repository_list_params.rb new file mode 100644 index 0000000..def58e9 --- /dev/null +++ b/lib/vers/models/repository_list_params.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#list + class RepositoryListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!method initialize(request_options: {}) + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_list_tags_params.rb b/lib/vers/models/repository_list_tags_params.rb new file mode 100644 index 0000000..612e5cd --- /dev/null +++ b/lib/vers/models/repository_list_tags_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#list_tags + class RepositoryListTagsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!method initialize(repo_name:, request_options: {}) + # @param repo_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_set_visibility_params.rb b/lib/vers/models/repository_set_visibility_params.rb new file mode 100644 index 0000000..f8e6cf2 --- /dev/null +++ b/lib/vers/models/repository_set_visibility_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#set_visibility + class RepositorySetVisibilityParams < Vers::Models::SetRepositoryVisibilityRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!method initialize(repo_name:, request_options: {}) + # @param repo_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/repository_update_tag_params.rb b/lib/vers/models/repository_update_tag_params.rb new file mode 100644 index 0000000..790cf8a --- /dev/null +++ b/lib/vers/models/repository_update_tag_params.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Repositories#update_tag + class RepositoryUpdateTagParams < Vers::Models::UpdateRepoTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute repo_name + # + # @return [String] + required :repo_name, String + + # @!attribute tag_name + # + # @return [String] + required :tag_name, String + + # @!method initialize(repo_name:, tag_name:, request_options: {}) + # @param repo_name [String] + # @param tag_name [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/set_repository_visibility_request.rb b/lib/vers/models/set_repository_visibility_request.rb new file mode 100644 index 0000000..c704542 --- /dev/null +++ b/lib/vers/models/set_repository_visibility_request.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Vers + module Models + class SetRepositoryVisibilityRequest < Vers::Internal::Type::BaseModel + # @!attribute is_public + # Whether the repository should be publicly visible + # + # @return [Boolean] + required :is_public, Vers::Internal::Type::Boolean + + # @!method initialize(is_public:) + # Request body for PATCH /api/v1/repositories/{repo_name}/visibility + # + # @param is_public [Boolean] Whether the repository should be publicly visible + end + end +end diff --git a/lib/vers/models/update_repo_tag_request.rb b/lib/vers/models/update_repo_tag_request.rb new file mode 100644 index 0000000..fac89e9 --- /dev/null +++ b/lib/vers/models/update_repo_tag_request.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Vers + module Models + class UpdateRepoTagRequest < Vers::Internal::Type::BaseModel + # @!attribute commit_id + # Optional new commit ID to move the tag to + # + # @return [String, nil] + optional :commit_id, String, nil?: true + + # @!attribute description + # Optional new description for the tag. Send `null` to clear. + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!method initialize(commit_id: nil, description: nil) + # Request body for PATCH /api/v1/repositories/{repo_name}/tags/{tag_name} + # + # @param commit_id [String, nil] Optional new commit ID to move the tag to + # + # @param description [String, nil] Optional new description for the tag. Send `null` to clear. + end + end +end diff --git a/lib/vers/resources/public_repositories.rb b/lib/vers/resources/public_repositories.rb new file mode 100644 index 0000000..e306595 --- /dev/null +++ b/lib/vers/resources/public_repositories.rb @@ -0,0 +1,111 @@ +# frozen_string_literal: true + +module Vers + module Resources + class PublicRepositories + # @overload list(request_options: {}) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ListPublicRepositoriesResponse] + # + # @see Vers::Models::PublicRepositoryListParams + def list(params = {}) + @client.request( + method: :get, + path: "api/v1/public/repositories", + model: Vers::ListPublicRepositoriesResponse, + options: params[:request_options] + ) + end + + # @overload get(repo_name, org_name:, request_options: {}) + # + # @param repo_name [String] Repository name + # + # @param org_name [String] Organization name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::PublicRepositoryInfo] + # + # @see Vers::Models::PublicRepositoryGetParams + def get(repo_name, params) + parsed, options = Vers::PublicRepositoryGetParams.dump_request(params) + org_name = + parsed.delete(:org_name) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :get, + path: ["api/v1/public/repositories/%1$s/%2$s", org_name, repo_name], + model: Vers::PublicRepositoryInfo, + options: options + ) + end + + # @overload get_tag(tag_name, org_name:, repo_name:, request_options: {}) + # + # @param tag_name [String] Tag name + # + # @param org_name [String] Organization name + # + # @param repo_name [String] Repository name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::RepoTagInfo] + # + # @see Vers::Models::PublicRepositoryGetTagParams + def get_tag(tag_name, params) + parsed, options = Vers::PublicRepositoryGetTagParams.dump_request(params) + org_name = + parsed.delete(:org_name) do + raise ArgumentError.new("missing required path argument #{_1}") + end + repo_name = + parsed.delete(:repo_name) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :get, + path: ["api/v1/public/repositories/%1$s/%2$s/tags/%3$s", org_name, repo_name, tag_name], + model: Vers::RepoTagInfo, + options: options + ) + end + + # @overload list_tags(repo_name, org_name:, request_options: {}) + # + # @param repo_name [String] Repository name + # + # @param org_name [String] Organization name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ListRepoTagsResponse] + # + # @see Vers::Models::PublicRepositoryListTagsParams + def list_tags(repo_name, params) + parsed, options = Vers::PublicRepositoryListTagsParams.dump_request(params) + org_name = + parsed.delete(:org_name) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :get, + path: ["api/v1/public/repositories/%1$s/%2$s/tags", org_name, repo_name], + model: Vers::ListRepoTagsResponse, + options: options + ) + end + + # @api private + # + # @param client [Vers::Client] + def initialize(client:) + @client = client + end + end + end +end diff --git a/lib/vers/resources/repositories.rb b/lib/vers/resources/repositories.rb new file mode 100644 index 0000000..f314282 --- /dev/null +++ b/lib/vers/resources/repositories.rb @@ -0,0 +1,265 @@ +# frozen_string_literal: true + +module Vers + module Resources + class Repositories + # Some parameter documentations has been truncated, see + # {Vers::Models::RepositoryCreateParams} for more details. + # + # @overload create(name:, description: nil, request_options: {}) + # + # @param name [String] The name of the repository (alphanumeric, hyphens, underscores, dots, 1-64 chars + # + # @param description [String, nil] Optional description of the repository + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::CreateRepositoryResponse] + # + # @see Vers::Models::RepositoryCreateParams + def create(params) + parsed, options = Vers::RepositoryCreateParams.dump_request(params) + @client.request( + method: :post, + path: "api/v1/repositories", + body: parsed, + model: Vers::CreateRepositoryResponse, + options: options + ) + end + + # @overload list(request_options: {}) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ListRepositoriesResponse] + # + # @see Vers::Models::RepositoryListParams + def list(params = {}) + @client.request( + method: :get, + path: "api/v1/repositories", + model: Vers::ListRepositoriesResponse, + options: params[:request_options] + ) + end + + # @overload delete(repo_name, request_options: {}) + # + # @param repo_name [String] Repository name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::RepositoryDeleteParams + def delete(repo_name, params = {}) + @client.request( + method: :delete, + path: ["api/v1/repositories/%1$s", repo_name], + model: NilClass, + options: params[:request_options] + ) + end + + # @overload create_tag(repo_name, commit_id:, tag_name:, description: nil, request_options: {}) + # + # @param repo_name [String] Repository name + # + # @param commit_id [String] The commit ID this tag should point to + # + # @param tag_name [String] The tag name (e.g. "latest", "v1.0") + # + # @param description [String, nil] Optional description of what this tag represents + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::CreateRepoTagResponse] + # + # @see Vers::Models::RepositoryCreateTagParams + def create_tag(repo_name, params) + parsed, options = Vers::RepositoryCreateTagParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/repositories/%1$s/tags", repo_name], + body: parsed, + model: Vers::CreateRepoTagResponse, + options: options + ) + end + + # @overload delete_tag(tag_name, repo_name:, request_options: {}) + # + # @param tag_name [String] Tag name + # + # @param repo_name [String] Repository name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::RepositoryDeleteTagParams + def delete_tag(tag_name, params) + parsed, options = Vers::RepositoryDeleteTagParams.dump_request(params) + repo_name = + parsed.delete(:repo_name) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :delete, + path: ["api/v1/repositories/%1$s/tags/%2$s", repo_name, tag_name], + model: NilClass, + options: options + ) + end + + # @overload fork_(source_org:, source_repo:, source_tag:, repo_name: nil, tag_name: nil, request_options: {}) + # + # @param source_org [String] The organization that owns the source public repository + # + # @param source_repo [String] The source repository name + # + # @param source_tag [String] The tag to fork (e.g. "latest", "v1.0") + # + # @param repo_name [String, nil] Name for the new repository in your org (defaults to source_repo if omitted) + # + # @param tag_name [String, nil] Tag name in the new repo (defaults to source_tag if omitted) + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ForkRepositoryResponse] + # + # @see Vers::Models::RepositoryForkParams + def fork_(params) + parsed, options = Vers::RepositoryForkParams.dump_request(params) + @client.request( + method: :post, + path: "api/v1/repositories/fork", + body: parsed, + model: Vers::ForkRepositoryResponse, + options: options + ) + end + + # @overload get(repo_name, request_options: {}) + # + # @param repo_name [String] Repository name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::RepositoryInfo] + # + # @see Vers::Models::RepositoryGetParams + def get(repo_name, params = {}) + @client.request( + method: :get, + path: ["api/v1/repositories/%1$s", repo_name], + model: Vers::RepositoryInfo, + options: params[:request_options] + ) + end + + # @overload get_tag(tag_name, repo_name:, request_options: {}) + # + # @param tag_name [String] Tag name + # + # @param repo_name [String] Repository name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::RepoTagInfo] + # + # @see Vers::Models::RepositoryGetTagParams + def get_tag(tag_name, params) + parsed, options = Vers::RepositoryGetTagParams.dump_request(params) + repo_name = + parsed.delete(:repo_name) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :get, + path: ["api/v1/repositories/%1$s/tags/%2$s", repo_name, tag_name], + model: Vers::RepoTagInfo, + options: options + ) + end + + # @overload list_tags(repo_name, request_options: {}) + # + # @param repo_name [String] Repository name + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::ListRepoTagsResponse] + # + # @see Vers::Models::RepositoryListTagsParams + def list_tags(repo_name, params = {}) + @client.request( + method: :get, + path: ["api/v1/repositories/%1$s/tags", repo_name], + model: Vers::ListRepoTagsResponse, + options: params[:request_options] + ) + end + + # @overload set_visibility(repo_name, is_public:, request_options: {}) + # + # @param repo_name [String] Repository name + # + # @param is_public [Boolean] Whether the repository should be publicly visible + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::RepositorySetVisibilityParams + def set_visibility(repo_name, params) + parsed, options = Vers::RepositorySetVisibilityParams.dump_request(params) + @client.request( + method: :patch, + path: ["api/v1/repositories/%1$s/visibility", repo_name], + body: parsed, + model: NilClass, + options: options + ) + end + + # @overload update_tag(tag_name, repo_name:, commit_id: nil, description: nil, request_options: {}) + # + # @param tag_name [String] Path param: Tag name + # + # @param repo_name [String] Path param: Repository name + # + # @param commit_id [String, nil] Body param: Optional new commit ID to move the tag to + # + # @param description [String, nil] Body param: Optional new description for the tag. Send `null` to clear. + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::RepositoryUpdateTagParams + def update_tag(tag_name, params) + parsed, options = Vers::RepositoryUpdateTagParams.dump_request(params) + repo_name = + parsed.delete(:repo_name) do + raise ArgumentError.new("missing required path argument #{_1}") + end + @client.request( + method: :patch, + path: ["api/v1/repositories/%1$s/tags/%2$s", repo_name, tag_name], + body: parsed, + model: NilClass, + options: options + ) + end + + # @api private + # + # @param client [Vers::Client] + def initialize(client:) + @client = client + end + end + end +end diff --git a/rbi/vers/client.rbi b/rbi/vers/client.rbi index a1782c3..0000b71 100644 --- a/rbi/vers/client.rbi +++ b/rbi/vers/client.rbi @@ -22,6 +22,12 @@ module Vers sig { returns(Vers::Resources::CommitTags) } attr_reader :commit_tags + sig { returns(Vers::Resources::Repositories) } + attr_reader :repositories + + sig { returns(Vers::Resources::PublicRepositories) } + attr_reader :public_repositories + # @api private sig { override.returns(T::Hash[String, String]) } private def auth_headers diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index 1544294..9be02cf 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -23,14 +23,32 @@ module Vers CommitUpdateParams = Vers::Models::CommitUpdateParams + CreateRepositoryRequest = Vers::Models::CreateRepositoryRequest + + CreateRepositoryResponse = Vers::Models::CreateRepositoryResponse + + CreateRepoTagRequest = Vers::Models::CreateRepoTagRequest + + CreateRepoTagResponse = Vers::Models::CreateRepoTagResponse + CreateTagRequest = Vers::Models::CreateTagRequest CreateTagResponse = Vers::Models::CreateTagResponse ErrorResponse = Vers::Models::ErrorResponse + ForkRepositoryRequest = Vers::Models::ForkRepositoryRequest + + ForkRepositoryResponse = Vers::Models::ForkRepositoryResponse + ListCommitsResponse = Vers::Models::ListCommitsResponse + ListPublicRepositoriesResponse = Vers::Models::ListPublicRepositoriesResponse + + ListRepositoriesResponse = Vers::Models::ListRepositoriesResponse + + ListRepoTagsResponse = Vers::Models::ListRepoTagsResponse + ListTagsResponse = Vers::Models::ListTagsResponse NewRootRequest = Vers::Models::NewRootRequest @@ -39,10 +57,50 @@ module Vers NewVmsResponse = Vers::Models::NewVmsResponse + PublicRepositoryGetParams = Vers::Models::PublicRepositoryGetParams + + PublicRepositoryGetTagParams = Vers::Models::PublicRepositoryGetTagParams + + PublicRepositoryInfo = Vers::Models::PublicRepositoryInfo + + PublicRepositoryListParams = Vers::Models::PublicRepositoryListParams + + PublicRepositoryListTagsParams = Vers::Models::PublicRepositoryListTagsParams + + RepositoryCreateParams = Vers::Models::RepositoryCreateParams + + RepositoryCreateTagParams = Vers::Models::RepositoryCreateTagParams + + RepositoryDeleteParams = Vers::Models::RepositoryDeleteParams + + RepositoryDeleteTagParams = Vers::Models::RepositoryDeleteTagParams + + RepositoryForkParams = Vers::Models::RepositoryForkParams + + RepositoryGetParams = Vers::Models::RepositoryGetParams + + RepositoryGetTagParams = Vers::Models::RepositoryGetTagParams + + RepositoryInfo = Vers::Models::RepositoryInfo + + RepositoryListParams = Vers::Models::RepositoryListParams + + RepositoryListTagsParams = Vers::Models::RepositoryListTagsParams + + RepositorySetVisibilityParams = Vers::Models::RepositorySetVisibilityParams + + RepositoryUpdateTagParams = Vers::Models::RepositoryUpdateTagParams + + RepoTagInfo = Vers::Models::RepoTagInfo + + SetRepositoryVisibilityRequest = Vers::Models::SetRepositoryVisibilityRequest + TagInfo = Vers::Models::TagInfo UpdateCommitRequest = Vers::Models::UpdateCommitRequest + UpdateRepoTagRequest = Vers::Models::UpdateRepoTagRequest + UpdateTagRequest = Vers::Models::UpdateTagRequest VmAPI = Vers::Models::VmAPI diff --git a/rbi/vers/models/create_repo_tag_request.rbi b/rbi/vers/models/create_repo_tag_request.rbi new file mode 100644 index 0000000..9a7b26e --- /dev/null +++ b/rbi/vers/models/create_repo_tag_request.rbi @@ -0,0 +1,55 @@ +# typed: strong + +module Vers + module Models + class CreateRepoTagRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::CreateRepoTagRequest, Vers::Internal::AnyHash) + end + + # The commit ID this tag should point to + sig { returns(String) } + attr_accessor :commit_id + + # The tag name (e.g. "latest", "v1.0") + sig { returns(String) } + attr_accessor :tag_name + + # Optional description of what this tag represents + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Request body for creating a tag within a repository: POST + # /api/v1/repositories/{repo_name}/tags + sig do + params( + commit_id: String, + tag_name: String, + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # The commit ID this tag should point to + commit_id:, + # The tag name (e.g. "latest", "v1.0") + tag_name:, + # Optional description of what this tag represents + description: nil + ) + end + + sig do + override.returns( + { + commit_id: String, + tag_name: String, + description: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/create_repo_tag_response.rbi b/rbi/vers/models/create_repo_tag_response.rbi new file mode 100644 index 0000000..929a70a --- /dev/null +++ b/rbi/vers/models/create_repo_tag_response.rbi @@ -0,0 +1,48 @@ +# typed: strong + +module Vers + module Models + class CreateRepoTagResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::CreateRepoTagResponse, Vers::Internal::AnyHash) + end + + # The commit ID this tag points to + sig { returns(String) } + attr_accessor :commit_id + + # Full reference in image_name:tag format + sig { returns(String) } + attr_accessor :reference + + # The ID of the newly created tag + sig { returns(String) } + attr_accessor :tag_id + + # Response body for POST /api/v1/repositories/{repo_name}/tags + sig do + params(commit_id: String, reference: String, tag_id: String).returns( + T.attached_class + ) + end + def self.new( + # The commit ID this tag points to + commit_id:, + # Full reference in image_name:tag format + reference:, + # The ID of the newly created tag + tag_id: + ) + end + + sig do + override.returns( + { commit_id: String, reference: String, tag_id: String } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/create_repository_request.rbi b/rbi/vers/models/create_repository_request.rbi new file mode 100644 index 0000000..450c1e8 --- /dev/null +++ b/rbi/vers/models/create_repository_request.rbi @@ -0,0 +1,40 @@ +# typed: strong + +module Vers + module Models + class CreateRepositoryRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::CreateRepositoryRequest, Vers::Internal::AnyHash) + end + + # The name of the repository (alphanumeric, hyphens, underscores, dots, 1-64 + # chars) + sig { returns(String) } + attr_accessor :name + + # Optional description of the repository + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Request body for POST /api/v1/repositories + sig do + params(name: String, description: T.nilable(String)).returns( + T.attached_class + ) + end + def self.new( + # The name of the repository (alphanumeric, hyphens, underscores, dots, 1-64 + # chars) + name:, + # Optional description of the repository + description: nil + ) + end + + sig { override.returns({ name: String, description: T.nilable(String) }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/create_repository_response.rbi b/rbi/vers/models/create_repository_response.rbi new file mode 100644 index 0000000..5987317 --- /dev/null +++ b/rbi/vers/models/create_repository_response.rbi @@ -0,0 +1,34 @@ +# typed: strong + +module Vers + module Models + class CreateRepositoryResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::CreateRepositoryResponse, Vers::Internal::AnyHash) + end + + # The name of the repository + sig { returns(String) } + attr_accessor :name + + # The ID of the newly created repository + sig { returns(String) } + attr_accessor :repo_id + + # Response body for POST /api/v1/repositories + sig { params(name: String, repo_id: String).returns(T.attached_class) } + def self.new( + # The name of the repository + name:, + # The ID of the newly created repository + repo_id: + ) + end + + sig { override.returns({ name: String, repo_id: String }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/fork_repository_request.rbi b/rbi/vers/models/fork_repository_request.rbi new file mode 100644 index 0000000..c50b7ce --- /dev/null +++ b/rbi/vers/models/fork_repository_request.rbi @@ -0,0 +1,70 @@ +# typed: strong + +module Vers + module Models + class ForkRepositoryRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::ForkRepositoryRequest, Vers::Internal::AnyHash) + end + + # The organization that owns the source public repository + sig { returns(String) } + attr_accessor :source_org + + # The source repository name + sig { returns(String) } + attr_accessor :source_repo + + # The tag to fork (e.g. "latest", "v1.0") + sig { returns(String) } + attr_accessor :source_tag + + # Name for the new repository in your org (defaults to source_repo if omitted) + sig { returns(T.nilable(String)) } + attr_accessor :repo_name + + # Tag name in the new repo (defaults to source_tag if omitted) + sig { returns(T.nilable(String)) } + attr_accessor :tag_name + + # Request body for POST /api/v1/repositories/fork + sig do + params( + source_org: String, + source_repo: String, + source_tag: String, + repo_name: T.nilable(String), + tag_name: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # The organization that owns the source public repository + source_org:, + # The source repository name + source_repo:, + # The tag to fork (e.g. "latest", "v1.0") + source_tag:, + # Name for the new repository in your org (defaults to source_repo if omitted) + repo_name: nil, + # Tag name in the new repo (defaults to source_tag if omitted) + tag_name: nil + ) + end + + sig do + override.returns( + { + source_org: String, + source_repo: String, + source_tag: String, + repo_name: T.nilable(String), + tag_name: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/fork_repository_response.rbi b/rbi/vers/models/fork_repository_response.rbi new file mode 100644 index 0000000..6468495 --- /dev/null +++ b/rbi/vers/models/fork_repository_response.rbi @@ -0,0 +1,70 @@ +# typed: strong + +module Vers + module Models + class ForkRepositoryResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::ForkRepositoryResponse, Vers::Internal::AnyHash) + end + + # The new commit in your org (snapshot of the forked VM) + sig { returns(String) } + attr_accessor :commit_id + + # Full reference: repo_name:tag_name + sig { returns(String) } + attr_accessor :reference + + # The new repository name in your org + sig { returns(String) } + attr_accessor :repo_name + + # The tag name pointing to the forked commit + sig { returns(String) } + attr_accessor :tag_name + + # The new VM that was created from the fork + sig { returns(String) } + attr_accessor :vm_id + + # Response body for POST /api/v1/repositories/fork + sig do + params( + commit_id: String, + reference: String, + repo_name: String, + tag_name: String, + vm_id: String + ).returns(T.attached_class) + end + def self.new( + # The new commit in your org (snapshot of the forked VM) + commit_id:, + # Full reference: repo_name:tag_name + reference:, + # The new repository name in your org + repo_name:, + # The tag name pointing to the forked commit + tag_name:, + # The new VM that was created from the fork + vm_id: + ) + end + + sig do + override.returns( + { + commit_id: String, + reference: String, + repo_name: String, + tag_name: String, + vm_id: String + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/list_public_repositories_response.rbi b/rbi/vers/models/list_public_repositories_response.rbi new file mode 100644 index 0000000..b541117 --- /dev/null +++ b/rbi/vers/models/list_public_repositories_response.rbi @@ -0,0 +1,30 @@ +# typed: strong + +module Vers + module Models + class ListPublicRepositoriesResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::ListPublicRepositoriesResponse, Vers::Internal::AnyHash) + end + + sig { returns(T::Array[Vers::PublicRepositoryInfo]) } + attr_accessor :repositories + + # Response body for GET /api/v1/public/repositories + sig do + params( + repositories: T::Array[Vers::PublicRepositoryInfo::OrHash] + ).returns(T.attached_class) + end + def self.new(repositories:) + end + + sig do + override.returns({ repositories: T::Array[Vers::PublicRepositoryInfo] }) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/list_repo_tags_response.rbi b/rbi/vers/models/list_repo_tags_response.rbi new file mode 100644 index 0000000..d2c42f6 --- /dev/null +++ b/rbi/vers/models/list_repo_tags_response.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class ListRepoTagsResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::ListRepoTagsResponse, Vers::Internal::AnyHash) + end + + # The repository name + sig { returns(String) } + attr_accessor :repository + + # List of tags in this repository + sig { returns(T::Array[Vers::RepoTagInfo]) } + attr_accessor :tags + + # Response body for GET /api/v1/repositories/{repo_name}/tags + sig do + params( + repository: String, + tags: T::Array[Vers::RepoTagInfo::OrHash] + ).returns(T.attached_class) + end + def self.new( + # The repository name + repository:, + # List of tags in this repository + tags: + ) + end + + sig do + override.returns( + { repository: String, tags: T::Array[Vers::RepoTagInfo] } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/list_repositories_response.rbi b/rbi/vers/models/list_repositories_response.rbi new file mode 100644 index 0000000..dff2287 --- /dev/null +++ b/rbi/vers/models/list_repositories_response.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Vers + module Models + class ListRepositoriesResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::ListRepositoriesResponse, Vers::Internal::AnyHash) + end + + # List of all repositories in the user's organization + sig { returns(T::Array[Vers::RepositoryInfo]) } + attr_accessor :repositories + + # Response body for GET /api/v1/repositories + sig do + params(repositories: T::Array[Vers::RepositoryInfo::OrHash]).returns( + T.attached_class + ) + end + def self.new( + # List of all repositories in the user's organization + repositories: + ) + end + + sig { override.returns({ repositories: T::Array[Vers::RepositoryInfo] }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/public_repository_get_params.rbi b/rbi/vers/models/public_repository_get_params.rbi new file mode 100644 index 0000000..6d7e256 --- /dev/null +++ b/rbi/vers/models/public_repository_get_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class PublicRepositoryGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::PublicRepositoryGetParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :org_name + + sig { returns(String) } + attr_accessor :repo_name + + sig do + params( + org_name: String, + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(org_name:, repo_name:, request_options: {}) + end + + sig do + override.returns( + { + org_name: String, + repo_name: String, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/public_repository_get_tag_params.rbi b/rbi/vers/models/public_repository_get_tag_params.rbi new file mode 100644 index 0000000..e05d28d --- /dev/null +++ b/rbi/vers/models/public_repository_get_tag_params.rbi @@ -0,0 +1,48 @@ +# typed: strong + +module Vers + module Models + class PublicRepositoryGetTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::PublicRepositoryGetTagParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :org_name + + sig { returns(String) } + attr_accessor :repo_name + + sig { returns(String) } + attr_accessor :tag_name + + sig do + params( + org_name: String, + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(org_name:, repo_name:, tag_name:, request_options: {}) + end + + sig do + override.returns( + { + org_name: String, + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/public_repository_info.rbi b/rbi/vers/models/public_repository_info.rbi new file mode 100644 index 0000000..93e40ee --- /dev/null +++ b/rbi/vers/models/public_repository_info.rbi @@ -0,0 +1,78 @@ +# typed: strong + +module Vers + module Models + class PublicRepositoryInfo < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::PublicRepositoryInfo, Vers::Internal::AnyHash) + end + + # When the repository was created + sig { returns(Time) } + attr_accessor :created_at + + # Full reference: org_name/repo_name + sig { returns(String) } + attr_accessor :full_name + + # The repository name + sig { returns(String) } + attr_accessor :name + + # The owning organization's name (namespace) + sig { returns(String) } + attr_accessor :org_name + + # The repository's unique identifier + sig { returns(String) } + attr_accessor :repo_id + + # Optional description + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Public repository information (includes owner org name for namespacing) + sig do + params( + created_at: Time, + full_name: String, + name: String, + org_name: String, + repo_id: String, + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # When the repository was created + created_at:, + # Full reference: org_name/repo_name + full_name:, + # The repository name + name:, + # The owning organization's name (namespace) + org_name:, + # The repository's unique identifier + repo_id:, + # Optional description + description: nil + ) + end + + sig do + override.returns( + { + created_at: Time, + full_name: String, + name: String, + org_name: String, + repo_id: String, + description: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/public_repository_list_params.rbi b/rbi/vers/models/public_repository_list_params.rbi new file mode 100644 index 0000000..dba05ba --- /dev/null +++ b/rbi/vers/models/public_repository_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class PublicRepositoryListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::PublicRepositoryListParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/public_repository_list_tags_params.rbi b/rbi/vers/models/public_repository_list_tags_params.rbi new file mode 100644 index 0000000..35f0dd3 --- /dev/null +++ b/rbi/vers/models/public_repository_list_tags_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class PublicRepositoryListTagsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::PublicRepositoryListTagsParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :org_name + + sig { returns(String) } + attr_accessor :repo_name + + sig do + params( + org_name: String, + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(org_name:, repo_name:, request_options: {}) + end + + sig do + override.returns( + { + org_name: String, + repo_name: String, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repo_tag_info.rbi b/rbi/vers/models/repo_tag_info.rbi new file mode 100644 index 0000000..93ae45a --- /dev/null +++ b/rbi/vers/models/repo_tag_info.rbi @@ -0,0 +1,84 @@ +# typed: strong + +module Vers + module Models + class RepoTagInfo < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::RepoTagInfo, Vers::Internal::AnyHash) } + + # The commit ID this tag currently points to + sig { returns(String) } + attr_accessor :commit_id + + # When the tag was created + sig { returns(Time) } + attr_accessor :created_at + + # Full reference in image_name:tag format + sig { returns(String) } + attr_accessor :reference + + # The tag's unique identifier + sig { returns(String) } + attr_accessor :tag_id + + # The tag name + sig { returns(String) } + attr_accessor :tag_name + + # When the tag was last updated + sig { returns(Time) } + attr_accessor :updated_at + + # Optional description + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Tag information within a repository context + sig do + params( + commit_id: String, + created_at: Time, + reference: String, + tag_id: String, + tag_name: String, + updated_at: Time, + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # The commit ID this tag currently points to + commit_id:, + # When the tag was created + created_at:, + # Full reference in image_name:tag format + reference:, + # The tag's unique identifier + tag_id:, + # The tag name + tag_name:, + # When the tag was last updated + updated_at:, + # Optional description + description: nil + ) + end + + sig do + override.returns( + { + commit_id: String, + created_at: Time, + reference: String, + tag_id: String, + tag_name: String, + updated_at: Time, + description: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_create_params.rbi b/rbi/vers/models/repository_create_params.rbi new file mode 100644 index 0000000..a62c813 --- /dev/null +++ b/rbi/vers/models/repository_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class RepositoryCreateParams < Vers::Models::CreateRepositoryRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryCreateParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_create_tag_params.rbi b/rbi/vers/models/repository_create_tag_params.rbi new file mode 100644 index 0000000..52244f5 --- /dev/null +++ b/rbi/vers/models/repository_create_tag_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class RepositoryCreateTagParams < Vers::Models::CreateRepoTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryCreateTagParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, request_options: {}) + end + + sig do + override.returns( + { repo_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_delete_params.rbi b/rbi/vers/models/repository_delete_params.rbi new file mode 100644 index 0000000..508c241 --- /dev/null +++ b/rbi/vers/models/repository_delete_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class RepositoryDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryDeleteParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, request_options: {}) + end + + sig do + override.returns( + { repo_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_delete_tag_params.rbi b/rbi/vers/models/repository_delete_tag_params.rbi new file mode 100644 index 0000000..96eeaf7 --- /dev/null +++ b/rbi/vers/models/repository_delete_tag_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class RepositoryDeleteTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryDeleteTagParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig { returns(String) } + attr_accessor :tag_name + + sig do + params( + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, tag_name:, request_options: {}) + end + + sig do + override.returns( + { + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_fork_params.rbi b/rbi/vers/models/repository_fork_params.rbi new file mode 100644 index 0000000..bfd84ed --- /dev/null +++ b/rbi/vers/models/repository_fork_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class RepositoryForkParams < Vers::Models::ForkRepositoryRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryForkParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_get_params.rbi b/rbi/vers/models/repository_get_params.rbi new file mode 100644 index 0000000..627c540 --- /dev/null +++ b/rbi/vers/models/repository_get_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class RepositoryGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryGetParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, request_options: {}) + end + + sig do + override.returns( + { repo_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_get_tag_params.rbi b/rbi/vers/models/repository_get_tag_params.rbi new file mode 100644 index 0000000..8deb2c3 --- /dev/null +++ b/rbi/vers/models/repository_get_tag_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class RepositoryGetTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryGetTagParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig { returns(String) } + attr_accessor :tag_name + + sig do + params( + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, tag_name:, request_options: {}) + end + + sig do + override.returns( + { + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_info.rbi b/rbi/vers/models/repository_info.rbi new file mode 100644 index 0000000..5268fcd --- /dev/null +++ b/rbi/vers/models/repository_info.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Vers + module Models + class RepositoryInfo < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::RepositoryInfo, Vers::Internal::AnyHash) } + + # When the repository was created + sig { returns(Time) } + attr_accessor :created_at + + # Whether this repository is publicly visible + sig { returns(T::Boolean) } + attr_accessor :is_public + + # The repository name + sig { returns(String) } + attr_accessor :name + + # The repository's unique identifier + sig { returns(String) } + attr_accessor :repo_id + + # Optional description + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Repository information returned in list and get operations + sig do + params( + created_at: Time, + is_public: T::Boolean, + name: String, + repo_id: String, + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # When the repository was created + created_at:, + # Whether this repository is publicly visible + is_public:, + # The repository name + name:, + # The repository's unique identifier + repo_id:, + # Optional description + description: nil + ) + end + + sig do + override.returns( + { + created_at: Time, + is_public: T::Boolean, + name: String, + repo_id: String, + description: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_list_params.rbi b/rbi/vers/models/repository_list_params.rbi new file mode 100644 index 0000000..a93143a --- /dev/null +++ b/rbi/vers/models/repository_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Vers + module Models + class RepositoryListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryListParams, Vers::Internal::AnyHash) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Vers::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_list_tags_params.rbi b/rbi/vers/models/repository_list_tags_params.rbi new file mode 100644 index 0000000..7d6ec2c --- /dev/null +++ b/rbi/vers/models/repository_list_tags_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class RepositoryListTagsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryListTagsParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, request_options: {}) + end + + sig do + override.returns( + { repo_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_set_visibility_params.rbi b/rbi/vers/models/repository_set_visibility_params.rbi new file mode 100644 index 0000000..d9817b1 --- /dev/null +++ b/rbi/vers/models/repository_set_visibility_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class RepositorySetVisibilityParams < Vers::Models::SetRepositoryVisibilityRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositorySetVisibilityParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, request_options: {}) + end + + sig do + override.returns( + { repo_name: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/repository_update_tag_params.rbi b/rbi/vers/models/repository_update_tag_params.rbi new file mode 100644 index 0000000..f001412 --- /dev/null +++ b/rbi/vers/models/repository_update_tag_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class RepositoryUpdateTagParams < Vers::Models::UpdateRepoTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::RepositoryUpdateTagParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :repo_name + + sig { returns(String) } + attr_accessor :tag_name + + sig do + params( + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(repo_name:, tag_name:, request_options: {}) + end + + sig do + override.returns( + { + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/set_repository_visibility_request.rbi b/rbi/vers/models/set_repository_visibility_request.rbi new file mode 100644 index 0000000..314b5a4 --- /dev/null +++ b/rbi/vers/models/set_repository_visibility_request.rbi @@ -0,0 +1,28 @@ +# typed: strong + +module Vers + module Models + class SetRepositoryVisibilityRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::SetRepositoryVisibilityRequest, Vers::Internal::AnyHash) + end + + # Whether the repository should be publicly visible + sig { returns(T::Boolean) } + attr_accessor :is_public + + # Request body for PATCH /api/v1/repositories/{repo_name}/visibility + sig { params(is_public: T::Boolean).returns(T.attached_class) } + def self.new( + # Whether the repository should be publicly visible + is_public: + ) + end + + sig { override.returns({ is_public: T::Boolean }) } + def to_hash + end + end + end +end diff --git a/rbi/vers/models/update_repo_tag_request.rbi b/rbi/vers/models/update_repo_tag_request.rbi new file mode 100644 index 0000000..73a3554 --- /dev/null +++ b/rbi/vers/models/update_repo_tag_request.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Vers + module Models + class UpdateRepoTagRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::UpdateRepoTagRequest, Vers::Internal::AnyHash) + end + + # Optional new commit ID to move the tag to + sig { returns(T.nilable(String)) } + attr_accessor :commit_id + + # Optional new description for the tag. Send `null` to clear. + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Request body for PATCH /api/v1/repositories/{repo_name}/tags/{tag_name} + sig do + params( + commit_id: T.nilable(String), + description: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # Optional new commit ID to move the tag to + commit_id: nil, + # Optional new description for the tag. Send `null` to clear. + description: nil + ) + end + + sig do + override.returns( + { commit_id: T.nilable(String), description: T.nilable(String) } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/public_repositories.rbi b/rbi/vers/resources/public_repositories.rbi new file mode 100644 index 0000000..1fca839 --- /dev/null +++ b/rbi/vers/resources/public_repositories.rbi @@ -0,0 +1,71 @@ +# typed: strong + +module Vers + module Resources + class PublicRepositories + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + Vers::ListPublicRepositoriesResponse + ) + end + def list(request_options: {}) + end + + sig do + params( + repo_name: String, + org_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::PublicRepositoryInfo) + end + def get( + # Repository name + repo_name, + # Organization name + org_name:, + request_options: {} + ) + end + + sig do + params( + tag_name: String, + org_name: String, + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::RepoTagInfo) + end + def get_tag( + # Tag name + tag_name, + # Organization name + org_name:, + # Repository name + repo_name:, + request_options: {} + ) + end + + sig do + params( + repo_name: String, + org_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::ListRepoTagsResponse) + end + def list_tags( + # Repository name + repo_name, + # Organization name + org_name:, + request_options: {} + ) + end + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/vers/resources/repositories.rbi b/rbi/vers/resources/repositories.rbi new file mode 100644 index 0000000..5a8e2a1 --- /dev/null +++ b/rbi/vers/resources/repositories.rbi @@ -0,0 +1,193 @@ +# typed: strong + +module Vers + module Resources + class Repositories + sig do + params( + name: String, + description: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::CreateRepositoryResponse) + end + def create( + # The name of the repository (alphanumeric, hyphens, underscores, dots, 1-64 + # chars) + name:, + # Optional description of the repository + description: nil, + request_options: {} + ) + end + + sig do + params(request_options: Vers::RequestOptions::OrHash).returns( + Vers::ListRepositoriesResponse + ) + end + def list(request_options: {}) + end + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).void + end + def delete( + # Repository name + repo_name, + request_options: {} + ) + end + + sig do + params( + repo_name: String, + commit_id: String, + tag_name: String, + description: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::CreateRepoTagResponse) + end + def create_tag( + # Repository name + repo_name, + # The commit ID this tag should point to + commit_id:, + # The tag name (e.g. "latest", "v1.0") + tag_name:, + # Optional description of what this tag represents + description: nil, + request_options: {} + ) + end + + sig do + params( + tag_name: String, + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).void + end + def delete_tag( + # Tag name + tag_name, + # Repository name + repo_name:, + request_options: {} + ) + end + + sig do + params( + source_org: String, + source_repo: String, + source_tag: String, + repo_name: T.nilable(String), + tag_name: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::ForkRepositoryResponse) + end + def fork_( + # The organization that owns the source public repository + source_org:, + # The source repository name + source_repo:, + # The tag to fork (e.g. "latest", "v1.0") + source_tag:, + # Name for the new repository in your org (defaults to source_repo if omitted) + repo_name: nil, + # Tag name in the new repo (defaults to source_tag if omitted) + tag_name: nil, + request_options: {} + ) + end + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::RepositoryInfo) + end + def get( + # Repository name + repo_name, + request_options: {} + ) + end + + sig do + params( + tag_name: String, + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::RepoTagInfo) + end + def get_tag( + # Tag name + tag_name, + # Repository name + repo_name:, + request_options: {} + ) + end + + sig do + params( + repo_name: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::ListRepoTagsResponse) + end + def list_tags( + # Repository name + repo_name, + request_options: {} + ) + end + + sig do + params( + repo_name: String, + is_public: T::Boolean, + request_options: Vers::RequestOptions::OrHash + ).void + end + def set_visibility( + # Repository name + repo_name, + # Whether the repository should be publicly visible + is_public:, + request_options: {} + ) + end + + sig do + params( + tag_name: String, + repo_name: String, + commit_id: T.nilable(String), + description: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).void + end + def update_tag( + # Path param: Tag name + tag_name, + # Path param: Repository name + repo_name:, + # Body param: Optional new commit ID to move the tag to + commit_id: nil, + # Body param: Optional new description for the tag. Send `null` to clear. + description: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Vers::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/sig/vers/client.rbs b/sig/vers/client.rbs index b0ec12c..92d47fd 100644 --- a/sig/vers/client.rbs +++ b/sig/vers/client.rbs @@ -16,6 +16,10 @@ module Vers attr_reader commit_tags: Vers::Resources::CommitTags + attr_reader repositories: Vers::Resources::Repositories + + attr_reader public_repositories: Vers::Resources::PublicRepositories + private def auth_headers: -> ::Hash[String, String] def initialize: ( diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index 58550a4..f44d839 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -21,14 +21,32 @@ module Vers class CommitUpdateParams = Vers::Models::CommitUpdateParams + class CreateRepositoryRequest = Vers::Models::CreateRepositoryRequest + + class CreateRepositoryResponse = Vers::Models::CreateRepositoryResponse + + class CreateRepoTagRequest = Vers::Models::CreateRepoTagRequest + + class CreateRepoTagResponse = Vers::Models::CreateRepoTagResponse + class CreateTagRequest = Vers::Models::CreateTagRequest class CreateTagResponse = Vers::Models::CreateTagResponse class ErrorResponse = Vers::Models::ErrorResponse + class ForkRepositoryRequest = Vers::Models::ForkRepositoryRequest + + class ForkRepositoryResponse = Vers::Models::ForkRepositoryResponse + class ListCommitsResponse = Vers::Models::ListCommitsResponse + class ListPublicRepositoriesResponse = Vers::Models::ListPublicRepositoriesResponse + + class ListRepositoriesResponse = Vers::Models::ListRepositoriesResponse + + class ListRepoTagsResponse = Vers::Models::ListRepoTagsResponse + class ListTagsResponse = Vers::Models::ListTagsResponse class NewRootRequest = Vers::Models::NewRootRequest @@ -37,10 +55,50 @@ module Vers class NewVmsResponse = Vers::Models::NewVmsResponse + class PublicRepositoryGetParams = Vers::Models::PublicRepositoryGetParams + + class PublicRepositoryGetTagParams = Vers::Models::PublicRepositoryGetTagParams + + class PublicRepositoryInfo = Vers::Models::PublicRepositoryInfo + + class PublicRepositoryListParams = Vers::Models::PublicRepositoryListParams + + class PublicRepositoryListTagsParams = Vers::Models::PublicRepositoryListTagsParams + + class RepositoryCreateParams = Vers::Models::RepositoryCreateParams + + class RepositoryCreateTagParams = Vers::Models::RepositoryCreateTagParams + + class RepositoryDeleteParams = Vers::Models::RepositoryDeleteParams + + class RepositoryDeleteTagParams = Vers::Models::RepositoryDeleteTagParams + + class RepositoryForkParams = Vers::Models::RepositoryForkParams + + class RepositoryGetParams = Vers::Models::RepositoryGetParams + + class RepositoryGetTagParams = Vers::Models::RepositoryGetTagParams + + class RepositoryInfo = Vers::Models::RepositoryInfo + + class RepositoryListParams = Vers::Models::RepositoryListParams + + class RepositoryListTagsParams = Vers::Models::RepositoryListTagsParams + + class RepositorySetVisibilityParams = Vers::Models::RepositorySetVisibilityParams + + class RepositoryUpdateTagParams = Vers::Models::RepositoryUpdateTagParams + + class RepoTagInfo = Vers::Models::RepoTagInfo + + class SetRepositoryVisibilityRequest = Vers::Models::SetRepositoryVisibilityRequest + class TagInfo = Vers::Models::TagInfo class UpdateCommitRequest = Vers::Models::UpdateCommitRequest + class UpdateRepoTagRequest = Vers::Models::UpdateRepoTagRequest + class UpdateTagRequest = Vers::Models::UpdateTagRequest class VmAPI = Vers::Models::VmAPI diff --git a/sig/vers/models/create_repo_tag_request.rbs b/sig/vers/models/create_repo_tag_request.rbs new file mode 100644 index 0000000..26903d1 --- /dev/null +++ b/sig/vers/models/create_repo_tag_request.rbs @@ -0,0 +1,26 @@ +module Vers + module Models + type create_repo_tag_request = + { commit_id: String, tag_name: String, description: String? } + + class CreateRepoTagRequest < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor tag_name: String + + attr_accessor description: String? + + def initialize: ( + commit_id: String, + tag_name: String, + ?description: String? + ) -> void + + def to_hash: -> { + commit_id: String, + tag_name: String, + description: String? + } + end + end +end diff --git a/sig/vers/models/create_repo_tag_response.rbs b/sig/vers/models/create_repo_tag_response.rbs new file mode 100644 index 0000000..4ef6422 --- /dev/null +++ b/sig/vers/models/create_repo_tag_response.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type create_repo_tag_response = + { commit_id: String, reference: String, tag_id: String } + + class CreateRepoTagResponse < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor reference: String + + attr_accessor tag_id: String + + def initialize: ( + commit_id: String, + reference: String, + tag_id: String + ) -> void + + def to_hash: -> { commit_id: String, reference: String, tag_id: String } + end + end +end diff --git a/sig/vers/models/create_repository_request.rbs b/sig/vers/models/create_repository_request.rbs new file mode 100644 index 0000000..ba5e998 --- /dev/null +++ b/sig/vers/models/create_repository_request.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type create_repository_request = { name: String, description: String? } + + class CreateRepositoryRequest < Vers::Internal::Type::BaseModel + attr_accessor name: String + + attr_accessor description: String? + + def initialize: (name: String, ?description: String?) -> void + + def to_hash: -> { name: String, description: String? } + end + end +end diff --git a/sig/vers/models/create_repository_response.rbs b/sig/vers/models/create_repository_response.rbs new file mode 100644 index 0000000..c604413 --- /dev/null +++ b/sig/vers/models/create_repository_response.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type create_repository_response = { name: String, repo_id: String } + + class CreateRepositoryResponse < Vers::Internal::Type::BaseModel + attr_accessor name: String + + attr_accessor repo_id: String + + def initialize: (name: String, repo_id: String) -> void + + def to_hash: -> { name: String, repo_id: String } + end + end +end diff --git a/sig/vers/models/fork_repository_request.rbs b/sig/vers/models/fork_repository_request.rbs new file mode 100644 index 0000000..3cbfa19 --- /dev/null +++ b/sig/vers/models/fork_repository_request.rbs @@ -0,0 +1,40 @@ +module Vers + module Models + type fork_repository_request = + { + source_org: String, + source_repo: String, + source_tag: String, + repo_name: String?, + tag_name: String? + } + + class ForkRepositoryRequest < Vers::Internal::Type::BaseModel + attr_accessor source_org: String + + attr_accessor source_repo: String + + attr_accessor source_tag: String + + attr_accessor repo_name: String? + + attr_accessor tag_name: String? + + def initialize: ( + source_org: String, + source_repo: String, + source_tag: String, + ?repo_name: String?, + ?tag_name: String? + ) -> void + + def to_hash: -> { + source_org: String, + source_repo: String, + source_tag: String, + repo_name: String?, + tag_name: String? + } + end + end +end diff --git a/sig/vers/models/fork_repository_response.rbs b/sig/vers/models/fork_repository_response.rbs new file mode 100644 index 0000000..454301f --- /dev/null +++ b/sig/vers/models/fork_repository_response.rbs @@ -0,0 +1,40 @@ +module Vers + module Models + type fork_repository_response = + { + commit_id: String, + reference: String, + repo_name: String, + tag_name: String, + vm_id: String + } + + class ForkRepositoryResponse < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor reference: String + + attr_accessor repo_name: String + + attr_accessor tag_name: String + + attr_accessor vm_id: String + + def initialize: ( + commit_id: String, + reference: String, + repo_name: String, + tag_name: String, + vm_id: String + ) -> void + + def to_hash: -> { + commit_id: String, + reference: String, + repo_name: String, + tag_name: String, + vm_id: String + } + end + end +end diff --git a/sig/vers/models/list_public_repositories_response.rbs b/sig/vers/models/list_public_repositories_response.rbs new file mode 100644 index 0000000..3e06758 --- /dev/null +++ b/sig/vers/models/list_public_repositories_response.rbs @@ -0,0 +1,16 @@ +module Vers + module Models + type list_public_repositories_response = + { repositories: ::Array[Vers::PublicRepositoryInfo] } + + class ListPublicRepositoriesResponse < Vers::Internal::Type::BaseModel + attr_accessor repositories: ::Array[Vers::PublicRepositoryInfo] + + def initialize: ( + repositories: ::Array[Vers::PublicRepositoryInfo] + ) -> void + + def to_hash: -> { repositories: ::Array[Vers::PublicRepositoryInfo] } + end + end +end diff --git a/sig/vers/models/list_repo_tags_response.rbs b/sig/vers/models/list_repo_tags_response.rbs new file mode 100644 index 0000000..920f091 --- /dev/null +++ b/sig/vers/models/list_repo_tags_response.rbs @@ -0,0 +1,19 @@ +module Vers + module Models + type list_repo_tags_response = + { repository: String, tags: ::Array[Vers::RepoTagInfo] } + + class ListRepoTagsResponse < Vers::Internal::Type::BaseModel + attr_accessor repository: String + + attr_accessor tags: ::Array[Vers::RepoTagInfo] + + def initialize: ( + repository: String, + tags: ::Array[Vers::RepoTagInfo] + ) -> void + + def to_hash: -> { repository: String, tags: ::Array[Vers::RepoTagInfo] } + end + end +end diff --git a/sig/vers/models/list_repositories_response.rbs b/sig/vers/models/list_repositories_response.rbs new file mode 100644 index 0000000..7768578 --- /dev/null +++ b/sig/vers/models/list_repositories_response.rbs @@ -0,0 +1,14 @@ +module Vers + module Models + type list_repositories_response = + { repositories: ::Array[Vers::RepositoryInfo] } + + class ListRepositoriesResponse < Vers::Internal::Type::BaseModel + attr_accessor repositories: ::Array[Vers::RepositoryInfo] + + def initialize: (repositories: ::Array[Vers::RepositoryInfo]) -> void + + def to_hash: -> { repositories: ::Array[Vers::RepositoryInfo] } + end + end +end diff --git a/sig/vers/models/public_repository_get_params.rbs b/sig/vers/models/public_repository_get_params.rbs new file mode 100644 index 0000000..b809ef3 --- /dev/null +++ b/sig/vers/models/public_repository_get_params.rbs @@ -0,0 +1,28 @@ +module Vers + module Models + type public_repository_get_params = + { org_name: String, repo_name: String } + & Vers::Internal::Type::request_parameters + + class PublicRepositoryGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor org_name: String + + attr_accessor repo_name: String + + def initialize: ( + org_name: String, + repo_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + org_name: String, + repo_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/public_repository_get_tag_params.rbs b/sig/vers/models/public_repository_get_tag_params.rbs new file mode 100644 index 0000000..a4d4114 --- /dev/null +++ b/sig/vers/models/public_repository_get_tag_params.rbs @@ -0,0 +1,32 @@ +module Vers + module Models + type public_repository_get_tag_params = + { org_name: String, repo_name: String, tag_name: String } + & Vers::Internal::Type::request_parameters + + class PublicRepositoryGetTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor org_name: String + + attr_accessor repo_name: String + + attr_accessor tag_name: String + + def initialize: ( + org_name: String, + repo_name: String, + tag_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + org_name: String, + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/public_repository_info.rbs b/sig/vers/models/public_repository_info.rbs new file mode 100644 index 0000000..a8bef4f --- /dev/null +++ b/sig/vers/models/public_repository_info.rbs @@ -0,0 +1,45 @@ +module Vers + module Models + type public_repository_info = + { + created_at: Time, + full_name: String, + name: String, + org_name: String, + repo_id: String, + description: String? + } + + class PublicRepositoryInfo < Vers::Internal::Type::BaseModel + attr_accessor created_at: Time + + attr_accessor full_name: String + + attr_accessor name: String + + attr_accessor org_name: String + + attr_accessor repo_id: String + + attr_accessor description: String? + + def initialize: ( + created_at: Time, + full_name: String, + name: String, + org_name: String, + repo_id: String, + ?description: String? + ) -> void + + def to_hash: -> { + created_at: Time, + full_name: String, + name: String, + org_name: String, + repo_id: String, + description: String? + } + end + end +end diff --git a/sig/vers/models/public_repository_list_params.rbs b/sig/vers/models/public_repository_list_params.rbs new file mode 100644 index 0000000..15efe2b --- /dev/null +++ b/sig/vers/models/public_repository_list_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type public_repository_list_params = + { } & Vers::Internal::Type::request_parameters + + class PublicRepositoryListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/public_repository_list_tags_params.rbs b/sig/vers/models/public_repository_list_tags_params.rbs new file mode 100644 index 0000000..2d21485 --- /dev/null +++ b/sig/vers/models/public_repository_list_tags_params.rbs @@ -0,0 +1,28 @@ +module Vers + module Models + type public_repository_list_tags_params = + { org_name: String, repo_name: String } + & Vers::Internal::Type::request_parameters + + class PublicRepositoryListTagsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor org_name: String + + attr_accessor repo_name: String + + def initialize: ( + org_name: String, + repo_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + org_name: String, + repo_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repo_tag_info.rbs b/sig/vers/models/repo_tag_info.rbs new file mode 100644 index 0000000..77bd460 --- /dev/null +++ b/sig/vers/models/repo_tag_info.rbs @@ -0,0 +1,50 @@ +module Vers + module Models + type repo_tag_info = + { + commit_id: String, + created_at: Time, + reference: String, + tag_id: String, + tag_name: String, + updated_at: Time, + description: String? + } + + class RepoTagInfo < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String + + attr_accessor created_at: Time + + attr_accessor reference: String + + attr_accessor tag_id: String + + attr_accessor tag_name: String + + attr_accessor updated_at: Time + + attr_accessor description: String? + + def initialize: ( + commit_id: String, + created_at: Time, + reference: String, + tag_id: String, + tag_name: String, + updated_at: Time, + ?description: String? + ) -> void + + def to_hash: -> { + commit_id: String, + created_at: Time, + reference: String, + tag_id: String, + tag_name: String, + updated_at: Time, + description: String? + } + end + end +end diff --git a/sig/vers/models/repository_create_params.rbs b/sig/vers/models/repository_create_params.rbs new file mode 100644 index 0000000..add3ac1 --- /dev/null +++ b/sig/vers/models/repository_create_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type repository_create_params = + { } & Vers::Internal::Type::request_parameters + + class RepositoryCreateParams < Vers::Models::CreateRepositoryRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/repository_create_tag_params.rbs b/sig/vers/models/repository_create_tag_params.rbs new file mode 100644 index 0000000..9846307 --- /dev/null +++ b/sig/vers/models/repository_create_tag_params.rbs @@ -0,0 +1,25 @@ +module Vers + module Models + type repository_create_tag_params = + { repo_name: String } & Vers::Internal::Type::request_parameters + + class RepositoryCreateTagParams < Vers::Models::CreateRepoTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def repo_name: -> String + + def repo_name=: (String _) -> String + + def initialize: ( + repo_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repository_delete_params.rbs b/sig/vers/models/repository_delete_params.rbs new file mode 100644 index 0000000..7b188fb --- /dev/null +++ b/sig/vers/models/repository_delete_params.rbs @@ -0,0 +1,23 @@ +module Vers + module Models + type repository_delete_params = + { repo_name: String } & Vers::Internal::Type::request_parameters + + class RepositoryDeleteParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor repo_name: String + + def initialize: ( + repo_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repository_delete_tag_params.rbs b/sig/vers/models/repository_delete_tag_params.rbs new file mode 100644 index 0000000..ff4a647 --- /dev/null +++ b/sig/vers/models/repository_delete_tag_params.rbs @@ -0,0 +1,28 @@ +module Vers + module Models + type repository_delete_tag_params = + { repo_name: String, tag_name: String } + & Vers::Internal::Type::request_parameters + + class RepositoryDeleteTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor repo_name: String + + attr_accessor tag_name: String + + def initialize: ( + repo_name: String, + tag_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repository_fork_params.rbs b/sig/vers/models/repository_fork_params.rbs new file mode 100644 index 0000000..7008567 --- /dev/null +++ b/sig/vers/models/repository_fork_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type repository_fork_params = + { } & Vers::Internal::Type::request_parameters + + class RepositoryForkParams < Vers::Models::ForkRepositoryRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/repository_get_params.rbs b/sig/vers/models/repository_get_params.rbs new file mode 100644 index 0000000..b1a06db --- /dev/null +++ b/sig/vers/models/repository_get_params.rbs @@ -0,0 +1,23 @@ +module Vers + module Models + type repository_get_params = + { repo_name: String } & Vers::Internal::Type::request_parameters + + class RepositoryGetParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor repo_name: String + + def initialize: ( + repo_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repository_get_tag_params.rbs b/sig/vers/models/repository_get_tag_params.rbs new file mode 100644 index 0000000..805a9b4 --- /dev/null +++ b/sig/vers/models/repository_get_tag_params.rbs @@ -0,0 +1,28 @@ +module Vers + module Models + type repository_get_tag_params = + { repo_name: String, tag_name: String } + & Vers::Internal::Type::request_parameters + + class RepositoryGetTagParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor repo_name: String + + attr_accessor tag_name: String + + def initialize: ( + repo_name: String, + tag_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repository_info.rbs b/sig/vers/models/repository_info.rbs new file mode 100644 index 0000000..2b58eac --- /dev/null +++ b/sig/vers/models/repository_info.rbs @@ -0,0 +1,40 @@ +module Vers + module Models + type repository_info = + { + created_at: Time, + is_public: bool, + name: String, + repo_id: String, + description: String? + } + + class RepositoryInfo < Vers::Internal::Type::BaseModel + attr_accessor created_at: Time + + attr_accessor is_public: bool + + attr_accessor name: String + + attr_accessor repo_id: String + + attr_accessor description: String? + + def initialize: ( + created_at: Time, + is_public: bool, + name: String, + repo_id: String, + ?description: String? + ) -> void + + def to_hash: -> { + created_at: Time, + is_public: bool, + name: String, + repo_id: String, + description: String? + } + end + end +end diff --git a/sig/vers/models/repository_list_params.rbs b/sig/vers/models/repository_list_params.rbs new file mode 100644 index 0000000..56fc3a3 --- /dev/null +++ b/sig/vers/models/repository_list_params.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type repository_list_params = + { } & Vers::Internal::Type::request_parameters + + class RepositoryListParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def initialize: (?request_options: Vers::request_opts) -> void + + def to_hash: -> { request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/repository_list_tags_params.rbs b/sig/vers/models/repository_list_tags_params.rbs new file mode 100644 index 0000000..7882840 --- /dev/null +++ b/sig/vers/models/repository_list_tags_params.rbs @@ -0,0 +1,23 @@ +module Vers + module Models + type repository_list_tags_params = + { repo_name: String } & Vers::Internal::Type::request_parameters + + class RepositoryListTagsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor repo_name: String + + def initialize: ( + repo_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repository_set_visibility_params.rbs b/sig/vers/models/repository_set_visibility_params.rbs new file mode 100644 index 0000000..a497aaf --- /dev/null +++ b/sig/vers/models/repository_set_visibility_params.rbs @@ -0,0 +1,25 @@ +module Vers + module Models + type repository_set_visibility_params = + { repo_name: String } & Vers::Internal::Type::request_parameters + + class RepositorySetVisibilityParams < Vers::Models::SetRepositoryVisibilityRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def repo_name: -> String + + def repo_name=: (String _) -> String + + def initialize: ( + repo_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/repository_update_tag_params.rbs b/sig/vers/models/repository_update_tag_params.rbs new file mode 100644 index 0000000..15e524f --- /dev/null +++ b/sig/vers/models/repository_update_tag_params.rbs @@ -0,0 +1,32 @@ +module Vers + module Models + type repository_update_tag_params = + { repo_name: String, tag_name: String } + & Vers::Internal::Type::request_parameters + + class RepositoryUpdateTagParams < Vers::Models::UpdateRepoTagRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def repo_name: -> String + + def repo_name=: (String _) -> String + + def tag_name: -> String + + def tag_name=: (String _) -> String + + def initialize: ( + repo_name: String, + tag_name: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + repo_name: String, + tag_name: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/models/set_repository_visibility_request.rbs b/sig/vers/models/set_repository_visibility_request.rbs new file mode 100644 index 0000000..bfa6285 --- /dev/null +++ b/sig/vers/models/set_repository_visibility_request.rbs @@ -0,0 +1,13 @@ +module Vers + module Models + type set_repository_visibility_request = { is_public: bool } + + class SetRepositoryVisibilityRequest < Vers::Internal::Type::BaseModel + attr_accessor is_public: bool + + def initialize: (is_public: bool) -> void + + def to_hash: -> { is_public: bool } + end + end +end diff --git a/sig/vers/models/update_repo_tag_request.rbs b/sig/vers/models/update_repo_tag_request.rbs new file mode 100644 index 0000000..e6f1573 --- /dev/null +++ b/sig/vers/models/update_repo_tag_request.rbs @@ -0,0 +1,15 @@ +module Vers + module Models + type update_repo_tag_request = { commit_id: String?, description: String? } + + class UpdateRepoTagRequest < Vers::Internal::Type::BaseModel + attr_accessor commit_id: String? + + attr_accessor description: String? + + def initialize: (?commit_id: String?, ?description: String?) -> void + + def to_hash: -> { commit_id: String?, description: String? } + end + end +end diff --git a/sig/vers/resources/public_repositories.rbs b/sig/vers/resources/public_repositories.rbs new file mode 100644 index 0000000..b017ee4 --- /dev/null +++ b/sig/vers/resources/public_repositories.rbs @@ -0,0 +1,30 @@ +module Vers + module Resources + class PublicRepositories + def list: ( + ?request_options: Vers::request_opts + ) -> Vers::ListPublicRepositoriesResponse + + def get: ( + String repo_name, + org_name: String, + ?request_options: Vers::request_opts + ) -> Vers::PublicRepositoryInfo + + def get_tag: ( + String tag_name, + org_name: String, + repo_name: String, + ?request_options: Vers::request_opts + ) -> Vers::RepoTagInfo + + def list_tags: ( + String repo_name, + org_name: String, + ?request_options: Vers::request_opts + ) -> Vers::ListRepoTagsResponse + + def initialize: (client: Vers::Client) -> void + end + end +end diff --git a/sig/vers/resources/repositories.rbs b/sig/vers/resources/repositories.rbs new file mode 100644 index 0000000..bd9ecd6 --- /dev/null +++ b/sig/vers/resources/repositories.rbs @@ -0,0 +1,75 @@ +module Vers + module Resources + class Repositories + def create: ( + name: String, + ?description: String?, + ?request_options: Vers::request_opts + ) -> Vers::CreateRepositoryResponse + + def list: ( + ?request_options: Vers::request_opts + ) -> Vers::ListRepositoriesResponse + + def delete: ( + String repo_name, + ?request_options: Vers::request_opts + ) -> nil + + def create_tag: ( + String repo_name, + commit_id: String, + tag_name: String, + ?description: String?, + ?request_options: Vers::request_opts + ) -> Vers::CreateRepoTagResponse + + def delete_tag: ( + String tag_name, + repo_name: String, + ?request_options: Vers::request_opts + ) -> nil + + def fork_: ( + source_org: String, + source_repo: String, + source_tag: String, + ?repo_name: String?, + ?tag_name: String?, + ?request_options: Vers::request_opts + ) -> Vers::ForkRepositoryResponse + + def get: ( + String repo_name, + ?request_options: Vers::request_opts + ) -> Vers::RepositoryInfo + + def get_tag: ( + String tag_name, + repo_name: String, + ?request_options: Vers::request_opts + ) -> Vers::RepoTagInfo + + def list_tags: ( + String repo_name, + ?request_options: Vers::request_opts + ) -> Vers::ListRepoTagsResponse + + def set_visibility: ( + String repo_name, + is_public: bool, + ?request_options: Vers::request_opts + ) -> nil + + def update_tag: ( + String tag_name, + repo_name: String, + ?commit_id: String?, + ?description: String?, + ?request_options: Vers::request_opts + ) -> nil + + def initialize: (client: Vers::Client) -> void + end + end +end diff --git a/test/vers/resources/public_repositories_test.rb b/test/vers/resources/public_repositories_test.rb new file mode 100644 index 0000000..6ec7feb --- /dev/null +++ b/test/vers/resources/public_repositories_test.rb @@ -0,0 +1,81 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +class Vers::Test::Resources::PublicRepositoriesTest < Vers::Test::ResourceTest + def test_list + skip("Mock server tests are disabled") + + response = @vers.public_repositories.list + + assert_pattern do + response => Vers::ListPublicRepositoriesResponse + end + + assert_pattern do + response => { + repositories: ^(Vers::Internal::Type::ArrayOf[Vers::PublicRepositoryInfo]) + } + end + end + + def test_get_required_params + skip("Mock server tests are disabled") + + response = @vers.public_repositories.get("repo_name", org_name: "org_name") + + assert_pattern do + response => Vers::PublicRepositoryInfo + end + + assert_pattern do + response => { + created_at: Time, + full_name: String, + name: String, + org_name: String, + repo_id: String, + description: String | nil + } + end + end + + def test_get_tag_required_params + skip("Mock server tests are disabled") + + response = @vers.public_repositories.get_tag("tag_name", org_name: "org_name", repo_name: "repo_name") + + assert_pattern do + response => Vers::RepoTagInfo + end + + assert_pattern do + response => { + commit_id: String, + created_at: Time, + reference: String, + tag_id: String, + tag_name: String, + updated_at: Time, + description: String | nil + } + end + end + + def test_list_tags_required_params + skip("Mock server tests are disabled") + + response = @vers.public_repositories.list_tags("repo_name", org_name: "org_name") + + assert_pattern do + response => Vers::ListRepoTagsResponse + end + + assert_pattern do + response => { + repository: String, + tags: ^(Vers::Internal::Type::ArrayOf[Vers::RepoTagInfo]) + } + end + end +end diff --git a/test/vers/resources/repositories_test.rb b/test/vers/resources/repositories_test.rb new file mode 100644 index 0000000..5aea6e4 --- /dev/null +++ b/test/vers/resources/repositories_test.rb @@ -0,0 +1,181 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +class Vers::Test::Resources::RepositoriesTest < Vers::Test::ResourceTest + def test_create_required_params + skip("Mock server tests are disabled") + + response = @vers.repositories.create(name: "name") + + assert_pattern do + response => Vers::CreateRepositoryResponse + end + + assert_pattern do + response => { + name: String, + repo_id: String + } + end + end + + def test_list + skip("Mock server tests are disabled") + + response = @vers.repositories.list + + assert_pattern do + response => Vers::ListRepositoriesResponse + end + + assert_pattern do + response => { + repositories: ^(Vers::Internal::Type::ArrayOf[Vers::RepositoryInfo]) + } + end + end + + def test_delete + skip("Mock server tests are disabled") + + response = @vers.repositories.delete("repo_name") + + assert_pattern do + response => nil + end + end + + def test_create_tag_required_params + skip("Mock server tests are disabled") + + response = + @vers.repositories.create_tag( + "repo_name", + commit_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", + tag_name: "tag_name" + ) + + assert_pattern do + response => Vers::CreateRepoTagResponse + end + + assert_pattern do + response => { + commit_id: String, + reference: String, + tag_id: String + } + end + end + + def test_delete_tag_required_params + skip("Mock server tests are disabled") + + response = @vers.repositories.delete_tag("tag_name", repo_name: "repo_name") + + assert_pattern do + response => nil + end + end + + def test_fork__required_params + skip("Mock server tests are disabled") + + response = + @vers.repositories.fork_(source_org: "source_org", source_repo: "source_repo", source_tag: "source_tag") + + assert_pattern do + response => Vers::ForkRepositoryResponse + end + + assert_pattern do + response => { + commit_id: String, + reference: String, + repo_name: String, + tag_name: String, + vm_id: String + } + end + end + + def test_get + skip("Mock server tests are disabled") + + response = @vers.repositories.get("repo_name") + + assert_pattern do + response => Vers::RepositoryInfo + end + + assert_pattern do + response => { + created_at: Time, + is_public: Vers::Internal::Type::Boolean, + name: String, + repo_id: String, + description: String | nil + } + end + end + + def test_get_tag_required_params + skip("Mock server tests are disabled") + + response = @vers.repositories.get_tag("tag_name", repo_name: "repo_name") + + assert_pattern do + response => Vers::RepoTagInfo + end + + assert_pattern do + response => { + commit_id: String, + created_at: Time, + reference: String, + tag_id: String, + tag_name: String, + updated_at: Time, + description: String | nil + } + end + end + + def test_list_tags + skip("Mock server tests are disabled") + + response = @vers.repositories.list_tags("repo_name") + + assert_pattern do + response => Vers::ListRepoTagsResponse + end + + assert_pattern do + response => { + repository: String, + tags: ^(Vers::Internal::Type::ArrayOf[Vers::RepoTagInfo]) + } + end + end + + def test_set_visibility_required_params + skip("Mock server tests are disabled") + + response = @vers.repositories.set_visibility("repo_name", is_public: true) + + assert_pattern do + response => nil + end + end + + def test_update_tag_required_params + skip("Mock server tests are disabled") + + response = @vers.repositories.update_tag("tag_name", repo_name: "repo_name") + + assert_pattern do + response => nil + end + end +end From 515ded82da207df1d586056648d5d4c1ee341deb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2026 04:08:09 +0000 Subject: [PATCH 095/100] feat(api): api update --- .stats.yml | 4 +-- lib/vers/models/update_commit_request.rb | 18 +++++++++++- lib/vers/models/vm_commit_params.rb | 31 ++++++++++++++++++++- lib/vers/resources/commits.rb | 6 +++- lib/vers/resources/vm.rb | 21 ++++++++++---- rbi/vers/models/update_commit_request.rbi | 34 +++++++++++++++++++++-- rbi/vers/models/vm_commit_params.rbi | 28 +++++++++++++++++++ rbi/vers/resources/commits.rbi | 6 ++++ rbi/vers/resources/vm.rbi | 18 ++++++++++-- sig/vers/models/update_commit_request.rbs | 15 ++++++++-- sig/vers/models/vm_commit_params.rbs | 21 +++++++++++++- sig/vers/resources/commits.rbs | 2 ++ sig/vers/resources/vm.rbs | 3 ++ 13 files changed, 187 insertions(+), 20 deletions(-) diff --git a/.stats.yml b/.stats.yml index fb62c89..70e5e84 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 39 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-5e10e273830028a4c50110cd100705c394f290e2da86ea6a4d91cb9b7f8be3cb.yml -openapi_spec_hash: a3025f877a753fddd2fd630d2485bec3 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-15a6cf62233e9fa5884634fb3edcf72bc090fb2c5ad6cff39c6673eaf36cdec4.yml +openapi_spec_hash: 72378d5099ea6011c2642fa7cb212bea config_hash: 63459851725a409c20b6a71718872b53 diff --git a/lib/vers/models/update_commit_request.rb b/lib/vers/models/update_commit_request.rb index 70e78fe..e662975 100644 --- a/lib/vers/models/update_commit_request.rb +++ b/lib/vers/models/update_commit_request.rb @@ -8,10 +8,26 @@ class UpdateCommitRequest < Vers::Internal::Type::BaseModel # @return [Boolean] required :is_public, Vers::Internal::Type::Boolean - # @!method initialize(is_public:) + # @!attribute description + # Optional description for the commit. + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!attribute name + # Optional human-readable name for the commit. + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!method initialize(is_public:, description: nil, name: nil) # Request body for PATCH /commits/{commit_id} # # @param is_public [Boolean] + # + # @param description [String, nil] Optional description for the commit. + # + # @param name [String, nil] Optional human-readable name for the commit. end end end diff --git a/lib/vers/models/vm_commit_params.rb b/lib/vers/models/vm_commit_params.rb index b55faa4..7595a3b 100644 --- a/lib/vers/models/vm_commit_params.rb +++ b/lib/vers/models/vm_commit_params.rb @@ -24,13 +24,42 @@ class VmCommitParams < Vers::Internal::Type::BaseModel # @return [Boolean, nil] optional :skip_wait_boot, Vers::Internal::Type::Boolean - # @!method initialize(vm_id:, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # @!attribute commit_id + # If provided, chelsea will use the requested commit UUID. Otherwise, it will + # generate a UUID itself. + # + # @return [String, nil] + optional :commit_id, String, nil?: true + + # @!attribute description + # Optional description for the commit. + # + # @return [String, nil] + optional :description, String, nil?: true + + # @!attribute name + # Optional human-readable name for the commit. Defaults to auto-generated name if + # not provided. + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!method initialize(vm_id:, keep_paused: nil, skip_wait_boot: nil, commit_id: nil, description: nil, name: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmCommitParams} for more details. + # # @param vm_id [String] # # @param keep_paused [Boolean] If true, keep VM paused after commit # # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false # + # @param commit_id [String, nil] If provided, chelsea will use the requested commit UUID. Otherwise, it will gene + # + # @param description [String, nil] Optional description for the commit. + # + # @param name [String, nil] Optional human-readable name for the commit. Defaults to auto-generated name if + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/vers/resources/commits.rb b/lib/vers/resources/commits.rb index f66beff..97a4f88 100644 --- a/lib/vers/resources/commits.rb +++ b/lib/vers/resources/commits.rb @@ -3,12 +3,16 @@ module Vers module Resources class Commits - # @overload update(commit_id, is_public:, request_options: {}) + # @overload update(commit_id, is_public:, description: nil, name: nil, request_options: {}) # # @param commit_id [String] The commit ID # # @param is_public [Boolean] # + # @param description [String, nil] Optional description for the commit. + # + # @param name [String, nil] Optional human-readable name for the commit. + # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Vers::Models::CommitInfo] diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 1028133..2248c0d 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -145,13 +145,22 @@ def branch_by_vm(vm_id, params = {}) ) end - # @overload commit(vm_id, keep_paused: nil, skip_wait_boot: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmCommitParams} for more details. # - # @param vm_id [String] VM ID to commit + # @overload commit(vm_id, keep_paused: nil, skip_wait_boot: nil, commit_id: nil, description: nil, name: nil, request_options: {}) # - # @param keep_paused [Boolean] If true, keep VM paused after commit + # @param vm_id [String] Path param: VM ID to commit # - # @param skip_wait_boot [Boolean] If true, return an error immediately if the VM is still booting. Default: false + # @param keep_paused [Boolean] Query param: If true, keep VM paused after commit + # + # @param skip_wait_boot [Boolean] Query param: If true, return an error immediately if the VM is still booting. De + # + # @param commit_id [String, nil] Body param: If provided, chelsea will use the requested commit UUID. Otherwise, + # + # @param description [String, nil] Body param: Optional description for the commit. + # + # @param name [String, nil] Body param: Optional human-readable name for the commit. Defaults to auto-genera # # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -159,12 +168,14 @@ def branch_by_vm(vm_id, params = {}) # # @see Vers::Models::VmCommitParams def commit(vm_id, params = {}) + query_params = [:keep_paused, :skip_wait_boot] parsed, options = Vers::VmCommitParams.dump_request(params) - query = Vers::Internal::Util.encode_query_params(parsed) + query = Vers::Internal::Util.encode_query_params(parsed.slice(*query_params)) @client.request( method: :post, path: ["api/v1/vm/%1$s/commit", vm_id], query: query, + body: parsed.except(*query_params), model: Vers::VmCommitResponse, options: options ) diff --git a/rbi/vers/models/update_commit_request.rbi b/rbi/vers/models/update_commit_request.rbi index fc24328..ded56ab 100644 --- a/rbi/vers/models/update_commit_request.rbi +++ b/rbi/vers/models/update_commit_request.rbi @@ -11,12 +11,40 @@ module Vers sig { returns(T::Boolean) } attr_accessor :is_public + # Optional description for the commit. + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Optional human-readable name for the commit. + sig { returns(T.nilable(String)) } + attr_accessor :name + # Request body for PATCH /commits/{commit_id} - sig { params(is_public: T::Boolean).returns(T.attached_class) } - def self.new(is_public:) + sig do + params( + is_public: T::Boolean, + description: T.nilable(String), + name: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + is_public:, + # Optional description for the commit. + description: nil, + # Optional human-readable name for the commit. + name: nil + ) end - sig { override.returns({ is_public: T::Boolean }) } + sig do + override.returns( + { + is_public: T::Boolean, + description: T.nilable(String), + name: T.nilable(String) + } + ) + end def to_hash end end diff --git a/rbi/vers/models/vm_commit_params.rbi b/rbi/vers/models/vm_commit_params.rbi index 5efc6f6..a1adbe4 100644 --- a/rbi/vers/models/vm_commit_params.rbi +++ b/rbi/vers/models/vm_commit_params.rbi @@ -26,11 +26,28 @@ module Vers sig { params(skip_wait_boot: T::Boolean).void } attr_writer :skip_wait_boot + # If provided, chelsea will use the requested commit UUID. Otherwise, it will + # generate a UUID itself. + sig { returns(T.nilable(String)) } + attr_accessor :commit_id + + # Optional description for the commit. + sig { returns(T.nilable(String)) } + attr_accessor :description + + # Optional human-readable name for the commit. Defaults to auto-generated name if + # not provided. + sig { returns(T.nilable(String)) } + attr_accessor :name + sig do params( vm_id: String, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, + commit_id: T.nilable(String), + description: T.nilable(String), + name: T.nilable(String), request_options: Vers::RequestOptions::OrHash ).returns(T.attached_class) end @@ -40,6 +57,14 @@ module Vers keep_paused: nil, # If true, return an error immediately if the VM is still booting. Default: false skip_wait_boot: nil, + # If provided, chelsea will use the requested commit UUID. Otherwise, it will + # generate a UUID itself. + commit_id: nil, + # Optional description for the commit. + description: nil, + # Optional human-readable name for the commit. Defaults to auto-generated name if + # not provided. + name: nil, request_options: {} ) end @@ -50,6 +75,9 @@ module Vers vm_id: String, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, + commit_id: T.nilable(String), + description: T.nilable(String), + name: T.nilable(String), request_options: Vers::RequestOptions } ) diff --git a/rbi/vers/resources/commits.rbi b/rbi/vers/resources/commits.rbi index 3726a35..e0e3e96 100644 --- a/rbi/vers/resources/commits.rbi +++ b/rbi/vers/resources/commits.rbi @@ -7,6 +7,8 @@ module Vers params( commit_id: String, is_public: T::Boolean, + description: T.nilable(String), + name: T.nilable(String), request_options: Vers::RequestOptions::OrHash ).returns(Vers::CommitInfo) end @@ -14,6 +16,10 @@ module Vers # The commit ID commit_id, is_public:, + # Optional description for the commit. + description: nil, + # Optional human-readable name for the commit. + name: nil, request_options: {} ) end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 98b0fb7..1ceaa4b 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -109,16 +109,28 @@ module Vers vm_id: String, keep_paused: T::Boolean, skip_wait_boot: T::Boolean, + commit_id: T.nilable(String), + description: T.nilable(String), + name: T.nilable(String), request_options: Vers::RequestOptions::OrHash ).returns(Vers::VmCommitResponse) end def commit( - # VM ID to commit + # Path param: VM ID to commit vm_id, - # If true, keep VM paused after commit + # Query param: If true, keep VM paused after commit keep_paused: nil, - # If true, return an error immediately if the VM is still booting. Default: false + # Query param: If true, return an error immediately if the VM is still booting. + # Default: false skip_wait_boot: nil, + # Body param: If provided, chelsea will use the requested commit UUID. Otherwise, + # it will generate a UUID itself. + commit_id: nil, + # Body param: Optional description for the commit. + description: nil, + # Body param: Optional human-readable name for the commit. Defaults to + # auto-generated name if not provided. + name: nil, request_options: {} ) end diff --git a/sig/vers/models/update_commit_request.rbs b/sig/vers/models/update_commit_request.rbs index 8019f3e..9ca3708 100644 --- a/sig/vers/models/update_commit_request.rbs +++ b/sig/vers/models/update_commit_request.rbs @@ -1,13 +1,22 @@ module Vers module Models - type update_commit_request = { is_public: bool } + type update_commit_request = + { is_public: bool, description: String?, name: String? } class UpdateCommitRequest < Vers::Internal::Type::BaseModel attr_accessor is_public: bool - def initialize: (is_public: bool) -> void + attr_accessor description: String? - def to_hash: -> { is_public: bool } + attr_accessor name: String? + + def initialize: ( + is_public: bool, + ?description: String?, + ?name: String? + ) -> void + + def to_hash: -> { is_public: bool, description: String?, name: String? } end end end diff --git a/sig/vers/models/vm_commit_params.rbs b/sig/vers/models/vm_commit_params.rbs index 0e5fea5..5f14d0f 100644 --- a/sig/vers/models/vm_commit_params.rbs +++ b/sig/vers/models/vm_commit_params.rbs @@ -1,7 +1,14 @@ module Vers module Models type vm_commit_params = - { vm_id: String, keep_paused: bool, skip_wait_boot: bool } + { + vm_id: String, + keep_paused: bool, + skip_wait_boot: bool, + commit_id: String?, + description: String?, + name: String? + } & Vers::Internal::Type::request_parameters class VmCommitParams < Vers::Internal::Type::BaseModel @@ -18,10 +25,19 @@ module Vers def skip_wait_boot=: (bool) -> bool + attr_accessor commit_id: String? + + attr_accessor description: String? + + attr_accessor name: String? + def initialize: ( vm_id: String, ?keep_paused: bool, ?skip_wait_boot: bool, + ?commit_id: String?, + ?description: String?, + ?name: String?, ?request_options: Vers::request_opts ) -> void @@ -29,6 +45,9 @@ module Vers vm_id: String, keep_paused: bool, skip_wait_boot: bool, + commit_id: String?, + description: String?, + name: String?, request_options: Vers::RequestOptions } end diff --git a/sig/vers/resources/commits.rbs b/sig/vers/resources/commits.rbs index c72fbfe..ce83970 100644 --- a/sig/vers/resources/commits.rbs +++ b/sig/vers/resources/commits.rbs @@ -4,6 +4,8 @@ module Vers def update: ( String commit_id, is_public: bool, + ?description: String?, + ?name: String?, ?request_options: Vers::request_opts ) -> Vers::CommitInfo diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 5e8433c..2121b4c 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -43,6 +43,9 @@ module Vers String vm_id, ?keep_paused: bool, ?skip_wait_boot: bool, + ?commit_id: String?, + ?description: String?, + ?name: String?, ?request_options: Vers::request_opts ) -> Vers::VmCommitResponse From d72ad8b84928a27274a22607bc7a58cba392d8c8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 23:07:24 +0000 Subject: [PATCH 096/100] feat(api): api update --- .stats.yml | 8 +- lib/vers.rb | 9 ++ lib/vers/models.rb | 18 +++ lib/vers/models/vm_exec_log_query.rb | 55 ++++++++ lib/vers/models/vm_exec_log_response.rb | 83 +++++++++++ lib/vers/models/vm_exec_params.rb | 20 +++ lib/vers/models/vm_exec_request.rb | 58 ++++++++ lib/vers/models/vm_exec_response.rb | 43 ++++++ .../models/vm_exec_stream_attach_params.rb | 20 +++ .../models/vm_exec_stream_attach_request.rb | 38 ++++++ lib/vers/models/vm_exec_stream_params.rb | 20 +++ lib/vers/models/vm_get_logs_params.rb | 45 ++++++ lib/vers/resources/vm.rb | 120 ++++++++++++++++ rbi/vers/models.rbi | 18 +++ rbi/vers/models/vm_exec_log_query.rbi | 78 +++++++++++ rbi/vers/models/vm_exec_log_response.rbi | 129 ++++++++++++++++++ rbi/vers/models/vm_exec_params.rbi | 33 +++++ rbi/vers/models/vm_exec_request.rbi | 76 +++++++++++ rbi/vers/models/vm_exec_response.rbi | 60 ++++++++ .../models/vm_exec_stream_attach_params.rbi | 35 +++++ .../models/vm_exec_stream_attach_request.rbi | 56 ++++++++ rbi/vers/models/vm_exec_stream_params.rbi | 35 +++++ rbi/vers/models/vm_get_logs_params.rbi | 72 ++++++++++ rbi/vers/resources/vm.rbi | 107 +++++++++++++++ sig/vers/models.rbs | 18 +++ sig/vers/models/vm_exec_log_query.rbs | 46 +++++++ sig/vers/models/vm_exec_log_response.rbs | 73 ++++++++++ sig/vers/models/vm_exec_params.rbs | 22 +++ sig/vers/models/vm_exec_request.rbs | 45 ++++++ sig/vers/models/vm_exec_response.rbs | 30 ++++ .../models/vm_exec_stream_attach_params.rbs | 22 +++ .../models/vm_exec_stream_attach_request.rbs | 22 +++ sig/vers/models/vm_exec_stream_params.rbs | 22 +++ sig/vers/models/vm_get_logs_params.rbs | 42 ++++++ sig/vers/resources/vm.rbs | 38 ++++++ test/vers/resources/vm_test.rb | 61 +++++++++ 36 files changed, 1673 insertions(+), 4 deletions(-) create mode 100644 lib/vers/models/vm_exec_log_query.rb create mode 100644 lib/vers/models/vm_exec_log_response.rb create mode 100644 lib/vers/models/vm_exec_params.rb create mode 100644 lib/vers/models/vm_exec_request.rb create mode 100644 lib/vers/models/vm_exec_response.rb create mode 100644 lib/vers/models/vm_exec_stream_attach_params.rb create mode 100644 lib/vers/models/vm_exec_stream_attach_request.rb create mode 100644 lib/vers/models/vm_exec_stream_params.rb create mode 100644 lib/vers/models/vm_get_logs_params.rb create mode 100644 rbi/vers/models/vm_exec_log_query.rbi create mode 100644 rbi/vers/models/vm_exec_log_response.rbi create mode 100644 rbi/vers/models/vm_exec_params.rbi create mode 100644 rbi/vers/models/vm_exec_request.rbi create mode 100644 rbi/vers/models/vm_exec_response.rbi create mode 100644 rbi/vers/models/vm_exec_stream_attach_params.rbi create mode 100644 rbi/vers/models/vm_exec_stream_attach_request.rbi create mode 100644 rbi/vers/models/vm_exec_stream_params.rbi create mode 100644 rbi/vers/models/vm_get_logs_params.rbi create mode 100644 sig/vers/models/vm_exec_log_query.rbs create mode 100644 sig/vers/models/vm_exec_log_response.rbs create mode 100644 sig/vers/models/vm_exec_params.rbs create mode 100644 sig/vers/models/vm_exec_request.rbs create mode 100644 sig/vers/models/vm_exec_response.rbs create mode 100644 sig/vers/models/vm_exec_stream_attach_params.rbs create mode 100644 sig/vers/models/vm_exec_stream_attach_request.rbs create mode 100644 sig/vers/models/vm_exec_stream_params.rbs create mode 100644 sig/vers/models/vm_get_logs_params.rbs diff --git a/.stats.yml b/.stats.yml index 70e5e84..89eb0be 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 39 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-15a6cf62233e9fa5884634fb3edcf72bc090fb2c5ad6cff39c6673eaf36cdec4.yml -openapi_spec_hash: 72378d5099ea6011c2642fa7cb212bea -config_hash: 63459851725a409c20b6a71718872b53 +configured_endpoints: 43 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-a6de1a50a31aa4333107911c3554e93721cd63b7cc198473eab21b70285c501a.yml +openapi_spec_hash: 1037572cb7a4c93efb2cc6bd768b31d1 +config_hash: 62e0373130b214d9edcdce20568df809 diff --git a/lib/vers.rb b/lib/vers.rb index 45aeb81..05c22b2 100644 --- a/lib/vers.rb +++ b/lib/vers.rb @@ -61,6 +61,8 @@ require_relative "vers/models/set_repository_visibility_request" require_relative "vers/models/update_repo_tag_request" require_relative "vers/models/new_root_request" +require_relative "vers/models/vm_exec_request" +require_relative "vers/models/vm_exec_stream_attach_request" require_relative "vers/models/vm_resize_disk_request" require_relative "vers/models/vm_from_commit_request" require_relative "vers/models/vm_update_state_request" @@ -117,6 +119,13 @@ require_relative "vers/models/vm_create_root_params" require_relative "vers/models/vm_delete_params" require_relative "vers/models/vm_delete_response" +require_relative "vers/models/vm_exec_log_query" +require_relative "vers/models/vm_exec_log_response" +require_relative "vers/models/vm_exec_params" +require_relative "vers/models/vm_exec_response" +require_relative "vers/models/vm_exec_stream_attach_params" +require_relative "vers/models/vm_exec_stream_params" +require_relative "vers/models/vm_get_logs_params" require_relative "vers/models/vm_get_metadata_params" require_relative "vers/models/vm_get_ssh_key_params" require_relative "vers/models/vm_list_params" diff --git a/lib/vers/models.rb b/lib/vers/models.rb index e93a099..47ad54b 100644 --- a/lib/vers/models.rb +++ b/lib/vers/models.rb @@ -161,8 +161,26 @@ module Vers VmDeleteResponse = Vers::Models::VmDeleteResponse + VmExecLogQuery = Vers::Models::VmExecLogQuery + + VmExecLogResponse = Vers::Models::VmExecLogResponse + + VmExecParams = Vers::Models::VmExecParams + + VmExecRequest = Vers::Models::VmExecRequest + + VmExecResponse = Vers::Models::VmExecResponse + + VmExecStreamAttachParams = Vers::Models::VmExecStreamAttachParams + + VmExecStreamAttachRequest = Vers::Models::VmExecStreamAttachRequest + + VmExecStreamParams = Vers::Models::VmExecStreamParams + VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetLogsParams = Vers::Models::VmGetLogsParams + VmGetMetadataParams = Vers::Models::VmGetMetadataParams VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams diff --git a/lib/vers/models/vm_exec_log_query.rb b/lib/vers/models/vm_exec_log_query.rb new file mode 100644 index 0000000..792c064 --- /dev/null +++ b/lib/vers/models/vm_exec_log_query.rb @@ -0,0 +1,55 @@ +# frozen_string_literal: true + +module Vers + module Models + class VmExecLogQuery < Vers::Internal::Type::BaseModel + # @!attribute max_entries + # Maximum number of entries to return (server applies caps). + # + # @return [Integer, nil] + optional :max_entries, Integer, nil?: true + + # @!attribute offset + # Byte offset into the log file to start reading from. + # + # @return [Integer, nil] + optional :offset, Integer, nil?: true + + # @!attribute skip_wait_boot + # Skip waiting for boot state (mirrors exec). + # + # @return [Boolean, nil] + optional :skip_wait_boot, Vers::Internal::Type::Boolean, nil?: true + + # @!attribute stream + # Filter by stream (stdout/stderr). Default: all streams. + # + # @return [Symbol, Vers::Models::VmExecLogQuery::Stream, nil] + optional :stream, enum: -> { Vers::VmExecLogQuery::Stream }, nil?: true + + # @!method initialize(max_entries: nil, offset: nil, skip_wait_boot: nil, stream: nil) + # Query params for GET /api/vm/{vm_id}/exec/logs + # + # @param max_entries [Integer, nil] Maximum number of entries to return (server applies caps). + # + # @param offset [Integer, nil] Byte offset into the log file to start reading from. + # + # @param skip_wait_boot [Boolean, nil] Skip waiting for boot state (mirrors exec). + # + # @param stream [Symbol, Vers::Models::VmExecLogQuery::Stream, nil] Filter by stream (stdout/stderr). Default: all streams. + + # Filter by stream (stdout/stderr). Default: all streams. + # + # @see Vers::Models::VmExecLogQuery#stream + module Stream + extend Vers::Internal::Type::Enum + + STDOUT = :stdout + STDERR = :stderr + + # @!method self.values + # @return [Array] + end + end + end +end diff --git a/lib/vers/models/vm_exec_log_response.rb b/lib/vers/models/vm_exec_log_response.rb new file mode 100644 index 0000000..3ae4876 --- /dev/null +++ b/lib/vers/models/vm_exec_log_response.rb @@ -0,0 +1,83 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_logs + class VmExecLogResponse < Vers::Internal::Type::BaseModel + # @!attribute entries + # Returned log entries. + # + # @return [Array] + required :entries, -> { Vers::Internal::Type::ArrayOf[Vers::VmExecLogResponse::Entry] } + + # @!attribute eof + # True when the end of file was reached. + # + # @return [Boolean] + required :eof, Vers::Internal::Type::Boolean + + # @!attribute next_offset + # Next byte offset to continue from. + # + # @return [Integer] + required :next_offset, Integer + + # @!method initialize(entries:, eof:, next_offset:) + # Response for exec log tail requests. + # + # @param entries [Array] Returned log entries. + # + # @param eof [Boolean] True when the end of file was reached. + # + # @param next_offset [Integer] Next byte offset to continue from. + + class Entry < Vers::Internal::Type::BaseModel + # @!attribute data_b64 + # Base64-encoded bytes from stdout/stderr chunk. + # + # @return [String] + required :data_b64, String + + # @!attribute stream + # Streams available for exec logging. + # + # @return [Symbol, Vers::Models::VmExecLogResponse::Entry::Stream] + required :stream, enum: -> { Vers::VmExecLogResponse::Entry::Stream } + + # @!attribute timestamp + # + # @return [String] + required :timestamp, String + + # @!attribute exec_id + # + # @return [String, nil] + optional :exec_id, String, nil?: true + + # @!method initialize(data_b64:, stream:, timestamp:, exec_id: nil) + # Individual log entry describing emitted stdout/stderr chunk. + # + # @param data_b64 [String] Base64-encoded bytes from stdout/stderr chunk. + # + # @param stream [Symbol, Vers::Models::VmExecLogResponse::Entry::Stream] Streams available for exec logging. + # + # @param timestamp [String] + # + # @param exec_id [String, nil] + + # Streams available for exec logging. + # + # @see Vers::Models::VmExecLogResponse::Entry#stream + module Stream + extend Vers::Internal::Type::Enum + + STDOUT = :stdout + STDERR = :stderr + + # @!method self.values + # @return [Array] + end + end + end + end +end diff --git a/lib/vers/models/vm_exec_params.rb b/lib/vers/models/vm_exec_params.rb new file mode 100644 index 0000000..1077703 --- /dev/null +++ b/lib/vers/models/vm_exec_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#exec_ + class VmExecParams < Vers::Models::VmExecRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:, request_options: {}) + # @param vm_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_exec_request.rb b/lib/vers/models/vm_exec_request.rb new file mode 100644 index 0000000..eb631d3 --- /dev/null +++ b/lib/vers/models/vm_exec_request.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +module Vers + module Models + class VmExecRequest < Vers::Internal::Type::BaseModel + # @!attribute command + # Command and arguments to execute. + # + # @return [Array] + required :command, Vers::Internal::Type::ArrayOf[String] + + # @!attribute env + # Optional environment variables to set for the process. + # + # @return [Hash{Symbol=>String}, nil] + optional :env, Vers::Internal::Type::HashOf[String], nil?: true + + # @!attribute exec_id + # Optional exec identifier for tracking. + # + # @return [String, nil] + optional :exec_id, String, nil?: true + + # @!attribute stdin + # Optional stdin payload passed to the command. + # + # @return [String, nil] + optional :stdin, String, nil?: true + + # @!attribute timeout_secs + # Timeout in seconds (0 = no timeout). + # + # @return [Integer, nil] + optional :timeout_secs, Integer, nil?: true + + # @!attribute working_dir + # Optional working directory for the command. + # + # @return [String, nil] + optional :working_dir, String, nil?: true + + # @!method initialize(command:, env: nil, exec_id: nil, stdin: nil, timeout_secs: nil, working_dir: nil) + # Request body for POST /api/vm/{vm_id}/exec + # + # @param command [Array] Command and arguments to execute. + # + # @param env [Hash{Symbol=>String}, nil] Optional environment variables to set for the process. + # + # @param exec_id [String, nil] Optional exec identifier for tracking. + # + # @param stdin [String, nil] Optional stdin payload passed to the command. + # + # @param timeout_secs [Integer, nil] Timeout in seconds (0 = no timeout). + # + # @param working_dir [String, nil] Optional working directory for the command. + end + end +end diff --git a/lib/vers/models/vm_exec_response.rb b/lib/vers/models/vm_exec_response.rb new file mode 100644 index 0000000..34ac9c8 --- /dev/null +++ b/lib/vers/models/vm_exec_response.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#exec_ + class VmExecResponse < Vers::Internal::Type::BaseModel + # @!attribute exit_code + # Exit code returned by the command. + # + # @return [Integer] + required :exit_code, Integer + + # @!attribute stderr + # UTF-8 decoded stderr (lossy). + # + # @return [String] + required :stderr, String + + # @!attribute stdout + # UTF-8 decoded stdout (lossy). + # + # @return [String] + required :stdout, String + + # @!attribute exec_id + # Exec identifier associated with this run. + # + # @return [String, nil] + optional :exec_id, String, nil?: true + + # @!method initialize(exit_code:, stderr:, stdout:, exec_id: nil) + # Response body for POST /api/vm/{vm_id}/exec + # + # @param exit_code [Integer] Exit code returned by the command. + # + # @param stderr [String] UTF-8 decoded stderr (lossy). + # + # @param stdout [String] UTF-8 decoded stdout (lossy). + # + # @param exec_id [String, nil] Exec identifier associated with this run. + end + end +end diff --git a/lib/vers/models/vm_exec_stream_attach_params.rb b/lib/vers/models/vm_exec_stream_attach_params.rb new file mode 100644 index 0000000..790529f --- /dev/null +++ b/lib/vers/models/vm_exec_stream_attach_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#exec_stream_attach + class VmExecStreamAttachParams < Vers::Models::VmExecStreamAttachRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:, request_options: {}) + # @param vm_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_exec_stream_attach_request.rb b/lib/vers/models/vm_exec_stream_attach_request.rb new file mode 100644 index 0000000..9c847bb --- /dev/null +++ b/lib/vers/models/vm_exec_stream_attach_request.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +module Vers + module Models + class VmExecStreamAttachRequest < Vers::Internal::Type::BaseModel + # @!attribute exec_id + # Identifier of the exec stream session to reattach to. + # + # @return [String] + required :exec_id, String + + # @!attribute cursor + # Optional cursor to resume from (exclusive). If omitted, the full retained + # backlog is replayed. + # + # @return [Integer, nil] + optional :cursor, Integer, nil?: true + + # @!attribute from_latest + # Start streaming after the latest retained chunk (ignores cursor). + # + # @return [Boolean, nil] + optional :from_latest, Vers::Internal::Type::Boolean, nil?: true + + # @!method initialize(exec_id:, cursor: nil, from_latest: nil) + # Some parameter documentations has been truncated, see + # {Vers::Models::VmExecStreamAttachRequest} for more details. + # + # Request body for POST /api/vm/{vm_id}/exec/stream/attach + # + # @param exec_id [String] Identifier of the exec stream session to reattach to. + # + # @param cursor [Integer, nil] Optional cursor to resume from (exclusive). If omitted, the full retained backlo + # + # @param from_latest [Boolean, nil] Start streaming after the latest retained chunk (ignores cursor). + end + end +end diff --git a/lib/vers/models/vm_exec_stream_params.rb b/lib/vers/models/vm_exec_stream_params.rb new file mode 100644 index 0000000..846f0e0 --- /dev/null +++ b/lib/vers/models/vm_exec_stream_params.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#exec_stream + class VmExecStreamParams < Vers::Models::VmExecRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!method initialize(vm_id:, request_options: {}) + # @param vm_id [String] + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/models/vm_get_logs_params.rb b/lib/vers/models/vm_get_logs_params.rb new file mode 100644 index 0000000..c97269b --- /dev/null +++ b/lib/vers/models/vm_get_logs_params.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module Vers + module Models + # @see Vers::Resources::Vm#get_logs + class VmGetLogsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + # @!attribute vm_id + # + # @return [String] + required :vm_id, String + + # @!attribute max_entries + # Maximum number of log entries to return + # + # @return [Integer, nil] + optional :max_entries, Integer + + # @!attribute offset + # Byte offset into the log file (default: 0) + # + # @return [Integer, nil] + optional :offset, Integer + + # @!attribute stream + # Filter by 'stdout' or 'stderr' + # + # @return [String, nil] + optional :stream, String + + # @!method initialize(vm_id:, max_entries: nil, offset: nil, stream: nil, request_options: {}) + # @param vm_id [String] + # + # @param max_entries [Integer] Maximum number of log entries to return + # + # @param offset [Integer] Byte offset into the log file (default: 0) + # + # @param stream [String] Filter by 'stdout' or 'stderr' + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}] + end + end +end diff --git a/lib/vers/resources/vm.rb b/lib/vers/resources/vm.rb index 2248c0d..9ea7333 100644 --- a/lib/vers/resources/vm.rb +++ b/lib/vers/resources/vm.rb @@ -209,6 +209,126 @@ def create_root(params) ) end + # @overload exec_(vm_id, command:, env: nil, exec_id: nil, stdin: nil, timeout_secs: nil, working_dir: nil, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param command [Array] Command and arguments to execute. + # + # @param env [Hash{Symbol=>String}, nil] Optional environment variables to set for the process. + # + # @param exec_id [String, nil] Optional exec identifier for tracking. + # + # @param stdin [String, nil] Optional stdin payload passed to the command. + # + # @param timeout_secs [Integer, nil] Timeout in seconds (0 = no timeout). + # + # @param working_dir [String, nil] Optional working directory for the command. + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmExecResponse] + # + # @see Vers::Models::VmExecParams + def exec_(vm_id, params) + parsed, options = Vers::VmExecParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/%1$s/exec", vm_id], + body: parsed, + model: Vers::VmExecResponse, + options: options + ) + end + + # @overload exec_stream(vm_id, command:, env: nil, exec_id: nil, stdin: nil, timeout_secs: nil, working_dir: nil, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param command [Array] Command and arguments to execute. + # + # @param env [Hash{Symbol=>String}, nil] Optional environment variables to set for the process. + # + # @param exec_id [String, nil] Optional exec identifier for tracking. + # + # @param stdin [String, nil] Optional stdin payload passed to the command. + # + # @param timeout_secs [Integer, nil] Timeout in seconds (0 = no timeout). + # + # @param working_dir [String, nil] Optional working directory for the command. + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::VmExecStreamParams + def exec_stream(vm_id, params) + parsed, options = Vers::VmExecStreamParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/%1$s/exec/stream", vm_id], + body: parsed, + model: NilClass, + options: options + ) + end + + # Some parameter documentations has been truncated, see + # {Vers::Models::VmExecStreamAttachParams} for more details. + # + # @overload exec_stream_attach(vm_id, exec_id:, cursor: nil, from_latest: nil, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param exec_id [String] Identifier of the exec stream session to reattach to. + # + # @param cursor [Integer, nil] Optional cursor to resume from (exclusive). If omitted, the full retained backlo + # + # @param from_latest [Boolean, nil] Start streaming after the latest retained chunk (ignores cursor). + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [nil] + # + # @see Vers::Models::VmExecStreamAttachParams + def exec_stream_attach(vm_id, params) + parsed, options = Vers::VmExecStreamAttachParams.dump_request(params) + @client.request( + method: :post, + path: ["api/v1/vm/%1$s/exec/stream/attach", vm_id], + body: parsed, + model: NilClass, + options: options + ) + end + + # @overload get_logs(vm_id, max_entries: nil, offset: nil, stream: nil, request_options: {}) + # + # @param vm_id [String] VM ID + # + # @param max_entries [Integer] Maximum number of log entries to return + # + # @param offset [Integer] Byte offset into the log file (default: 0) + # + # @param stream [String] Filter by 'stdout' or 'stderr' + # + # @param request_options [Vers::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [Vers::Models::VmExecLogResponse] + # + # @see Vers::Models::VmGetLogsParams + def get_logs(vm_id, params = {}) + parsed, options = Vers::VmGetLogsParams.dump_request(params) + query = Vers::Internal::Util.encode_query_params(parsed) + @client.request( + method: :get, + path: ["api/v1/vm/%1$s/logs", vm_id], + query: query, + model: Vers::VmExecLogResponse, + options: options + ) + end + # @overload get_metadata(vm_id, request_options: {}) # # @param vm_id [String] VM ID diff --git a/rbi/vers/models.rbi b/rbi/vers/models.rbi index 9be02cf..1fb9947 100644 --- a/rbi/vers/models.rbi +++ b/rbi/vers/models.rbi @@ -123,8 +123,26 @@ module Vers VmDeleteResponse = Vers::Models::VmDeleteResponse + VmExecLogQuery = Vers::Models::VmExecLogQuery + + VmExecLogResponse = Vers::Models::VmExecLogResponse + + VmExecParams = Vers::Models::VmExecParams + + VmExecRequest = Vers::Models::VmExecRequest + + VmExecResponse = Vers::Models::VmExecResponse + + VmExecStreamAttachParams = Vers::Models::VmExecStreamAttachParams + + VmExecStreamAttachRequest = Vers::Models::VmExecStreamAttachRequest + + VmExecStreamParams = Vers::Models::VmExecStreamParams + VmFromCommitRequest = Vers::Models::VmFromCommitRequest + VmGetLogsParams = Vers::Models::VmGetLogsParams + VmGetMetadataParams = Vers::Models::VmGetMetadataParams VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams diff --git a/rbi/vers/models/vm_exec_log_query.rbi b/rbi/vers/models/vm_exec_log_query.rbi new file mode 100644 index 0000000..9474f93 --- /dev/null +++ b/rbi/vers/models/vm_exec_log_query.rbi @@ -0,0 +1,78 @@ +# typed: strong + +module Vers + module Models + class VmExecLogQuery < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmExecLogQuery, Vers::Internal::AnyHash) } + + # Maximum number of entries to return (server applies caps). + sig { returns(T.nilable(Integer)) } + attr_accessor :max_entries + + # Byte offset into the log file to start reading from. + sig { returns(T.nilable(Integer)) } + attr_accessor :offset + + # Skip waiting for boot state (mirrors exec). + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :skip_wait_boot + + # Filter by stream (stdout/stderr). Default: all streams. + sig { returns(T.nilable(Vers::VmExecLogQuery::Stream::OrSymbol)) } + attr_accessor :stream + + # Query params for GET /api/vm/{vm_id}/exec/logs + sig do + params( + max_entries: T.nilable(Integer), + offset: T.nilable(Integer), + skip_wait_boot: T.nilable(T::Boolean), + stream: T.nilable(Vers::VmExecLogQuery::Stream::OrSymbol) + ).returns(T.attached_class) + end + def self.new( + # Maximum number of entries to return (server applies caps). + max_entries: nil, + # Byte offset into the log file to start reading from. + offset: nil, + # Skip waiting for boot state (mirrors exec). + skip_wait_boot: nil, + # Filter by stream (stdout/stderr). Default: all streams. + stream: nil + ) + end + + sig do + override.returns( + { + max_entries: T.nilable(Integer), + offset: T.nilable(Integer), + skip_wait_boot: T.nilable(T::Boolean), + stream: T.nilable(Vers::VmExecLogQuery::Stream::OrSymbol) + } + ) + end + def to_hash + end + + # Filter by stream (stdout/stderr). Default: all streams. + module Stream + extend Vers::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Vers::VmExecLogQuery::Stream) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + STDOUT = T.let(:stdout, Vers::VmExecLogQuery::Stream::TaggedSymbol) + STDERR = T.let(:stderr, Vers::VmExecLogQuery::Stream::TaggedSymbol) + + sig do + override.returns(T::Array[Vers::VmExecLogQuery::Stream::TaggedSymbol]) + end + def self.values + end + end + end + end +end diff --git a/rbi/vers/models/vm_exec_log_response.rbi b/rbi/vers/models/vm_exec_log_response.rbi new file mode 100644 index 0000000..249e5b9 --- /dev/null +++ b/rbi/vers/models/vm_exec_log_response.rbi @@ -0,0 +1,129 @@ +# typed: strong + +module Vers + module Models + class VmExecLogResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmExecLogResponse, Vers::Internal::AnyHash) } + + # Returned log entries. + sig { returns(T::Array[Vers::VmExecLogResponse::Entry]) } + attr_accessor :entries + + # True when the end of file was reached. + sig { returns(T::Boolean) } + attr_accessor :eof + + # Next byte offset to continue from. + sig { returns(Integer) } + attr_accessor :next_offset + + # Response for exec log tail requests. + sig do + params( + entries: T::Array[Vers::VmExecLogResponse::Entry::OrHash], + eof: T::Boolean, + next_offset: Integer + ).returns(T.attached_class) + end + def self.new( + # Returned log entries. + entries:, + # True when the end of file was reached. + eof:, + # Next byte offset to continue from. + next_offset: + ) + end + + sig do + override.returns( + { + entries: T::Array[Vers::VmExecLogResponse::Entry], + eof: T::Boolean, + next_offset: Integer + } + ) + end + def to_hash + end + + class Entry < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmExecLogResponse::Entry, Vers::Internal::AnyHash) + end + + # Base64-encoded bytes from stdout/stderr chunk. + sig { returns(String) } + attr_accessor :data_b64 + + # Streams available for exec logging. + sig { returns(Vers::VmExecLogResponse::Entry::Stream::TaggedSymbol) } + attr_accessor :stream + + sig { returns(String) } + attr_accessor :timestamp + + sig { returns(T.nilable(String)) } + attr_accessor :exec_id + + # Individual log entry describing emitted stdout/stderr chunk. + sig do + params( + data_b64: String, + stream: Vers::VmExecLogResponse::Entry::Stream::OrSymbol, + timestamp: String, + exec_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # Base64-encoded bytes from stdout/stderr chunk. + data_b64:, + # Streams available for exec logging. + stream:, + timestamp:, + exec_id: nil + ) + end + + sig do + override.returns( + { + data_b64: String, + stream: Vers::VmExecLogResponse::Entry::Stream::TaggedSymbol, + timestamp: String, + exec_id: T.nilable(String) + } + ) + end + def to_hash + end + + # Streams available for exec logging. + module Stream + extend Vers::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Vers::VmExecLogResponse::Entry::Stream) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + STDOUT = + T.let(:stdout, Vers::VmExecLogResponse::Entry::Stream::TaggedSymbol) + STDERR = + T.let(:stderr, Vers::VmExecLogResponse::Entry::Stream::TaggedSymbol) + + sig do + override.returns( + T::Array[Vers::VmExecLogResponse::Entry::Stream::TaggedSymbol] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/vers/models/vm_exec_params.rbi b/rbi/vers/models/vm_exec_params.rbi new file mode 100644 index 0000000..a6b7b96 --- /dev/null +++ b/rbi/vers/models/vm_exec_params.rbi @@ -0,0 +1,33 @@ +# typed: strong + +module Vers + module Models + class VmExecParams < Vers::Models::VmExecRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmExecParams, Vers::Internal::AnyHash) } + + sig { returns(String) } + attr_accessor :vm_id + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(vm_id:, request_options: {}) + end + + sig do + override.returns( + { vm_id: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_exec_request.rbi b/rbi/vers/models/vm_exec_request.rbi new file mode 100644 index 0000000..997ef8e --- /dev/null +++ b/rbi/vers/models/vm_exec_request.rbi @@ -0,0 +1,76 @@ +# typed: strong + +module Vers + module Models + class VmExecRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmExecRequest, Vers::Internal::AnyHash) } + + # Command and arguments to execute. + sig { returns(T::Array[String]) } + attr_accessor :command + + # Optional environment variables to set for the process. + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_accessor :env + + # Optional exec identifier for tracking. + sig { returns(T.nilable(String)) } + attr_accessor :exec_id + + # Optional stdin payload passed to the command. + sig { returns(T.nilable(String)) } + attr_accessor :stdin + + # Timeout in seconds (0 = no timeout). + sig { returns(T.nilable(Integer)) } + attr_accessor :timeout_secs + + # Optional working directory for the command. + sig { returns(T.nilable(String)) } + attr_accessor :working_dir + + # Request body for POST /api/vm/{vm_id}/exec + sig do + params( + command: T::Array[String], + env: T.nilable(T::Hash[Symbol, String]), + exec_id: T.nilable(String), + stdin: T.nilable(String), + timeout_secs: T.nilable(Integer), + working_dir: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # Command and arguments to execute. + command:, + # Optional environment variables to set for the process. + env: nil, + # Optional exec identifier for tracking. + exec_id: nil, + # Optional stdin payload passed to the command. + stdin: nil, + # Timeout in seconds (0 = no timeout). + timeout_secs: nil, + # Optional working directory for the command. + working_dir: nil + ) + end + + sig do + override.returns( + { + command: T::Array[String], + env: T.nilable(T::Hash[Symbol, String]), + exec_id: T.nilable(String), + stdin: T.nilable(String), + timeout_secs: T.nilable(Integer), + working_dir: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_exec_response.rbi b/rbi/vers/models/vm_exec_response.rbi new file mode 100644 index 0000000..6f5ef48 --- /dev/null +++ b/rbi/vers/models/vm_exec_response.rbi @@ -0,0 +1,60 @@ +# typed: strong + +module Vers + module Models + class VmExecResponse < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Vers::VmExecResponse, Vers::Internal::AnyHash) } + + # Exit code returned by the command. + sig { returns(Integer) } + attr_accessor :exit_code + + # UTF-8 decoded stderr (lossy). + sig { returns(String) } + attr_accessor :stderr + + # UTF-8 decoded stdout (lossy). + sig { returns(String) } + attr_accessor :stdout + + # Exec identifier associated with this run. + sig { returns(T.nilable(String)) } + attr_accessor :exec_id + + # Response body for POST /api/vm/{vm_id}/exec + sig do + params( + exit_code: Integer, + stderr: String, + stdout: String, + exec_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # Exit code returned by the command. + exit_code:, + # UTF-8 decoded stderr (lossy). + stderr:, + # UTF-8 decoded stdout (lossy). + stdout:, + # Exec identifier associated with this run. + exec_id: nil + ) + end + + sig do + override.returns( + { + exit_code: Integer, + stderr: String, + stdout: String, + exec_id: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_exec_stream_attach_params.rbi b/rbi/vers/models/vm_exec_stream_attach_params.rbi new file mode 100644 index 0000000..e6aef39 --- /dev/null +++ b/rbi/vers/models/vm_exec_stream_attach_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class VmExecStreamAttachParams < Vers::Models::VmExecStreamAttachRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmExecStreamAttachParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :vm_id + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(vm_id:, request_options: {}) + end + + sig do + override.returns( + { vm_id: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_exec_stream_attach_request.rbi b/rbi/vers/models/vm_exec_stream_attach_request.rbi new file mode 100644 index 0000000..233bce2 --- /dev/null +++ b/rbi/vers/models/vm_exec_stream_attach_request.rbi @@ -0,0 +1,56 @@ +# typed: strong + +module Vers + module Models + class VmExecStreamAttachRequest < Vers::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Vers::VmExecStreamAttachRequest, Vers::Internal::AnyHash) + end + + # Identifier of the exec stream session to reattach to. + sig { returns(String) } + attr_accessor :exec_id + + # Optional cursor to resume from (exclusive). If omitted, the full retained + # backlog is replayed. + sig { returns(T.nilable(Integer)) } + attr_accessor :cursor + + # Start streaming after the latest retained chunk (ignores cursor). + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :from_latest + + # Request body for POST /api/vm/{vm_id}/exec/stream/attach + sig do + params( + exec_id: String, + cursor: T.nilable(Integer), + from_latest: T.nilable(T::Boolean) + ).returns(T.attached_class) + end + def self.new( + # Identifier of the exec stream session to reattach to. + exec_id:, + # Optional cursor to resume from (exclusive). If omitted, the full retained + # backlog is replayed. + cursor: nil, + # Start streaming after the latest retained chunk (ignores cursor). + from_latest: nil + ) + end + + sig do + override.returns( + { + exec_id: String, + cursor: T.nilable(Integer), + from_latest: T.nilable(T::Boolean) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_exec_stream_params.rbi b/rbi/vers/models/vm_exec_stream_params.rbi new file mode 100644 index 0000000..8f40860 --- /dev/null +++ b/rbi/vers/models/vm_exec_stream_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Vers + module Models + class VmExecStreamParams < Vers::Models::VmExecRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Vers::VmExecStreamParams, Vers::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :vm_id + + sig do + params( + vm_id: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(vm_id:, request_options: {}) + end + + sig do + override.returns( + { vm_id: String, request_options: Vers::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/models/vm_get_logs_params.rbi b/rbi/vers/models/vm_get_logs_params.rbi new file mode 100644 index 0000000..f1f206c --- /dev/null +++ b/rbi/vers/models/vm_get_logs_params.rbi @@ -0,0 +1,72 @@ +# typed: strong + +module Vers + module Models + class VmGetLogsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + OrHash = + T.type_alias { T.any(Vers::VmGetLogsParams, Vers::Internal::AnyHash) } + + sig { returns(String) } + attr_accessor :vm_id + + # Maximum number of log entries to return + sig { returns(T.nilable(Integer)) } + attr_reader :max_entries + + sig { params(max_entries: Integer).void } + attr_writer :max_entries + + # Byte offset into the log file (default: 0) + sig { returns(T.nilable(Integer)) } + attr_reader :offset + + sig { params(offset: Integer).void } + attr_writer :offset + + # Filter by 'stdout' or 'stderr' + sig { returns(T.nilable(String)) } + attr_reader :stream + + sig { params(stream: String).void } + attr_writer :stream + + sig do + params( + vm_id: String, + max_entries: Integer, + offset: Integer, + stream: String, + request_options: Vers::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + vm_id:, + # Maximum number of log entries to return + max_entries: nil, + # Byte offset into the log file (default: 0) + offset: nil, + # Filter by 'stdout' or 'stderr' + stream: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + vm_id: String, + max_entries: Integer, + offset: Integer, + stream: String, + request_options: Vers::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/vers/resources/vm.rbi b/rbi/vers/resources/vm.rbi index 1ceaa4b..4105c2b 100644 --- a/rbi/vers/resources/vm.rbi +++ b/rbi/vers/resources/vm.rbi @@ -152,6 +152,113 @@ module Vers ) end + sig do + params( + vm_id: String, + command: T::Array[String], + env: T.nilable(T::Hash[Symbol, String]), + exec_id: T.nilable(String), + stdin: T.nilable(String), + timeout_secs: T.nilable(Integer), + working_dir: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmExecResponse) + end + def exec_( + # VM ID + vm_id, + # Command and arguments to execute. + command:, + # Optional environment variables to set for the process. + env: nil, + # Optional exec identifier for tracking. + exec_id: nil, + # Optional stdin payload passed to the command. + stdin: nil, + # Timeout in seconds (0 = no timeout). + timeout_secs: nil, + # Optional working directory for the command. + working_dir: nil, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + command: T::Array[String], + env: T.nilable(T::Hash[Symbol, String]), + exec_id: T.nilable(String), + stdin: T.nilable(String), + timeout_secs: T.nilable(Integer), + working_dir: T.nilable(String), + request_options: Vers::RequestOptions::OrHash + ).void + end + def exec_stream( + # VM ID + vm_id, + # Command and arguments to execute. + command:, + # Optional environment variables to set for the process. + env: nil, + # Optional exec identifier for tracking. + exec_id: nil, + # Optional stdin payload passed to the command. + stdin: nil, + # Timeout in seconds (0 = no timeout). + timeout_secs: nil, + # Optional working directory for the command. + working_dir: nil, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + exec_id: String, + cursor: T.nilable(Integer), + from_latest: T.nilable(T::Boolean), + request_options: Vers::RequestOptions::OrHash + ).void + end + def exec_stream_attach( + # VM ID + vm_id, + # Identifier of the exec stream session to reattach to. + exec_id:, + # Optional cursor to resume from (exclusive). If omitted, the full retained + # backlog is replayed. + cursor: nil, + # Start streaming after the latest retained chunk (ignores cursor). + from_latest: nil, + request_options: {} + ) + end + + sig do + params( + vm_id: String, + max_entries: Integer, + offset: Integer, + stream: String, + request_options: Vers::RequestOptions::OrHash + ).returns(Vers::VmExecLogResponse) + end + def get_logs( + # VM ID + vm_id, + # Maximum number of log entries to return + max_entries: nil, + # Byte offset into the log file (default: 0) + offset: nil, + # Filter by 'stdout' or 'stderr' + stream: nil, + request_options: {} + ) + end + sig do params( vm_id: String, diff --git a/sig/vers/models.rbs b/sig/vers/models.rbs index f44d839..8040ce5 100644 --- a/sig/vers/models.rbs +++ b/sig/vers/models.rbs @@ -121,8 +121,26 @@ module Vers class VmDeleteResponse = Vers::Models::VmDeleteResponse + class VmExecLogQuery = Vers::Models::VmExecLogQuery + + class VmExecLogResponse = Vers::Models::VmExecLogResponse + + class VmExecParams = Vers::Models::VmExecParams + + class VmExecRequest = Vers::Models::VmExecRequest + + class VmExecResponse = Vers::Models::VmExecResponse + + class VmExecStreamAttachParams = Vers::Models::VmExecStreamAttachParams + + class VmExecStreamAttachRequest = Vers::Models::VmExecStreamAttachRequest + + class VmExecStreamParams = Vers::Models::VmExecStreamParams + module VmFromCommitRequest = Vers::Models::VmFromCommitRequest + class VmGetLogsParams = Vers::Models::VmGetLogsParams + class VmGetMetadataParams = Vers::Models::VmGetMetadataParams class VmGetSSHKeyParams = Vers::Models::VmGetSSHKeyParams diff --git a/sig/vers/models/vm_exec_log_query.rbs b/sig/vers/models/vm_exec_log_query.rbs new file mode 100644 index 0000000..4a5ec6c --- /dev/null +++ b/sig/vers/models/vm_exec_log_query.rbs @@ -0,0 +1,46 @@ +module Vers + module Models + type vm_exec_log_query = + { + max_entries: Integer?, + offset: Integer?, + skip_wait_boot: bool?, + stream: Vers::Models::VmExecLogQuery::stream? + } + + class VmExecLogQuery < Vers::Internal::Type::BaseModel + attr_accessor max_entries: Integer? + + attr_accessor offset: Integer? + + attr_accessor skip_wait_boot: bool? + + attr_accessor stream: Vers::Models::VmExecLogQuery::stream? + + def initialize: ( + ?max_entries: Integer?, + ?offset: Integer?, + ?skip_wait_boot: bool?, + ?stream: Vers::Models::VmExecLogQuery::stream? + ) -> void + + def to_hash: -> { + max_entries: Integer?, + offset: Integer?, + skip_wait_boot: bool?, + stream: Vers::Models::VmExecLogQuery::stream? + } + + type stream = :stdout | :stderr + + module Stream + extend Vers::Internal::Type::Enum + + STDOUT: :stdout + STDERR: :stderr + + def self?.values: -> ::Array[Vers::Models::VmExecLogQuery::stream] + end + end + end +end diff --git a/sig/vers/models/vm_exec_log_response.rbs b/sig/vers/models/vm_exec_log_response.rbs new file mode 100644 index 0000000..dd5f513 --- /dev/null +++ b/sig/vers/models/vm_exec_log_response.rbs @@ -0,0 +1,73 @@ +module Vers + module Models + type vm_exec_log_response = + { + entries: ::Array[Vers::VmExecLogResponse::Entry], + eof: bool, + next_offset: Integer + } + + class VmExecLogResponse < Vers::Internal::Type::BaseModel + attr_accessor entries: ::Array[Vers::VmExecLogResponse::Entry] + + attr_accessor eof: bool + + attr_accessor next_offset: Integer + + def initialize: ( + entries: ::Array[Vers::VmExecLogResponse::Entry], + eof: bool, + next_offset: Integer + ) -> void + + def to_hash: -> { + entries: ::Array[Vers::VmExecLogResponse::Entry], + eof: bool, + next_offset: Integer + } + + type entry = + { + :data_b64 => String, + stream: Vers::Models::VmExecLogResponse::Entry::stream, + timestamp: String, + exec_id: String? + } + + class Entry < Vers::Internal::Type::BaseModel + attr_accessor data_b64: String + + attr_accessor stream: Vers::Models::VmExecLogResponse::Entry::stream + + attr_accessor timestamp: String + + attr_accessor exec_id: String? + + def initialize: ( + data_b64: String, + stream: Vers::Models::VmExecLogResponse::Entry::stream, + timestamp: String, + ?exec_id: String? + ) -> void + + def to_hash: -> { + :data_b64 => String, + stream: Vers::Models::VmExecLogResponse::Entry::stream, + timestamp: String, + exec_id: String? + } + + type stream = :stdout | :stderr + + module Stream + extend Vers::Internal::Type::Enum + + STDOUT: :stdout + STDERR: :stderr + + def self?.values: -> ::Array[Vers::Models::VmExecLogResponse::Entry::stream] + end + end + end + end +end diff --git a/sig/vers/models/vm_exec_params.rbs b/sig/vers/models/vm_exec_params.rbs new file mode 100644 index 0000000..0845ec2 --- /dev/null +++ b/sig/vers/models/vm_exec_params.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type vm_exec_params = + { vm_id: String } & Vers::Internal::Type::request_parameters + + class VmExecParams < Vers::Models::VmExecRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def vm_id: -> String + + def vm_id=: (String _) -> String + + def initialize: ( + vm_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { vm_id: String, request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_exec_request.rbs b/sig/vers/models/vm_exec_request.rbs new file mode 100644 index 0000000..c16b0b1 --- /dev/null +++ b/sig/vers/models/vm_exec_request.rbs @@ -0,0 +1,45 @@ +module Vers + module Models + type vm_exec_request = + { + command: ::Array[String], + env: ::Hash[Symbol, String]?, + exec_id: String?, + stdin: String?, + timeout_secs: Integer?, + working_dir: String? + } + + class VmExecRequest < Vers::Internal::Type::BaseModel + attr_accessor command: ::Array[String] + + attr_accessor env: ::Hash[Symbol, String]? + + attr_accessor exec_id: String? + + attr_accessor stdin: String? + + attr_accessor timeout_secs: Integer? + + attr_accessor working_dir: String? + + def initialize: ( + command: ::Array[String], + ?env: ::Hash[Symbol, String]?, + ?exec_id: String?, + ?stdin: String?, + ?timeout_secs: Integer?, + ?working_dir: String? + ) -> void + + def to_hash: -> { + command: ::Array[String], + env: ::Hash[Symbol, String]?, + exec_id: String?, + stdin: String?, + timeout_secs: Integer?, + working_dir: String? + } + end + end +end diff --git a/sig/vers/models/vm_exec_response.rbs b/sig/vers/models/vm_exec_response.rbs new file mode 100644 index 0000000..ce51631 --- /dev/null +++ b/sig/vers/models/vm_exec_response.rbs @@ -0,0 +1,30 @@ +module Vers + module Models + type vm_exec_response = + { exit_code: Integer, stderr: String, stdout: String, exec_id: String? } + + class VmExecResponse < Vers::Internal::Type::BaseModel + attr_accessor exit_code: Integer + + attr_accessor stderr: String + + attr_accessor stdout: String + + attr_accessor exec_id: String? + + def initialize: ( + exit_code: Integer, + stderr: String, + stdout: String, + ?exec_id: String? + ) -> void + + def to_hash: -> { + exit_code: Integer, + stderr: String, + stdout: String, + exec_id: String? + } + end + end +end diff --git a/sig/vers/models/vm_exec_stream_attach_params.rbs b/sig/vers/models/vm_exec_stream_attach_params.rbs new file mode 100644 index 0000000..ce3135a --- /dev/null +++ b/sig/vers/models/vm_exec_stream_attach_params.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type vm_exec_stream_attach_params = + { vm_id: String } & Vers::Internal::Type::request_parameters + + class VmExecStreamAttachParams < Vers::Models::VmExecStreamAttachRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def vm_id: -> String + + def vm_id=: (String _) -> String + + def initialize: ( + vm_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { vm_id: String, request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_exec_stream_attach_request.rbs b/sig/vers/models/vm_exec_stream_attach_request.rbs new file mode 100644 index 0000000..10bd0e6 --- /dev/null +++ b/sig/vers/models/vm_exec_stream_attach_request.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type vm_exec_stream_attach_request = + { exec_id: String, cursor: Integer?, from_latest: bool? } + + class VmExecStreamAttachRequest < Vers::Internal::Type::BaseModel + attr_accessor exec_id: String + + attr_accessor cursor: Integer? + + attr_accessor from_latest: bool? + + def initialize: ( + exec_id: String, + ?cursor: Integer?, + ?from_latest: bool? + ) -> void + + def to_hash: -> { exec_id: String, cursor: Integer?, from_latest: bool? } + end + end +end diff --git a/sig/vers/models/vm_exec_stream_params.rbs b/sig/vers/models/vm_exec_stream_params.rbs new file mode 100644 index 0000000..1d6a04a --- /dev/null +++ b/sig/vers/models/vm_exec_stream_params.rbs @@ -0,0 +1,22 @@ +module Vers + module Models + type vm_exec_stream_params = + { vm_id: String } & Vers::Internal::Type::request_parameters + + class VmExecStreamParams < Vers::Models::VmExecRequest + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + def vm_id: -> String + + def vm_id=: (String _) -> String + + def initialize: ( + vm_id: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { vm_id: String, request_options: Vers::RequestOptions } + end + end +end diff --git a/sig/vers/models/vm_get_logs_params.rbs b/sig/vers/models/vm_get_logs_params.rbs new file mode 100644 index 0000000..58af455 --- /dev/null +++ b/sig/vers/models/vm_get_logs_params.rbs @@ -0,0 +1,42 @@ +module Vers + module Models + type vm_get_logs_params = + { vm_id: String, max_entries: Integer, offset: Integer, stream: String } + & Vers::Internal::Type::request_parameters + + class VmGetLogsParams < Vers::Internal::Type::BaseModel + extend Vers::Internal::Type::RequestParameters::Converter + include Vers::Internal::Type::RequestParameters + + attr_accessor vm_id: String + + attr_reader max_entries: Integer? + + def max_entries=: (Integer) -> Integer + + attr_reader offset: Integer? + + def offset=: (Integer) -> Integer + + attr_reader stream: String? + + def stream=: (String) -> String + + def initialize: ( + vm_id: String, + ?max_entries: Integer, + ?offset: Integer, + ?stream: String, + ?request_options: Vers::request_opts + ) -> void + + def to_hash: -> { + vm_id: String, + max_entries: Integer, + offset: Integer, + stream: String, + request_options: Vers::RequestOptions + } + end + end +end diff --git a/sig/vers/resources/vm.rbs b/sig/vers/resources/vm.rbs index 2121b4c..70f74de 100644 --- a/sig/vers/resources/vm.rbs +++ b/sig/vers/resources/vm.rbs @@ -55,6 +55,44 @@ module Vers ?request_options: Vers::request_opts ) -> Vers::NewVmResponse + def exec_: ( + String vm_id, + command: ::Array[String], + ?env: ::Hash[Symbol, String]?, + ?exec_id: String?, + ?stdin: String?, + ?timeout_secs: Integer?, + ?working_dir: String?, + ?request_options: Vers::request_opts + ) -> Vers::VmExecResponse + + def exec_stream: ( + String vm_id, + command: ::Array[String], + ?env: ::Hash[Symbol, String]?, + ?exec_id: String?, + ?stdin: String?, + ?timeout_secs: Integer?, + ?working_dir: String?, + ?request_options: Vers::request_opts + ) -> nil + + def exec_stream_attach: ( + String vm_id, + exec_id: String, + ?cursor: Integer?, + ?from_latest: bool?, + ?request_options: Vers::request_opts + ) -> nil + + def get_logs: ( + String vm_id, + ?max_entries: Integer, + ?offset: Integer, + ?stream: String, + ?request_options: Vers::request_opts + ) -> Vers::VmExecLogResponse + def get_metadata: ( String vm_id, ?request_options: Vers::request_opts diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index bad1056..f165371 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -125,6 +125,67 @@ def test_create_root_required_params end end + def test_exec__required_params + skip("Mock server tests are disabled") + + response = @vers.vm.exec_("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", command: ["string"]) + + assert_pattern do + response => Vers::VmExecResponse + end + + assert_pattern do + response => { + exit_code: Integer, + stderr: String, + stdout: String, + exec_id: String | nil + } + end + end + + def test_exec_stream_required_params + skip("Mock server tests are disabled") + + response = @vers.vm.exec_stream("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", command: ["string"]) + + assert_pattern do + response => nil + end + end + + def test_exec_stream_attach_required_params + skip("Mock server tests are disabled") + + response = + @vers.vm.exec_stream_attach( + "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", + exec_id: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e" + ) + + assert_pattern do + response => nil + end + end + + def test_get_logs + skip("Mock server tests are disabled") + + response = @vers.vm.get_logs("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") + + assert_pattern do + response => Vers::VmExecLogResponse + end + + assert_pattern do + response => { + entries: ^(Vers::Internal::Type::ArrayOf[Vers::VmExecLogResponse::Entry]), + eof: Vers::Internal::Type::Boolean, + next_offset: Integer + } + end + end + def test_get_metadata skip("Mock server tests are disabled") From 2a21475e409339df13b220300256d7b23853ce01 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 02:31:50 +0000 Subject: [PATCH 097/100] fix: multipart encoding for file arrays --- lib/vers/internal/util.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/vers/internal/util.rb b/lib/vers/internal/util.rb index ce68c16..97f4d82 100644 --- a/lib/vers/internal/util.rb +++ b/lib/vers/internal/util.rb @@ -610,6 +610,7 @@ def encode_query_params(query) # # @return [Array(String, Enumerable)] private def encode_multipart_streaming(body) + # rubocop:disable Style/CaseEquality # RFC 1521 Section 7.2.1 says we should have 70 char maximum for boundary length boundary = SecureRandom.urlsafe_base64(46) @@ -619,7 +620,7 @@ def encode_query_params(query) in Hash body.each do |key, val| case val - in Array if val.all? { primitive?(_1) } + in Array if val.all? { primitive?(_1) || Vers::Internal::Type::FileInput === _1 } val.each do |v| write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing) end @@ -635,6 +636,7 @@ def encode_query_params(query) fused_io = fused_enum(strio) { closing.each(&:call) } [boundary, fused_io] + # rubocop:enable Style/CaseEquality end # @api private From e8619d45eb78e34f801847b18038b744a15a4a6a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 06:57:27 +0000 Subject: [PATCH 098/100] feat(api): api update --- .stats.yml | 4 ++-- lib/vers/models/new_root_request.rb | 9 ++++++++- lib/vers/models/vm.rb | 9 ++++++++- rbi/vers/models/new_root_request.rbi | 6 ++++++ rbi/vers/models/vm.rbi | 12 +++++++++--- sig/vers/models/new_root_request.rbs | 5 +++++ sig/vers/models/vm.rbs | 11 ++++++++--- test/vers/resources/vm_test.rb | 3 ++- 8 files changed, 48 insertions(+), 11 deletions(-) diff --git a/.stats.yml b/.stats.yml index 89eb0be..9be1623 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 43 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-a6de1a50a31aa4333107911c3554e93721cd63b7cc198473eab21b70285c501a.yml -openapi_spec_hash: 1037572cb7a4c93efb2cc6bd768b31d1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-a2ae1eee2df995df2c933fb8a38f86716e664b6dcbfe295992656f2eb6337e00.yml +openapi_spec_hash: fd75a30e4b4090caefd88086d8db1f6e config_hash: 62e0373130b214d9edcdce20568df809 diff --git a/lib/vers/models/new_root_request.rb b/lib/vers/models/new_root_request.rb index c076300..10762f6 100644 --- a/lib/vers/models/new_root_request.rb +++ b/lib/vers/models/new_root_request.rb @@ -32,6 +32,11 @@ class VmConfig < Vers::Internal::Type::BaseModel # @return [String, nil] optional :kernel_name, String, nil?: true + # @!attribute labels + # + # @return [Hash{Symbol=>String}, nil] + optional :labels, Vers::Internal::Type::HashOf[String], nil?: true + # @!attribute mem_size_mib # The RAM size, in MiB. # @@ -44,7 +49,7 @@ class VmConfig < Vers::Internal::Type::BaseModel # @return [Integer, nil] optional :vcpu_count, Integer, nil?: true - # @!method initialize(fs_size_mib: nil, image_name: nil, kernel_name: nil, mem_size_mib: nil, vcpu_count: nil) + # @!method initialize(fs_size_mib: nil, image_name: nil, kernel_name: nil, labels: nil, mem_size_mib: nil, vcpu_count: nil) # Struct representing configuration options common to all VMs # # @param fs_size_mib [Integer, nil] The disk size, in MiB. @@ -53,6 +58,8 @@ class VmConfig < Vers::Internal::Type::BaseModel # # @param kernel_name [String, nil] The kernel name. Currently, must be 'default.bin' # + # @param labels [Hash{Symbol=>String}, nil] + # # @param mem_size_mib [Integer, nil] The RAM size, in MiB. # # @param vcpu_count [Integer, nil] How many vCPUs to allocate to this VM (and its children) diff --git a/lib/vers/models/vm.rb b/lib/vers/models/vm.rb index cc9c46e..8e58c0f 100644 --- a/lib/vers/models/vm.rb +++ b/lib/vers/models/vm.rb @@ -25,7 +25,12 @@ class VmAPI < Vers::Internal::Type::BaseModel # @return [String] required :vm_id, String - # @!method initialize(created_at:, owner_id:, state:, vm_id:) + # @!attribute labels + # + # @return [Hash{Symbol=>String}, nil] + optional :labels, Vers::Internal::Type::HashOf[String], nil?: true + + # @!method initialize(created_at:, owner_id:, state:, vm_id:, labels: nil) # @param created_at [Time] # # @param owner_id [String] @@ -33,6 +38,8 @@ class VmAPI < Vers::Internal::Type::BaseModel # @param state [Symbol, Vers::Models::VmAPI::State] The state of a VM # # @param vm_id [String] + # + # @param labels [Hash{Symbol=>String}, nil] # The state of a VM # diff --git a/rbi/vers/models/new_root_request.rbi b/rbi/vers/models/new_root_request.rbi index 38ed095..b36fb86 100644 --- a/rbi/vers/models/new_root_request.rbi +++ b/rbi/vers/models/new_root_request.rbi @@ -46,6 +46,9 @@ module Vers sig { returns(T.nilable(String)) } attr_accessor :kernel_name + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_accessor :labels + # The RAM size, in MiB. sig { returns(T.nilable(Integer)) } attr_accessor :mem_size_mib @@ -60,6 +63,7 @@ module Vers fs_size_mib: T.nilable(Integer), image_name: T.nilable(String), kernel_name: T.nilable(String), + labels: T.nilable(T::Hash[Symbol, String]), mem_size_mib: T.nilable(Integer), vcpu_count: T.nilable(Integer) ).returns(T.attached_class) @@ -71,6 +75,7 @@ module Vers image_name: nil, # The kernel name. Currently, must be 'default.bin' kernel_name: nil, + labels: nil, # The RAM size, in MiB. mem_size_mib: nil, # How many vCPUs to allocate to this VM (and its children) @@ -84,6 +89,7 @@ module Vers fs_size_mib: T.nilable(Integer), image_name: T.nilable(String), kernel_name: T.nilable(String), + labels: T.nilable(T::Hash[Symbol, String]), mem_size_mib: T.nilable(Integer), vcpu_count: T.nilable(Integer) } diff --git a/rbi/vers/models/vm.rbi b/rbi/vers/models/vm.rbi index 9180e7d..b42978d 100644 --- a/rbi/vers/models/vm.rbi +++ b/rbi/vers/models/vm.rbi @@ -18,12 +18,16 @@ module Vers sig { returns(String) } attr_accessor :vm_id + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_accessor :labels + sig do params( created_at: Time, owner_id: String, state: Vers::VmAPI::State::OrSymbol, - vm_id: String + vm_id: String, + labels: T.nilable(T::Hash[Symbol, String]) ).returns(T.attached_class) end def self.new( @@ -31,7 +35,8 @@ module Vers owner_id:, # The state of a VM state:, - vm_id: + vm_id:, + labels: nil ) end @@ -41,7 +46,8 @@ module Vers created_at: Time, owner_id: String, state: Vers::VmAPI::State::TaggedSymbol, - vm_id: String + vm_id: String, + labels: T.nilable(T::Hash[Symbol, String]) } ) end diff --git a/sig/vers/models/new_root_request.rbs b/sig/vers/models/new_root_request.rbs index 2d53d5a..564c368 100644 --- a/sig/vers/models/new_root_request.rbs +++ b/sig/vers/models/new_root_request.rbs @@ -14,6 +14,7 @@ module Vers fs_size_mib: Integer?, image_name: String?, kernel_name: String?, + labels: ::Hash[Symbol, String]?, mem_size_mib: Integer?, vcpu_count: Integer? } @@ -25,6 +26,8 @@ module Vers attr_accessor kernel_name: String? + attr_accessor labels: ::Hash[Symbol, String]? + attr_accessor mem_size_mib: Integer? attr_accessor vcpu_count: Integer? @@ -33,6 +36,7 @@ module Vers ?fs_size_mib: Integer?, ?image_name: String?, ?kernel_name: String?, + ?labels: ::Hash[Symbol, String]?, ?mem_size_mib: Integer?, ?vcpu_count: Integer? ) -> void @@ -41,6 +45,7 @@ module Vers fs_size_mib: Integer?, image_name: String?, kernel_name: String?, + labels: ::Hash[Symbol, String]?, mem_size_mib: Integer?, vcpu_count: Integer? } diff --git a/sig/vers/models/vm.rbs b/sig/vers/models/vm.rbs index 3d122c7..483cce0 100644 --- a/sig/vers/models/vm.rbs +++ b/sig/vers/models/vm.rbs @@ -5,7 +5,8 @@ module Vers created_at: Time, owner_id: String, state: Vers::Models::VmAPI::state, - vm_id: String + vm_id: String, + labels: ::Hash[Symbol, String]? } class VmAPI < Vers::Internal::Type::BaseModel @@ -17,18 +18,22 @@ module Vers attr_accessor vm_id: String + attr_accessor labels: ::Hash[Symbol, String]? + def initialize: ( created_at: Time, owner_id: String, state: Vers::Models::VmAPI::state, - vm_id: String + vm_id: String, + ?labels: ::Hash[Symbol, String]? ) -> void def to_hash: -> { created_at: Time, owner_id: String, state: Vers::Models::VmAPI::state, - vm_id: String + vm_id: String, + labels: ::Hash[Symbol, String]? } type state = :booting | :running | :paused | :sleeping | :dead diff --git a/test/vers/resources/vm_test.rb b/test/vers/resources/vm_test.rb index f165371..b4d049d 100644 --- a/test/vers/resources/vm_test.rb +++ b/test/vers/resources/vm_test.rb @@ -267,7 +267,8 @@ def test_status created_at: Time, owner_id: String, state: Vers::VmAPI::State, - vm_id: String + vm_id: String, + labels: ^(Vers::Internal::Type::HashOf[String]) | nil } end end From 2d602f2207ee06a7ed28dd2643dcefb1a1d5a89e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 02:28:05 +0000 Subject: [PATCH 099/100] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9be1623..c3a88f1 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 43 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-a2ae1eee2df995df2c933fb8a38f86716e664b6dcbfe295992656f2eb6337e00.yml -openapi_spec_hash: fd75a30e4b4090caefd88086d8db1f6e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hdr-parth-agrawal%2Ffirecracker-manager-844cf9042a8f436f8a2935613fd55f204009d774ab32facb9a44a0a81ae1b5bf.yml +openapi_spec_hash: f7510a9ee0858fec9407b08ea53d8052 config_hash: 62e0373130b214d9edcdce20568df809 From 5fc0e8b4c7ca923f1658c37a57e908cd43ebb565 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2026 02:28:48 +0000 Subject: [PATCH 100/100] release: 0.1.0-alpha.3 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 106 ++++++++++++++++++++++++++++++++++ Gemfile.lock | 2 +- README.md | 2 +- lib/vers/version.rb | 2 +- 5 files changed, 110 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f14b480..aaf968a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.2" + ".": "0.1.0-alpha.3" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 61756a8..e42f10f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,111 @@ # Changelog +## 0.1.0-alpha.3 (2026-04-10) + +Full Changelog: [v0.1.0-alpha.2...v0.1.0-alpha.3](https://github.com/hdresearch/vers-sdk-ruby/compare/v0.1.0-alpha.2...v0.1.0-alpha.3) + +### Features + +* **api:** api update ([e8619d4](https://github.com/hdresearch/vers-sdk-ruby/commit/e8619d45eb78e34f801847b18038b744a15a4a6a)) +* **api:** api update ([d72ad8b](https://github.com/hdresearch/vers-sdk-ruby/commit/d72ad8b84928a27274a22607bc7a58cba392d8c8)) +* **api:** api update ([515ded8](https://github.com/hdresearch/vers-sdk-ruby/commit/515ded82da207df1d586056648d5d4c1ee341deb)) +* **api:** api update ([4b78803](https://github.com/hdresearch/vers-sdk-ruby/commit/4b788030b373f81a5e9a395279fa2c344a200f4c)) +* **api:** api update ([1b58905](https://github.com/hdresearch/vers-sdk-ruby/commit/1b58905b0693003a011fd0ca2a852dd3b1962062)) +* **api:** api update ([0356f52](https://github.com/hdresearch/vers-sdk-ruby/commit/0356f523708b84f343b713e15a88460b035efafc)) +* **api:** api update ([34ff3af](https://github.com/hdresearch/vers-sdk-ruby/commit/34ff3afbbc644d5c667991968a66d764e5e2bb7f)) +* **api:** api update ([8e7b32c](https://github.com/hdresearch/vers-sdk-ruby/commit/8e7b32c6bcb46c9a067b5652ac0f85c4b8ef6339)) +* **api:** api update ([e121137](https://github.com/hdresearch/vers-sdk-ruby/commit/e12113799d1417a7e9b1cb198c861d33734e415f)) +* **api:** api update ([fadc8ae](https://github.com/hdresearch/vers-sdk-ruby/commit/fadc8ae72856b7f1356684fd9fb409aab17d05f7)) +* **api:** api update ([de1f4dd](https://github.com/hdresearch/vers-sdk-ruby/commit/de1f4dd2da66c7a3c12706e516ce55f3c25b8f7e)) +* **api:** api update ([ab92aae](https://github.com/hdresearch/vers-sdk-ruby/commit/ab92aaee0801f14edc87894a25b37d75b82e6a37)) +* **api:** api update ([0867e37](https://github.com/hdresearch/vers-sdk-ruby/commit/0867e3761f6f59f297a076fc264bea452fb7f750)) +* **api:** api update ([f0665a8](https://github.com/hdresearch/vers-sdk-ruby/commit/f0665a8afe73bcb01c877bbec6c44b738fa4ec01)) +* **api:** api update ([4926510](https://github.com/hdresearch/vers-sdk-ruby/commit/4926510abaf5fe7d1d3d195331604758298f0b04)) +* **api:** api update ([f663a6d](https://github.com/hdresearch/vers-sdk-ruby/commit/f663a6d59595989bfab82876c04e9827b5500354)) +* **api:** api update ([5ef92c7](https://github.com/hdresearch/vers-sdk-ruby/commit/5ef92c7bf6da8239a508b5872e795c2d98d683fc)) +* **api:** api update ([262b442](https://github.com/hdresearch/vers-sdk-ruby/commit/262b442e179fe8f8b403c24ecb8d1b9a7e953a75)) +* **api:** api update ([5abf2d1](https://github.com/hdresearch/vers-sdk-ruby/commit/5abf2d1ff4ac07c40567bc145809d7de6c4af53f)) +* **api:** api update ([46da556](https://github.com/hdresearch/vers-sdk-ruby/commit/46da556ef7ba1842dc4a8c9b5c321ca993983452)) +* **api:** api update ([e4f2210](https://github.com/hdresearch/vers-sdk-ruby/commit/e4f2210c676bae01ff182c18305de87af135a202)) +* **api:** api update ([8dc995b](https://github.com/hdresearch/vers-sdk-ruby/commit/8dc995b6fb67fc46186f097074d1a0c5a154ef6e)) +* **api:** api update ([1f5c788](https://github.com/hdresearch/vers-sdk-ruby/commit/1f5c78817197492cf1af0bb53a0298dfc464afe9)) +* **api:** api update ([cb57d71](https://github.com/hdresearch/vers-sdk-ruby/commit/cb57d71515935194ddc9f1b930cfd4606cd143ec)) +* **api:** api update ([d567bf0](https://github.com/hdresearch/vers-sdk-ruby/commit/d567bf0d09f939165476fa2cfb4f57d6365ee445)) +* **api:** api update ([96d1dc7](https://github.com/hdresearch/vers-sdk-ruby/commit/96d1dc7cd75e33b1e6b234df930f371e5e1d8b46)) +* **api:** api update ([d19bf01](https://github.com/hdresearch/vers-sdk-ruby/commit/d19bf01e3a6e5eaabd4fe6058215ccd8958f2d2b)) +* **api:** api update ([64feb46](https://github.com/hdresearch/vers-sdk-ruby/commit/64feb4617cc9645b10c497a927ee7ec595f59032)) +* **api:** api update ([79debb2](https://github.com/hdresearch/vers-sdk-ruby/commit/79debb29c0a891cdbce9965252380a730aad6d68)) +* **api:** api update ([d5cdf7c](https://github.com/hdresearch/vers-sdk-ruby/commit/d5cdf7c235dac0cb0d2a1414ce2cf2abb8792710)) +* **api:** api update ([b2305b2](https://github.com/hdresearch/vers-sdk-ruby/commit/b2305b2bd64b1e6137b5a6c3406d9317a830091c)) +* **api:** api update ([f5b3f21](https://github.com/hdresearch/vers-sdk-ruby/commit/f5b3f21b47a04bb0482deda9580992aa9dfa407f)) +* **api:** api update ([832ddb6](https://github.com/hdresearch/vers-sdk-ruby/commit/832ddb6608153182d51aa83019fef0270bee4618)) +* **api:** api update ([a2cc96b](https://github.com/hdresearch/vers-sdk-ruby/commit/a2cc96bfe209d100a1e6e75b85313cd422d818b5)) +* **api:** api update ([3352c8a](https://github.com/hdresearch/vers-sdk-ruby/commit/3352c8ad414dec234bda610fdba8858e0e933033)) +* **api:** api update ([0a87453](https://github.com/hdresearch/vers-sdk-ruby/commit/0a874537387f5e3bef936296b433da329c4ab0a8)) +* **api:** api update ([4743273](https://github.com/hdresearch/vers-sdk-ruby/commit/47432739732d14b8589e9947ec3377e8c0b4af6c)) +* **api:** api update ([a0a461e](https://github.com/hdresearch/vers-sdk-ruby/commit/a0a461ee4439b09d5f1c10eb1fa10d5852fe52d0)) +* **api:** api update ([6fdb933](https://github.com/hdresearch/vers-sdk-ruby/commit/6fdb93355d47a1e4e8a3fb8646fe691f1e40f456)) +* **api:** api update ([f25708d](https://github.com/hdresearch/vers-sdk-ruby/commit/f25708d4a743ffc54d69dcf31a1fd92d20b928ae)) +* expose response headers for both streams and errors ([49657bc](https://github.com/hdresearch/vers-sdk-ruby/commit/49657bcf404a7f11cec02f8d2f67640e73a6959b)) +* handle thread interrupts in the core HTTP client ([7ce44a9](https://github.com/hdresearch/vers-sdk-ruby/commit/7ce44a9bff9d50bd71431cb3bd302c0d762ad9da)) + + +### Bug Fixes + +* absolutely qualified uris should always override the default ([9fd3d83](https://github.com/hdresearch/vers-sdk-ruby/commit/9fd3d831212335f596571e30211697b67915622e)) +* align path encoding with RFC 3986 section 3.3 ([b35149f](https://github.com/hdresearch/vers-sdk-ruby/commit/b35149faf463fd5e8e33a994e9d5729f6933b052)) +* always send `filename=...` for multipart requests where a file is expected ([20f6509](https://github.com/hdresearch/vers-sdk-ruby/commit/20f6509685d769e8b144074f853f75da9437547d)) +* better thread safety via early initializing SSL store during HTTP client creation ([8bd0408](https://github.com/hdresearch/vers-sdk-ruby/commit/8bd0408942aaabfd2da007f652d42965d8b19e3a)) +* bump sorbet version and fix new type errors from the breaking change ([fa59039](https://github.com/hdresearch/vers-sdk-ruby/commit/fa59039affa570785adb1923061c4760f8db9424)) +* calling `break` out of streams should be instantaneous ([ecfd335](https://github.com/hdresearch/vers-sdk-ruby/commit/ecfd33518fef29c6222e056f78c4560ebade717f)) +* **client:** always add content-length to post body, even when empty ([eb3ea72](https://github.com/hdresearch/vers-sdk-ruby/commit/eb3ea7229cfc9b04e83fde2810fab81ff74c0fb4)) +* **client:** loosen json header parsing ([957d356](https://github.com/hdresearch/vers-sdk-ruby/commit/957d35627b9416083c44e3b12b2c4afdb597a9aa)) +* coroutine leaks from connection pool ([a5254d2](https://github.com/hdresearch/vers-sdk-ruby/commit/a5254d28f8becc2607764f756651ebc4b3481eda)) +* **internal:** correct multipart form field name encoding ([f6eae25](https://github.com/hdresearch/vers-sdk-ruby/commit/f6eae252cf9442d958ac43b3f7116e4d90d75694)) +* issue where json.parse errors when receiving HTTP 204 with nobody ([87443ec](https://github.com/hdresearch/vers-sdk-ruby/commit/87443ec15fceb3e2e34bf9aaf8c78ffd7cae3528)) +* multipart encoding for file arrays ([2a21475](https://github.com/hdresearch/vers-sdk-ruby/commit/2a21475e409339df13b220300256d7b23853ce01)) +* properly mock time in ruby ci tests ([895712f](https://github.com/hdresearch/vers-sdk-ruby/commit/895712fecdacc3629453b184b0dcc523c861d45c)) +* shorten multipart boundary sep to less than RFC specificed max length ([d152d0e](https://github.com/hdresearch/vers-sdk-ruby/commit/d152d0eda36017fc6ec00c29bcbace111ee360b9)) +* should not reuse buffers for `IO.copy_stream` interop ([53ea770](https://github.com/hdresearch/vers-sdk-ruby/commit/53ea770bd552dcc57b4c0f686b042660fe18226c)) +* variable name typo ([6564f11](https://github.com/hdresearch/vers-sdk-ruby/commit/6564f11649a0323a74f2a507f84399aadd41d6c7)) + + +### Performance Improvements + +* faster code formatting ([bfb35ca](https://github.com/hdresearch/vers-sdk-ruby/commit/bfb35cad0e8dded737437b40e3b94f036fa0e7f8)) + + +### Chores + +* add json schema comment for rubocop.yml ([0a2b891](https://github.com/hdresearch/vers-sdk-ruby/commit/0a2b891b944131e8775c6272f081bd2511a52c6e)) +* bump dependency version and update sorbet types ([3d6246e](https://github.com/hdresearch/vers-sdk-ruby/commit/3d6246e2c5eb966baadbe31366c6b032d6942372)) +* **ci:** add build step ([d2fb9ac](https://github.com/hdresearch/vers-sdk-ruby/commit/d2fb9acfd5d994bccb502ff36ac6a110f9f57d62)) +* **ci:** skip lint on metadata-only changes ([01835c3](https://github.com/hdresearch/vers-sdk-ruby/commit/01835c30c2428cd97bd6bfa2eab6a2f7d009c737)) +* **ci:** skip uploading artifacts on stainless-internal branches ([3e091ad](https://github.com/hdresearch/vers-sdk-ruby/commit/3e091ad39499c0f9ef4c99249561a42267d4d93c)) +* **ci:** support opting out of skipping builds on metadata-only commits ([b63d6c9](https://github.com/hdresearch/vers-sdk-ruby/commit/b63d6c9c4048bbe26db81f10a2ca18f8a1e86ce2)) +* collect metadata from type DSL ([044f442](https://github.com/hdresearch/vers-sdk-ruby/commit/044f4422ef1948051a5b212650f8d368e7953ebc)) +* do not install brew dependencies in ./scripts/bootstrap by default ([3c5912f](https://github.com/hdresearch/vers-sdk-ruby/commit/3c5912f19ef879816788299817e26cd966e5242c)) +* **docs:** remove www prefix ([d505a1c](https://github.com/hdresearch/vers-sdk-ruby/commit/d505a1c50fa476eb29abe3bddf9b8036ae7b697e)) +* explicitly require "base64" gem ([d845469](https://github.com/hdresearch/vers-sdk-ruby/commit/d845469452ac4f0255c10b4cea5c29821022d014)) +* ignore linter error for tests having large collections ([046bb78](https://github.com/hdresearch/vers-sdk-ruby/commit/046bb7824445c0fab978133f42cfe3d3dd878a9f)) +* **internal:** codegen related update ([de05ce7](https://github.com/hdresearch/vers-sdk-ruby/commit/de05ce752673e4bda50f397495377047e29f235f)) +* **internal:** codegen related update ([fbb3b16](https://github.com/hdresearch/vers-sdk-ruby/commit/fbb3b16e6995f970c537c778684a3820a871498b)) +* **internal:** codegen related update ([ae49c77](https://github.com/hdresearch/vers-sdk-ruby/commit/ae49c775e7c235dc56393aef5b41bd9d5090a916)) +* **internal:** codegen related update ([b0ef527](https://github.com/hdresearch/vers-sdk-ruby/commit/b0ef527585555d084ed9e9f24981ed62e2ea9008)) +* **internal:** codegen related update ([c9e7de1](https://github.com/hdresearch/vers-sdk-ruby/commit/c9e7de1a5cfee1072d39a29090258f022cd141e0)) +* **internal:** codegen related update ([d36fed0](https://github.com/hdresearch/vers-sdk-ruby/commit/d36fed0ff3a76236fa4077ab8560173df0c1153f)) +* **internal:** codegen related update ([eed56ef](https://github.com/hdresearch/vers-sdk-ruby/commit/eed56ef375f4843eed4e3af57367dd26239061d9)) +* **internal:** increase visibility of internal helper method ([fb8f268](https://github.com/hdresearch/vers-sdk-ruby/commit/fb8f26853146601300e5c4447266b35a239a4ea6)) +* **internal:** remove mock server code ([13cf8a8](https://github.com/hdresearch/vers-sdk-ruby/commit/13cf8a82687157aca17404407fdc9c0810c1d935)) +* **internal:** tweak CI branches ([5fcf2ce](https://github.com/hdresearch/vers-sdk-ruby/commit/5fcf2ce59839b5c9bd6a4a126346d5c3838bf472)) +* **internal:** update `actions/checkout` version ([d1ef0f9](https://github.com/hdresearch/vers-sdk-ruby/commit/d1ef0f910a5d24c26dcc9c275c50fe6e7a07657e)) +* **internal:** update comment in script ([78697f1](https://github.com/hdresearch/vers-sdk-ruby/commit/78697f1f9aff2ff34a8d4cd8aa4d4819dcc0787f)) +* **internal:** update gitignore ([7afc188](https://github.com/hdresearch/vers-sdk-ruby/commit/7afc1881784089f78224b57d23f7188a1210cf53)) +* move `cgi` into dependencies for ruby 4 ([21a953a](https://github.com/hdresearch/vers-sdk-ruby/commit/21a953a1d3e5276073d7a1efb89f3bd5cad92ed9)) +* sync repo ([039c06d](https://github.com/hdresearch/vers-sdk-ruby/commit/039c06d60b1c1cafdd551120432e3829dfac30de)) +* update @stainless-api/prism-cli to v5.15.0 ([bcd7ba0](https://github.com/hdresearch/vers-sdk-ruby/commit/bcd7ba0e16e062ec7965497950dc6f0082420cb7)) +* update mock server docs ([abd9570](https://github.com/hdresearch/vers-sdk-ruby/commit/abd9570808ca2cd921ac09952226fb7f61ce4044)) + ## 0.1.0-alpha.2 (2025-07-31) Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/hdresearch/vers-sdk-ruby/compare/v0.1.0-alpha.1...v0.1.0-alpha.2) diff --git a/Gemfile.lock b/Gemfile.lock index 42cfe66..8528baf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - vers (0.1.0.pre.alpha.2) + vers (0.1.0.pre.alpha.3) cgi connection_pool diff --git a/README.md b/README.md index c37f769..32bb251 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "vers", "~> 0.1.0.pre.alpha.2" +gem "vers", "~> 0.1.0.pre.alpha.3" ``` diff --git a/lib/vers/version.rb b/lib/vers/version.rb index 48da648..e526eec 100644 --- a/lib/vers/version.rb +++ b/lib/vers/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Vers - VERSION = "0.1.0.pre.alpha.2" + VERSION = "0.1.0.pre.alpha.3" end