diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6992080f..841eded2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,42 +1,46 @@ name: CI on: push: - branches: - - main + branches-ignore: + - 'generated' + - 'codegen/**' + - 'integrated/**' + - 'stl-preview-head/**' + - 'stl-preview-base/**' pull_request: - branches: - - main - - next + branches-ignore: + - 'stl-preview-head/**' + - 'stl-preview-base/**' jobs: lint: + timeout-minutes: 10 name: lint - runs-on: ubuntu-latest - + runs-on: ${{ github.repository == 'stainless-sdks/hanzo-ai-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: bundler-cache: false - ruby-version: '3.1' - run: |- bundle install - name: Run lints run: ./scripts/lint test: + timeout-minutes: 10 name: test - runs-on: ubuntu-latest - + runs-on: ${{ github.repository == 'stainless-sdks/hanzo-ai-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: bundler-cache: false - ruby-version: '3.1' - run: |- bundle install diff --git a/.github/workflows/publish-gem.yml b/.github/workflows/publish-gem.yml index 77478991..5e246aed 100644 --- a/.github/workflows/publish-gem.yml +++ b/.github/workflows/publish-gem.yml @@ -1,6 +1,6 @@ # This workflow is triggered when a GitHub release is created. # It can also be run manually to re-publish to rubygems.org in case it failed for some reason. -# You can run this workflow by navigating to https://www.github.com/hanzoai/python-sdk/actions/workflows/publish-gem.yml +# You can run this workflow by navigating to https://www.github.com/hanzoai/ruby-sdk/actions/workflows/publish-gem.yml name: Publish Gem on: workflow_dispatch: @@ -14,12 +14,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: false - ruby-version: '3.1' - run: |- bundle install diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index ab0cde1a..d67d8252 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -12,7 +12,7 @@ jobs: if: github.repository == 'hanzoai/ruby-sdk' && (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: | diff --git a/.gitignore b/.gitignore index 8b1228a8..3d26ceed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,10 @@ *.gem .idea/ +.ignore .prism.log .ruby-lsp/ .yardoc/ -Brewfile.lock.json bin/tapioca +Brewfile.lock.json doc/ -sorbet/* -!/sorbet/config +sorbet/tapioca/* diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b56c3d0b..e8285b71 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.4" + ".": "0.1.0-alpha.5" } \ No newline at end of file diff --git a/.rubocop.yml b/.rubocop.yml index 70253e40..8ce345cc 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.1.0 + TargetRubyVersion: 3.2 # Whether MFA is required or not should be left to the token configuration. Gemspec/RequireMFA: @@ -39,7 +40,9 @@ Layout/LineLength: AllowedPatterns: - "^\\s*#.*$" - ^require(_relative)? - - "Hanzoai::(Models|Resources)::" + - "Hanzoai::Internal::Type::BaseModel$" + - "^\\s*[A-Z0-9_]+ = :" + - "Hanzoai::(Models|Resources|Test)::" Max: 110 Layout/MultilineArrayLineBreaks: @@ -61,12 +64,22 @@ Layout/MultilineMethodParameterLineBreaks: # Prefer compact hash literals. Layout/SpaceInsideHashLiteralBraces: EnforcedStyle: no_space + Exclude: + - "**/*.rbi" + +Lint/BooleanSymbol: + Enabled: false # This option occasionally mangles identifier names Lint/DeprecatedConstants: Exclude: - "**/*.rbi" +# We use pattern assertion in tests to ensure correctness. +Lint/DuplicateMatchPattern: + Exclude: + - "test/**/*" + # Fairly useful in tests for pattern assertions. Lint/EmptyInPattern: Exclude: @@ -80,6 +93,10 @@ Lint/MissingSuper: Exclude: - "**/*.rbi" +Lint/SymbolConversion: + Exclude: + - "**/*.rbi" + # Disabled for safety reasons, this option changes code semantics. Lint/UnusedMethodArgument: AutoCorrect: false @@ -96,12 +113,18 @@ Metrics/AbcSize: Metrics/BlockLength: AllowedPatterns: - assert_pattern + - type_alias + - define_sorbet_constant! Exclude: - "**/*.rbi" Metrics/ClassLength: Enabled: false +Metrics/CollectionLiteralLength: + Exclude: + - "test/**/*" + Metrics/CyclomaticComplexity: Enabled: false @@ -109,8 +132,7 @@ Metrics/MethodLength: Enabled: false Metrics/ModuleLength: - Exclude: - - "**/*.rbi" + Enabled: false Metrics/ParameterLists: Enabled: false @@ -118,18 +140,21 @@ Metrics/ParameterLists: Metrics/PerceivedComplexity: Enabled: false +Naming/AccessorMethodName: + Enabled: false + # Need to preserve block identifier for documentation. Naming/BlockForwarding: Enabled: false +# Underscores are generally useful for disambiguation. Naming/ClassAndModuleCamelCase: - Exclude: - - "**/*.rbi" + Enabled: false Naming/MethodParameterName: Enabled: false -Naming/PredicateName: +Naming/PredicatePrefix: Exclude: - "**/*.rbi" @@ -164,6 +189,9 @@ Style/ClassAndModuleChildren: Exclude: - "test/**/*" +Style/CommentAnnotation: + Enabled: false + # We should go back and add these docs, but ignore for now. Style/Documentation: Enabled: false @@ -232,6 +260,10 @@ Style/RedundantInitialize: Exclude: - "**/*.rbi" +Style/RedundantParentheses: + Exclude: + - "**/*.rbi" + # Prefer slashes for regex literals. Style/RegexpLiteral: EnforcedStyle: slashes @@ -243,6 +275,7 @@ Style/SafeNavigation: Style/SignalException: Exclude: - Rakefile + - "**/*.rake" # We use these sparingly, where we anticipate future branches for the # inner conditional. diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..944880fa --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.2.0 diff --git a/.solargraph.yml b/.solargraph.yml index 322c289c..f5b57ab2 100644 --- a/.solargraph.yml +++ b/.solargraph.yml @@ -5,6 +5,7 @@ include: - 'Rakefile' - 'examples/**/*.rb' - 'lib/**/*.rb' + - 'test/hanzoai/resource_namespaces.rb' - 'test/hanzoai/test_helper.rb' exclude: - 'rbi/**/*' diff --git a/.stats.yml b/.stats.yml index 53107a1b..18cb6a66 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 188 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hanzo-industries-inc%2FHanzo-AI-ec4be99f95dc46e9442eb60f233b2bff271d6f5bf57d7c61a52bc4804f55bbd1.yml -openapi_spec_hash: 87bc62c36bb6028ffd1f3e54a2809099 -config_hash: 830747463ff4d018b5633ce511e88558 +configured_endpoints: 187 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hanzo-industries-inc%2Fhanzo-ai-343e99ba0f6734359198b3b87c8330d8e81d4a44c0f0c9b8506524b41e872cf7.yml +openapi_spec_hash: 0536a5458fb3a37a5aa763333486acf5 +config_hash: e927bafd76a1eace11894efc3517d245 diff --git a/.yardopts b/.yardopts index 004c697b..84c12f2a 100644 --- a/.yardopts +++ b/.yardopts @@ -1,3 +1,5 @@ +--type-name-tag generic:Generic +--default-return void --markup markdown --markup-provider redcarpet --exclude /rbi diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ced0b85..594191cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,122 @@ # Changelog +## 0.1.0-alpha.5 (2026-01-26) + +Full Changelog: [v0.1.0-alpha.4...v0.1.0-alpha.5](https://github.com/hanzoai/ruby-sdk/compare/v0.1.0-alpha.4...v0.1.0-alpha.5) + +### Features + +* allow all valid `JSON` types to be encoded ([#45](https://github.com/hanzoai/ruby-sdk/issues/45)) ([9ba40fb](https://github.com/hanzoai/ruby-sdk/commit/9ba40fbc78f7b9d4df96a124c0fcdfed74e949dd)) +* **api:** api update ([188ec12](https://github.com/hanzoai/ruby-sdk/commit/188ec125e31c94787b22b68aadac4fac4f8cfc2f)) +* **api:** api update ([176266c](https://github.com/hanzoai/ruby-sdk/commit/176266c83378b9f1e815ea6a7b4f2079d87aa2ab)) +* bump default connection pool size limit to minimum of 99 ([91efac6](https://github.com/hanzoai/ruby-sdk/commit/91efac6ce83a648e03738e11230e0e1e6e9542ad)) +* **client:** enable setting base URL from environment variable ([4f1e8e2](https://github.com/hanzoai/ruby-sdk/commit/4f1e8e27d74879486ced2be56ea88219a3788655)) +* expose base client options as read only attributes ([3c95282](https://github.com/hanzoai/ruby-sdk/commit/3c95282be4dda179ca0b6f77d75ed7c238f849a0)) +* expose recursive `#to_h` conversion ([6204fee](https://github.com/hanzoai/ruby-sdk/commit/6204fee065845dc3fa7dd8e169412ee3a0b6a9f8)) +* implement `#hash` for data containers ([c2d963d](https://github.com/hanzoai/ruby-sdk/commit/c2d963dec2fd81dba50a8769224a3656f46afaf3)) +* support query, header, and body params that have identical names ([#44](https://github.com/hanzoai/ruby-sdk/issues/44)) ([b35580a](https://github.com/hanzoai/ruby-sdk/commit/b35580a6829fad0b89154da341e7c01a03b62a28)) +* support sorbet aliases at the runtime ([c5554f0](https://github.com/hanzoai/ruby-sdk/commit/c5554f0368f3e5f6d1c8946e7d51229e27e4bdb9)) +* support specifying content-type with FilePart class ([291d316](https://github.com/hanzoai/ruby-sdk/commit/291d3165cad525a6ac63c93802a509c04460d1fd)) +* support webmock for testing ([44909cf](https://github.com/hanzoai/ruby-sdk/commit/44909cf28d569b2e7d3735123cd425c520549dad)) +* use Pathname alongside raw IO handles for file uploads ([#56](https://github.com/hanzoai/ruby-sdk/issues/56)) ([d215aee](https://github.com/hanzoai/ruby-sdk/commit/d215aeeb2e900a30c0a7035015a621e60ced033e)) + + +### Bug Fixes + +* `to_sorbet_type` should not return branded types ([448244f](https://github.com/hanzoai/ruby-sdk/commit/448244f93449c2d957cdd9b585ece6c303f6522c)) +* always send idempotency header when specified as a request option ([fece7cf](https://github.com/hanzoai/ruby-sdk/commit/fece7cfcbb1cec7ab83f328135036956876855a3)) +* **client:** send correct HTTP path ([ecc5e68](https://github.com/hanzoai/ruby-sdk/commit/ecc5e6814ea56ec225ce700106f7a944f11af10c)) +* converter should transform stringio into string where applicable ([#47](https://github.com/hanzoai/ruby-sdk/issues/47)) ([2d5c28e](https://github.com/hanzoai/ruby-sdk/commit/2d5c28ec3c12ba9615c13bc1931aefa0a8b5fb5f)) +* correctly instantiate sorbet type aliases for enums and unions ([3b7ec7b](https://github.com/hanzoai/ruby-sdk/commit/3b7ec7b7cf46a7a7ada355b41f3b46deb9de6758)) +* ensure gem release is unaffected by renaming ([25efbf7](https://github.com/hanzoai/ruby-sdk/commit/25efbf7d7b475d99c2688c2863e059f364c3ead8)) +* inaccuracies in the README.md ([4e2b9ca](https://github.com/hanzoai/ruby-sdk/commit/4e2b9ca07a6b653ed983f0e83a9238e94f274d93)) +* **internal:** ensure formatting always uses c.utf-8 locale ([63636d2](https://github.com/hanzoai/ruby-sdk/commit/63636d2faa87890d78928dfa29536bbc91b37ced)) +* **internal:** fix formatting script for macos ([beb4a3b](https://github.com/hanzoai/ruby-sdk/commit/beb4a3bc052da8e9b3d4f4dbe848a9b41f746f5a)) +* **internal:** update gemspec name ([e8ff0ff](https://github.com/hanzoai/ruby-sdk/commit/e8ff0ffad487596b3f38f3c29f7d8b3565e0e6f8)) +* **internal:** update release-please to use ruby strategy for README.md ([f42785b](https://github.com/hanzoai/ruby-sdk/commit/f42785bf8a2960e8d10ecbef32a2ca6c5c796f03)) +* make a typo for `FilePart.content` ([4057679](https://github.com/hanzoai/ruby-sdk/commit/40576793f67ab7a5481d81366c43a8d9e1e94cbb)) +* prevent rubocop from mangling `===` to `is_a?` check ([9b26509](https://github.com/hanzoai/ruby-sdk/commit/9b265099c8a127e9d996059b967264a0332f5ba5)) +* raise connection error for errors that result from HTTP transports ([#57](https://github.com/hanzoai/ruby-sdk/issues/57)) ([05edcf8](https://github.com/hanzoai/ruby-sdk/commit/05edcf8da3d94ee0f3ef61faaf7e310b37669497)) +* restore ability to configure server environment as string during client construction ([0f9728a](https://github.com/hanzoai/ruby-sdk/commit/0f9728a6a15786aea8f49c730d279dd1d3800225)) +* should not reuse buffers for `IO.copy_stream` interop ([f64394b](https://github.com/hanzoai/ruby-sdk/commit/f64394b3180be99ee256770c57ed25064791e9de)) +* sorbet types for enums, and make tapioca detection ignore `tapioca dsl` ([43bc35d](https://github.com/hanzoai/ruby-sdk/commit/43bc35d34cc3c86de007616c18a4b453bbb0a70b)) + + +### Chores + +* accept all nd-json mimetype variants ([3350dc9](https://github.com/hanzoai/ruby-sdk/commit/3350dc9b0da57b765a4e075f03064857fe0b51bf)) +* add generator safe directory ([d02c8b2](https://github.com/hanzoai/ruby-sdk/commit/d02c8b2111ed5fcd786fd68a65612987df7d9929)) +* add README docs for using solargraph when installing gem from git ([#55](https://github.com/hanzoai/ruby-sdk/issues/55)) ([c9b1d3b](https://github.com/hanzoai/ruby-sdk/commit/c9b1d3bb58013716a3b895e320f6f705a018fe63)) +* always fold up method bodies in sorbet type definitions ([#51](https://github.com/hanzoai/ruby-sdk/issues/51)) ([3a9c8bf](https://github.com/hanzoai/ruby-sdk/commit/3a9c8bff1a56f25bbc0aa651ab0c718440ea00ce)) +* broadly detect json family of content-type headers ([451aae2](https://github.com/hanzoai/ruby-sdk/commit/451aae2023a76c9099a5b05c1df445013accc437)) +* **ci:** add timeout thresholds for CI jobs ([c6653db](https://github.com/hanzoai/ruby-sdk/commit/c6653dbf25320da466c3bbcdb7f7b8ff5585c8da)) +* **ci:** only use depot for staging repos ([ef3471d](https://github.com/hanzoai/ruby-sdk/commit/ef3471d81069321589c43f4f17cf386b953819c0)) +* configure new SDK language ([b07254b](https://github.com/hanzoai/ruby-sdk/commit/b07254b62e65b67865a87fae166ced12563095af)) +* **docs:** grammar improvements ([a8363d4](https://github.com/hanzoai/ruby-sdk/commit/a8363d4d6539cc012164dd338a8b130f2c0482af)) +* documentation improvements ([4ab0bd6](https://github.com/hanzoai/ruby-sdk/commit/4ab0bd63d2a8e48ca1fd327c3fbbd6353cfe1be8)) +* ensure readme.md is bumped when release please updates versions ([10667f3](https://github.com/hanzoai/ruby-sdk/commit/10667f32ced592c75964e8d3a9a04e804843439f)) +* explicitly mark apis public under `Internal` module ([da30dff](https://github.com/hanzoai/ruby-sdk/commit/da30dffa00a5bfa87117045df80e20acdbcc748d)) +* fix misc linting / minor issues ([5983bea](https://github.com/hanzoai/ruby-sdk/commit/5983bea45f64cb7bc96e325b73125878ed3af9e2)) +* fix readme typo ([1b6772e](https://github.com/hanzoai/ruby-sdk/commit/1b6772ecc6dfe3842268495c669c90bb7a7e2edc)) +* force utf-8 locale via `RUBYOPT` when formatting ([81b0d4b](https://github.com/hanzoai/ruby-sdk/commit/81b0d4b40df5ed06f4e01ab9cc3abf88c38d150b)) +* **internal:** always run post-processing when formatting when syntax_tree ([5d4c89a](https://github.com/hanzoai/ruby-sdk/commit/5d4c89ad4f61bf02f7c3870449871693b3cfbbdc)) +* **internal:** annotate request options with type aliases in sorbet ([c7253ab](https://github.com/hanzoai/ruby-sdk/commit/c7253ab85bb4a3a5dd015d7d05b5a5f1bbad4b78)) +* **internal:** codegen related update ([7e47a65](https://github.com/hanzoai/ruby-sdk/commit/7e47a6558a0562747cf6ac531d0e7fda52d4ba63)) +* **internal:** codegen related update ([de5221c](https://github.com/hanzoai/ruby-sdk/commit/de5221c35a213e070cd7dbe85275942cf73a5a5c)) +* **internal:** codegen related update ([feddfca](https://github.com/hanzoai/ruby-sdk/commit/feddfcaf3ca1e6b95cd3b92c9b0d66ede392c5ae)) +* **internal:** codegen related update ([48633de](https://github.com/hanzoai/ruby-sdk/commit/48633de21e5c11fbe72bc0061a465dfe497888d2)) +* **internal:** codegen related update ([9a89eac](https://github.com/hanzoai/ruby-sdk/commit/9a89eacfe7097d8539f70408d78f8174362c4444)) +* **internal:** codegen related update ([bc2f723](https://github.com/hanzoai/ruby-sdk/commit/bc2f723cdf0a9dad9e3f1aa3bc50284f3611dbbb)) +* **internal:** codegen related update ([d84983c](https://github.com/hanzoai/ruby-sdk/commit/d84983c400accb33dff31abab59d78f85df9894d)) +* **internal:** codegen related update ([8b0412d](https://github.com/hanzoai/ruby-sdk/commit/8b0412deb9ff80baa9068a9a53f07b63a71841cb)) +* **internal:** codegen related update ([b533d72](https://github.com/hanzoai/ruby-sdk/commit/b533d7250ae3edab570fcb0ed66ef906368c702f)) +* **internal:** codegen related update ([b29e255](https://github.com/hanzoai/ruby-sdk/commit/b29e255634140514e94eb96aa61e9dc36404024c)) +* **internal:** codegen related update ([bee0a08](https://github.com/hanzoai/ruby-sdk/commit/bee0a0806004968a06b195e3b92a12145cdf8e11)) +* **internal:** contribute.md and contributor QoL improvements ([f5471b0](https://github.com/hanzoai/ruby-sdk/commit/f5471b0639d6786fc37b168fe2086e778356f292)) +* **internal:** expand CI branch coverage ([12c39d3](https://github.com/hanzoai/ruby-sdk/commit/12c39d3a4fec0840481ea21170ee1f2dbaa2a5af)) +* **internal:** improve response envelope unwrap functionality ([fdfbf93](https://github.com/hanzoai/ruby-sdk/commit/fdfbf9334650dc00c1ac073297152cfbc461ee81)) +* **internal:** loosen internal type restrictions ([52fe8ba](https://github.com/hanzoai/ruby-sdk/commit/52fe8ba0423ed67626bf8c2acd4c60eb9bc6251f)) +* **internal:** minor touch ups on sdk internals ([a4ab1ff](https://github.com/hanzoai/ruby-sdk/commit/a4ab1ff28a41a08639ac2bcc2d356592a1b6855f)) +* **internal:** minor type annotation improvements ([aae606e](https://github.com/hanzoai/ruby-sdk/commit/aae606e68f712f9d1a2f729de0ab41a1cd48e3c9)) +* **internal:** misc small improvements ([#48](https://github.com/hanzoai/ruby-sdk/issues/48)) ([7973e72](https://github.com/hanzoai/ruby-sdk/commit/7973e72204d116692e351f3fee34abd358758e05)) +* **internal:** more concise handling of parameter naming conflicts ([#53](https://github.com/hanzoai/ruby-sdk/issues/53)) ([749dd97](https://github.com/hanzoai/ruby-sdk/commit/749dd9794af17b1257cb859e3e4d410ba1954833)) +* **internal:** mostly README touch ups ([37f21a8](https://github.com/hanzoai/ruby-sdk/commit/37f21a8010eb14ed8820a244a23890b6c3ce7aa3)) +* **internal:** protect SSE parsing pipeline from broken UTF-8 characters ([dbf9a70](https://github.com/hanzoai/ruby-sdk/commit/dbf9a70ccd8029f3d9cd4270582a54d0d8e5219d)) +* **internal:** reduce CI branch coverage ([c77e970](https://github.com/hanzoai/ruby-sdk/commit/c77e9701dd564ff03ba1e8e5580402ea379908cc)) +* **internal:** remove unnecessary `rbi/lib` folder ([d39641a](https://github.com/hanzoai/ruby-sdk/commit/d39641ace1c1b44106b57e8aa72783fd2c47e25a)) +* **internal:** rubocop rules ([#50](https://github.com/hanzoai/ruby-sdk/issues/50)) ([126f259](https://github.com/hanzoai/ruby-sdk/commit/126f259e106073b526eb3b1219802f00270ec8bf)) +* **internal:** run rubocop linter in parallel ([#49](https://github.com/hanzoai/ruby-sdk/issues/49)) ([89910f5](https://github.com/hanzoai/ruby-sdk/commit/89910f54c548b5becec92c683c05f6ed1529b047)) +* **internal:** version bump ([#42](https://github.com/hanzoai/ruby-sdk/issues/42)) ([28f783e](https://github.com/hanzoai/ruby-sdk/commit/28f783e5f068159c45a03d85b835155d3d3a5576)) +* loosen const and integer coercion rules ([#58](https://github.com/hanzoai/ruby-sdk/issues/58)) ([5f7ec21](https://github.com/hanzoai/ruby-sdk/commit/5f7ec21f35b5abf1055e66a72a1db31e833f6322)) +* loosen rubocop rules that don't always make sense ([27277d1](https://github.com/hanzoai/ruby-sdk/commit/27277d1682cef6e6bab261196ee3e6e8959e8fc8)) +* make client tests look prettier ([#54](https://github.com/hanzoai/ruby-sdk/issues/54)) ([cf98683](https://github.com/hanzoai/ruby-sdk/commit/cf9868303ad8a4f354aeef968fb2efc5f4e1becf)) +* make internal types pretty print ([f3d8de6](https://github.com/hanzoai/ruby-sdk/commit/f3d8de6659234a8db1d284a18af468aaa81bf120)) +* make sorbet enums easier to read ([2d35e00](https://github.com/hanzoai/ruby-sdk/commit/2d35e00e17f4426a3cf72136226e7b272b950ed9)) +* more accurate type annotations and aliases ([438f943](https://github.com/hanzoai/ruby-sdk/commit/438f943d3d72093169231d5c8b823a66804cbeab)) +* re-export top level models under library namespace ([d346468](https://github.com/hanzoai/ruby-sdk/commit/d346468f841a08d9c3c7fbda7a6564ad2492cd92)) +* refine `#inspect` and `#to_s` for model classes ([27c96f0](https://github.com/hanzoai/ruby-sdk/commit/27c96f0ada319aae9419532da269d6afbe83f694)) +* refine Yard and Sorbet types and ensure linting is turned on for examples ([b14560d](https://github.com/hanzoai/ruby-sdk/commit/b14560dd5b4a1cd5ad9ca83bb11df8e76d70362c)) +* remove Gemfile.lock during bootstrap ([d5bd829](https://github.com/hanzoai/ruby-sdk/commit/d5bd829faff4b74c3ec1d772aa4a3675c91f19ad)) +* rename confusing `Type::BooleanModel` to `Type::Boolean` ([#46](https://github.com/hanzoai/ruby-sdk/issues/46)) ([6d4d5b8](https://github.com/hanzoai/ruby-sdk/commit/6d4d5b85b4e9c46977971bed3daa2aaddd6acd32)) +* reorganize type aliases ([efba0fd](https://github.com/hanzoai/ruby-sdk/commit/efba0fdf0a69b579f2cf317e877173a687181536)) +* revert ignoring Gemfile.lock ([ecdab13](https://github.com/hanzoai/ruby-sdk/commit/ecdab13029b1863b4e84d8edfe486f03dec55016)) +* show truncated parameter docs in yard ([98119ae](https://github.com/hanzoai/ruby-sdk/commit/98119aef82585723e4fd950d78866f9ef7783b86)) +* simplify yard annotations by removing most `@!parse` directives ([2596eac](https://github.com/hanzoai/ruby-sdk/commit/2596eac15f30607a3a832dd44cdfde5cf48b8006)) +* update README with recommended editor plugins ([b432ce7](https://github.com/hanzoai/ruby-sdk/commit/b432ce7a9963963df9a2dc04f5d377f69ba1587a)) +* update yard comment formatting ([#52](https://github.com/hanzoai/ruby-sdk/issues/52)) ([10f4fc6](https://github.com/hanzoai/ruby-sdk/commit/10f4fc63092cbd4efb26c00f57fb43a1ced63bf3)) +* use `@!method` instead of `@!parse` for virtual method type definitions ([b6c473a](https://github.com/hanzoai/ruby-sdk/commit/b6c473ade59990aabc591b322b527f2bea1b2623)) +* use fully qualified names for yard annotations and rbs aliases ([41b0ab4](https://github.com/hanzoai/ruby-sdk/commit/41b0ab4c947eb815211460d59d6f389e0f661af1)) +* use sorbet union aliases where available ([909bbbb](https://github.com/hanzoai/ruby-sdk/commit/909bbbbc54f21a0a0190b497f17d428e196292a9)) +* validate request option coercion correctness ([041d9f2](https://github.com/hanzoai/ruby-sdk/commit/041d9f2fed2c23453cf5d24b9b3a8e7c6e47c55e)) +* whitespaces ([ba94f92](https://github.com/hanzoai/ruby-sdk/commit/ba94f92591e13d01e5eea1835a3e502d329eefcb)) + + +### Documentation + +* illustrate environmental defaults for auth variables ([ad86138](https://github.com/hanzoai/ruby-sdk/commit/ad86138f9737623578a60ad32ab1aabbb6b360c5)) +* rewrite much of README.md for readability ([5d80ac7](https://github.com/hanzoai/ruby-sdk/commit/5d80ac7fb7916fbc124e522c5bcf6c75ffbdf09a)) +* update documentation links to be more uniform ([dc4f904](https://github.com/hanzoai/ruby-sdk/commit/dc4f904b61cb044b1a9df5e42ae17ce2accd1295)) + ## 0.1.0-alpha.4 (2025-04-05) Full Changelog: [v0.1.0-alpha.3...v0.1.0-alpha.4](https://github.com/hanzoai/ruby-sdk/compare/v0.1.0-alpha.3...v0.1.0-alpha.4) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..8c65bdc0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,125 @@ +## Setting up the environment + +This repository contains a `.ruby-version` file, which should work with either [rbenv](https://github.com/rbenv/rbenv) or [asdf](https://github.com/asdf-vm/asdf) with the [ruby plugin](https://github.com/asdf-vm/asdf-ruby). + +Please follow the instructions for your preferred version manager to install the Ruby version specified in the `.ruby-version` file. + +To set up the repository, run: + +```bash +$ ./scripts/bootstrap +``` + +This will install all the required dependencies. + +## Modifying/Adding code + +Most of the SDK is generated code. Modifications to code will be persisted between generations, but may result in merge conflicts between manual patches and changes from the generator. The generator will never modify the contents of `lib/hanzoai/helpers/` and `examples/` directory. + +## Adding and running examples + +All files in the `examples/` directory are not modified by the generator and can be freely edited or added to. + +```ruby +#!/usr/bin/env ruby +# frozen_string_literal: true + +require_relative "../lib/hanzoai" + +# ... +``` + +```bash +$ chmod +x './examples/.rb' + +# run the example against your api +$ ruby './examples/.rb' +``` + +## Using the repository from source + +If you’d like to use the repository from source, you can either install from git or reference a cloned repository: + +To install via git in your `Gemfile`: + +```ruby +gem "hanzoai", git: "https://www.github.com/hanzoai/ruby-sdk" +``` + +Alternatively, reference local copy of the repo: + +```bash +$ git clone -- 'https://www.github.com/hanzoai/ruby-sdk' '' +``` + +```ruby +gem "hanzoai", path: "" +``` + +## Running commands + +Running `rake` by itself will show all runnable commands. + +```bash +$ 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 +``` + +## Linting and formatting + +This repository uses [rubocop](https://github.com/rubocop/rubocop) for linting and formatting of `*.rb` files; And [syntax_tree](https://github.com/ruby-syntax-tree/syntax_tree) is used for formatting of both `*.rbi` and `*.rbs` files. + +There are two separate type checkers supported by this library: [sorbet](https://github.com/sorbet/sorbet) and [steep](https://github.com/soutaro/steep) are used for verifying `*.rbi` and `*.rbs` files respectively. + +To lint and typecheck: + +```bash +$ bundle exec rake lint +``` + +To format and fix all lint issues automatically: + +```bash +$ bundle exec rake format +``` + +## Editor Support + +### Ruby LSP + +[Ruby LSP](https://github.com/Shopify/ruby-lsp) has quite good support for go to definition, but not auto-completion. + +This can be installed along side Solargraph. + +### Solargraph + +[Solargraph](https://solargraph.org) has quite good support for auto-completion, but not go to definition. + +This can be installed along side Ruby LSP. + +### Sorbet + +[Sorbet](https://sorbet.org) should mostly work out of the box when editing this library directly. However, there are a some caveats due to the colocation of `*.rb` and `*.rbi` files in the same project. These issues should not otherwise manifest when this library is used as a dependency. + +1. For go to definition usages, sorbet might get confused and may not always navigate to the correct location. + +2. For each generic type in `*.rbi` files, a spurious "Duplicate type member" error is present. + +## Documentation Preview + +To preview the documentation, run: + +```bash +$ bundle exec rake docs:preview [PORT=8808] +``` diff --git a/Gemfile b/Gemfile index e5ec01e9..1be178cb 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 @@ -23,6 +22,7 @@ group :development, :test do gem "minitest-hooks" gem "minitest-proveit" gem "minitest-rg" + gem "webmock" end group :development, :docs do diff --git a/Gemfile.lock b/Gemfile.lock index d84d9346..60f85d58 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT - remote: https://github.com/stainless-api/syntax_tree-rbs.git - revision: 140eb3ba2ff4b959b345ac2a7927cd758a9f1284 + remote: https://github.com/ruby-syntax-tree/syntax_tree-rbs.git + revision: f94bc3060682ffbd126e4d5086ffedc89073d626 branch: main specs: syntax_tree-rbs (1.0.0) @@ -11,61 +11,75 @@ GIT PATH remote: . specs: - hanzoai (0.1.0.pre.alpha.4) + hanzoai (0.1.0.pre.alpha.5) + cgi connection_pool GEM remote: https://rubygems.org/ specs: - activesupport (7.2.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) tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) ast (2.4.3) - async (2.23.1) + async (2.34.0) 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) + traces (~> 0.18) + 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.0) - console (1.30.2) + connection_pool (2.5.4) + console (1.34.2) fiber-annotation fiber-local (~> 1.1) json - csv (3.3.3) - drb (2.2.1) + crack (1.0.1) + bigdecimal + rexml + csv (3.3.5) + drb (2.2.3) erubi (1.13.1) - ffi (1.17.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.0) - fileutils (1.7.3) + fiber-storage (1.0.1) + fileutils (1.8.0) + hashdiff (1.2.1) i18n (1.14.7) concurrent-ruby (~> 1.0) - io-event (1.10.0) - json (2.10.2) - language_server-protocol (3.17.0.4) + io-event (1.11.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.12.2) - 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) @@ -76,27 +90,28 @@ GEM minitest (~> 5.0) mutex_m (0.3.0) netrc (0.11.0) - parallel (1.26.3) - parser (3.3.7.4) + parallel (1.27.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.2.1) + rake (13.3.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbi (0.3.1) + rbi (0.3.7) prism (~> 1.0) rbs (>= 3.4.4) - sorbet-runtime (>= 0.5.9204) - rbs (3.9.2) + rbs (3.9.5) logger redcarpet (3.6.1) - regexp_parser (2.10.0) - rubocop (1.75.1) + 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) @@ -104,25 +119,28 @@ GEM parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.43.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.43.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.11966) - sorbet-static (= 0.5.11966) - sorbet-runtime (0.5.11966) - sorbet-static (0.5.11966-x86_64-linux) - sorbet-static-and-runtime (0.5.11966) - sorbet (= 0.5.11966) - sorbet-runtime (= 0.5.11966) - spoom (1.6.1) + 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) - 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) @@ -142,8 +160,8 @@ GEM strscan (>= 1.0.0) terminal-table (>= 2, < 5) uri (>= 0.12.0) - strscan (3.1.2) - syntax_tree (6.2.0) + strscan (3.1.5) + syntax_tree (6.3.0) prettier_print (>= 1.2.0) tapioca (0.16.11) benchmark @@ -157,14 +175,18 @@ 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.18.2) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) - uri (1.0.3) + 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) webrick (1.9.1) yard (0.9.37) yard-sorbet (0.9.0) @@ -172,7 +194,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 @@ -191,8 +220,9 @@ DEPENDENCIES syntax_tree syntax_tree-rbs! tapioca + webmock webrick yard BUNDLED WITH - 2.3.3 + 2.4.1 diff --git a/LICENSE b/LICENSE index 614d2f02..ff91a2c8 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 Hanzo + Copyright 2026 Hanzo Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index 07c82ef9..f455838d 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,23 @@ # Hanzo Ruby API library -The Hanzo Ruby library provides convenient access to the Hanzo REST API from any Ruby 3.1.0+ application. +The Hanzo Ruby library provides convenient access to the Hanzo REST API from any Ruby 3.2.0+ application. It ships with comprehensive types & docstrings in Yard, RBS, and RBI – [see below](https://github.com/hanzoai/ruby-sdk#Sorbet) for usage with Sorbet. The standard library's `net/http` is used as the HTTP transport, with connection pooling via the `connection_pool` gem. It is generated with [Stainless](https://www.stainless.com/). +## MCP Server + +Use the Hanzo MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application. + +[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=hanzoai-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImhhbnpvYWktbWNwIl19) +[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22hanzoai-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22hanzoai-mcp%22%5D%7D) + +> Note: You may need to set environment variables in your MCP client. + ## Documentation -Documentation for released of this gem can be found [on RubyDoc](https://gemdocs.org/gems/hanzoai). +Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/hanzoai). -The underlying REST API documentation can be found on [docs.hanzo.ai](https://docs.hanzo.ai). +The REST API documentation can be found on [docs.hanzo.ai](https://docs.hanzo.ai). ## Installation @@ -17,17 +26,11 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "hanzoai", "~> 0.1.0.pre.alpha.3" +gem "hanzoai", "~> 0.1.0.pre.alpha.5" ``` -To fetch an initial copy of the gem: - -```sh -bundle install -``` - ## Usage ```ruby @@ -35,7 +38,7 @@ require "bundler/setup" require "hanzoai" hanzo = Hanzoai::Client.new( - api_key: "My API Key", # defaults to ENV["HANZO_API_KEY"] + api_key: ENV["HANZO_API_KEY"], # This is the default and can be omitted environment: "sandbox" # defaults to "production" ) @@ -44,19 +47,47 @@ response = hanzo.get_home puts(response) ``` -### Errors +### File uploads + +Request parameters that correspond to file uploads can be passed as raw contents, a [`Pathname`](https://rubyapi.org/3.2/o/pathname) instance, [`StringIO`](https://rubyapi.org/3.2/o/stringio), or more. + +```ruby +require "pathname" + +# Use `Pathname` to send the filename and/or avoid paging a large file into memory: +transcription = hanzo.audio.transcriptions.create(file: Pathname("/path/to/file")) + +# Alternatively, pass file contents or a `StringIO` directly: +transcription = hanzo.audio.transcriptions.create(file: File.read("/path/to/file")) + +# Or, to control the filename and/or content type: +file = Hanzoai::FilePart.new(File.read("/path/to/file"), filename: "/path/to/file", content_type: "…") +transcription = hanzo.audio.transcriptions.create(file: file) + +puts(transcription) +``` + +Note that you can also pass a raw `IO` descriptor, but this disables retries, as the library can't be sure if the descriptor is a file or pipe (which cannot be rewound). -When the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), a subclass of `Hanzoai::Error` will be thrown: +### Handling errors + +When the library is unable to connect to the API, or if the API returns a non-success status code (i.e., 4xx or 5xx response), a subclass of `Hanzoai::Errors::APIError` will be thrown: ```ruby begin client = hanzo.get_home -rescue Hanzoai::Errors::APIError => e - puts(e.status) # 400 +rescue Hanzoai::Errors::APIConnectionError => e + puts("The server could not be reached") + puts(e.cause) # an underlying Exception, likely raised within `net/http` +rescue Hanzoai::Errors::RateLimitError => e + puts("A 429 status code was received; we should back off a bit.") +rescue Hanzoai::Errors::APIStatusError => e + puts("Another non-200-range status code was received") + puts(e.status) end ``` -Error codes are as followed: +Error codes are as follows: | Cause | Error Type | | ---------------- | -------------------------- | @@ -92,11 +123,7 @@ hanzo.get_home(request_options: {max_retries: 5}) ### Timeouts -By default, requests will time out after 60 seconds. - -Timeouts are applied separately to the initial connection and the overall request time, so in some cases a request could wait 2\*timeout seconds before it fails. - -You can use the `timeout` option to configure or disable this: +By default, requests will time out after 60 seconds. You can use the timeout option to configure or disable this: ```ruby # Configure the default for all requests: @@ -108,82 +135,121 @@ hanzo = Hanzoai::Client.new( hanzo.get_home(request_options: {timeout: 5}) ``` -## LSP Support +On timeout, `Hanzoai::Errors::APITimeoutError` is raised. -### Solargraph +Note that requests that time out are retried by default. -This library includes [Solargraph](https://solargraph.org) support for both auto completion and go to definition. +## Advanced concepts -```ruby -gem "solargraph", group: :development -``` +### BaseModel -After Solargraph is installed, **you must populate its index** either via the provided editor command, or by running the following in your terminal: +All parameter and response objects inherit from `Hanzoai::Internal::Type::BaseModel`, which provides several conveniences, including: -```sh -bundle exec solargraph gems -``` +1. All fields, including unknown ones, are accessible with `obj[:prop]` syntax, and can be destructured with `obj => {prop: prop}` or pattern-matching syntax. + +2. Structural equivalence for equality; if two API calls return the same values, comparing the responses with == will return true. -Otherwise Solargraph will not be able to provide type information or auto-completion for any non-indexed libraries. +3. Both instances and the classes themselves can be pretty-printed. -### Sorbet +4. Helpers such as `#to_h`, `#deep_to_h`, `#to_json`, and `#to_yaml`. -This library is written with [Sorbet type definitions](https://sorbet.org/docs/rbi). However, there is no runtime dependency on the `sorbet-runtime`. +### Making custom or undocumented requests -What this means is that while you can use Sorbet to type check your code statically, and benefit from the [Sorbet Language Server](https://sorbet.org/docs/lsp) in your editor, there is no runtime type checking and execution overhead from Sorbet itself. +#### Undocumented properties -Due to limitations with the Sorbet type system, where a method otherwise can take an instance of `Hanzoai::BaseModel` class, you will need to use the `**` splat operator to pass the arguments: +You can send undocumented parameters to any endpoint, and read undocumented response properties, like so: -Please follow Sorbet's [setup guides](https://sorbet.org/docs/adopting) for best experience. +Note: the `extra_` parameters of the same name overrides the documented parameters. ```ruby -params = Hanzoai::Models::ClientGetHomeParams.new +response = + hanzo.get_home( + request_options: { + extra_query: {my_query_parameter: value}, + extra_body: {my_body_parameter: value}, + extra_headers: {"my-header": value} + } + ) -hanzo.get_home(**params) +puts(response[:my_undocumented_property]) ``` -Note: **This library emits an intentional warning under the [`tapioca` toolchain](https://github.com/Shopify/tapioca)**. This is normal, and does not impact functionality. +#### Undocumented request params -### Ruby LSP +If you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` under the `request_options:` parameter when making a request, as seen in the examples above. -The Ruby LSP has [best effort support](https://shopify.github.io/ruby-lsp/#guessed-types) for inferring type information from Ruby code, and as such it may not always be able to provide accurate type information. +#### Undocumented endpoints -## Advanced +To make requests to undocumented endpoints while retaining the benefit of auth, retries, and so on, you can make requests using `client.request`, like so: -### Making custom/undocumented requests +```ruby +response = client.request( + method: :post, + path: '/undocumented/endpoint', + query: {"dog": "woof"}, + headers: {"useful-header": "interesting-value"}, + body: {"hello": "world"} +) +``` -This library is typed for convenient access to the documented API. +### Concurrency & connection pooling -If you need to access undocumented endpoints, params, or response properties, the library can still be used. +The `Hanzoai::Client` instances are threadsafe, but are only are fork-safe when there are no in-flight HTTP requests. -#### Undocumented request params +Each instance of `Hanzoai::Client` has its own HTTP connection pool with a default size of 99. As such, we recommend instantiating the client once per application in most settings. -If you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` under the `request_options:` parameter when making a requests as seen in examples above. +When all available connections from the pool are checked out, requests wait for a new connection to become available, with queue time counting towards the request timeout. -#### Undocumented endpoints +Unless otherwise specified, other classes in the SDK do not have locks protecting their underlying data structure. + +## Sorbet -To make requests to undocumented endpoints, you can make requests using `client.request`. Options on the client will be respected (such as retries) when making this request. +This library provides comprehensive [RBI](https://sorbet.org/docs/rbi) definitions, and has no dependency on sorbet-runtime. + +You can provide typesafe request parameters like so: ```ruby -response = - client.request( - method: :post, - path: '/undocumented/endpoint', - query: {"dog": "woof"}, - headers: {"useful-header": "interesting-value"}, - body: {"he": "llo"}, - ) +hanzo.get_home ``` -### Concurrency & Connection Pooling +Or, equivalently: -The `Hanzoai::Client` instances are thread-safe, and should be re-used across multiple threads. By default, each `Client` have their own HTTP connection pool, with a maximum number of connections equal to thread count. +```ruby +# Hashes work, but are not typesafe: +hanzo.get_home -When the maximum number of connections has been checked out from the connection pool, the `Client` will wait for an in use connection to become available. The queue time for this mechanism is accounted for by the per-request timeout. +# You can also splat a full Params class: +params = Hanzoai::ClientGetHomeParams.new +hanzo.get_home(**params) +``` -Unless otherwise specified, other classes in the SDK do not have locks protecting their underlying data structure. +### Enums -Currently, `Hanzoai::Client` instances are only fork-safe if there are no in-flight HTTP requests. +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 +# :embedding +puts(Hanzoai::UtilTransformRequestParams::CallType::EMBEDDING) + +# Revealed type: `T.all(Hanzoai::UtilTransformRequestParams::CallType, Symbol)` +T.reveal_type(Hanzoai::UtilTransformRequestParams::CallType::EMBEDDING) +``` + +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: +hanzo.utils.transform_request( + call_type: Hanzoai::UtilTransformRequestParams::CallType::EMBEDDING, + # … +) + +# Literal values are also permissible: +hanzo.utils.transform_request( + call_type: :embedding, + # … +) +``` ## Versioning @@ -193,4 +259,8 @@ This package considers improvements to the (non-runtime) `*.rbi` and `*.rbs` typ ## Requirements -Ruby 3.1.0 or higher. +Ruby 3.2.0 or higher. + +## Contributing + +See [the contributing documentation](https://github.com/hanzoai/ruby-sdk/tree/main/CONTRIBUTING.md). diff --git a/Rakefile b/Rakefile index 602ab225..3e6ceb29 100644 --- a/Rakefile +++ b/Rakefile @@ -1,5 +1,6 @@ # frozen_string_literal: true +require "pathname" require "securerandom" require "shellwords" @@ -7,12 +8,26 @@ require "minitest/test_task" require "rake/clean" require "rubocop/rake_task" -CLEAN.push(*%w[.idea/ .ruby-lsp/ .yardoc/]) +tapioca = "sorbet/tapioca" +examples = "examples" +ignore_file = ".ignore" -xargs = %w[xargs --no-run-if-empty --null --max-procs=0 --max-args=300 --] +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) -multitask(default: [:test]) +multitask(:default) do + sh(*%w[rake --tasks]) +end + +desc("Preview docs; use `PORT=` to change the port") +multitask(:"docs:preview") do + sh(*%w[yard server --reload --quiet --bind [::] --port], ENV.fetch("PORT", "8808")) +end +desc("Run test suites; use `TEST=path/to/test.rb` to run a specific test file") multitask(:test) do rb = FileList[ENV.fetch("TEST", "./test/**/*_test.rb")] @@ -22,27 +37,58 @@ multitask(:test) do ruby(*%w[-w -e], rb, verbose: false) { fail unless _1 } end -RuboCop::RakeTask.new(:rubocop) do |t| - t.options = %w[--fail-level E] - if ENV.key?("CI") - t.options += %w[--format github] +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 -multitask(:ruboformat) do - find = %w[find ./lib ./test ./rbi -type f -and ( -name *.rb -or -name *.rbi ) -print0] +desc("Lint `*.rb(i)`") +multitask(:"lint:rubocop") do + find = %w[find ./lib ./test ./rbi ./examples -type f -and ( -name *.rb -or -name *.rbi ) -print0] + + rubocop = %w[rubocop] + rubocop += %w[--format github] if ENV.key?("CI") + + # some lines cannot be shortened + rubocop += %w[--except Lint/RedundantCopDisableDirective,Layout/LineLength] + + lint = xargs + rubocop + 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 = filtered["rb", %w[./lib ./test ./examples]] fmt = xargs + %w[rubocop --fail-level F --autocorrect --format simple --] - sh("#{find.shelljoin} | #{fmt.shelljoin}") + sh("#{files.shelljoin} | #{norm_lines} | #{fmt.shelljoin}") +end + +desc("Format `*.rbi`") +multitask(:"format:rbi") do + files = filtered["rbi", %w[./rbi]] + fmt = xargs + %w[stree write --] + sh(ruby_opt, "#{files.shelljoin} | #{norm_lines} | #{fmt.shelljoin}") end -multitask(:syntax_tree) do - find = %w[find ./sig -type f -name *.rbs -print0] - inplace = /darwin|bsd/ =~ RUBY_PLATFORM ? %w[-i''] : %w[-i] +desc("Format `*.rbs`") +multitask(:"format:rbs") do + files = filtered["rbs", %w[./sig]] + inplace = /darwin|bsd/ =~ RUBY_PLATFORM ? ["-i", ""] : %w[-i] uuid = SecureRandom.uuid # `syntax_tree` has trouble with `rbs`'s class & module aliases - sed = xargs + %w[sed -E] + inplace + %w[-e] + sed_bin = /darwin/ =~ RUBY_PLATFORM ? "/usr/bin/sed" : "sed" + sed = xargs + [sed_bin, "-E", *inplace, "-e"] # annotate unprocessable aliases with a unique comment pre = sed + ["s/(class|module) ([^ ]+) = (.+$)/# \\1 #{uuid}\\n\\2: \\3/", "--"] fmt = xargs + %w[stree write --plugin=rbs --] @@ -61,35 +107,66 @@ multitask(:syntax_tree) do # 2. at label `l1`, join previously annotated line with `class | module` information. pst = sed + [subst, "--"] + success = false + # transform class aliases to type aliases, which syntax tree has no trouble with - sh("#{find.shelljoin} | #{pre.shelljoin}") + sh("#{files.shelljoin} | #{norm_lines} | #{pre.shelljoin}") # run syntax tree to format `*.rbs` files - sh("#{find.shelljoin} | #{fmt.shelljoin}") + sh(ruby_opt, "#{files.shelljoin} | #{norm_lines} | #{fmt.shelljoin}") do + success = _1 + end # transform type aliases back to class aliases - sh("#{find.shelljoin} | #{pst.shelljoin}") + sh("#{files.shelljoin} | #{norm_lines} | #{pst.shelljoin}") + + # always run post-processing to remove comment marker + fail unless success end -multitask(format: [:ruboformat, :syntax_tree]) +desc("Format everything") +multitask(format: [:"format:rb", :"format:rbi", :"format:rbs"]) -multitask(:steep) do +desc("Typecheck `*.rbs`") +multitask(:"typecheck:steep") do sh(*%w[steep check]) end -multitask(:sorbet) do - sh(*%w[srb typecheck]) +directory(examples) + +desc("Typecheck `*.rbi`") +multitask("typecheck:sorbet": examples) do + sh(*%w[srb typecheck --dir], examples) end -file("sorbet/tapioca") do +directory(tapioca) do sh(*%w[tapioca init]) end -multitask(typecheck: [:steep, :sorbet]) -multitask(lint: [:rubocop, :typecheck]) +desc("Typecheck everything") +multitask(typecheck: [:"typecheck:steep", :"typecheck:sorbet"]) + +desc("Lint and typecheck") +multitask(lint: [:"lint:rubocop", :typecheck]) + +desc("Build yard docs") +multitask(:"build:docs") do + sh(*%w[yard]) +end + +desc("Build ruby gem") +multitask(:"build:gem") do + # optimizing for grepping through the gem bundle: many tools honour `.ignore` files, including VSCode + # + # both `rbi` and `sig` directories are navigable by their respective tool chains and therefore can be ignored by tools such as `rg` + Pathname(ignore_file).write(<<~GLOB) + rbi/* + sig/* + GLOB -multitask(:build) do sh(*%w[gem build -- hanzoai.gemspec]) + rm_rf(ignore_file) end -multitask(release: [:build]) do - sh(*%w[gem push], *FileList["hanzoai-*.gem"]) +desc("Release ruby gem") +multitask(release: [:"build:gem"]) do + sh(*%w[gem push], *FileList["*.gem"]) end diff --git a/SECURITY.md b/SECURITY.md index bada7faa..0b579e02 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -16,11 +16,11 @@ before making any information public. ## Reporting Non-SDK Related Security Issues If you encounter security issues that are not directly related to SDKs but pertain to the services -or products provided by Hanzo please follow the respective company's security reporting guidelines. +or products provided by Hanzo, please follow the respective company's security reporting guidelines. ### Hanzo Terms and Policies -Please contact dev@hanzo.ai for any questions or concerns regarding security of our services. +Please contact dev@hanzo.ai for any questions or concerns regarding the security of our services. --- diff --git a/Steepfile b/Steepfile index 6e5d0ac5..528b48c3 100644 --- a/Steepfile +++ b/Steepfile @@ -2,12 +2,12 @@ require "yaml" -target :lib do +target(:lib) do configure_code_diagnostics(Steep::Diagnostic::Ruby.strict) signature("sig") - YAML.safe_load_file("./manifest.yaml", symbolize_names: true) => { dependencies: } + YAML.safe_load_file("./manifest.yaml", symbolize_names: true) => {dependencies:} # currently these libraries lack the `*.rbs` annotations required by `steep` stdlibs = dependencies - %w[English etc net/http rbconfig set stringio] diff --git a/bin/check-release-environment b/bin/check-release-environment index aa8fb376..c05436e8 100644 --- a/bin/check-release-environment +++ b/bin/check-release-environment @@ -3,7 +3,7 @@ errors=() if [ -z "${GEM_HOST_API_KEY}" ]; then - errors+=("The HANZO_GEM_HOST_API_KEY secret has not been set. Please set it in either this repository's secrets or your organization secrets") + errors+=("The GEM_HOST_API_KEY secret has not been set. Please set it in either this repository's secrets or your organization secrets") fi lenErrors=${#errors[@]} diff --git a/hanzoai.gemspec b/hanzoai.gemspec index 3c0f4141..de4d7ed5 100644 --- a/hanzoai.gemspec +++ b/hanzoai.gemspec @@ -8,12 +8,22 @@ Gem::Specification.new do |s| s.summary = "Ruby library to access the Hanzo API" s.authors = ["Hanzo"] s.email = "dev@hanzo.ai" - s.files = Dir["lib/**/*.rb", "rbi/**/*.rbi", "sig/**/*.rbs", "manifest.yaml"] - s.extra_rdoc_files = ["README.md"] - s.required_ruby_version = ">= 3.0.0" - s.add_dependency "connection_pool" s.homepage = "https://gemdocs.org/gems/hanzoai" s.metadata["homepage_uri"] = s.homepage s.metadata["source_code_uri"] = "https://github.com/hanzoai/ruby-sdk" s.metadata["rubygems_mfa_required"] = false.to_s + s.required_ruby_version = ">= 3.2.0" + + s.files = Dir[ + "lib/**/*.rb", + "rbi/**/*.rbi", + "sig/**/*.rbs", + "manifest.yaml", + "SECURITY.md", + "CHANGELOG.md", + ".ignore" + ] + s.extra_rdoc_files = ["README.md"] + s.add_dependency "cgi" + s.add_dependency "connection_pool" end diff --git a/lib/hanzoai.rb b/lib/hanzoai.rb index 8e12af16..76ed95bb 100644 --- a/lib/hanzoai.rb +++ b/lib/hanzoai.rb @@ -1,13 +1,16 @@ # frozen_string_literal: true # Standard libraries. +# rubocop:disable Lint/RedundantRequireStatement require "English" +require "base64" require "cgi" require "date" require "erb" require "etc" require "json" require "net/http" +require "openssl" require "pathname" require "rbconfig" require "securerandom" @@ -15,19 +18,13 @@ require "stringio" require "time" require "uri" +# rubocop:enable Lint/RedundantRequireStatement # We already ship the preferred sorbet manifests in the package itself. # `tapioca` currently does not offer us a way to opt out of unnecessary compilation. -if Object.const_defined?(:Tapioca) && caller.chain([$PROGRAM_NAME]).chain(ARGV).grep(/tapioca/) - Warning.warn( - <<~WARN - \n - ⚠️ skipped loading of "hanzoai" gem under `tapioca`. - - This message is normal and expected if you are running a `tapioca` command, and does not impact `.rbi` generation. - \n - WARN - ) +if Object.const_defined?(:Tapioca) && + caller.chain([$PROGRAM_NAME]).chain(ARGV).any?(/tapioca/) && + ARGV.none?(/dsl/) return end @@ -39,7 +36,8 @@ require_relative "hanzoai/internal/util" require_relative "hanzoai/internal/type/converter" require_relative "hanzoai/internal/type/unknown" -require_relative "hanzoai/internal/type/boolean_model" +require_relative "hanzoai/internal/type/boolean" +require_relative "hanzoai/internal/type/file_input" require_relative "hanzoai/internal/type/enum" require_relative "hanzoai/internal/type/union" require_relative "hanzoai/internal/type/array_of" @@ -49,6 +47,7 @@ require_relative "hanzoai/internal/type/request_parameters" require_relative "hanzoai/internal" require_relative "hanzoai/request_options" +require_relative "hanzoai/file_part" require_relative "hanzoai/errors" require_relative "hanzoai/internal/transport/base_client" require_relative "hanzoai/internal/transport/pooled_net_requester" @@ -57,230 +56,389 @@ require_relative "hanzoai/models/budget_new" require_relative "hanzoai/models/config/pass_through_generic_endpoint" require_relative "hanzoai/models/block_users" +require_relative "hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create" require_relative "hanzoai/models/block_key_request" require_relative "hanzoai/models/key/regenerate_key_request" require_relative "hanzoai/models/model/update_deployment" require_relative "hanzoai/models/block_team_request" require_relative "hanzoai/models/active_list_callbacks_params" +require_relative "hanzoai/models/active_list_callbacks_response" require_relative "hanzoai/models/add_add_allowed_ip_params" +require_relative "hanzoai/models/add_add_allowed_ip_response" require_relative "hanzoai/models/anthropic_create_params" +require_relative "hanzoai/models/anthropic_create_response" require_relative "hanzoai/models/anthropic_delete_params" +require_relative "hanzoai/models/anthropic_delete_response" require_relative "hanzoai/models/anthropic_modify_params" +require_relative "hanzoai/models/anthropic_modify_response" require_relative "hanzoai/models/anthropic_retrieve_params" +require_relative "hanzoai/models/anthropic_retrieve_response" require_relative "hanzoai/models/anthropic_update_params" +require_relative "hanzoai/models/anthropic_update_response" require_relative "hanzoai/models/assemblyai_create_params" +require_relative "hanzoai/models/assemblyai_create_response" require_relative "hanzoai/models/assemblyai_delete_params" +require_relative "hanzoai/models/assemblyai_delete_response" require_relative "hanzoai/models/assemblyai_patch_params" +require_relative "hanzoai/models/assemblyai_patch_response" require_relative "hanzoai/models/assemblyai_retrieve_params" +require_relative "hanzoai/models/assemblyai_retrieve_response" require_relative "hanzoai/models/assemblyai_update_params" +require_relative "hanzoai/models/assemblyai_update_response" require_relative "hanzoai/models/assistant_create_params" +require_relative "hanzoai/models/assistant_create_response" require_relative "hanzoai/models/assistant_delete_params" +require_relative "hanzoai/models/assistant_delete_response" require_relative "hanzoai/models/assistant_list_params" +require_relative "hanzoai/models/assistant_list_response" require_relative "hanzoai/models/audio/speech_create_params" +require_relative "hanzoai/models/audio/speech_create_response" require_relative "hanzoai/models/audio/transcription_create_params" +require_relative "hanzoai/models/audio/transcription_create_response" require_relative "hanzoai/models/azure_call_params" +require_relative "hanzoai/models/azure_call_response" require_relative "hanzoai/models/azure_create_params" +require_relative "hanzoai/models/azure_create_response" require_relative "hanzoai/models/azure_delete_params" +require_relative "hanzoai/models/azure_delete_response" require_relative "hanzoai/models/azure_patch_params" +require_relative "hanzoai/models/azure_patch_response" require_relative "hanzoai/models/azure_update_params" +require_relative "hanzoai/models/azure_update_response" require_relative "hanzoai/models/batch_cancel_with_provider_params" +require_relative "hanzoai/models/batch_cancel_with_provider_response" require_relative "hanzoai/models/batch_create_params" +require_relative "hanzoai/models/batch_create_response" require_relative "hanzoai/models/batch_create_with_provider_params" +require_relative "hanzoai/models/batch_create_with_provider_response" require_relative "hanzoai/models/batches/cancel_cancel_params" +require_relative "hanzoai/models/batches/cancel_cancel_response" require_relative "hanzoai/models/batch_list_params" +require_relative "hanzoai/models/batch_list_response" require_relative "hanzoai/models/batch_list_with_provider_params" +require_relative "hanzoai/models/batch_list_with_provider_response" require_relative "hanzoai/models/batch_retrieve_params" +require_relative "hanzoai/models/batch_retrieve_response" require_relative "hanzoai/models/batch_retrieve_with_provider_params" +require_relative "hanzoai/models/batch_retrieve_with_provider_response" require_relative "hanzoai/models/bedrock_create_params" +require_relative "hanzoai/models/bedrock_create_response" require_relative "hanzoai/models/bedrock_delete_params" +require_relative "hanzoai/models/bedrock_delete_response" require_relative "hanzoai/models/bedrock_patch_params" +require_relative "hanzoai/models/bedrock_patch_response" require_relative "hanzoai/models/bedrock_retrieve_params" +require_relative "hanzoai/models/bedrock_retrieve_response" require_relative "hanzoai/models/bedrock_update_params" +require_relative "hanzoai/models/bedrock_update_response" require_relative "hanzoai/models/budget_create_params" +require_relative "hanzoai/models/budget_create_response" require_relative "hanzoai/models/budget_delete_params" +require_relative "hanzoai/models/budget_delete_response" require_relative "hanzoai/models/budget_info_params" +require_relative "hanzoai/models/budget_info_response" require_relative "hanzoai/models/budget_list_params" +require_relative "hanzoai/models/budget_list_response" require_relative "hanzoai/models/budget_settings_params" +require_relative "hanzoai/models/budget_settings_response" +require_relative "hanzoai/models/budget_table" require_relative "hanzoai/models/budget_update_params" +require_relative "hanzoai/models/budget_update_response" require_relative "hanzoai/models/cache/redi_retrieve_info_params" +require_relative "hanzoai/models/cache/redi_retrieve_info_response" require_relative "hanzoai/models/cache_delete_params" +require_relative "hanzoai/models/cache_delete_response" require_relative "hanzoai/models/cache_flush_all_params" +require_relative "hanzoai/models/cache_flush_all_response" require_relative "hanzoai/models/cache_ping_params" require_relative "hanzoai/models/cache_ping_response" require_relative "hanzoai/models/chat/completion_create_params" +require_relative "hanzoai/models/chat/completion_create_response" require_relative "hanzoai/models/client_get_home_params" require_relative "hanzoai/models/cohere_create_params" +require_relative "hanzoai/models/cohere_create_response" require_relative "hanzoai/models/cohere_delete_params" +require_relative "hanzoai/models/cohere_delete_response" require_relative "hanzoai/models/cohere_modify_params" +require_relative "hanzoai/models/cohere_modify_response" require_relative "hanzoai/models/cohere_retrieve_params" +require_relative "hanzoai/models/cohere_retrieve_response" require_relative "hanzoai/models/cohere_update_params" +require_relative "hanzoai/models/cohere_update_response" require_relative "hanzoai/models/completion_create_params" +require_relative "hanzoai/models/completion_create_response" require_relative "hanzoai/models/config/pass_through_endpoint_create_params" +require_relative "hanzoai/models/config/pass_through_endpoint_create_response" require_relative "hanzoai/models/config/pass_through_endpoint_delete_params" require_relative "hanzoai/models/config/pass_through_endpoint_list_params" require_relative "hanzoai/models/config/pass_through_endpoint_response" require_relative "hanzoai/models/config/pass_through_endpoint_update_params" -require_relative "hanzoai/models/configurable_clientside_params_custom_auth" +require_relative "hanzoai/models/config/pass_through_endpoint_update_response" require_relative "hanzoai/models/credential_create_params" +require_relative "hanzoai/models/credential_create_response" require_relative "hanzoai/models/credential_delete_params" +require_relative "hanzoai/models/credential_delete_response" require_relative "hanzoai/models/credential_item" require_relative "hanzoai/models/credential_list_params" +require_relative "hanzoai/models/credential_list_response" require_relative "hanzoai/models/customer_block_params" +require_relative "hanzoai/models/customer_block_response" require_relative "hanzoai/models/customer_create_params" +require_relative "hanzoai/models/customer_create_response" require_relative "hanzoai/models/customer_delete_params" +require_relative "hanzoai/models/customer_delete_response" require_relative "hanzoai/models/customer_list_params" require_relative "hanzoai/models/customer_list_response" require_relative "hanzoai/models/customer_retrieve_info_params" -require_relative "hanzoai/models/customer_retrieve_info_response" require_relative "hanzoai/models/customer_unblock_params" +require_relative "hanzoai/models/customer_unblock_response" require_relative "hanzoai/models/customer_update_params" +require_relative "hanzoai/models/customer_update_response" require_relative "hanzoai/models/delete_create_allowed_ip_params" +require_relative "hanzoai/models/delete_create_allowed_ip_response" require_relative "hanzoai/models/embedding_create_params" +require_relative "hanzoai/models/embedding_create_response" require_relative "hanzoai/models/engine_complete_params" +require_relative "hanzoai/models/engine_complete_response" require_relative "hanzoai/models/engine_embed_params" +require_relative "hanzoai/models/engine_embed_response" require_relative "hanzoai/models/engines/chat_complete_params" +require_relative "hanzoai/models/engines/chat_complete_response" require_relative "hanzoai/models/eu_assemblyai_create_params" +require_relative "hanzoai/models/eu_assemblyai_create_response" require_relative "hanzoai/models/eu_assemblyai_delete_params" +require_relative "hanzoai/models/eu_assemblyai_delete_response" require_relative "hanzoai/models/eu_assemblyai_patch_params" +require_relative "hanzoai/models/eu_assemblyai_patch_response" require_relative "hanzoai/models/eu_assemblyai_retrieve_params" +require_relative "hanzoai/models/eu_assemblyai_retrieve_response" require_relative "hanzoai/models/eu_assemblyai_update_params" +require_relative "hanzoai/models/eu_assemblyai_update_response" require_relative "hanzoai/models/file_create_params" +require_relative "hanzoai/models/file_create_response" require_relative "hanzoai/models/file_delete_params" +require_relative "hanzoai/models/file_delete_response" require_relative "hanzoai/models/file_list_params" +require_relative "hanzoai/models/file_list_response" require_relative "hanzoai/models/file_retrieve_params" +require_relative "hanzoai/models/file_retrieve_response" require_relative "hanzoai/models/files/content_retrieve_params" +require_relative "hanzoai/models/files/content_retrieve_response" require_relative "hanzoai/models/fine_tuning/job_create_params" +require_relative "hanzoai/models/fine_tuning/job_create_response" require_relative "hanzoai/models/fine_tuning/job_list_params" +require_relative "hanzoai/models/fine_tuning/job_list_response" require_relative "hanzoai/models/fine_tuning/job_retrieve_params" +require_relative "hanzoai/models/fine_tuning/job_retrieve_response" require_relative "hanzoai/models/fine_tuning/jobs/cancel_create_params" +require_relative "hanzoai/models/fine_tuning/jobs/cancel_create_response" require_relative "hanzoai/models/gemini_create_params" +require_relative "hanzoai/models/gemini_create_response" require_relative "hanzoai/models/gemini_delete_params" +require_relative "hanzoai/models/gemini_delete_response" require_relative "hanzoai/models/gemini_patch_params" +require_relative "hanzoai/models/gemini_patch_response" require_relative "hanzoai/models/gemini_retrieve_params" +require_relative "hanzoai/models/gemini_retrieve_response" require_relative "hanzoai/models/gemini_update_params" +require_relative "hanzoai/models/gemini_update_response" require_relative "hanzoai/models/generate_key_response" +require_relative "hanzoai/models/get_home_response" require_relative "hanzoai/models/global/spend_list_tags_params" require_relative "hanzoai/models/global/spend_list_tags_response" require_relative "hanzoai/models/global/spend_reset_params" +require_relative "hanzoai/models/global/spend_reset_response" require_relative "hanzoai/models/global/spend_retrieve_report_params" require_relative "hanzoai/models/global/spend_retrieve_report_response" require_relative "hanzoai/models/guardrail_list_params" require_relative "hanzoai/models/guardrail_list_response" require_relative "hanzoai/models/health_check_all_params" +require_relative "hanzoai/models/health_check_all_response" require_relative "hanzoai/models/health_check_liveliness_params" +require_relative "hanzoai/models/health_check_liveliness_response" require_relative "hanzoai/models/health_check_liveness_params" +require_relative "hanzoai/models/health_check_liveness_response" require_relative "hanzoai/models/health_check_readiness_params" +require_relative "hanzoai/models/health_check_readiness_response" require_relative "hanzoai/models/health_check_services_params" +require_relative "hanzoai/models/health_check_services_response" require_relative "hanzoai/models/images/generation_create_params" +require_relative "hanzoai/models/images/generation_create_response" require_relative "hanzoai/models/key_block_params" require_relative "hanzoai/models/key_block_response" require_relative "hanzoai/models/key_check_health_params" require_relative "hanzoai/models/key_check_health_response" require_relative "hanzoai/models/key_delete_params" +require_relative "hanzoai/models/key_delete_response" require_relative "hanzoai/models/key_generate_params" require_relative "hanzoai/models/key_list_params" require_relative "hanzoai/models/key_list_response" require_relative "hanzoai/models/key_regenerate_by_key_params" require_relative "hanzoai/models/key_retrieve_info_params" +require_relative "hanzoai/models/key_retrieve_info_response" require_relative "hanzoai/models/key_unblock_params" +require_relative "hanzoai/models/key_unblock_response" require_relative "hanzoai/models/key_update_params" +require_relative "hanzoai/models/key_update_response" require_relative "hanzoai/models/langfuse_create_params" +require_relative "hanzoai/models/langfuse_create_response" require_relative "hanzoai/models/langfuse_delete_params" +require_relative "hanzoai/models/langfuse_delete_response" require_relative "hanzoai/models/langfuse_patch_params" +require_relative "hanzoai/models/langfuse_patch_response" require_relative "hanzoai/models/langfuse_retrieve_params" +require_relative "hanzoai/models/langfuse_retrieve_response" require_relative "hanzoai/models/langfuse_update_params" +require_relative "hanzoai/models/langfuse_update_response" +require_relative "hanzoai/models/lite_llm_end_user_table" require_relative "hanzoai/models/member" require_relative "hanzoai/models/model/info_list_params" +require_relative "hanzoai/models/model/info_list_response" require_relative "hanzoai/models/model/update_full_params" +require_relative "hanzoai/models/model/update_full_response" require_relative "hanzoai/models/model/update_partial_params" +require_relative "hanzoai/models/model/update_partial_response" require_relative "hanzoai/models/model_create_params" +require_relative "hanzoai/models/model_create_response" require_relative "hanzoai/models/model_delete_params" +require_relative "hanzoai/models/model_delete_response" require_relative "hanzoai/models/model_group_retrieve_info_params" +require_relative "hanzoai/models/model_group_retrieve_info_response" require_relative "hanzoai/models/model_info" require_relative "hanzoai/models/model_list_params" +require_relative "hanzoai/models/model_list_response" require_relative "hanzoai/models/moderation_create_params" +require_relative "hanzoai/models/moderation_create_response" require_relative "hanzoai/models/openai/deployment_complete_params" +require_relative "hanzoai/models/openai/deployment_complete_response" require_relative "hanzoai/models/openai/deployment_embed_params" +require_relative "hanzoai/models/openai/deployment_embed_response" require_relative "hanzoai/models/openai/deployments/chat_complete_params" +require_relative "hanzoai/models/openai/deployments/chat_complete_response" require_relative "hanzoai/models/openai_create_params" +require_relative "hanzoai/models/openai_create_response" require_relative "hanzoai/models/openai_delete_params" +require_relative "hanzoai/models/openai_delete_response" require_relative "hanzoai/models/openai_patch_params" +require_relative "hanzoai/models/openai_patch_response" require_relative "hanzoai/models/openai_retrieve_params" +require_relative "hanzoai/models/openai_retrieve_response" require_relative "hanzoai/models/openai_update_params" +require_relative "hanzoai/models/openai_update_response" require_relative "hanzoai/models/organization/info_deprecated_params" +require_relative "hanzoai/models/organization/info_deprecated_response" require_relative "hanzoai/models/organization/info_retrieve_params" -require_relative "hanzoai/models/organization/info_retrieve_response" require_relative "hanzoai/models/organization_add_member_params" require_relative "hanzoai/models/organization_add_member_response" require_relative "hanzoai/models/organization_create_params" require_relative "hanzoai/models/organization_create_response" require_relative "hanzoai/models/organization_delete_member_params" +require_relative "hanzoai/models/organization_delete_member_response" require_relative "hanzoai/models/organization_delete_params" require_relative "hanzoai/models/organization_delete_response" require_relative "hanzoai/models/organization_list_params" require_relative "hanzoai/models/organization_list_response" +require_relative "hanzoai/models/organization_membership_table" +require_relative "hanzoai/models/organization_table_with_members" require_relative "hanzoai/models/organization_update_member_params" -require_relative "hanzoai/models/organization_update_member_response" require_relative "hanzoai/models/organization_update_params" -require_relative "hanzoai/models/organization_update_response" require_relative "hanzoai/models/org_member" require_relative "hanzoai/models/provider_list_budgets_params" require_relative "hanzoai/models/provider_list_budgets_response" require_relative "hanzoai/models/rerank_create_params" +require_relative "hanzoai/models/rerank_create_response" require_relative "hanzoai/models/rerank_create_v1_params" +require_relative "hanzoai/models/rerank_create_v1_response" require_relative "hanzoai/models/rerank_create_v2_params" +require_relative "hanzoai/models/rerank_create_v2_response" require_relative "hanzoai/models/response_create_params" +require_relative "hanzoai/models/response_create_response" require_relative "hanzoai/models/response_delete_params" +require_relative "hanzoai/models/response_delete_response" require_relative "hanzoai/models/response_retrieve_params" +require_relative "hanzoai/models/response_retrieve_response" require_relative "hanzoai/models/responses/input_item_list_params" +require_relative "hanzoai/models/responses/input_item_list_response" require_relative "hanzoai/models/route_list_params" +require_relative "hanzoai/models/route_list_response" require_relative "hanzoai/models/setting_retrieve_params" +require_relative "hanzoai/models/setting_retrieve_response" require_relative "hanzoai/models/spend_calculate_spend_params" +require_relative "hanzoai/models/spend_calculate_spend_response" require_relative "hanzoai/models/spend_list_logs_params" require_relative "hanzoai/models/spend_list_logs_response" require_relative "hanzoai/models/spend_list_tags_params" require_relative "hanzoai/models/spend_list_tags_response" require_relative "hanzoai/models/team/callback_add_params" +require_relative "hanzoai/models/team/callback_add_response" require_relative "hanzoai/models/team/callback_retrieve_params" +require_relative "hanzoai/models/team/callback_retrieve_response" require_relative "hanzoai/models/team/model_add_params" +require_relative "hanzoai/models/team/model_add_response" require_relative "hanzoai/models/team/model_remove_params" +require_relative "hanzoai/models/team/model_remove_response" require_relative "hanzoai/models/team_add_member_params" require_relative "hanzoai/models/team_add_member_response" require_relative "hanzoai/models/team_block_params" +require_relative "hanzoai/models/team_block_response" require_relative "hanzoai/models/team_create_params" require_relative "hanzoai/models/team_create_response" require_relative "hanzoai/models/team_delete_params" +require_relative "hanzoai/models/team_delete_response" require_relative "hanzoai/models/team_disable_logging_params" +require_relative "hanzoai/models/team_disable_logging_response" require_relative "hanzoai/models/team_list_available_params" +require_relative "hanzoai/models/team_list_available_response" require_relative "hanzoai/models/team_list_params" +require_relative "hanzoai/models/team_list_response" require_relative "hanzoai/models/team_remove_member_params" +require_relative "hanzoai/models/team_remove_member_response" require_relative "hanzoai/models/team_retrieve_info_params" +require_relative "hanzoai/models/team_retrieve_info_response" require_relative "hanzoai/models/team_unblock_params" +require_relative "hanzoai/models/team_unblock_response" require_relative "hanzoai/models/team_update_member_params" require_relative "hanzoai/models/team_update_member_response" require_relative "hanzoai/models/team_update_params" +require_relative "hanzoai/models/team_update_response" require_relative "hanzoai/models/test_ping_params" +require_relative "hanzoai/models/test_ping_response" require_relative "hanzoai/models/thread_create_params" +require_relative "hanzoai/models/thread_create_response" require_relative "hanzoai/models/thread_retrieve_params" +require_relative "hanzoai/models/thread_retrieve_response" require_relative "hanzoai/models/threads/message_create_params" +require_relative "hanzoai/models/threads/message_create_response" require_relative "hanzoai/models/threads/message_list_params" +require_relative "hanzoai/models/threads/message_list_response" require_relative "hanzoai/models/threads/run_create_params" +require_relative "hanzoai/models/threads/run_create_response" require_relative "hanzoai/models/user_create_params" require_relative "hanzoai/models/user_create_response" require_relative "hanzoai/models/user_delete_params" -require_relative "hanzoai/models/user_list_params" +require_relative "hanzoai/models/user_delete_response" require_relative "hanzoai/models/user_retrieve_info_params" +require_relative "hanzoai/models/user_retrieve_info_response" +require_relative "hanzoai/models/user_roles" require_relative "hanzoai/models/user_update_params" +require_relative "hanzoai/models/user_update_response" require_relative "hanzoai/models/util_get_supported_openai_params_params" +require_relative "hanzoai/models/util_get_supported_openai_params_response" require_relative "hanzoai/models/util_token_counter_params" require_relative "hanzoai/models/util_token_counter_response" require_relative "hanzoai/models/util_transform_request_params" require_relative "hanzoai/models/util_transform_request_response" require_relative "hanzoai/models/vertex_ai_create_params" +require_relative "hanzoai/models/vertex_ai_create_response" require_relative "hanzoai/models/vertex_ai_delete_params" +require_relative "hanzoai/models/vertex_ai_delete_response" require_relative "hanzoai/models/vertex_ai_patch_params" +require_relative "hanzoai/models/vertex_ai_patch_response" require_relative "hanzoai/models/vertex_ai_retrieve_params" +require_relative "hanzoai/models/vertex_ai_retrieve_response" require_relative "hanzoai/models/vertex_ai_update_params" +require_relative "hanzoai/models/vertex_ai_update_response" +require_relative "hanzoai/models" require_relative "hanzoai/resources/active" require_relative "hanzoai/resources/add" require_relative "hanzoai/resources/anthropic" diff --git a/lib/hanzoai/client.rb b/lib/hanzoai/client.rb index 52a79530..e831f20b 100644 --- a/lib/hanzoai/client.rb +++ b/lib/hanzoai/client.rb @@ -190,22 +190,23 @@ def get_home(params = {}) # # @return [Hash{String=>String}] private def auth_headers - {"ocp-apim-subscription-key" => @api_key} + {"x-litellm-api-key" => @api_key} end # Creates and returns a new client for interacting with the API. # # @param api_key [String, nil] The default name of the subscription key header of Azure Defaults to - # `ENV["HANZO_API_KEY"]` + # `ENV["HANZO_API_KEY"]` # # @param environment [:production, :sandbox, nil] Specifies the environment to use for the API. # - # Each environment maps to a different base URL: + # Each environment maps to a different base URL: # - # - `production` corresponds to `https://api.hanzo.ai` - # - `sandbox` corresponds to `https://api.sandbox.hanzo.ai` + # - `production` corresponds to `https://api.hanzo.ai` + # - `sandbox` corresponds to `https://api.sandbox.hanzo.ai` # - # @param base_url [String, nil] Override the default base URL for the API, e.g., `"https://api.example.com/v2/"` + # @param base_url [String, nil] Override the default base URL for the API, e.g., + # `"https://api.example.com/v2/"`. Defaults to `ENV["HANZO_BASE_URL"]` # # @param max_retries [Integer] Max number of retries to attempt after a failed retryable request. # @@ -217,21 +218,15 @@ def get_home(params = {}) def initialize( api_key: ENV["HANZO_API_KEY"], environment: nil, - base_url: nil, - max_retries: DEFAULT_MAX_RETRIES, - timeout: DEFAULT_TIMEOUT_IN_SECONDS, - initial_retry_delay: DEFAULT_INITIAL_RETRY_DELAY, - max_retry_delay: DEFAULT_MAX_RETRY_DELAY + base_url: ENV["HANZO_BASE_URL"], + max_retries: self.class::DEFAULT_MAX_RETRIES, + timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS, + initial_retry_delay: self.class::DEFAULT_INITIAL_RETRY_DELAY, + max_retry_delay: self.class::DEFAULT_MAX_RETRY_DELAY ) - case [environment, base_url] - in [Symbol | String, String] - raise ArgumentError.new("both environment and base_url given, expected only one") - in [Symbol | String, nil] - base_url = ENVIRONMENTS.fetch(environment.to_sym) do - raise ArgumentError.new("environment must be one of #{ENVIRONMENTS.keys}, got #{environment}") - end - else - base_url ||= ENVIRONMENTS.fetch(:production) + base_url ||= Hanzoai::Client::ENVIRONMENTS.fetch(environment&.to_sym || :production) do + message = "environment must be one of #{Hanzoai::Client::ENVIRONMENTS.keys}, got #{environment}" + raise ArgumentError.new(message) end if api_key.nil? diff --git a/lib/hanzoai/errors.rb b/lib/hanzoai/errors.rb index 7ea0ed93..6a52d2ad 100644 --- a/lib/hanzoai/errors.rb +++ b/lib/hanzoai/errors.rb @@ -3,12 +3,34 @@ module Hanzoai module Errors class Error < StandardError - # @!parse - # # @return [StandardError, nil] - # attr_accessor :cause + # @!attribute cause + # + # @return [StandardError, nil] end class ConversionError < Hanzoai::Errors::Error + # @return [StandardError, nil] + def cause = @cause.nil? ? super : @cause + + # @api private + # + # @param on [Class] + # @param method [Symbol] + # @param target [Object] + # @param value [Object] + # @param cause [StandardError, nil] + def initialize(on:, method:, target:, value:, cause: nil) + cls = on.name.split("::").last + + message = [ + "Failed to parse #{cls}.#{method} from #{value.class} to #{target.inspect}.", + "To get the unparsed API response, use #{cls}[#{method.inspect}].", + cause && "Cause: #{cause.message}" + ].filter(&:itself).join(" ") + + @cause = cause + super(message) + end end class APIError < Hanzoai::Errors::Error @@ -18,6 +40,9 @@ class APIError < Hanzoai::Errors::Error # @return [Integer, nil] attr_accessor :status + # @return [Hash{String=>String}, nil] + attr_accessor :headers + # @return [Object, nil] attr_accessor :body @@ -25,13 +50,15 @@ class APIError < Hanzoai::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 @@ -40,18 +67,19 @@ def initialize(url:, status: nil, body: nil, request: nil, response: nil, messag end class APIConnectionError < Hanzoai::Errors::APIError - # @!parse - # # @return [nil] - # attr_accessor :status + # @!attribute status + # + # @return [nil] - # @!parse - # # @return [nil] - # attr_accessor :body + # @!attribute body + # + # @return [nil] # @api private # # @param url [URI::Generic] # @param status [nil] + # @param headers [Hash{String=>String}, nil] # @param body [nil] # @param request [nil] # @param response [nil] @@ -59,6 +87,7 @@ class APIConnectionError < Hanzoai::Errors::APIError def initialize( url:, status: nil, + headers: nil, body: nil, request: nil, response: nil, @@ -73,6 +102,7 @@ class APITimeoutError < Hanzoai::Errors::APIConnectionError # # @param url [URI::Generic] # @param status [nil] + # @param headers [Hash{String=>String}, nil] # @param body [nil] # @param request [nil] # @param response [nil] @@ -80,6 +110,7 @@ class APITimeoutError < Hanzoai::Errors::APIConnectionError def initialize( url:, status: nil, + headers: nil, body: nil, request: nil, response: nil, @@ -94,21 +125,24 @@ class APIStatusError < Hanzoai::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 [Hanzoai::Errors::APIStatusError] - def self.for(url:, status:, body:, request:, response:, message: nil) - kwargs = { - url: url, - status: status, - body: body, - request: request, - response: response, - message: message - } + # @return [self] + 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 @@ -140,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/hanzoai/file_part.rb b/lib/hanzoai/file_part.rb new file mode 100644 index 00000000..2cb3c903 --- /dev/null +++ b/lib/hanzoai/file_part.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +module Hanzoai + class FilePart + # @return [Pathname, StringIO, IO, String] + attr_reader :content + + # @return [String, nil] + attr_reader :content_type + + # @return [String, nil] + attr_reader :filename + + # @api private + # + # @return [String] + private def read + case content + in Pathname + content.read(binmode: true) + in StringIO + content.string + in IO + content.read + in String + content + end + end + + # @param a [Object] + # + # @return [String] + def to_json(*a) = read.to_json(*a) + + # @param a [Object] + # + # @return [String] + def to_yaml(*a) = read.to_yaml(*a) + + # @param content [Pathname, StringIO, IO, String] + # @param filename [Pathname, String, nil] + # @param content_type [String, nil] + def initialize(content, filename: nil, content_type: nil) + @content_type = content_type + @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 + end + end + end +end diff --git a/lib/hanzoai/internal.rb b/lib/hanzoai/internal.rb index 6e9a7ab8..f78a7e9f 100644 --- a/lib/hanzoai/internal.rb +++ b/lib/hanzoai/internal.rb @@ -1,8 +1,20 @@ # frozen_string_literal: true module Hanzoai - # @api private module Internal - OMIT = Object.new.freeze + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + OMIT = + Object.new.tap do + _1.define_singleton_method(:inspect) { "#<#{Hanzoai::Internal}::OMIT>" } + end + .freeze + + define_sorbet_constant!(:AnyHash) do + T.type_alias { T::Hash[Symbol, T.anything] } + end + define_sorbet_constant!(:FileInput) do + T.type_alias { T.any(Pathname, StringIO, IO, String, Hanzoai::FilePart) } + end end end diff --git a/lib/hanzoai/internal/transport/base_client.rb b/lib/hanzoai/internal/transport/base_client.rb index 686d106e..a7fb3180 100644 --- a/lib/hanzoai/internal/transport/base_client.rb +++ b/lib/hanzoai/internal/transport/base_client.rb @@ -7,6 +7,8 @@ module Transport # # @abstract class BaseClient + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + # from whatwg fetch spec MAX_REDIRECTS = 20 @@ -45,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:) @@ -83,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:) @@ -93,7 +95,11 @@ def follow_redirect(request, status:, response_headers:) URI.join(url, response_headers["location"]) rescue ArgumentError message = "Server responded with status #{status} but no valid location header." - raise Hanzoai::Errors::APIConnectionError.new(url: url, message: message) + raise Hanzoai::Errors::APIConnectionError.new( + url: url, + response: response_headers, + message: message + ) end request = {**request, url: location} @@ -101,7 +107,11 @@ def follow_redirect(request, status:, response_headers:) case [url.scheme, location.scheme] in ["https", "http"] message = "Tried to redirect to a insecure URL" - raise Hanzoai::Errors::APIConnectionError.new(url: url, message: message) + raise Hanzoai::Errors::APIConnectionError.new( + url: url, + response: response_headers, + message: message + ) else nil end @@ -143,9 +153,30 @@ def reap_connection!(status, stream:) end end + # @return [URI::Generic] + attr_reader :base_url + + # @return [Float] + attr_reader :timeout + + # @return [Integer] + attr_reader :max_retries + + # @return [Float] + attr_reader :initial_retry_delay + + # @return [Float] + attr_reader :max_retry_delay + + # @return [Hash{String=>String}] + attr_reader :headers + + # @return [String, nil] + attr_reader :idempotency_header + # @api private # @return [Hanzoai::Internal::Transport::PooledNetRequester] - attr_accessor :requester + attr_reader :requester # @api private # @@ -170,14 +201,16 @@ def initialize( self.class::PLATFORM_HEADERS, { "accept" => "application/json", - "content-type" => "application/json" + "content-type" => "application/json", + "user-agent" => user_agent }, headers ) - @base_url = Hanzoai::Internal::Util.parse_uri(base_url) + @base_url_components = Hanzoai::Internal::Util.parse_uri(base_url) + @base_url = Hanzoai::Internal::Util.unparse_uri(@base_url_components) @idempotency_header = idempotency_header&.to_s&.downcase - @max_retries = max_retries @timeout = timeout + @max_retries = max_retries @initial_retry_delay = initial_retry_delay @max_retry_delay = max_retry_delay end @@ -187,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 #{Hanzoai::VERSION}" + # @api private # # @return [String] @@ -206,11 +244,11 @@ def initialize( # # @option req [Object, nil] :body # - # @option req [Symbol, nil] :unwrap + # @option req [Symbol, Integer, Array, Proc, nil] :unwrap # - # @option req [Class, nil] :page + # @option req [Class, nil] :page # - # @option req [Class, nil] :stream + # @option req [Class, nil] :stream # # @option req [Hanzoai::Internal::Type::Converter, Class, nil] :model # @@ -245,7 +283,7 @@ def initialize( if @idempotency_header && !headers.key?(@idempotency_header) && - !Net::HTTP::IDEMPOTENT_METHODS_.include?(method.to_s.upcase) + (!Net::HTTP::IDEMPOTENT_METHODS_.include?(method.to_s.upcase) || opts.key?(:idempotency_key)) headers[@idempotency_header] = opts.fetch(:idempotency_key) { generate_idempotency_key } end @@ -253,7 +291,7 @@ def initialize( headers["x-stainless-retry-count"] = "0" end - timeout = opts.fetch(:timeout, @timeout).to_f.clamp((0..)) + timeout = opts.fetch(:timeout, @timeout).to_f.clamp(0..) unless headers.key?("x-stainless-timeout") || timeout.zero? headers["x-stainless-timeout"] = timeout.to_s end @@ -268,10 +306,14 @@ def initialize( Hanzoai::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact) end + url = Hanzoai::Internal::Util.join_parsed_uri( + @base_url_components, + {**req, path: path, query: query} + ) headers, encoded = Hanzoai::Internal::Util.encode_content(headers, body) { method: method, - url: Hanzoai::Internal::Util.join_parsed_uri(@base_url, {**req, path: path, query: query}), + url: url, headers: headers, body: encoded, max_retries: opts.fetch(:max_retries, @max_retries), @@ -329,7 +371,7 @@ def initialize( # # @raise [Hanzoai::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: Hanzoai::Internal::Util.monotonic_secs + timeout} @@ -342,6 +384,7 @@ def initialize( rescue Hanzoai::Errors::APIConnectionError => e status = e end + headers = Hanzoai::Internal::Util.normalized_headers(response&.each_header&.to_h) case status in ..299 @@ -350,11 +393,11 @@ def initialize( self.class.reap_connection!(status, stream: stream) message = "Failed to complete the request within #{self.class::MAX_REDIRECTS} redirects." - raise Hanzoai::Errors::APIConnectionError.new(url: url, message: message) + raise Hanzoai::Errors::APIConnectionError.new(url: url, response: response, message: message) 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, @@ -363,9 +406,9 @@ def initialize( ) in Hanzoai::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 - Hanzoai::Internal::Util.decode_content(response, stream: stream, suppress_error: true) + Hanzoai::Internal::Util.decode_content(headers, stream: stream, suppress_error: true) ensure self.class.reap_connection!(status, stream: stream) end @@ -373,6 +416,7 @@ def initialize( raise Hanzoai::Errors::APIStatusError.for( url: url, status: status, + headers: headers, body: decoded, request: nil, response: response @@ -380,7 +424,7 @@ def initialize( in (400..) | Hanzoai::Errors::APIConnectionError self.class.reap_connection!(status, stream: stream) - delay = retry_delay(response, retry_count: retry_count) + delay = retry_delay(response || {}, retry_count: retry_count) sleep(delay) send_request( @@ -393,7 +437,7 @@ def initialize( end # Execute the request specified by `req`. This is the method that all resource - # methods call into. + # methods call into. # # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: Hanzoai::Internal::Type::Unknown, options: {}) # @@ -407,11 +451,11 @@ def initialize( # # @param body [Object, nil] # - # @param unwrap [Symbol, nil] + # @param unwrap [Symbol, Integer, Array, Proc, nil] # - # @param page [Class, nil] + # @param page [Class, nil] # - # @param stream [Class, nil] + # @param stream [Class, nil] # # @param model [Hanzoai::Internal::Type::Converter, Class, nil] # @@ -435,6 +479,7 @@ def request(req) self.class.validate!(req) model = req.fetch(:model) { Hanzoai::Internal::Type::Unknown } opts = req[:options].to_h + unwrap = req[:unwrap] Hanzoai::RequestOptions.validate!(opts) request = build_request(req.except(:options), opts) url = request.fetch(:url) @@ -448,25 +493,80 @@ def request(req) send_retry_header: send_retry_header ) - decoded = Hanzoai::Internal::Util.decode_content(response, stream: stream) + headers = Hanzoai::Internal::Util.normalized_headers(response.each_header.to_h) + decoded = Hanzoai::Internal::Util.decode_content(headers, stream: stream) case req - in { stream: Class => st } - st.new(model: model, url: url, status: status, response: response, stream: decoded) - in { page: Class => page } - page.new(client: self, req: req, headers: response, page_data: decoded) + 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: headers, page_data: decoded) else - unwrapped = Hanzoai::Internal::Util.dig(decoded, req[:unwrap]) + unwrapped = Hanzoai::Internal::Util.dig(decoded, unwrap) Hanzoai::Internal::Type::Converter.coerce(model, unwrapped) end end + # @api private + # # @return [String] def inspect # rubocop:disable Layout/LineLength - base_url = Hanzoai::Internal::Util.unparse_uri(@base_url) - "#<#{self.class.name}:0x#{object_id.to_s(16)} base_url=#{base_url} max_retries=#{@max_retries} timeout=#{@timeout}>" + "#<#{self.class.name}:0x#{object_id.to_s(16)} base_url=#{@base_url} max_retries=#{@max_retries} timeout=#{@timeout}>" # rubocop:enable Layout/LineLength end + + define_sorbet_constant!(:RequestComponents) do + T.type_alias do + { + method: Symbol, + path: T.any(String, T::Array[String]), + query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]), + headers: T.nilable( + T::Hash[String, + T.nilable( + T.any( + String, + Integer, + T::Array[T.nilable(T.any(String, Integer))] + ) + )] + ), + body: T.nilable(T.anything), + unwrap: T.nilable( + T.any( + Symbol, + Integer, + T::Array[T.any(Symbol, Integer)], + T.proc.params(arg0: T.anything).returns(T.anything) + ) + ), + page: T.nilable(T::Class[Hanzoai::Internal::Type::BasePage[Hanzoai::Internal::Type::BaseModel]]), + stream: T.nilable(T::Class[T.anything]), + model: T.nilable(Hanzoai::Internal::Type::Converter::Input), + options: T.nilable(Hanzoai::RequestOptions::OrHash) + } + end + end + define_sorbet_constant!(:RequestInput) do + T.type_alias do + { + method: Symbol, + url: URI::Generic, + headers: T::Hash[String, String], + body: T.anything, + max_retries: Integer, + timeout: Float + } + end + end end end end diff --git a/lib/hanzoai/internal/transport/pooled_net_requester.rb b/lib/hanzoai/internal/transport/pooled_net_requester.rb index dbe2a525..3a774d18 100644 --- a/lib/hanzoai/internal/transport/pooled_net_requester.rb +++ b/lib/hanzoai/internal/transport/pooled_net_requester.rb @@ -5,17 +5,22 @@ module Internal module Transport # @api private class PooledNetRequester + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + # from the golang stdlib - # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49 + # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49 KEEP_ALIVE_TIMEOUT = 30 + DEFAULT_MAX_CONNECTIONS = [Etc.nprocessors, 99].max + 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, _] @@ -29,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 @@ -54,14 +61,14 @@ def calibrate_socket_timeout(conn, deadline) # @param blk [Proc] # # @yieldparam [String] - # @return [Net::HTTPGenericRequest] + # @return [Array(Net::HTTPGenericRequest, Proc)] def build_request(request, &blk) method, url, headers, body = request.fetch_values(:method, :url, :headers, :body) req = Net::HTTPGenericRequest.new( method.to_s.upcase, !body.nil?, method != :head, - url.to_s + URI(url.to_s) # ensure we construct a URI class of the right scheme ) headers.each { req[_1] = _2 } @@ -75,12 +82,12 @@ def build_request(request, &blk) in StringIO req["content-length"] ||= body.size.to_s unless req["transfer-encoding"] req.body_stream = Hanzoai::Internal::Util::ReadIOAdapter.new(body, &blk) - in IO | Enumerator + in Pathname | IO | Enumerator req["transfer-encoding"] ||= "chunked" unless req["content-length"] req.body_stream = Hanzoai::Internal::Util::ReadIOAdapter.new(body, &blk) end - req + [req, req.body_stream&.method(:close)] end end @@ -98,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 @@ -123,61 +130,80 @@ def build_request(request, &blk) def execute(request) url, deadline = request.fetch_values(:url, :deadline) - eof = false + req = nil finished = false - enum = Enumerator.new do |y| - with_pool(url, deadline: deadline) do |conn| - next if finished - - req = 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 + # rubocop:disable Metrics/BlockLength + enum = Enumerator.new do |y| + next if finished - self.class.calibrate_socket_timeout(conn, deadline) - conn.request(req) do |rsp| - y << [conn, req, rsp] - break if finished + with_pool(url, deadline: deadline) do |conn| + 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 - rsp.read_body do |bytes| - y << bytes - 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) + ::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 + end + end + ensure + begin + conn.finish if !eof && conn&.started? + ensure + closing&.call end - eof = true end end rescue Timeout::Error - raise Hanzoai::Errors::APITimeoutError + raise Hanzoai::Errors::APITimeoutError.new(url: url, request: req) + rescue StandardError + raise Hanzoai::Errors::APIConnectionError.new(url: url, request: req) end + # rubocop:enable Metrics/BlockLength - conn, _, response = enum.next + _, response = enum.next body = Hanzoai::Internal::Util.fused_enum(enum, external: true) do finished = true - tap do - enum.next - rescue StopIteration - nil - end - conn.finish if !eof && conn&.started? + loop { enum.next } end - [Integer(response.code), response, (response.body = body)] + [Integer(response.code), response, body] end # @api private # # @param size [Integer] - def initialize(size: Etc.nprocessors) + 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 + + define_sorbet_constant!(:Request) do + T.type_alias { {method: Symbol, url: URI::Generic, headers: T::Hash[String, String], body: T.anything, deadline: Float} } + end end end end diff --git a/lib/hanzoai/internal/type/array_of.rb b/lib/hanzoai/internal/type/array_of.rb index eeebe675..94606c0f 100644 --- a/lib/hanzoai/internal/type/array_of.rb +++ b/lib/hanzoai/internal/type/array_of.rb @@ -12,7 +12,12 @@ module Type # Array of items of a given type. class ArrayOf include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport + private_class_method :new + + # @overload [](type_info, spec = {}) + # # @param type_info [Hash{Symbol=>Object}, Proc, Hanzoai::Internal::Type::Converter, Class] # # @param spec [Hash{Symbol=>Object}] . @@ -24,13 +29,19 @@ class ArrayOf # @option spec [Proc] :union # # @option spec [Boolean] :"nil?" - def self.[](type_info, spec = {}) = new(type_info, spec) + # + # @return [self] + def self.[](...) = new(...) + # @api public + # # @param other [Object] # # @return [Boolean] def ===(other) = other.is_a?(Array) && other.all?(item_type) + # @api public + # # @param other [Object] # # @return [Boolean] @@ -40,16 +51,25 @@ def ==(other) # rubocop:enable Layout/LineLength end + # @api public + # + # @return [Integer] + def hash = [self.class, item_type].hash + # @api private # # @param value [Array, Object] # # @param state [Hash{Symbol=>Object}] . # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # # @return [Array, Object] @@ -58,6 +78,7 @@ def coerce(value, state:) unless value.is_a?(Array) exactness[:no] += 1 + state[:error] = TypeError.new("#{value.class} can't be coerced into #{Array}") return value end @@ -79,18 +100,29 @@ def coerce(value, state:) # # @param value [Array, Object] # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # # @return [Array, Object] - def dump(value) + def dump(value, state:) target = item_type if value.is_a?(Array) value.map do - Hanzoai::Internal::Type::Converter.dump(target, _1) + Hanzoai::Internal::Type::Converter.dump(target, _1, state: state) end else super end end + # @api private + # + # @return [Object] + def to_sorbet_type + T::Array[Hanzoai::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(item_type)] + end + # @api private # # @return [generic] @@ -116,7 +148,19 @@ def dump(value) # @option spec [Boolean] :"nil?" def initialize(type_info, spec = {}) @item_type_fn = Hanzoai::Internal::Type::Converter.type_info(type_info || spec) - @nilable = spec[:nil?] + @meta = Hanzoai::Internal::Type::Converter.meta_info(type_info, spec) + @nilable = spec.fetch(:nil?, false) + end + + # @api private + # + # @param depth [Integer] + # + # @return [String] + def inspect(depth: 0) + items = Hanzoai::Internal::Type::Converter.inspect(item_type, depth: depth.succ) + + "#{self.class}[#{[items, nilable? ? 'nil' : nil].compact.join(' | ')}]" end end end diff --git a/lib/hanzoai/internal/type/base_model.rb b/lib/hanzoai/internal/type/base_model.rb index 74422281..06e4181a 100644 --- a/lib/hanzoai/internal/type/base_model.rb +++ b/lib/hanzoai/internal/type/base_model.rb @@ -4,28 +4,27 @@ module Hanzoai module Internal module Type # @abstract - # - # @example - # # `util_token_counter_response` is a `Hanzoai::Models::UtilTokenCounterResponse` - # util_token_counter_response => { - # model_used: model_used, - # request_model: request_model, - # tokenizer_type: tokenizer_type - # } class BaseModel extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport class << self # @api private # # Assumes superclass fields are totally defined before fields are accessed / - # defined on subclasses. + # defined on subclasses. # - # @return [Hash{Symbol=>Hash{Symbol=>Object}}] - def known_fields - @known_fields ||= (self < Hanzoai::Internal::Type::BaseModel ? superclass.known_fields.dup : {}) + # @param child [Class] + def inherited(child) + super + child.known_fields.replace(known_fields.dup) end + # @api private + # + # @return [Hash{Symbol=>Hash{Symbol=>Object}}] + def known_fields = @known_fields ||= {} + # @api private # # @return [Hash{Symbol=>Hash{Symbol=>Object}}] @@ -53,6 +52,7 @@ def fields # # @option spec [Boolean] :"nil?" private def add_field(name_sym, required:, type_info:, spec:) + meta = Hanzoai::Internal::Type::Converter.meta_info(type_info, spec) type_fn, info = case type_info in Proc | Hanzoai::Internal::Type::Converter | Class @@ -61,17 +61,10 @@ def fields [Hanzoai::Internal::Type::Converter.type_info(type_info), type_info] end - setter = "#{name_sym}=" + setter = :"#{name_sym}=" api_name = info.fetch(:api_name, name_sym) - nilable = info[:nil?] - const = if required && !nilable - info.fetch( - :const, - Hanzoai::Internal::OMIT - ) - else - Hanzoai::Internal::OMIT - end + nilable = info.fetch(:nil?, false) + const = required && !nilable ? info.fetch(:const, Hanzoai::Internal::OMIT) : Hanzoai::Internal::OMIT [name_sym, setter].each { undef_method(_1) } if known_fields.key?(name_sym) @@ -82,31 +75,65 @@ def fields required: required, nilable: nilable, const: const, - type_fn: type_fn + type_fn: type_fn, + meta: meta } - define_method(setter) { @data.store(name_sym, _1) } + define_method(setter) do |value| + target = type_fn.call + state = Hanzoai::Internal::Type::Converter.new_coerce_state(translate_names: false) + coerced = Hanzoai::Internal::Type::Converter.coerce(target, value, state: state) + status = @coerced.store(name_sym, state.fetch(:error) || true) + stored = + case [target, status] + in [Hanzoai::Internal::Type::Converter | Symbol, true] + coerced + else + value + end + @data.store(name_sym, stored) + end + # rubocop:disable Style/CaseEquality + # rubocop:disable Metrics/BlockLength define_method(name_sym) do target = type_fn.call - value = @data.fetch(name_sym) { const == Hanzoai::Internal::OMIT ? nil : const } - state = {strictness: :strong, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} - if (nilable || !required) && value.nil? - nil - else - Hanzoai::Internal::Type::Converter.coerce( - target, - value, - state: state + + case @coerced[name_sym] + in true | false if Hanzoai::Internal::Type::Converter === target + @data.fetch(name_sym) + in ::StandardError => e + raise Hanzoai::Errors::ConversionError.new( + on: self.class, + method: __method__, + target: target, + value: @data.fetch(name_sym), + cause: e ) + else + Kernel.then do + value = @data.fetch(name_sym) { const == Hanzoai::Internal::OMIT ? nil : const } + state = Hanzoai::Internal::Type::Converter.new_coerce_state(translate_names: false) + if (nilable || !required) && value.nil? + nil + else + Hanzoai::Internal::Type::Converter.coerce( + target, value, state: state + ) + end + rescue StandardError => e + raise Hanzoai::Errors::ConversionError.new( + on: self.class, + method: __method__, + target: target, + value: value, + cause: e + ) + end end - rescue StandardError - cls = self.class.name.split("::").last - # rubocop:disable Layout/LineLength - message = "Failed to parse #{cls}.#{__method__} from #{value.class} to #{target.inspect}. To get the unparsed API response, use #{cls}[:#{__method__}]." - # rubocop:enable Layout/LineLength - raise Hanzoai::Errors::ConversionError.new(message) end + # rubocop:enable Metrics/BlockLength + # rubocop:enable Style/CaseEquality end # @api private @@ -150,7 +177,7 @@ def optional(name_sym, type_info, spec = {}) # @api private # # `request_only` attributes not excluded from `.#coerce` when receiving responses - # even if well behaved servers should not send them + # even if well behaved servers should not send them # # @param blk [Proc] private def request_only(&blk) @@ -172,19 +199,33 @@ def optional(name_sym, type_info, spec = {}) @mode = nil end + # @api public + # # @param other [Object] # # @return [Boolean] def ==(other) other.is_a?(Class) && other <= Hanzoai::Internal::Type::BaseModel && other.fields == fields end + + # @api public + # + # @return [Integer] + def hash = fields.hash end + # @api public + # # @param other [Object] # # @return [Boolean] def ==(other) = self.class == other.class && @data == other.to_h + # @api public + # + # @return [Integer] + def hash = [self.class, @data].hash + class << self # @api private # @@ -192,23 +233,28 @@ class << self # # @param state [Hash{Symbol=>Object}] . # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # - # @return [Hanzoai::Internal::Type::BaseModel, Object] + # @return [self, Object] def coerce(value, state:) exactness = state.fetch(:exactness) - if value.is_a?(self.class) + if value.is_a?(self) exactness[:yes] += 1 return value end unless (val = Hanzoai::Internal::Util.coerce_hash(value)).is_a?(Hash) exactness[:no] += 1 + state[:error] = TypeError.new("#{value.class} can't be coerced into #{Hash}") return value end exactness[:yes] += 1 @@ -216,13 +262,15 @@ def coerce(value, state:) keys = val.keys.to_set instance = new data = instance.to_h + status = instance.instance_variable_get(:@coerced) # rubocop:disable Metrics/BlockLength fields.each do |name, field| mode, required, target = field.fetch_values(:mode, :required, :type) api_name, nilable, const = field.fetch_values(:api_name, :nilable, :const) + src_name = state.fetch(:translate_names) ? api_name : name - unless val.key?(api_name) + unless val.key?(src_name) if required && mode != :dump && const == Hanzoai::Internal::OMIT exactness[nilable ? :maybe : :no] += 1 else @@ -231,9 +279,10 @@ def coerce(value, state:) next end - item = val.fetch(api_name) - keys.delete(api_name) + item = val.fetch(src_name) + keys.delete(src_name) + state[:error] = nil converted = if item.nil? && (nilable || !required) exactness[nilable ? :yes : :maybe] += 1 @@ -247,6 +296,8 @@ def coerce(value, state:) item end end + + status.store(name, state.fetch(:error) || true) data.store(name, converted) end # rubocop:enable Metrics/BlockLength @@ -257,10 +308,14 @@ def coerce(value, state:) # @api private # - # @param value [Hanzoai::Internal::Type::BaseModel, Object] + # @param value [self, Object] + # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry # # @return [Hash{Object=>Object}, Object] - def dump(value) + def dump(value, state:) unless (coerced = Hanzoai::Internal::Util.coerce_hash(value)).is_a?(Hash) return super end @@ -271,35 +326,77 @@ def dump(value) name = key.is_a?(String) ? key.to_sym : key case (field = known_fields[name]) in nil - acc.store(name, super(val)) + acc.store(name, super(val, state: state)) else - mode, api_name, type_fn = field.fetch_values(:mode, :api_name, :type_fn) + api_name, mode, type_fn = field.fetch_values(:api_name, :mode, :type_fn) case mode in :coerce next else target = type_fn.call - acc.store(api_name, Hanzoai::Internal::Type::Converter.dump(target, val)) + acc.store(api_name, Hanzoai::Internal::Type::Converter.dump(target, val, state: state)) end end end known_fields.each_value do |field| - mode, api_name, const = field.fetch_values(:mode, :api_name, :const) + api_name, mode, const = field.fetch_values(:api_name, :mode, :const) next if mode == :coerce || acc.key?(api_name) || const == Hanzoai::Internal::OMIT acc.store(api_name, const) end acc end + + # @api private + # + # @return [Object] + def to_sorbet_type + self + end + end + + class << self + # @api private + # + # @param model [Hanzoai::Internal::Type::BaseModel] + # @param convert [Boolean] + # + # @return [Hash{Symbol=>Object}] + def recursively_to_h(model, convert:) + rec = ->(x) do + case x + in Hanzoai::Internal::Type::BaseModel + if convert + fields = x.class.known_fields + x.to_h.to_h do |key, val| + [key, rec.call(fields.key?(key) ? x.public_send(key) : val)] + rescue Hanzoai::Errors::ConversionError + [key, rec.call(val)] + end + else + rec.call(x.to_h) + end + in Hash + x.transform_values(&rec) + in Array + x.map(&rec) + else + x + end + end + rec.call(model) + end end + # @api public + # # Returns the raw value associated with the given key, if found. Otherwise, nil is - # returned. + # returned. # - # It is valid to lookup keys that are not in the API spec, for example to access - # undocumented features. This method does not parse response data into - # higher-level types. Lookup by anything other than a Symbol is an ArgumentError. + # It is valid to lookup keys that are not in the API spec, for example to access + # undocumented features. This method does not parse response data into + # higher-level types. Lookup by anything other than a Symbol is an ArgumentError. # # @param key [Symbol] # @@ -312,23 +409,41 @@ def [](key) @data[key] end + # @api public + # # Returns a Hash of the data underlying this object. O(1) # - # Keys are Symbols and values are the raw values from the response. The return - # value indicates which values were ever set on the object. i.e. there will be a - # key in this hash if they ever were, even if the set value was nil. + # Keys are Symbols and values are the raw values from the response. The return + # value indicates which values were ever set on the object. i.e. there will be a + # key in this hash if they ever were, even if the set value was nil. # - # This method is not recursive. The returned value is shared by the object, so it - # should not be mutated. + # This method is not recursive. The returned value is shared by the object, so it + # should not be mutated. # # @return [Hash{Symbol=>Object}] def to_h = @data alias_method :to_hash, :to_h + # @api public + # + # In addition to the behaviour of `#to_h`, this method will recursively call + # `#to_h` on nested models. + # + # @return [Hash{Symbol=>Object}] + def deep_to_h = self.class.recursively_to_h(@data, convert: false) + # @param keys [Array, nil] # # @return [Hash{Symbol=>Object}] + # + # @example + # # `util_token_counter_response` is a `Hanzoai::Models::UtilTokenCounterResponse` + # util_token_counter_response => { + # model_used: model_used, + # request_model: request_model, + # tokenizer_type: tokenizer_type + # } def deconstruct_keys(keys) (keys || self.class.known_fields.keys) .filter_map do |k| @@ -341,37 +456,74 @@ def deconstruct_keys(keys) .to_h end + # @api public + # # @param a [Object] # # @return [String] - def to_json(*a) = self.class.dump(self).to_json(*a) + def to_json(*a) = Hanzoai::Internal::Type::Converter.dump(self.class, self).to_json(*a) + # @api public + # # @param a [Object] # # @return [String] - def to_yaml(*a) = self.class.dump(self).to_yaml(*a) + def to_yaml(*a) = Hanzoai::Internal::Type::Converter.dump(self.class, self).to_yaml(*a) # Create a new instance of a model. # - # @param data [Hash{Symbol=>Object}, Hanzoai::Internal::Type::BaseModel] + # @param data [Hash{Symbol=>Object}, self] def initialize(data = {}) - case Hanzoai::Internal::Util.coerce_hash(data) - in Hash => coerced - @data = coerced - else - message = "Expected a #{Hash} or #{Hanzoai::Internal::Type::BaseModel}, got #{data.inspect}" - raise ArgumentError.new(message) + @data = {} + @coerced = {} + Hanzoai::Internal::Util.coerce_hash!(data).each do + if self.class.known_fields.key?(_1) + public_send(:"#{_1}=", _2) + else + @data.store(_1, _2) + @coerced.store(_1, false) + end end end + class << self + # @api private + # + # @param depth [Integer] + # + # @return [String] + def inspect(depth: 0) + return super() if depth.positive? + + depth = depth.succ + deferred = fields.transform_values do |field| + type, required, nilable = field.fetch_values(:type, :required, :nilable) + inspected = [ + Hanzoai::Internal::Type::Converter.inspect(type, depth: depth), + !required || nilable ? "nil" : nil + ].compact.join(" | ") + -> { inspected }.tap { _1.define_singleton_method(:inspect) { call } } + end + + "#{name}[#{deferred.inspect}]" + end + end + + # @api public + # + # @return [String] + def to_s = deep_to_h.to_s + + # @api private + # # @return [String] def inspect - rows = self.class.known_fields.keys.map do - "#{_1}=#{@data.key?(_1) ? public_send(_1) : ''}" - rescue Hanzoai::Errors::ConversionError - "#{_1}=#{@data.fetch(_1)}" - end - "#<#{self.class.name}:0x#{object_id.to_s(16)} #{rows.join(' ')}>" + converted = self.class.recursively_to_h(self, convert: true) + "#<#{self.class}:0x#{object_id.to_s(16)} #{converted}>" + end + + define_sorbet_constant!(:KnownField) do + T.type_alias { {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean} } end end end diff --git a/lib/hanzoai/internal/type/base_page.rb b/lib/hanzoai/internal/type/base_page.rb index 128407d5..ae749b59 100644 --- a/lib/hanzoai/internal/type/base_page.rb +++ b/lib/hanzoai/internal/type/base_page.rb @@ -3,19 +3,27 @@ module Hanzoai module Internal module Type + # @api private + # # @generic Elem # # This module provides a base implementation for paginated responses in the SDK. module BasePage # rubocop:disable Lint/UnusedMethodArgument + # @api public + # # @return [Boolean] def next_page? = (raise NotImplementedError) + # @api public + # # @raise [Hanzoai::Errors::APIError] - # @return [Hanzoai::Internal::Type::BasePage] + # @return [self] def next_page = (raise NotImplementedError) + # @api public + # # @param blk [Proc] # # @yieldparam [generic] @@ -31,11 +39,12 @@ def to_enum = super(:auto_paging_each) # # @param client [Hanzoai::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 @req = req + @model = req.fetch(:model) super() end diff --git a/lib/hanzoai/internal/type/boolean.rb b/lib/hanzoai/internal/type/boolean.rb new file mode 100644 index 00000000..c18c83c4 --- /dev/null +++ b/lib/hanzoai/internal/type/boolean.rb @@ -0,0 +1,77 @@ +# frozen_string_literal: true + +module Hanzoai + module Internal + module Type + # @api private + # + # @abstract + # + # Ruby has no Boolean class; this is something for models to refer to. + class Boolean + extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + private_class_method :new + + # @api public + # + # @param other [Object] + # + # @return [Boolean] + def self.===(other) = other == true || other == false + + # @api public + # + # @param other [Object] + # + # @return [Boolean] + def self.==(other) = other.is_a?(Class) && other <= Hanzoai::Internal::Type::Boolean + + class << self + # @api private + # + # Coerce value to Boolean if possible, otherwise return the original value. + # + # @param value [Boolean, Object] + # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness + # + # @option state [Hash{Symbol=>Object}] :exactness + # + # @option state [Class] :error + # + # @option state [Integer] :branched + # + # @return [Boolean, Object] + def coerce(value, state:) + state.fetch(:exactness)[value == true || value == false ? :yes : :no] += 1 + value + end + + # @!method dump(value, state:) + # @api private + # + # @param value [Boolean, Object] + # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # + # @return [Boolean, Object] + + # @api private + # + # @return [Object] + def to_sorbet_type + T::Boolean + end + end + end + end + end +end diff --git a/lib/hanzoai/internal/type/boolean_model.rb b/lib/hanzoai/internal/type/boolean_model.rb deleted file mode 100644 index 76cb50bb..00000000 --- a/lib/hanzoai/internal/type/boolean_model.rb +++ /dev/null @@ -1,54 +0,0 @@ -# frozen_string_literal: true - -module Hanzoai - module Internal - module Type - # @api private - # - # @abstract - # - # Ruby has no Boolean class; this is something for models to refer to. - class BooleanModel - extend Hanzoai::Internal::Type::Converter - - # @param other [Object] - # - # @return [Boolean] - def self.===(other) = other == true || other == false - - # @param other [Object] - # - # @return [Boolean] - def self.==(other) = other.is_a?(Class) && other <= Hanzoai::Internal::Type::BooleanModel - - class << self - # @api private - # - # @param value [Boolean, Object] - # - # @param state [Hash{Symbol=>Object}] . - # - # @option state [Boolean, :strong] :strictness - # - # @option state [Hash{Symbol=>Object}] :exactness - # - # @option state [Integer] :branched - # - # @return [Boolean, Object] - def coerce(value, state:) - state.fetch(:exactness)[value == true || value == false ? :yes : :no] += 1 - value - end - - # @!parse - # # @api private - # # - # # @param value [Boolean, Object] - # # - # # @return [Boolean, Object] - # def dump(value) = super - end - end - end - end -end diff --git a/lib/hanzoai/internal/type/converter.rb b/lib/hanzoai/internal/type/converter.rb index b21862e9..826a9171 100644 --- a/lib/hanzoai/internal/type/converter.rb +++ b/lib/hanzoai/internal/type/converter.rb @@ -3,9 +3,10 @@ module Hanzoai module Internal module Type - # rubocop:disable Metrics/ModuleLength # @api private module Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + # rubocop:disable Lint/UnusedMethodArgument # @api private @@ -14,10 +15,14 @@ module Converter # # @param state [Hash{Symbol=>Object}] . # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # # @return [Object] @@ -27,20 +32,41 @@ def coerce(value, state:) = (raise NotImplementedError) # # @param value [Object] # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # # @return [Object] - def dump(value) + def dump(value, state:) case value in Array - value.map { Hanzoai::Internal::Type::Unknown.dump(_1) } + value.map { Hanzoai::Internal::Type::Unknown.dump(_1, state: state) } in Hash - value.transform_values { Hanzoai::Internal::Type::Unknown.dump(_1) } + value.transform_values { Hanzoai::Internal::Type::Unknown.dump(_1, state: state) } in Hanzoai::Internal::Type::BaseModel - value.class.dump(value) + value.class.dump(value, state: state) + in StringIO + value.string + in Pathname | IO + state[:can_retry] = false if value.is_a?(IO) + Hanzoai::FilePart.new(value) + in Hanzoai::FilePart + state[:can_retry] = false if value.content.is_a?(IO) + value else value end end + # @api private + # + # @param depth [Integer] + # + # @return [String] + def inspect(depth: 0) + super() + end + # rubocop:enable Lint/UnusedMethodArgument class << self @@ -64,7 +90,7 @@ def type_info(spec) in Hash type_info(spec.slice(:const, :enum, :union).first&.last) in true | false - -> { Hanzoai::Internal::Type::BooleanModel } + -> { Hanzoai::Internal::Type::Boolean } in Hanzoai::Internal::Type::Converter | Class | Symbol -> { spec } in NilClass | Integer | Float @@ -72,57 +98,95 @@ def type_info(spec) end end + # @api private + # + # @param type_info [Hash{Symbol=>Object}, Proc, Hanzoai::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, Hanzoai::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] + # + # @return [Hash{Symbol=>Object}] + def new_coerce_state(translate_names: true) + { + translate_names: translate_names, + strictness: true, + exactness: {yes: 0, no: 0, maybe: 0}, + error: nil, + branched: 0 + } + end + # @api private # # Based on `target`, transform `value` into `target`, to the extent possible: # - # 1. if the given `value` conforms to `target` already, return the given `value` - # 2. if it's possible and safe to convert the given `value` to `target`, then the - # converted value - # 3. otherwise, the given `value` unaltered + # 1. if the given `value` conforms to `target` already, return the given `value` + # 2. if it's possible and safe to convert the given `value` to `target`, then the + # converted value + # 3. otherwise, the given `value` unaltered # - # The coercion process is subject to improvement between minor release versions. - # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode + # The coercion process is subject to improvement between minor release versions. + # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode # # @param target [Hanzoai::Internal::Type::Converter, Class] # # @param value [Object] # - # @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false`, or `:strong`. This informs the - # coercion strategy when we have to decide between multiple possible conversion - # targets: + # @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false`. This informs the coercion strategy + # when we have to decide between multiple possible conversion targets: + # + # - `true`: the conversion must be exact, with minimum coercion. + # - `false`: the conversion can be approximate, with some coercion. # - # - `true`: the conversion must be exact, with minimum coercion. - # - `false`: the conversion can be approximate, with some coercion. - # - `:strong`: the conversion must be exact, with no coercion, and raise an error - # if not possible. + # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For + # any given conversion attempt, the exactness will be updated based on how closely + # the value recursively matches the target type: # - # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For - # any given conversion attempt, the exactness will be updated based on how closely - # the value recursively matches the target type: + # - `yes`: the value can be converted to the target type with minimum coercion. + # - `maybe`: the value can be converted to the target type with some reasonable + # coercion. + # - `no`: the value cannot be converted to the target type. # - # - `yes`: the value can be converted to the target type with minimum coercion. - # - `maybe`: the value can be converted to the target type with some reasonable - # coercion. - # - `no`: the value cannot be converted to the target type. + # See implementation below for more details. # - # See implementation below for more details. + # @option state [Boolean] :translate_names # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # # @return [Object] - def coerce( - target, - value, - state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} - ) - # rubocop:disable Lint/SuppressedException + def coerce(target, value, state: Hanzoai::Internal::Type::Converter.new_coerce_state) # rubocop:disable Metrics/BlockNesting - strictness, exactness = state.fetch_values(:strictness, :exactness) + exactness = state.fetch(:exactness) case target in Hanzoai::Internal::Type::Converter @@ -138,29 +202,26 @@ def coerce( exactness[value.nil? ? :yes : :maybe] += 1 return nil in -> { _1 <= Integer } - if value.is_a?(Integer) + case value + in Integer exactness[:yes] += 1 return value - elsif strictness == :strong - message = "no implicit conversion of #{value.class} into #{target.inspect}" - raise TypeError.new(message) else Kernel.then do return Integer(value).tap { exactness[:maybe] += 1 } - rescue ArgumentError, TypeError + rescue ArgumentError, TypeError => e + state[:error] = e end end in -> { _1 <= Float } if value.is_a?(Numeric) exactness[:yes] += 1 return Float(value) - elsif strictness == :strong - message = "no implicit conversion of #{value.class} into #{target.inspect}" - raise TypeError.new(message) else Kernel.then do return Float(value).tap { exactness[:maybe] += 1 } - rescue ArgumentError, TypeError + rescue ArgumentError, TypeError => e + state[:error] = e end end in -> { _1 <= String } @@ -168,30 +229,36 @@ def coerce( in String | Symbol | Numeric exactness[value.is_a?(Numeric) ? :maybe : :yes] += 1 return value.to_s + in StringIO + exactness[:yes] += 1 + return value.string else - if strictness == :strong - message = "no implicit conversion of #{value.class} into #{target.inspect}" - raise TypeError.new(message) - end + state[:error] = TypeError.new("#{value.class} can't be coerced into #{String}") end in -> { _1 <= Date || _1 <= Time } Kernel.then do return target.parse(value).tap { exactness[:yes] += 1 } rescue ArgumentError, TypeError => e - raise e if strictness == :strong + state[:error] = e end - in -> { _1 <= IO } if value.is_a?(String) + in -> { _1 <= StringIO } if value.is_a?(String) exactness[:yes] += 1 return StringIO.new(value.b) else end in Symbol - if (value.is_a?(Symbol) || value.is_a?(String)) && value.to_sym == target - exactness[:yes] += 1 - return target - elsif strictness == :strong + case value + in Symbol | String + if value.to_sym == target + exactness[:yes] += 1 + return target + else + exactness[:maybe] += 1 + return value + end + else message = "cannot convert non-matching #{value.class} into #{target.inspect}" - raise ArgumentError.new(message) + state[:error] = ArgumentError.new(message) end else end @@ -199,23 +266,62 @@ def coerce( exactness[:no] += 1 value # rubocop:enable Metrics/BlockNesting - # rubocop:enable Lint/SuppressedException end # @api private # # @param target [Hanzoai::Internal::Type::Converter, Class] + # # @param value [Object] # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # # @return [Object] - def dump(target, value) - # rubocop:disable Layout/LineLength - target.is_a?(Hanzoai::Internal::Type::Converter) ? target.dump(value) : Hanzoai::Internal::Type::Unknown.dump(value) - # rubocop:enable Layout/LineLength + def dump(target, value, state: {can_retry: true}) + case target + in Hanzoai::Internal::Type::Converter + target.dump(value, state: state) + else + Hanzoai::Internal::Type::Unknown.dump(value, state: state) + end end + + # @api private + # + # @param target [Object] + # @param depth [Integer] + # + # @return [String] + def inspect(target, depth:) + case target + in Hanzoai::Internal::Type::Converter + target.inspect(depth: depth.succ) + else + target.inspect + end + end + end + + define_sorbet_constant!(:Input) do + T.type_alias { T.any(Hanzoai::Internal::Type::Converter, T::Class[T.anything]) } + end + define_sorbet_constant!(:CoerceState) do + T.type_alias do + { + translate_names: T::Boolean, + strictness: T::Boolean, + exactness: {yes: Integer, no: Integer, maybe: Integer}, + error: T::Class[StandardError], + branched: Integer + } + end + end + define_sorbet_constant!(:DumpState) do + T.type_alias { {can_retry: T::Boolean} } end end - # rubocop:enable Metrics/ModuleLength end end end diff --git a/lib/hanzoai/internal/type/enum.rb b/lib/hanzoai/internal/type/enum.rb index 0018f838..e5f450dc 100644 --- a/lib/hanzoai/internal/type/enum.rb +++ b/lib/hanzoai/internal/type/enum.rb @@ -6,55 +6,89 @@ module Type # @api private # # A value from among a specified list of options. OpenAPI enum values map to Ruby - # values in the SDK as follows: + # values in the SDK as follows: # - # 1. boolean => true | false - # 2. integer => Integer - # 3. float => Float - # 4. string => Symbol + # 1. boolean => true | false + # 2. integer => Integer + # 3. float => Float + # 4. string => Symbol # - # We can therefore convert string values to Symbols, but can't convert other - # values safely. + # We can therefore convert string values to Symbols, but can't convert other + # values safely. + # + # @example + # # `user_roles` is a `Hanzoai::UserRoles` + # case user_roles + # when Hanzoai::UserRoles::PROXY_ADMIN + # # ... + # when Hanzoai::UserRoles::PROXY_ADMIN_VIEWER + # # ... + # when Hanzoai::UserRoles::ORG_ADMIN + # # ... + # else + # puts(user_roles) + # end + # + # @example + # case user_roles + # in :proxy_admin + # # ... + # in :proxy_admin_viewer + # # ... + # in :org_admin + # # ... + # else + # puts(user_roles) + # end module Enum include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport # All of the valid Symbol values for this enum. # # @return [Array] - def values = (@values ||= constants.map { const_get(_1) }) + def values = constants.map { const_get(_1) } - # @api private + # @api public # - # Guard against thread safety issues by instantiating `@values`. - private def finalize! = values - # @param other [Object] # # @return [Boolean] def ===(other) = values.include?(other) + # @api public + # # @param other [Object] # # @return [Boolean] def ==(other) - # rubocop:disable Layout/LineLength - other.is_a?(Module) && other.singleton_class <= Hanzoai::Internal::Type::Enum && other.values.to_set == values.to_set - # rubocop:enable Layout/LineLength + # rubocop:disable Style/CaseEquality + Hanzoai::Internal::Type::Enum === other && other.values.to_set == values.to_set + # rubocop:enable Style/CaseEquality end + # @api public + # + # @return [Integer] + def hash = values.to_set.hash + # @api private # # Unlike with primitives, `Enum` additionally validates that the value is a member - # of the enum. + # of the enum. # # @param value [String, Symbol, Object] # # @param state [Hash{Symbol=>Object}] . # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # # @return [Symbol, Object] @@ -65,19 +99,57 @@ def coerce(value, state:) if values.include?(val) exactness[:yes] += 1 val + elsif values.first&.class == val.class + exactness[:maybe] += 1 + value else - exactness[values.first&.class == val.class ? :maybe : :no] += 1 + exactness[:no] += 1 + state[:error] = TypeError.new("#{value.class} can't be coerced into #{self}") value end end - # @!parse - # # @api private - # # - # # @param value [Symbol, Object] - # # - # # @return [Symbol, Object] - # def dump(value) = super + # @!method dump(value, state:) + # @api private + # + # @param value [Symbol, Object] + # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # + # @return [Symbol, Object] + + # @api private + # + # @return [Object] + def to_sorbet_type + types = values.map { Hanzoai::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(_1) }.uniq + case types + in [] + T.noreturn + in [type] + type + else + T.any(*types) + end + end + + # @api private + # + # @param depth [Integer] + # + # @return [String] + def inspect(depth: 0) + if depth.positive? + return is_a?(Module) ? super() : self.class.name + end + + members = values.map { Hanzoai::Internal::Type::Converter.inspect(_1, depth: depth.succ) } + prefix = is_a?(Module) ? name : self.class.name + + "#{prefix}[#{members.join(' | ')}]" + end end end end diff --git a/lib/hanzoai/internal/type/file_input.rb b/lib/hanzoai/internal/type/file_input.rb new file mode 100644 index 00000000..12b8c082 --- /dev/null +++ b/lib/hanzoai/internal/type/file_input.rb @@ -0,0 +1,111 @@ +# frozen_string_literal: true + +module Hanzoai + module Internal + module Type + # @api private + # + # @abstract + # + # Either `Pathname` or `StringIO`, or `IO`, or + # `Hanzoai::Internal::Type::FileInput`. + # + # Note: when `IO` is used, all retries are disabled, since many IO` streams are + # not rewindable. + class FileInput + extend Hanzoai::Internal::Type::Converter + + private_class_method :new + + # @api public + # + # @param other [Object] + # + # @return [Boolean] + def self.===(other) + case other + in Pathname | StringIO | IO | String | Hanzoai::FilePart + true + else + false + end + end + + # @api public + # + # @param other [Object] + # + # @return [Boolean] + def self.==(other) = other.is_a?(Class) && other <= Hanzoai::Internal::Type::FileInput + + class << self + # @api private + # + # @param value [StringIO, String, Object] + # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness + # + # @option state [Hash{Symbol=>Object}] :exactness + # + # @option state [Class] :error + # + # @option state [Integer] :branched + # + # @return [StringIO, Object] + def coerce(value, state:) + exactness = state.fetch(:exactness) + case value + in String + exactness[:yes] += 1 + StringIO.new(value) + in StringIO + exactness[:yes] += 1 + value + else + state[:error] = TypeError.new("#{value.class} can't be coerced into #{StringIO}") + exactness[:no] += 1 + value + end + end + + # @api private + # + # @param value [Pathname, StringIO, IO, String, Object] + # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # + # @return [Pathname, StringIO, IO, String, Object] + def dump(value, state:) + 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 + Hanzoai::FilePart.new(value, filename: "upload") + in IO + state[:can_retry] = false + value.to_path.nil? ? Hanzoai::FilePart.new(value, filename: "upload") : value + in Hanzoai::FilePart if value.content.is_a?(IO) + state[:can_retry] = false + value + else + value + end + end + + # @api private + # + # @return [Object] + def to_sorbet_type + T.any(Pathname, StringIO, IO, String, Hanzoai::FilePart) + end + end + end + end + end +end diff --git a/lib/hanzoai/internal/type/hash_of.rb b/lib/hanzoai/internal/type/hash_of.rb index 3ac6b5c6..ef06360c 100644 --- a/lib/hanzoai/internal/type/hash_of.rb +++ b/lib/hanzoai/internal/type/hash_of.rb @@ -12,7 +12,12 @@ module Type # Hash of items of a given type. class HashOf include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport + private_class_method :new + + # @overload [](type_info, spec = {}) + # # @param type_info [Hash{Symbol=>Object}, Proc, Hanzoai::Internal::Type::Converter, Class] # # @param spec [Hash{Symbol=>Object}] . @@ -24,8 +29,12 @@ class HashOf # @option spec [Proc] :union # # @option spec [Boolean] :"nil?" - def self.[](type_info, spec = {}) = new(type_info, spec) + # + # @return [self] + def self.[](...) = new(...) + # @api public + # # @param other [Object] # # @return [Boolean] @@ -46,6 +55,8 @@ def ===(other) end end + # @api public + # # @param other [Object] # # @return [Boolean] @@ -55,16 +66,25 @@ def ==(other) # rubocop:enable Layout/LineLength end + # @api public + # + # @return [Integer] + def hash = [self.class, item_type].hash + # @api private # # @param value [Hash{Object=>Object}, Object] # # @param state [Hash{Symbol=>Object}] . # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # # @return [Hash{Symbol=>Object}, Object] @@ -73,6 +93,7 @@ def coerce(value, state:) unless value.is_a?(Hash) exactness[:no] += 1 + state[:error] = TypeError.new("#{value.class} can't be coerced into #{Hash}") return value end @@ -99,18 +120,29 @@ def coerce(value, state:) # # @param value [Hash{Object=>Object}, Object] # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # # @return [Hash{Symbol=>Object}, Object] - def dump(value) + def dump(value, state:) target = item_type if value.is_a?(Hash) value.transform_values do - Hanzoai::Internal::Type::Converter.dump(target, _1) + Hanzoai::Internal::Type::Converter.dump(target, _1, state: state) end else super end end + # @api private + # + # @return [Object] + def to_sorbet_type + T::Hash[Hanzoai::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(item_type)] + end + # @api private # # @return [generic] @@ -136,7 +168,19 @@ def dump(value) # @option spec [Boolean] :"nil?" def initialize(type_info, spec = {}) @item_type_fn = Hanzoai::Internal::Type::Converter.type_info(type_info || spec) - @nilable = spec[:nil?] + @meta = Hanzoai::Internal::Type::Converter.meta_info(type_info, spec) + @nilable = spec.fetch(:nil?, false) + end + + # @api private + # + # @param depth [Integer] + # + # @return [String] + def inspect(depth: 0) + items = Hanzoai::Internal::Type::Converter.inspect(item_type, depth: depth.succ) + + "#{self.class}[#{[items, nilable? ? 'nil' : nil].compact.join(' | ')}]" end end end diff --git a/lib/hanzoai/internal/type/request_parameters.rb b/lib/hanzoai/internal/type/request_parameters.rb index 411bbcc4..5dacd1a1 100644 --- a/lib/hanzoai/internal/type/request_parameters.rb +++ b/lib/hanzoai/internal/type/request_parameters.rb @@ -5,16 +5,15 @@ module Internal module Type # @api private module RequestParameters - # @!parse - # # Options to specify HTTP behaviour for this request. - # # @return [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # attr_accessor :request_options + # @!attribute request_options + # Options to specify HTTP behaviour for this request. + # + # @return [Hanzoai::RequestOptions, Hash{Symbol=>Object}] # @param mod [Module] def self.included(mod) - return unless mod <= Hanzoai::Internal::Type::BaseModel + raise ArgumentError.new(mod) unless mod <= Hanzoai::Internal::Type::BaseModel - mod.extend(Hanzoai::Internal::Type::RequestParameters::Converter) mod.optional(:request_options, Hanzoai::RequestOptions) end @@ -26,9 +25,12 @@ module Converter # # @return [Array(Object, Hash{Symbol=>Object})] def dump_request(params) - case (dumped = dump(params)) + state = {can_retry: true} + case (dumped = dump(params, state: state)) in Hash - [dumped.except(:request_options), dumped[:request_options]] + options = Hanzoai::Internal::Util.coerce_hash!(dumped[:request_options]).to_h + request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0} + [dumped.except(:request_options), request_options] else [dumped, nil] end diff --git a/lib/hanzoai/internal/type/union.rb b/lib/hanzoai/internal/type/union.rb index 1b4ed530..678c9768 100644 --- a/lib/hanzoai/internal/type/union.rb +++ b/lib/hanzoai/internal/type/union.rb @@ -6,25 +6,26 @@ module Type # @api private module Union include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport # @api private # # 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 # @@ -50,12 +51,13 @@ def variants = derefed_variants.map(&:last) # # @option spec [Boolean] :"nil?" private def variant(key, spec = nil) + meta = Hanzoai::Internal::Type::Converter.meta_info(nil, spec) variant_info = case key in Symbol - [key, Hanzoai::Internal::Type::Converter.type_info(spec)] + [key, Hanzoai::Internal::Type::Converter.type_info(spec), meta] in Proc | Hanzoai::Internal::Type::Converter | Class | Hash - [nil, Hanzoai::Internal::Type::Converter.type_info(key)] + [nil, Hanzoai::Internal::Type::Converter.type_info(key), meta] end known_variants << variant_info @@ -78,7 +80,8 @@ def variants = derefed_variants.map(&:last) return nil if key == Hanzoai::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 @@ -87,6 +90,8 @@ def variants = derefed_variants.map(&:last) # rubocop:disable Style/HashEachMethods # rubocop:disable Style/CaseEquality + # @api public + # # @param other [Object] # # @return [Boolean] @@ -96,25 +101,39 @@ def ===(other) end end + # @api public + # # @param other [Object] # # @return [Boolean] def ==(other) - # rubocop:disable Layout/LineLength - other.is_a?(Module) && other.singleton_class <= Hanzoai::Internal::Type::Union && other.derefed_variants == derefed_variants - # rubocop:enable Layout/LineLength + Hanzoai::Internal::Type::Union === other && other.derefed_variants == derefed_variants end + # @api public + # + # @return [Integer] + def hash = variants.hash + # @api private # + # Tries to efficiently coerce the given value to one of the known variants. + # + # If the value cannot match any of the known variants, the coercion is considered + # non-viable and returns the original value. + # # @param value [Object] # # @param state [Hash{Symbol=>Object}] . # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # # @return [Object] @@ -125,7 +144,6 @@ def coerce(value, state:) strictness = state.fetch(:strictness) exactness = state.fetch(:exactness) - state[:strictness] = strictness == :strong ? true : strictness alternatives = [] known_variants.each do |_, variant_fn| @@ -144,13 +162,10 @@ def coerce(value, state:) end end - case alternatives.sort_by(&:first) + case alternatives.sort_by!(&:first) in [] exactness[:no] += 1 - if strictness == :strong - message = "no possible conversion of #{value.class} into a variant of #{target.inspect}" - raise ArgumentError.new(message) - end + state[:error] = ArgumentError.new("no matching variant for #{value.inspect}") value in [[_, exact, coerced], *] exact.each { exactness[_1] += _2 } @@ -165,22 +180,57 @@ def coerce(value, state:) # # @param value [Object] # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # # @return [Object] - def dump(value) + def dump(value, state:) if (target = resolve_variant(value)) - return Hanzoai::Internal::Type::Converter.dump(target, value) + return Hanzoai::Internal::Type::Converter.dump(target, value, state: state) end known_variants.each do target = _2.call - return Hanzoai::Internal::Type::Converter.dump(target, value) if target === value + return Hanzoai::Internal::Type::Converter.dump(target, value, state: state) if target === value end super end + # @api private + # + # @return [Object] + def to_sorbet_type + types = variants.map { Hanzoai::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(_1) }.uniq + case types + in [] + T.noreturn + in [type] + type + else + T.any(*types) + end + end + # rubocop:enable Style/CaseEquality # rubocop:enable Style/HashEachMethods + + # @api private + # + # @param depth [Integer] + # + # @return [String] + def inspect(depth: 0) + if depth.positive? + return is_a?(Module) ? super() : self.class.name + end + + members = variants.map { Hanzoai::Internal::Type::Converter.inspect(_1, depth: depth.succ) } + prefix = is_a?(Module) ? name : self.class.name + + "#{prefix}[#{members.join(' | ')}]" + end end end end diff --git a/lib/hanzoai/internal/type/unknown.rb b/lib/hanzoai/internal/type/unknown.rb index d5b23db2..bfc2c357 100644 --- a/lib/hanzoai/internal/type/unknown.rb +++ b/lib/hanzoai/internal/type/unknown.rb @@ -10,14 +10,21 @@ module Type # When we don't know what to expect for the value. class Unknown extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport # rubocop:disable Lint/UnusedMethodArgument + private_class_method :new + + # @api public + # # @param other [Object] # # @return [Boolean] def self.===(other) = true + # @api public + # # @param other [Object] # # @return [Boolean] @@ -26,14 +33,20 @@ def self.==(other) = other.is_a?(Class) && other <= Hanzoai::Internal::Type::Unk class << self # @api private # + # No coercion needed for Unknown type. + # # @param value [Object] # # @param state [Hash{Symbol=>Object}] . # - # @option state [Boolean, :strong] :strictness + # @option state [Boolean] :translate_names + # + # @option state [Boolean] :strictness # # @option state [Hash{Symbol=>Object}] :exactness # + # @option state [Class] :error + # # @option state [Integer] :branched # # @return [Object] @@ -42,13 +55,23 @@ def coerce(value, state:) value end - # @!parse - # # @api private - # # - # # @param value [Object] - # # - # # @return [Object] - # def dump(value) = super + # @!method dump(value, state:) + # @api private + # + # @param value [Object] + # + # @param state [Hash{Symbol=>Object}] . + # + # @option state [Boolean] :can_retry + # + # @return [Object] + + # @api private + # + # @return [Object] + def to_sorbet_type + T.anything + end end # rubocop:enable Lint/UnusedMethodArgument diff --git a/lib/hanzoai/internal/util.rb b/lib/hanzoai/internal/util.rb index 973bca80..582a1d4e 100644 --- a/lib/hanzoai/internal/util.rb +++ b/lib/hanzoai/internal/util.rb @@ -2,8 +2,6 @@ module Hanzoai module Internal - # rubocop:disable Metrics/ModuleLength - # @api private module Util # @api private @@ -11,6 +9,23 @@ module Util # @return [Float] def self.monotonic_secs = Process.clock_gettime(Process::CLOCK_MONOTONIC) + # @api private + # + # @param ns [Module, Class] + # + # @return [Enumerable] + def self.walk_namespaces(ns) + ns.constants(false).lazy.flat_map do + case (c = ns.const_get(_1, false)) + in Module | Class + walk_namespaces(c) + else + [] + end + end + .chain([ns]) + end + class << self # @api private # @@ -61,7 +76,7 @@ class << self # @return [Boolean] def primitive?(input) case input - in true | false | Integer | Float | Symbol | String + in true | false | Numeric | Symbol | String true else false @@ -124,12 +139,28 @@ def coerce_float(input) # @return [Hash{Object=>Object}, Object] def coerce_hash(input) case input - in NilClass | Array | Set | Enumerator + in NilClass | Array | Set | Enumerator | StringIO | IO input else input.respond_to?(:to_h) ? input.to_h : input end end + + # @api private + # + # @param input [Object] + # + # @raise [ArgumentError] + # @return [Hash{Object=>Object}, nil] + def coerce_hash!(input) + case coerce_hash(input) + in Hash | nil => coerced + coerced + else + message = "Expected a #{Hash} or #{Hanzoai::Internal::Type::BaseModel}, got #{data.inspect}" + raise ArgumentError.new(message) + end + end end class << self @@ -154,7 +185,7 @@ class << self # @api private # # Recursively merge one hash with another. If the values at a given key are not - # both hashes, just take the new value. + # both hashes, just take the new value. # # @param values [Array] # @@ -177,18 +208,17 @@ def deep_merge(*values, sentinel: nil, concat: false) # @api private # # @param data [Hash{Symbol=>Object}, Array, Object] - # @param pick [Symbol, Integer, Array, nil] - # @param sentinel [Object, nil] + # @param pick [Symbol, Integer, Array, Proc, nil] # @param blk [Proc, nil] # # @return [Object, nil] - def dig(data, pick, sentinel = nil, &blk) - case [data, pick, blk] - in [_, nil, nil] + def dig(data, pick, &blk) + case [data, pick] + in [_, nil] data - in [Hash, Symbol, _] | [Array, Integer, _] - blk.nil? ? data.fetch(pick, sentinel) : data.fetch(pick, &blk) - in [Hash | Array, Array, _] + in [Hash, Symbol] | [Array, Integer] + data.fetch(pick) { blk&.call } + in [Hash | Array, Array] pick.reduce(data) do |acc, key| case acc in Hash if acc.key?(key) @@ -196,11 +226,13 @@ def dig(data, pick, sentinel = nil, &blk) in Array if key.is_a?(Integer) && key < acc.length acc[key] else - return blk.nil? ? sentinel : blk.call + return blk&.call end end - in _ - blk.nil? ? sentinel : blk.call + in [_, Proc] + pick.call(data) + else + blk&.call end end end @@ -212,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 @@ -314,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( @@ -354,6 +387,22 @@ def normalized_headers(*headers) # # An adapter that satisfies the IO interface required by `::IO.copy_stream` class ReadIOAdapter + # @api private + # + # @return [Boolean, nil] + def close? = @closing + + # @api private + def close + case @stream + in Enumerator + Hanzoai::Internal::Util.close_fused!(@stream) + in IO if close? + @stream.close + else + end + end + # @api private # # @param max_len [Integer, nil] @@ -398,13 +447,22 @@ def read(max_len = nil, out_string = nil) # @api private # - # @param stream [String, IO, StringIO, Enumerable] + # @param src [String, Pathname, StringIO, Enumerable] # @param blk [Proc] # # @yieldparam [String] - def initialize(stream, &blk) - @stream = stream.is_a?(String) ? StringIO.new(stream) : stream - @buf = String.new.b + def initialize(src, &blk) + @stream = + case src + in String + StringIO.new(src) + in Pathname + @closing = true + src.open(binmode: true) + else + src + end + @buf = String.new @blk = blk end end @@ -417,7 +475,7 @@ class << self def writable_enum(&blk) Enumerator.new do |y| y.define_singleton_method(:write) do - self << _1.clone + self << _1.dup _1.bytesize end @@ -426,53 +484,92 @@ def writable_enum(&blk) end end + # @type [Regexp] + JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)} + # @type [Regexp] + JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)} + class << self + # @api private + # + # @param y [Enumerator::Yielder] + # @param val [Object] + # @param closing [Array] + # @param content_type [String, nil] + private def write_multipart_content(y, val:, closing:, content_type: nil) + content_line = "Content-Type: %s\r\n\r\n" + + case val + in Hanzoai::FilePart + return write_multipart_content( + y, + val: val.content, + closing: closing, + content_type: val.content_type + ) + in Pathname + y << format(content_line, content_type || "application/octet-stream") + io = val.open(binmode: true) + closing << io.method(:close) + IO.copy_stream(io, y) + in IO + y << format(content_line, content_type || "application/octet-stream") + IO.copy_stream(val, y) + in StringIO + y << format(content_line, content_type || "application/octet-stream") + y << val.string + in -> { primitive?(_1) } + y << format(content_line, content_type || "text/plain") + y << val.to_s + else + y << format(content_line, content_type || "application/json") + y << JSON.generate(val) + end + y << "\r\n" + end + # @api private # # @param y [Enumerator::Yielder] # @param boundary [String] # @param key [Symbol, String] # @param val [Object] - private def write_multipart_chunk(y, boundary:, key:, val:) + # @param closing [Array] + private def write_multipart_chunk(y, boundary:, key:, val:, closing:) y << "--#{boundary}\r\n" y << "Content-Disposition: form-data" + unless key.nil? name = ERB::Util.url_encode(key.to_s) y << "; name=\"#{name}\"" end - if val.is_a?(IO) - filename = ERB::Util.url_encode(File.basename(val.to_path)) - y << "; filename=\"#{filename}\"" - end - y << "\r\n" + case val - in IO - y << "Content-Type: application/octet-stream\r\n\r\n" - IO.copy_stream(val.tap(&:rewind), y) - in StringIO - y << "Content-Type: application/octet-stream\r\n\r\n" - y << val.string - in String - y << "Content-Type: application/octet-stream\r\n\r\n" - y << val.to_s - in true | false | Integer | Float | Symbol - y << "Content-Type: text/plain\r\n\r\n" - y << val.to_s + in Hanzoai::FilePart unless val.filename.nil? + filename = ERB::Util.url_encode(val.filename) + y << "; filename=\"#{filename}\"" + in Pathname | IO + filename = ERB::Util.url_encode(::File.basename(val.to_path)) + y << "; filename=\"#{filename}\"" else - y << "Content-Type: application/json\r\n\r\n" - y << JSON.fast_generate(val) end y << "\r\n" + + write_multipart_content(y, val: val, closing: closing) end # @api private # + # https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content + # # @param body [Object] # # @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| case body in Hash @@ -480,19 +577,20 @@ class << self case val in Array if val.all? { primitive?(_1) } val.each do |v| - write_multipart_chunk(y, boundary: boundary, key: key, val: v) + write_multipart_chunk(y, boundary: boundary, key: key, val: v, closing: closing) end else - write_multipart_chunk(y, boundary: boundary, key: key, val: val) + write_multipart_chunk(y, boundary: boundary, key: key, val: val, closing: closing) end end else - write_multipart_chunk(y, boundary: boundary, key: nil, val: body) + write_multipart_chunk(y, boundary: boundary, key: nil, val: body, closing: closing) end y << "--#{boundary}--\r\n" end - [boundary, strio] + fused_io = fused_enum(strio) { closing.each(&:call) } + [boundary, fused_io] end # @api private @@ -502,56 +600,87 @@ class << self # # @return [Object] def encode_content(headers, body) + # rubocop:disable Style/CaseEquality + # rubocop:disable Layout/LineLength content_type = headers["content-type"] case [content_type, body] - in [%r{^application/(?:vnd\.api\+)?json}, Hash | Array] - [headers, JSON.fast_generate(body)] - in [%r{^application/(?:x-)?jsonl}, Enumerable] - [headers, body.lazy.map { JSON.fast_generate(_1) }] - in [%r{^multipart/form-data}, Hash | IO | StringIO] + in [Hanzoai::Internal::Util::JSON_CONTENT, Hash | Array | -> { primitive?(_1) }] + [headers, JSON.generate(body)] + in [Hanzoai::Internal::Util::JSONL_CONTENT, Enumerable] unless Hanzoai::Internal::Type::FileInput === body + [headers, body.lazy.map { JSON.generate(_1) }] + in [%r{^multipart/form-data}, Hash | Hanzoai::Internal::Type::FileInput] boundary, strio = encode_multipart_streaming(body) headers = {**headers, "content-type" => "#{content_type}; boundary=#{boundary}"} [headers, strio] - in [_, IO] - [headers, body.tap(&:rewind)] + in [_, Symbol | Numeric] + [headers, body.to_s] in [_, StringIO] [headers, body.string] + in [_, Hanzoai::FilePart] + [headers, body.content] else [headers, body] end + # rubocop:enable Layout/LineLength + # rubocop:enable Style/CaseEquality end # @api private # - # @param headers [Hash{String=>String}, Net::HTTPHeader] + # https://www.iana.org/assignments/character-sets/character-sets.xhtml + # + # @param content_type [String] + # @param text [String] + def force_charset!(content_type, text:) + charset = /charset=([^;\s]+)/.match(content_type)&.captures&.first + + return unless charset + + begin + encoding = Encoding.find(charset) + text.force_encoding(encoding) + rescue ArgumentError + nil + end + end + + # @api private + # + # Assumes each chunk in stream has `Encoding::BINARY`. + # + # @param headers [Hash{String=>String}] # @param stream [Enumerable] # @param suppress_error [Boolean] # # @raise [JSON::ParserError] # @return [Object] def decode_content(headers, stream:, suppress_error: false) - case headers["content-type"] - in %r{^application/(?:vnd\.api\+)?json} - json = stream.to_a.join + case (content_type = headers["content-type"]) + in Hanzoai::Internal::Util::JSON_CONTENT + return nil if (json = stream.to_a.join).empty? + begin JSON.parse(json, symbolize_names: true) rescue JSON::ParserError => e raise e unless suppress_error json end - in %r{^application/(?:x-)?jsonl} + in Hanzoai::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) decode_sse(lines) - in %r{^text/} - stream.to_a.join else - # TODO: parsing other response types - StringIO.new(stream.to_a.join) + text = stream.to_a.join + force_charset!(content_type, text: text) + StringIO.new(text) end end end @@ -616,12 +745,17 @@ def chain_fused(enum, &blk) class << self # @api private # + # Assumes Strings have been forced into having `Encoding::BINARY`. + # + # This decoder is responsible for reassembling lines split across multiple + # fragments. + # # @param enum [Enumerable] # # @return [Enumerable] def decode_lines(enum) re = /(\r\n|\r|\n)/ - buffer = String.new.b + buffer = String.new cr_seen = nil chain_fused(enum) do |y| @@ -652,6 +786,8 @@ def decode_lines(enum) # # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream # + # Assumes that `lines` has been decoded with `#decode_lines`. + # # @param lines [Enumerable] # # @return [EnumerableObject}>] @@ -675,7 +811,7 @@ def decode_sse(lines) in "event" current.merge!(event: value) in "data" - (current[:data] ||= String.new.b) << (value << "\n") + (current[:data] ||= String.new) << (value << "\n") in "id" unless value.include?("\0") current.merge!(id: value) in "retry" if /^\d+$/ =~ value @@ -691,8 +827,94 @@ def decode_sse(lines) end end end - end - # rubocop:enable Metrics/ModuleLength + # @api private + module SorbetRuntimeSupport + class MissingSorbetRuntimeError < ::RuntimeError + end + + # @api private + # + # @return [Hash{Symbol=>Object}] + private def sorbet_runtime_constants = @sorbet_runtime_constants ||= {} + + # @api private + # + # @param name [Symbol] + def const_missing(name) + super unless sorbet_runtime_constants.key?(name) + + unless Object.const_defined?(:T) + message = "Trying to access a Sorbet constant #{name.inspect} without `sorbet-runtime`." + raise MissingSorbetRuntimeError.new(message) + end + + sorbet_runtime_constants.fetch(name).call + end + + # @api private + # + # @param name [Symbol] + # + # @return [Boolean] + def sorbet_constant_defined?(name) = sorbet_runtime_constants.key?(name) + + # @api private + # + # @param name [Symbol] + # @param blk [Proc] + def define_sorbet_constant!(name, &blk) = sorbet_runtime_constants.store(name, blk) + + # @api private + # + # @return [Object] + def to_sorbet_type = raise NotImplementedError + + class << self + # @api private + # + # @param type [Hanzoai::Internal::Util::SorbetRuntimeSupport, Object] + # + # @return [Object] + def to_sorbet_type(type) + case type + in Hanzoai::Internal::Util::SorbetRuntimeSupport + type.to_sorbet_type + in Class | Module + type + in true | false + T::Boolean + else + type.class + end + end + end + end + + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + define_sorbet_constant!(:ParsedUri) do + T.type_alias do + { + scheme: T.nilable(String), + host: T.nilable(String), + port: T.nilable(Integer), + path: T.nilable(String), + query: T::Hash[String, T::Array[String]] + } + end + end + + define_sorbet_constant!(:ServerSentEvent) do + T.type_alias do + { + event: T.nilable(String), + data: T.nilable(String), + id: T.nilable(String), + retry: T.nilable(Integer) + } + end + end + end end end diff --git a/lib/hanzoai/models.rb b/lib/hanzoai/models.rb new file mode 100644 index 00000000..8793e94d --- /dev/null +++ b/lib/hanzoai/models.rb @@ -0,0 +1,409 @@ +# frozen_string_literal: true + +module Hanzoai + [Hanzoai::Internal::Type::BaseModel, *Hanzoai::Internal::Type::BaseModel.subclasses].each do |cls| + cls.define_sorbet_constant!(:OrHash) { T.type_alias { T.any(cls, Hanzoai::Internal::AnyHash) } } + end + + Hanzoai::Internal::Util.walk_namespaces(Hanzoai::Models).each do |mod| + case mod + in Hanzoai::Internal::Type::Enum | Hanzoai::Internal::Type::Union + mod.constants.each do |name| + case mod.const_get(name) + in true | false + mod.define_sorbet_constant!(:TaggedBoolean) { T.type_alias { T::Boolean } } + mod.define_sorbet_constant!(:OrBoolean) { T.type_alias { T::Boolean } } + in Integer + mod.define_sorbet_constant!(:TaggedInteger) { T.type_alias { Integer } } + mod.define_sorbet_constant!(:OrInteger) { T.type_alias { Integer } } + in Float + mod.define_sorbet_constant!(:TaggedFloat) { T.type_alias { Float } } + mod.define_sorbet_constant!(:OrFloat) { T.type_alias { Float } } + in Symbol + mod.define_sorbet_constant!(:TaggedSymbol) { T.type_alias { Symbol } } + mod.define_sorbet_constant!(:OrSymbol) { T.type_alias { T.any(Symbol, String) } } + else + end + end + else + end + end + + Hanzoai::Internal::Util.walk_namespaces(Hanzoai::Models) + .lazy + .grep(Hanzoai::Internal::Type::Union) + .each do |mod| + const = :Variants + next if mod.sorbet_constant_defined?(const) + + mod.define_sorbet_constant!(const) { T.type_alias { mod.to_sorbet_type } } + end + + ActiveListCallbacksParams = Hanzoai::Models::ActiveListCallbacksParams + + AddAddAllowedIPParams = Hanzoai::Models::AddAddAllowedIPParams + + AnthropicCreateParams = Hanzoai::Models::AnthropicCreateParams + + AnthropicDeleteParams = Hanzoai::Models::AnthropicDeleteParams + + AnthropicModifyParams = Hanzoai::Models::AnthropicModifyParams + + AnthropicRetrieveParams = Hanzoai::Models::AnthropicRetrieveParams + + AnthropicUpdateParams = Hanzoai::Models::AnthropicUpdateParams + + AssemblyaiCreateParams = Hanzoai::Models::AssemblyaiCreateParams + + AssemblyaiDeleteParams = Hanzoai::Models::AssemblyaiDeleteParams + + AssemblyaiPatchParams = Hanzoai::Models::AssemblyaiPatchParams + + AssemblyaiRetrieveParams = Hanzoai::Models::AssemblyaiRetrieveParams + + AssemblyaiUpdateParams = Hanzoai::Models::AssemblyaiUpdateParams + + AssistantCreateParams = Hanzoai::Models::AssistantCreateParams + + AssistantDeleteParams = Hanzoai::Models::AssistantDeleteParams + + AssistantListParams = Hanzoai::Models::AssistantListParams + + Audio = Hanzoai::Models::Audio + + AzureCallParams = Hanzoai::Models::AzureCallParams + + AzureCreateParams = Hanzoai::Models::AzureCreateParams + + AzureDeleteParams = Hanzoai::Models::AzureDeleteParams + + AzurePatchParams = Hanzoai::Models::AzurePatchParams + + AzureUpdateParams = Hanzoai::Models::AzureUpdateParams + + BatchCancelWithProviderParams = Hanzoai::Models::BatchCancelWithProviderParams + + BatchCreateParams = Hanzoai::Models::BatchCreateParams + + BatchCreateWithProviderParams = Hanzoai::Models::BatchCreateWithProviderParams + + Batches = Hanzoai::Models::Batches + + BatchListParams = Hanzoai::Models::BatchListParams + + BatchListWithProviderParams = Hanzoai::Models::BatchListWithProviderParams + + BatchRetrieveParams = Hanzoai::Models::BatchRetrieveParams + + BatchRetrieveWithProviderParams = Hanzoai::Models::BatchRetrieveWithProviderParams + + BedrockCreateParams = Hanzoai::Models::BedrockCreateParams + + BedrockDeleteParams = Hanzoai::Models::BedrockDeleteParams + + BedrockPatchParams = Hanzoai::Models::BedrockPatchParams + + BedrockRetrieveParams = Hanzoai::Models::BedrockRetrieveParams + + BedrockUpdateParams = Hanzoai::Models::BedrockUpdateParams + + BlockKeyRequest = Hanzoai::Models::BlockKeyRequest + + BlockTeamRequest = Hanzoai::Models::BlockTeamRequest + + BlockUsers = Hanzoai::Models::BlockUsers + + BudgetCreateParams = Hanzoai::Models::BudgetCreateParams + + BudgetDeleteParams = Hanzoai::Models::BudgetDeleteParams + + BudgetInfoParams = Hanzoai::Models::BudgetInfoParams + + BudgetListParams = Hanzoai::Models::BudgetListParams + + BudgetNew = Hanzoai::Models::BudgetNew + + BudgetSettingsParams = Hanzoai::Models::BudgetSettingsParams + + BudgetTable = Hanzoai::Models::BudgetTable + + BudgetUpdateParams = Hanzoai::Models::BudgetUpdateParams + + Cache = Hanzoai::Models::Cache + + CacheDeleteParams = Hanzoai::Models::CacheDeleteParams + + CacheFlushAllParams = Hanzoai::Models::CacheFlushAllParams + + CachePingParams = Hanzoai::Models::CachePingParams + + Chat = Hanzoai::Models::Chat + + ClientGetHomeParams = Hanzoai::Models::ClientGetHomeParams + + CohereCreateParams = Hanzoai::Models::CohereCreateParams + + CohereDeleteParams = Hanzoai::Models::CohereDeleteParams + + CohereModifyParams = Hanzoai::Models::CohereModifyParams + + CohereRetrieveParams = Hanzoai::Models::CohereRetrieveParams + + CohereUpdateParams = Hanzoai::Models::CohereUpdateParams + + CompletionCreateParams = Hanzoai::Models::CompletionCreateParams + + Config = Hanzoai::Models::Config + + CredentialCreateParams = Hanzoai::Models::CredentialCreateParams + + CredentialDeleteParams = Hanzoai::Models::CredentialDeleteParams + + CredentialItem = Hanzoai::Models::CredentialItem + + CredentialListParams = Hanzoai::Models::CredentialListParams + + CustomerBlockParams = Hanzoai::Models::CustomerBlockParams + + CustomerCreateParams = Hanzoai::Models::CustomerCreateParams + + CustomerDeleteParams = Hanzoai::Models::CustomerDeleteParams + + CustomerListParams = Hanzoai::Models::CustomerListParams + + CustomerRetrieveInfoParams = Hanzoai::Models::CustomerRetrieveInfoParams + + CustomerUnblockParams = Hanzoai::Models::CustomerUnblockParams + + CustomerUpdateParams = Hanzoai::Models::CustomerUpdateParams + + DeleteCreateAllowedIPParams = Hanzoai::Models::DeleteCreateAllowedIPParams + + EmbeddingCreateParams = Hanzoai::Models::EmbeddingCreateParams + + EngineCompleteParams = Hanzoai::Models::EngineCompleteParams + + EngineEmbedParams = Hanzoai::Models::EngineEmbedParams + + Engines = Hanzoai::Models::Engines + + EuAssemblyaiCreateParams = Hanzoai::Models::EuAssemblyaiCreateParams + + EuAssemblyaiDeleteParams = Hanzoai::Models::EuAssemblyaiDeleteParams + + EuAssemblyaiPatchParams = Hanzoai::Models::EuAssemblyaiPatchParams + + EuAssemblyaiRetrieveParams = Hanzoai::Models::EuAssemblyaiRetrieveParams + + EuAssemblyaiUpdateParams = Hanzoai::Models::EuAssemblyaiUpdateParams + + FileCreateParams = Hanzoai::Models::FileCreateParams + + FileDeleteParams = Hanzoai::Models::FileDeleteParams + + FileListParams = Hanzoai::Models::FileListParams + + FileRetrieveParams = Hanzoai::Models::FileRetrieveParams + + Files = Hanzoai::Models::Files + + FineTuning = Hanzoai::Models::FineTuning + + GeminiCreateParams = Hanzoai::Models::GeminiCreateParams + + GeminiDeleteParams = Hanzoai::Models::GeminiDeleteParams + + GeminiPatchParams = Hanzoai::Models::GeminiPatchParams + + GeminiRetrieveParams = Hanzoai::Models::GeminiRetrieveParams + + GeminiUpdateParams = Hanzoai::Models::GeminiUpdateParams + + GenerateKeyResponse = Hanzoai::Models::GenerateKeyResponse + + Global = Hanzoai::Models::Global + + GuardrailListParams = Hanzoai::Models::GuardrailListParams + + HealthCheckAllParams = Hanzoai::Models::HealthCheckAllParams + + HealthCheckLivelinessParams = Hanzoai::Models::HealthCheckLivelinessParams + + HealthCheckLivenessParams = Hanzoai::Models::HealthCheckLivenessParams + + HealthCheckReadinessParams = Hanzoai::Models::HealthCheckReadinessParams + + HealthCheckServicesParams = Hanzoai::Models::HealthCheckServicesParams + + Images = Hanzoai::Models::Images + + IPAddress = Hanzoai::Models::IPAddress + + Key = Hanzoai::Models::Key + + KeyBlockParams = Hanzoai::Models::KeyBlockParams + + KeyCheckHealthParams = Hanzoai::Models::KeyCheckHealthParams + + KeyDeleteParams = Hanzoai::Models::KeyDeleteParams + + KeyGenerateParams = Hanzoai::Models::KeyGenerateParams + + KeyListParams = Hanzoai::Models::KeyListParams + + KeyRegenerateByKeyParams = Hanzoai::Models::KeyRegenerateByKeyParams + + KeyRetrieveInfoParams = Hanzoai::Models::KeyRetrieveInfoParams + + KeyUnblockParams = Hanzoai::Models::KeyUnblockParams + + KeyUpdateParams = Hanzoai::Models::KeyUpdateParams + + LangfuseCreateParams = Hanzoai::Models::LangfuseCreateParams + + LangfuseDeleteParams = Hanzoai::Models::LangfuseDeleteParams + + LangfusePatchParams = Hanzoai::Models::LangfusePatchParams + + LangfuseRetrieveParams = Hanzoai::Models::LangfuseRetrieveParams + + LangfuseUpdateParams = Hanzoai::Models::LangfuseUpdateParams + + LiteLlmEndUserTable = Hanzoai::Models::LiteLlmEndUserTable + + Member = Hanzoai::Models::Member + + Model = Hanzoai::Models::Model + + ModelCreateParams = Hanzoai::Models::ModelCreateParams + + ModelDeleteParams = Hanzoai::Models::ModelDeleteParams + + ModelGroupRetrieveInfoParams = Hanzoai::Models::ModelGroupRetrieveInfoParams + + ModelInfo = Hanzoai::Models::ModelInfo + + ModelListParams = Hanzoai::Models::ModelListParams + + ModerationCreateParams = Hanzoai::Models::ModerationCreateParams + + OpenAI = Hanzoai::Models::OpenAI + + OpenAICreateParams = Hanzoai::Models::OpenAICreateParams + + OpenAIDeleteParams = Hanzoai::Models::OpenAIDeleteParams + + OpenAIPatchParams = Hanzoai::Models::OpenAIPatchParams + + OpenAIRetrieveParams = Hanzoai::Models::OpenAIRetrieveParams + + OpenAIUpdateParams = Hanzoai::Models::OpenAIUpdateParams + + Organization = Hanzoai::Models::Organization + + OrganizationAddMemberParams = Hanzoai::Models::OrganizationAddMemberParams + + OrganizationCreateParams = Hanzoai::Models::OrganizationCreateParams + + OrganizationDeleteMemberParams = Hanzoai::Models::OrganizationDeleteMemberParams + + OrganizationDeleteParams = Hanzoai::Models::OrganizationDeleteParams + + OrganizationListParams = Hanzoai::Models::OrganizationListParams + + OrganizationMembershipTable = Hanzoai::Models::OrganizationMembershipTable + + OrganizationTableWithMembers = Hanzoai::Models::OrganizationTableWithMembers + + OrganizationUpdateMemberParams = Hanzoai::Models::OrganizationUpdateMemberParams + + OrganizationUpdateParams = Hanzoai::Models::OrganizationUpdateParams + + OrgMember = Hanzoai::Models::OrgMember + + ProviderListBudgetsParams = Hanzoai::Models::ProviderListBudgetsParams + + RerankCreateParams = Hanzoai::Models::RerankCreateParams + + RerankCreateV1Params = Hanzoai::Models::RerankCreateV1Params + + RerankCreateV2Params = Hanzoai::Models::RerankCreateV2Params + + ResponseCreateParams = Hanzoai::Models::ResponseCreateParams + + ResponseDeleteParams = Hanzoai::Models::ResponseDeleteParams + + ResponseRetrieveParams = Hanzoai::Models::ResponseRetrieveParams + + Responses = Hanzoai::Models::Responses + + RouteListParams = Hanzoai::Models::RouteListParams + + SettingRetrieveParams = Hanzoai::Models::SettingRetrieveParams + + SpendCalculateSpendParams = Hanzoai::Models::SpendCalculateSpendParams + + SpendListLogsParams = Hanzoai::Models::SpendListLogsParams + + SpendListTagsParams = Hanzoai::Models::SpendListTagsParams + + Team = Hanzoai::Models::Team + + TeamAddMemberParams = Hanzoai::Models::TeamAddMemberParams + + TeamBlockParams = Hanzoai::Models::TeamBlockParams + + TeamCreateParams = Hanzoai::Models::TeamCreateParams + + TeamDeleteParams = Hanzoai::Models::TeamDeleteParams + + TeamDisableLoggingParams = Hanzoai::Models::TeamDisableLoggingParams + + TeamListAvailableParams = Hanzoai::Models::TeamListAvailableParams + + TeamListParams = Hanzoai::Models::TeamListParams + + TeamRemoveMemberParams = Hanzoai::Models::TeamRemoveMemberParams + + TeamRetrieveInfoParams = Hanzoai::Models::TeamRetrieveInfoParams + + TeamUnblockParams = Hanzoai::Models::TeamUnblockParams + + TeamUpdateMemberParams = Hanzoai::Models::TeamUpdateMemberParams + + TeamUpdateParams = Hanzoai::Models::TeamUpdateParams + + TestPingParams = Hanzoai::Models::TestPingParams + + ThreadCreateParams = Hanzoai::Models::ThreadCreateParams + + ThreadRetrieveParams = Hanzoai::Models::ThreadRetrieveParams + + Threads = Hanzoai::Models::Threads + + UserCreateParams = Hanzoai::Models::UserCreateParams + + UserDeleteParams = Hanzoai::Models::UserDeleteParams + + UserRetrieveInfoParams = Hanzoai::Models::UserRetrieveInfoParams + + UserRoles = Hanzoai::Models::UserRoles + + UserUpdateParams = Hanzoai::Models::UserUpdateParams + + UtilGetSupportedOpenAIParamsParams = Hanzoai::Models::UtilGetSupportedOpenAIParamsParams + + UtilTokenCounterParams = Hanzoai::Models::UtilTokenCounterParams + + UtilTransformRequestParams = Hanzoai::Models::UtilTransformRequestParams + + VertexAICreateParams = Hanzoai::Models::VertexAICreateParams + + VertexAIDeleteParams = Hanzoai::Models::VertexAIDeleteParams + + VertexAIPatchParams = Hanzoai::Models::VertexAIPatchParams + + VertexAIRetrieveParams = Hanzoai::Models::VertexAIRetrieveParams + + VertexAIUpdateParams = Hanzoai::Models::VertexAIUpdateParams +end diff --git a/lib/hanzoai/models/active_list_callbacks_params.rb b/lib/hanzoai/models/active_list_callbacks_params.rb index bfe7fcb5..b98c9cfb 100644 --- a/lib/hanzoai/models/active_list_callbacks_params.rb +++ b/lib/hanzoai/models/active_list_callbacks_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Active#list_callbacks class ActiveListCallbacksParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/active_list_callbacks_response.rb b/lib/hanzoai/models/active_list_callbacks_response.rb new file mode 100644 index 00000000..e2e834ff --- /dev/null +++ b/lib/hanzoai/models/active_list_callbacks_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ActiveListCallbacksResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/add_add_allowed_ip_params.rb b/lib/hanzoai/models/add_add_allowed_ip_params.rb index 70328061..033069a2 100644 --- a/lib/hanzoai/models/add_add_allowed_ip_params.rb +++ b/lib/hanzoai/models/add_add_allowed_ip_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Add#add_allowed_ip class AddAddAllowedIPParams < Hanzoai::Models::IPAddress - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/add_add_allowed_ip_response.rb b/lib/hanzoai/models/add_add_allowed_ip_response.rb new file mode 100644 index 00000000..6f54260e --- /dev/null +++ b/lib/hanzoai/models/add_add_allowed_ip_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AddAddAllowedIPResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/anthropic_create_params.rb b/lib/hanzoai/models/anthropic_create_params.rb index 801d1600..03262af2 100644 --- a/lib/hanzoai/models/anthropic_create_params.rb +++ b/lib/hanzoai/models/anthropic_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Anthropic#create class AnthropicCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/anthropic_create_response.rb b/lib/hanzoai/models/anthropic_create_response.rb new file mode 100644 index 00000000..07fb3c4d --- /dev/null +++ b/lib/hanzoai/models/anthropic_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AnthropicCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/anthropic_delete_params.rb b/lib/hanzoai/models/anthropic_delete_params.rb index 885d0204..839d0be5 100644 --- a/lib/hanzoai/models/anthropic_delete_params.rb +++ b/lib/hanzoai/models/anthropic_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Anthropic#delete class AnthropicDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/anthropic_delete_response.rb b/lib/hanzoai/models/anthropic_delete_response.rb new file mode 100644 index 00000000..074511ed --- /dev/null +++ b/lib/hanzoai/models/anthropic_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AnthropicDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/anthropic_modify_params.rb b/lib/hanzoai/models/anthropic_modify_params.rb index 90a1a050..48db14d9 100644 --- a/lib/hanzoai/models/anthropic_modify_params.rb +++ b/lib/hanzoai/models/anthropic_modify_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Anthropic#modify class AnthropicModifyParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/anthropic_modify_response.rb b/lib/hanzoai/models/anthropic_modify_response.rb new file mode 100644 index 00000000..0d566ae3 --- /dev/null +++ b/lib/hanzoai/models/anthropic_modify_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AnthropicModifyResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/anthropic_retrieve_params.rb b/lib/hanzoai/models/anthropic_retrieve_params.rb index 4455642c..1edd4e04 100644 --- a/lib/hanzoai/models/anthropic_retrieve_params.rb +++ b/lib/hanzoai/models/anthropic_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Anthropic#retrieve class AnthropicRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/anthropic_retrieve_response.rb b/lib/hanzoai/models/anthropic_retrieve_response.rb new file mode 100644 index 00000000..daf89902 --- /dev/null +++ b/lib/hanzoai/models/anthropic_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AnthropicRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/anthropic_update_params.rb b/lib/hanzoai/models/anthropic_update_params.rb index 45fe748f..26dfdde2 100644 --- a/lib/hanzoai/models/anthropic_update_params.rb +++ b/lib/hanzoai/models/anthropic_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Anthropic#update class AnthropicUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/anthropic_update_response.rb b/lib/hanzoai/models/anthropic_update_response.rb new file mode 100644 index 00000000..6e1d9ff8 --- /dev/null +++ b/lib/hanzoai/models/anthropic_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AnthropicUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assemblyai_create_params.rb b/lib/hanzoai/models/assemblyai_create_params.rb index 3aa52186..d3fd8696 100644 --- a/lib/hanzoai/models/assemblyai_create_params.rb +++ b/lib/hanzoai/models/assemblyai_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assemblyai#create class AssemblyaiCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assemblyai_create_response.rb b/lib/hanzoai/models/assemblyai_create_response.rb new file mode 100644 index 00000000..f1ebc82f --- /dev/null +++ b/lib/hanzoai/models/assemblyai_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssemblyaiCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assemblyai_delete_params.rb b/lib/hanzoai/models/assemblyai_delete_params.rb index 88eafd6a..26e99c0c 100644 --- a/lib/hanzoai/models/assemblyai_delete_params.rb +++ b/lib/hanzoai/models/assemblyai_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assemblyai#delete class AssemblyaiDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assemblyai_delete_response.rb b/lib/hanzoai/models/assemblyai_delete_response.rb new file mode 100644 index 00000000..27d580de --- /dev/null +++ b/lib/hanzoai/models/assemblyai_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssemblyaiDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assemblyai_patch_params.rb b/lib/hanzoai/models/assemblyai_patch_params.rb index f572f73b..13ce61f6 100644 --- a/lib/hanzoai/models/assemblyai_patch_params.rb +++ b/lib/hanzoai/models/assemblyai_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assemblyai#patch class AssemblyaiPatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assemblyai_patch_response.rb b/lib/hanzoai/models/assemblyai_patch_response.rb new file mode 100644 index 00000000..42a2c4ad --- /dev/null +++ b/lib/hanzoai/models/assemblyai_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssemblyaiPatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assemblyai_retrieve_params.rb b/lib/hanzoai/models/assemblyai_retrieve_params.rb index 5d91a7bd..86f52ef8 100644 --- a/lib/hanzoai/models/assemblyai_retrieve_params.rb +++ b/lib/hanzoai/models/assemblyai_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assemblyai#retrieve class AssemblyaiRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assemblyai_retrieve_response.rb b/lib/hanzoai/models/assemblyai_retrieve_response.rb new file mode 100644 index 00000000..31092130 --- /dev/null +++ b/lib/hanzoai/models/assemblyai_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssemblyaiRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assemblyai_update_params.rb b/lib/hanzoai/models/assemblyai_update_params.rb index eba65c15..0d55b73d 100644 --- a/lib/hanzoai/models/assemblyai_update_params.rb +++ b/lib/hanzoai/models/assemblyai_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assemblyai#update class AssemblyaiUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assemblyai_update_response.rb b/lib/hanzoai/models/assemblyai_update_response.rb new file mode 100644 index 00000000..aadf9077 --- /dev/null +++ b/lib/hanzoai/models/assemblyai_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssemblyaiUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assistant_create_params.rb b/lib/hanzoai/models/assistant_create_params.rb index 32e6ba1d..ceba1018 100644 --- a/lib/hanzoai/models/assistant_create_params.rb +++ b/lib/hanzoai/models/assistant_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assistants#create class AssistantCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assistant_create_response.rb b/lib/hanzoai/models/assistant_create_response.rb new file mode 100644 index 00000000..e1bf43b1 --- /dev/null +++ b/lib/hanzoai/models/assistant_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssistantCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assistant_delete_params.rb b/lib/hanzoai/models/assistant_delete_params.rb index 48ef1c5d..fa7849d6 100644 --- a/lib/hanzoai/models/assistant_delete_params.rb +++ b/lib/hanzoai/models/assistant_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assistants#delete class AssistantDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assistant_delete_response.rb b/lib/hanzoai/models/assistant_delete_response.rb new file mode 100644 index 00000000..a6e81a00 --- /dev/null +++ b/lib/hanzoai/models/assistant_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssistantDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/assistant_list_params.rb b/lib/hanzoai/models/assistant_list_params.rb index d49d6108..4f71149b 100644 --- a/lib/hanzoai/models/assistant_list_params.rb +++ b/lib/hanzoai/models/assistant_list_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Assistants#list class AssistantListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/assistant_list_response.rb b/lib/hanzoai/models/assistant_list_response.rb new file mode 100644 index 00000000..ef191144 --- /dev/null +++ b/lib/hanzoai/models/assistant_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AssistantListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/audio/speech_create_params.rb b/lib/hanzoai/models/audio/speech_create_params.rb index 408755d9..784dfa09 100644 --- a/lib/hanzoai/models/audio/speech_create_params.rb +++ b/lib/hanzoai/models/audio/speech_create_params.rb @@ -5,16 +5,11 @@ module Models module Audio # @see Hanzoai::Resources::Audio::Speech#create class SpeechCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/audio/speech_create_response.rb b/lib/hanzoai/models/audio/speech_create_response.rb new file mode 100644 index 00000000..acc602fe --- /dev/null +++ b/lib/hanzoai/models/audio/speech_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Audio + # @type [Hanzoai::Internal::Type::Converter] + SpeechCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/audio/transcription_create_params.rb b/lib/hanzoai/models/audio/transcription_create_params.rb index 5288bef7..69b01b01 100644 --- a/lib/hanzoai/models/audio/transcription_create_params.rb +++ b/lib/hanzoai/models/audio/transcription_create_params.rb @@ -5,22 +5,17 @@ module Models module Audio # @see Hanzoai::Resources::Audio::Transcriptions#create class TranscriptionCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute file # - # @return [IO, StringIO] - required :file, IO + # @return [Pathname, StringIO, IO, String, Hanzoai::FilePart] + required :file, Hanzoai::Internal::Type::FileInput - # @!parse - # # @param file [IO, StringIO] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(file:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(file:, request_options: {}) + # @param file [Pathname, StringIO, IO, String, Hanzoai::FilePart] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/audio/transcription_create_response.rb b/lib/hanzoai/models/audio/transcription_create_response.rb new file mode 100644 index 00000000..1b5c1ebd --- /dev/null +++ b/lib/hanzoai/models/audio/transcription_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Audio + # @type [Hanzoai::Internal::Type::Converter] + TranscriptionCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/azure_call_params.rb b/lib/hanzoai/models/azure_call_params.rb index 03f5b5a3..687fc69d 100644 --- a/lib/hanzoai/models/azure_call_params.rb +++ b/lib/hanzoai/models/azure_call_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Azure#call class AzureCallParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/azure_call_response.rb b/lib/hanzoai/models/azure_call_response.rb new file mode 100644 index 00000000..9e4a54c6 --- /dev/null +++ b/lib/hanzoai/models/azure_call_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AzureCallResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/azure_create_params.rb b/lib/hanzoai/models/azure_create_params.rb index 9c6cea4d..96694b64 100644 --- a/lib/hanzoai/models/azure_create_params.rb +++ b/lib/hanzoai/models/azure_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Azure#create class AzureCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/azure_create_response.rb b/lib/hanzoai/models/azure_create_response.rb new file mode 100644 index 00000000..858ac294 --- /dev/null +++ b/lib/hanzoai/models/azure_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AzureCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/azure_delete_params.rb b/lib/hanzoai/models/azure_delete_params.rb index 2501b03b..7c554bd6 100644 --- a/lib/hanzoai/models/azure_delete_params.rb +++ b/lib/hanzoai/models/azure_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Azure#delete class AzureDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/azure_delete_response.rb b/lib/hanzoai/models/azure_delete_response.rb new file mode 100644 index 00000000..97455805 --- /dev/null +++ b/lib/hanzoai/models/azure_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AzureDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/azure_patch_params.rb b/lib/hanzoai/models/azure_patch_params.rb index 67df8566..95a8e289 100644 --- a/lib/hanzoai/models/azure_patch_params.rb +++ b/lib/hanzoai/models/azure_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Azure#patch class AzurePatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/azure_patch_response.rb b/lib/hanzoai/models/azure_patch_response.rb new file mode 100644 index 00000000..386c077c --- /dev/null +++ b/lib/hanzoai/models/azure_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AzurePatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/azure_update_params.rb b/lib/hanzoai/models/azure_update_params.rb index 2339fc00..e2f9872b 100644 --- a/lib/hanzoai/models/azure_update_params.rb +++ b/lib/hanzoai/models/azure_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Azure#update class AzureUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/azure_update_response.rb b/lib/hanzoai/models/azure_update_response.rb new file mode 100644 index 00000000..518c03aa --- /dev/null +++ b/lib/hanzoai/models/azure_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + AzureUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batch_cancel_with_provider_params.rb b/lib/hanzoai/models/batch_cancel_with_provider_params.rb index 21bba089..ff884c74 100644 --- a/lib/hanzoai/models/batch_cancel_with_provider_params.rb +++ b/lib/hanzoai/models/batch_cancel_with_provider_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Batches#cancel_with_provider class BatchCancelWithProviderParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -13,13 +12,9 @@ class BatchCancelWithProviderParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :provider, String - # @!parse - # # @param provider [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider:, request_options: {}) + # @param provider [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batch_cancel_with_provider_response.rb b/lib/hanzoai/models/batch_cancel_with_provider_response.rb new file mode 100644 index 00000000..2f656c0d --- /dev/null +++ b/lib/hanzoai/models/batch_cancel_with_provider_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BatchCancelWithProviderResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batch_create_params.rb b/lib/hanzoai/models/batch_create_params.rb index 8ca61ebd..69761d03 100644 --- a/lib/hanzoai/models/batch_create_params.rb +++ b/lib/hanzoai/models/batch_create_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Batches#create class BatchCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -13,13 +12,9 @@ class BatchCreateParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :provider, String, nil?: true - # @!parse - # # @param provider [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider: nil, request_options: {}) + # @param provider [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batch_create_response.rb b/lib/hanzoai/models/batch_create_response.rb new file mode 100644 index 00000000..7ba73ddc --- /dev/null +++ b/lib/hanzoai/models/batch_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BatchCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batch_create_with_provider_params.rb b/lib/hanzoai/models/batch_create_with_provider_params.rb index efaab33e..57524e4e 100644 --- a/lib/hanzoai/models/batch_create_with_provider_params.rb +++ b/lib/hanzoai/models/batch_create_with_provider_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Batches#create_with_provider class BatchCreateWithProviderParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batch_create_with_provider_response.rb b/lib/hanzoai/models/batch_create_with_provider_response.rb new file mode 100644 index 00000000..dcfb556f --- /dev/null +++ b/lib/hanzoai/models/batch_create_with_provider_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BatchCreateWithProviderResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batch_list_params.rb b/lib/hanzoai/models/batch_list_params.rb index 3d3444df..e3982e7b 100644 --- a/lib/hanzoai/models/batch_list_params.rb +++ b/lib/hanzoai/models/batch_list_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Batches#list class BatchListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute after @@ -23,15 +22,17 @@ class BatchListParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :provider, String, nil?: true - # @!parse - # # @param after [String, nil] - # # @param limit [Integer, nil] - # # @param provider [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(after: nil, limit: nil, provider: nil, request_options: {}, **) = super + # @!attribute target_model_names + # + # @return [String, nil] + optional :target_model_names, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(after: nil, limit: nil, provider: nil, target_model_names: nil, request_options: {}) + # @param after [String, nil] + # @param limit [Integer, nil] + # @param provider [String, nil] + # @param target_model_names [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batch_list_response.rb b/lib/hanzoai/models/batch_list_response.rb new file mode 100644 index 00000000..963b9c11 --- /dev/null +++ b/lib/hanzoai/models/batch_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BatchListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batch_list_with_provider_params.rb b/lib/hanzoai/models/batch_list_with_provider_params.rb index 9f709c0f..407562c2 100644 --- a/lib/hanzoai/models/batch_list_with_provider_params.rb +++ b/lib/hanzoai/models/batch_list_with_provider_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Batches#list_with_provider class BatchListWithProviderParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute after @@ -18,14 +17,16 @@ class BatchListWithProviderParams < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :limit, Integer, nil?: true - # @!parse - # # @param after [String, nil] - # # @param limit [Integer, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(after: nil, limit: nil, request_options: {}, **) = super + # @!attribute target_model_names + # + # @return [String, nil] + optional :target_model_names, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(after: nil, limit: nil, target_model_names: nil, request_options: {}) + # @param after [String, nil] + # @param limit [Integer, nil] + # @param target_model_names [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batch_list_with_provider_response.rb b/lib/hanzoai/models/batch_list_with_provider_response.rb new file mode 100644 index 00000000..c2af9be6 --- /dev/null +++ b/lib/hanzoai/models/batch_list_with_provider_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BatchListWithProviderResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batch_retrieve_params.rb b/lib/hanzoai/models/batch_retrieve_params.rb index 89c9c88b..a09902db 100644 --- a/lib/hanzoai/models/batch_retrieve_params.rb +++ b/lib/hanzoai/models/batch_retrieve_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Batches#retrieve class BatchRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -13,13 +12,9 @@ class BatchRetrieveParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :provider, String, nil?: true - # @!parse - # # @param provider [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider: nil, request_options: {}) + # @param provider [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batch_retrieve_response.rb b/lib/hanzoai/models/batch_retrieve_response.rb new file mode 100644 index 00000000..0a382fca --- /dev/null +++ b/lib/hanzoai/models/batch_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BatchRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batch_retrieve_with_provider_params.rb b/lib/hanzoai/models/batch_retrieve_with_provider_params.rb index 3888748e..753cd957 100644 --- a/lib/hanzoai/models/batch_retrieve_with_provider_params.rb +++ b/lib/hanzoai/models/batch_retrieve_with_provider_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Batches#retrieve_with_provider class BatchRetrieveWithProviderParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -13,13 +12,9 @@ class BatchRetrieveWithProviderParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :provider, String - # @!parse - # # @param provider [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider:, request_options: {}) + # @param provider [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batch_retrieve_with_provider_response.rb b/lib/hanzoai/models/batch_retrieve_with_provider_response.rb new file mode 100644 index 00000000..5831633c --- /dev/null +++ b/lib/hanzoai/models/batch_retrieve_with_provider_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BatchRetrieveWithProviderResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/batches/cancel_cancel_params.rb b/lib/hanzoai/models/batches/cancel_cancel_params.rb index 73e0c9ce..dbf92c00 100644 --- a/lib/hanzoai/models/batches/cancel_cancel_params.rb +++ b/lib/hanzoai/models/batches/cancel_cancel_params.rb @@ -5,8 +5,7 @@ module Models module Batches # @see Hanzoai::Resources::Batches::Cancel#cancel class CancelCancelParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -14,13 +13,9 @@ class CancelCancelParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :provider, String, nil?: true - # @!parse - # # @param provider [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider: nil, request_options: {}) + # @param provider [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/batches/cancel_cancel_response.rb b/lib/hanzoai/models/batches/cancel_cancel_response.rb new file mode 100644 index 00000000..1b860efc --- /dev/null +++ b/lib/hanzoai/models/batches/cancel_cancel_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Batches + # @type [Hanzoai::Internal::Type::Converter] + CancelCancelResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/bedrock_create_params.rb b/lib/hanzoai/models/bedrock_create_params.rb index 2f975773..2f2ba114 100644 --- a/lib/hanzoai/models/bedrock_create_params.rb +++ b/lib/hanzoai/models/bedrock_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Bedrock#create class BedrockCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/bedrock_create_response.rb b/lib/hanzoai/models/bedrock_create_response.rb new file mode 100644 index 00000000..58b30b5a --- /dev/null +++ b/lib/hanzoai/models/bedrock_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BedrockCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/bedrock_delete_params.rb b/lib/hanzoai/models/bedrock_delete_params.rb index 560daeb5..3266cd3e 100644 --- a/lib/hanzoai/models/bedrock_delete_params.rb +++ b/lib/hanzoai/models/bedrock_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Bedrock#delete class BedrockDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/bedrock_delete_response.rb b/lib/hanzoai/models/bedrock_delete_response.rb new file mode 100644 index 00000000..8f1aba78 --- /dev/null +++ b/lib/hanzoai/models/bedrock_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BedrockDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/bedrock_patch_params.rb b/lib/hanzoai/models/bedrock_patch_params.rb index 67326104..c48c09f3 100644 --- a/lib/hanzoai/models/bedrock_patch_params.rb +++ b/lib/hanzoai/models/bedrock_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Bedrock#patch class BedrockPatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/bedrock_patch_response.rb b/lib/hanzoai/models/bedrock_patch_response.rb new file mode 100644 index 00000000..2f7ed34e --- /dev/null +++ b/lib/hanzoai/models/bedrock_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BedrockPatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/bedrock_retrieve_params.rb b/lib/hanzoai/models/bedrock_retrieve_params.rb index 51562b59..6ff6d937 100644 --- a/lib/hanzoai/models/bedrock_retrieve_params.rb +++ b/lib/hanzoai/models/bedrock_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Bedrock#retrieve class BedrockRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/bedrock_retrieve_response.rb b/lib/hanzoai/models/bedrock_retrieve_response.rb new file mode 100644 index 00000000..0a591f34 --- /dev/null +++ b/lib/hanzoai/models/bedrock_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BedrockRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/bedrock_update_params.rb b/lib/hanzoai/models/bedrock_update_params.rb index d18387a0..8ffee27e 100644 --- a/lib/hanzoai/models/bedrock_update_params.rb +++ b/lib/hanzoai/models/bedrock_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Bedrock#update class BedrockUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/bedrock_update_response.rb b/lib/hanzoai/models/bedrock_update_response.rb new file mode 100644 index 00000000..41cee6ff --- /dev/null +++ b/lib/hanzoai/models/bedrock_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BedrockUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/block_key_request.rb b/lib/hanzoai/models/block_key_request.rb index 6693746c..f9bda190 100644 --- a/lib/hanzoai/models/block_key_request.rb +++ b/lib/hanzoai/models/block_key_request.rb @@ -8,12 +8,8 @@ class BlockKeyRequest < Hanzoai::Internal::Type::BaseModel # @return [String] required :key, String - # @!parse - # # @param key [String] - # # - # def initialize(key:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(key:) + # @param key [String] end end end diff --git a/lib/hanzoai/models/block_team_request.rb b/lib/hanzoai/models/block_team_request.rb index b37528e0..f552beab 100644 --- a/lib/hanzoai/models/block_team_request.rb +++ b/lib/hanzoai/models/block_team_request.rb @@ -8,12 +8,8 @@ class BlockTeamRequest < Hanzoai::Internal::Type::BaseModel # @return [String] required :team_id, String - # @!parse - # # @param team_id [String] - # # - # def initialize(team_id:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(team_id:) + # @param team_id [String] end end end diff --git a/lib/hanzoai/models/block_users.rb b/lib/hanzoai/models/block_users.rb index 1874f3e4..3c95ad9a 100644 --- a/lib/hanzoai/models/block_users.rb +++ b/lib/hanzoai/models/block_users.rb @@ -8,12 +8,8 @@ class BlockUsers < Hanzoai::Internal::Type::BaseModel # @return [Array] required :user_ids, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @param user_ids [Array] - # # - # def initialize(user_ids:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(user_ids:) + # @param user_ids [Array] end end end diff --git a/lib/hanzoai/models/budget_create_params.rb b/lib/hanzoai/models/budget_create_params.rb index df02a351..71bae2a3 100644 --- a/lib/hanzoai/models/budget_create_params.rb +++ b/lib/hanzoai/models/budget_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Budget#create class BudgetCreateParams < Hanzoai::Models::BudgetNew - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/budget_create_response.rb b/lib/hanzoai/models/budget_create_response.rb new file mode 100644 index 00000000..f0382fe7 --- /dev/null +++ b/lib/hanzoai/models/budget_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BudgetCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/budget_delete_params.rb b/lib/hanzoai/models/budget_delete_params.rb index 395e0d32..41c8e037 100644 --- a/lib/hanzoai/models/budget_delete_params.rb +++ b/lib/hanzoai/models/budget_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Budget#delete class BudgetDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute id @@ -13,13 +12,9 @@ class BudgetDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :id, String - # @!parse - # # @param id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(id:, request_options: {}) + # @param id [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/budget_delete_response.rb b/lib/hanzoai/models/budget_delete_response.rb new file mode 100644 index 00000000..1d6d9f3b --- /dev/null +++ b/lib/hanzoai/models/budget_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BudgetDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/budget_info_params.rb b/lib/hanzoai/models/budget_info_params.rb index 9c18626e..e63629c4 100644 --- a/lib/hanzoai/models/budget_info_params.rb +++ b/lib/hanzoai/models/budget_info_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Budget#info class BudgetInfoParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute budgets @@ -13,13 +12,9 @@ class BudgetInfoParams < Hanzoai::Internal::Type::BaseModel # @return [Array] required :budgets, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @param budgets [Array] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(budgets:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(budgets:, request_options: {}) + # @param budgets [Array] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/budget_info_response.rb b/lib/hanzoai/models/budget_info_response.rb new file mode 100644 index 00000000..8674d30f --- /dev/null +++ b/lib/hanzoai/models/budget_info_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BudgetInfoResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/budget_list_params.rb b/lib/hanzoai/models/budget_list_params.rb index 4b487e95..96222eba 100644 --- a/lib/hanzoai/models/budget_list_params.rb +++ b/lib/hanzoai/models/budget_list_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Budget#list class BudgetListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/budget_list_response.rb b/lib/hanzoai/models/budget_list_response.rb new file mode 100644 index 00000000..b2a50378 --- /dev/null +++ b/lib/hanzoai/models/budget_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BudgetListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/budget_new.rb b/lib/hanzoai/models/budget_new.rb index 8d7cd44c..b6c58fb2 100644 --- a/lib/hanzoai/models/budget_new.rb +++ b/lib/hanzoai/models/budget_new.rb @@ -15,6 +15,12 @@ class BudgetNew < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :budget_id, String, nil?: true + # @!attribute budget_reset_at + # Datetime when the budget is reset + # + # @return [Time, nil] + optional :budget_reset_at, Time, nil?: true + # @!attribute max_budget # Requests will fail if this budget (in USD) is exceeded. # @@ -29,11 +35,11 @@ class BudgetNew < Hanzoai::Internal::Type::BaseModel # @!attribute model_max_budget # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', - # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) # # @return [Hash{Symbol=>Hanzoai::Models::BudgetNew::ModelMaxBudget}, nil] optional :model_max_budget, - -> { Hanzoai::Internal::Type::HashOf[Hanzoai::Models::BudgetNew::ModelMaxBudget] }, + -> { Hanzoai::Internal::Type::HashOf[Hanzoai::BudgetNew::ModelMaxBudget] }, nil?: true # @!attribute rpm_limit @@ -54,31 +60,27 @@ class BudgetNew < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!parse - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::BudgetNew::ModelMaxBudget}, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # budget_id: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(budget_duration: nil, budget_id: nil, budget_reset_at: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::BudgetNew} for more details. + # + # @param budget_duration [String, nil] Max duration budget should be set for (e.g. '1hr', '1d', '28d') + # + # @param budget_id [String, nil] The unique budget id. + # + # @param budget_reset_at [Time, nil] Datetime when the budget is reset + # + # @param max_budget [Float, nil] Requests will fail if this budget (in USD) is exceeded. + # + # @param max_parallel_requests [Integer, nil] Max concurrent requests allowed for this budget id. + # + # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::BudgetNew::ModelMaxBudget}, nil] Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_d + # + # @param rpm_limit [Integer, nil] Max requests per minute, allowed for this budget id. + # + # @param soft_budget [Float, nil] Requests will NOT fail if this is exceeded. Will fire alerting though. + # + # @param tpm_limit [Integer, nil] Max tokens per minute, allowed for this budget id. class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel # @!attribute budget_duration @@ -101,15 +103,11 @@ class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!parse - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param rpm_limit [Integer, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize(budget_duration: nil, max_budget: nil, rpm_limit: nil, tpm_limit: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(budget_duration: nil, max_budget: nil, rpm_limit: nil, tpm_limit: nil) + # @param budget_duration [String, nil] + # @param max_budget [Float, nil] + # @param rpm_limit [Integer, nil] + # @param tpm_limit [Integer, nil] end end end diff --git a/lib/hanzoai/models/budget_settings_params.rb b/lib/hanzoai/models/budget_settings_params.rb index b8ed7056..95561491 100644 --- a/lib/hanzoai/models/budget_settings_params.rb +++ b/lib/hanzoai/models/budget_settings_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Budget#settings class BudgetSettingsParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute budget_id @@ -13,13 +12,9 @@ class BudgetSettingsParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :budget_id, String - # @!parse - # # @param budget_id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(budget_id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(budget_id:, request_options: {}) + # @param budget_id [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/budget_settings_response.rb b/lib/hanzoai/models/budget_settings_response.rb new file mode 100644 index 00000000..93412661 --- /dev/null +++ b/lib/hanzoai/models/budget_settings_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BudgetSettingsResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/budget_table.rb b/lib/hanzoai/models/budget_table.rb new file mode 100644 index 00000000..2781f023 --- /dev/null +++ b/lib/hanzoai/models/budget_table.rb @@ -0,0 +1,61 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + class BudgetTable < Hanzoai::Internal::Type::BaseModel + # @!attribute budget_duration + # + # @return [String, nil] + optional :budget_duration, String, nil?: true + + # @!attribute budget_id + # + # @return [String, nil] + optional :budget_id, String, nil?: true + + # @!attribute max_budget + # + # @return [Float, nil] + optional :max_budget, Float, nil?: true + + # @!attribute max_parallel_requests + # + # @return [Integer, nil] + optional :max_parallel_requests, Integer, nil?: true + + # @!attribute model_max_budget + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute rpm_limit + # + # @return [Integer, nil] + optional :rpm_limit, Integer, nil?: true + + # @!attribute soft_budget + # + # @return [Float, nil] + optional :soft_budget, Float, nil?: true + + # @!attribute tpm_limit + # + # @return [Integer, nil] + optional :tpm_limit, Integer, nil?: true + + # @!method initialize(budget_duration: nil, budget_id: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil) + # Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @param budget_duration [String, nil] + # @param budget_id [String, nil] + # @param max_budget [Float, nil] + # @param max_parallel_requests [Integer, nil] + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # @param rpm_limit [Integer, nil] + # @param soft_budget [Float, nil] + # @param tpm_limit [Integer, nil] + end + end +end diff --git a/lib/hanzoai/models/budget_update_params.rb b/lib/hanzoai/models/budget_update_params.rb index 763146e7..09acc464 100644 --- a/lib/hanzoai/models/budget_update_params.rb +++ b/lib/hanzoai/models/budget_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Budget#update class BudgetUpdateParams < Hanzoai::Models::BudgetNew - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/budget_update_response.rb b/lib/hanzoai/models/budget_update_response.rb new file mode 100644 index 00000000..c5ae533e --- /dev/null +++ b/lib/hanzoai/models/budget_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + BudgetUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/cache/redi_retrieve_info_params.rb b/lib/hanzoai/models/cache/redi_retrieve_info_params.rb index d4a9c9cc..cf2df72b 100644 --- a/lib/hanzoai/models/cache/redi_retrieve_info_params.rb +++ b/lib/hanzoai/models/cache/redi_retrieve_info_params.rb @@ -5,16 +5,11 @@ module Models module Cache # @see Hanzoai::Resources::Cache::Redis#retrieve_info class RediRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cache/redi_retrieve_info_response.rb b/lib/hanzoai/models/cache/redi_retrieve_info_response.rb new file mode 100644 index 00000000..33b6e29b --- /dev/null +++ b/lib/hanzoai/models/cache/redi_retrieve_info_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Cache + # @type [Hanzoai::Internal::Type::Converter] + RediRetrieveInfoResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/cache_delete_params.rb b/lib/hanzoai/models/cache_delete_params.rb index 3ff73bbf..662fb7d3 100644 --- a/lib/hanzoai/models/cache_delete_params.rb +++ b/lib/hanzoai/models/cache_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cache#delete class CacheDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cache_delete_response.rb b/lib/hanzoai/models/cache_delete_response.rb new file mode 100644 index 00000000..be3b59f6 --- /dev/null +++ b/lib/hanzoai/models/cache_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CacheDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/cache_flush_all_params.rb b/lib/hanzoai/models/cache_flush_all_params.rb index af6d99e4..37d4fce0 100644 --- a/lib/hanzoai/models/cache_flush_all_params.rb +++ b/lib/hanzoai/models/cache_flush_all_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cache#flush_all class CacheFlushAllParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cache_flush_all_response.rb b/lib/hanzoai/models/cache_flush_all_response.rb new file mode 100644 index 00000000..4e434ec1 --- /dev/null +++ b/lib/hanzoai/models/cache_flush_all_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CacheFlushAllResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/cache_ping_params.rb b/lib/hanzoai/models/cache_ping_params.rb index 731b2141..e3a770b9 100644 --- a/lib/hanzoai/models/cache_ping_params.rb +++ b/lib/hanzoai/models/cache_ping_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cache#ping class CachePingParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cache_ping_response.rb b/lib/hanzoai/models/cache_ping_response.rb index 7b359034..e6be4796 100644 --- a/lib/hanzoai/models/cache_ping_response.rb +++ b/lib/hanzoai/models/cache_ping_response.rb @@ -16,45 +16,33 @@ class CachePingResponse < Hanzoai::Internal::Type::BaseModel # @!attribute health_check_cache_params # - # @return [Object, nil] - optional :health_check_cache_params, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :health_check_cache_params, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!attribute llm_cache_params + # @!attribute litellm_cache_params # # @return [String, nil] - optional :llm_cache_params, String, nil?: true + optional :litellm_cache_params, String, nil?: true # @!attribute ping_response # # @return [Boolean, nil] - optional :ping_response, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :ping_response, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute set_cache_response # # @return [String, nil] optional :set_cache_response, String, nil?: true - # @!parse - # # @param cache_type [String] - # # @param status [String] - # # @param health_check_cache_params [Object, nil] - # # @param llm_cache_params [String, nil] - # # @param ping_response [Boolean, nil] - # # @param set_cache_response [String, nil] - # # - # def initialize( - # cache_type:, - # status:, - # health_check_cache_params: nil, - # llm_cache_params: nil, - # ping_response: nil, - # set_cache_response: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(cache_type:, status:, health_check_cache_params: nil, litellm_cache_params: nil, ping_response: nil, set_cache_response: nil) + # @param cache_type [String] + # @param status [String] + # @param health_check_cache_params [Hash{Symbol=>Object}, nil] + # @param litellm_cache_params [String, nil] + # @param ping_response [Boolean, nil] + # @param set_cache_response [String, nil] end end end diff --git a/lib/hanzoai/models/chat/completion_create_params.rb b/lib/hanzoai/models/chat/completion_create_params.rb index 5c1104c0..7c81fc08 100644 --- a/lib/hanzoai/models/chat/completion_create_params.rb +++ b/lib/hanzoai/models/chat/completion_create_params.rb @@ -5,22 +5,1288 @@ module Models module Chat # @see Hanzoai::Resources::Chat::Completions#create class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters + # @!attribute messages + # + # @return [Array] + required :messages, + -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Chat::CompletionCreateParams::Message] } + # @!attribute model # + # @return [String] + required :model, String + + # @!attribute caching + # + # @return [Boolean, nil] + optional :caching, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute context_window_fallback_dict + # + # @return [Hash{Symbol=>String}, nil] + optional :context_window_fallback_dict, Hanzoai::Internal::Type::HashOf[String], nil?: true + + # @!attribute fallbacks + # + # @return [Array, nil] + optional :fallbacks, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute frequency_penalty + # + # @return [Float, nil] + optional :frequency_penalty, Float, nil?: true + + # @!attribute function_call + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :function_call, union: -> { Hanzoai::Chat::CompletionCreateParams::FunctionCall }, nil?: true + + # @!attribute functions + # + # @return [ArrayObject}>, nil] + optional :functions, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute guardrails + # + # @return [Array, nil] + optional :guardrails, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute logit_bias + # + # @return [Hash{Symbol=>Float}, nil] + optional :logit_bias, Hanzoai::Internal::Type::HashOf[Float], nil?: true + + # @!attribute logprobs + # + # @return [Boolean, nil] + optional :logprobs, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute max_tokens + # + # @return [Integer, nil] + optional :max_tokens, Integer, nil?: true + + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute n + # + # @return [Integer, nil] + optional :n, Integer, nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute parallel_tool_calls + # + # @return [Boolean, nil] + optional :parallel_tool_calls, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute presence_penalty + # + # @return [Float, nil] + optional :presence_penalty, Float, nil?: true + + # @!attribute response_format + # + # @return [Hash{Symbol=>Object}, nil] + optional :response_format, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute seed + # + # @return [Integer, nil] + optional :seed, Integer, nil?: true + + # @!attribute service_tier + # + # @return [String, nil] + optional :service_tier, String, nil?: true + + # @!attribute stop + # + # @return [String, Array, nil] + optional :stop, union: -> { Hanzoai::Chat::CompletionCreateParams::Stop }, nil?: true + + # @!attribute stream + # + # @return [Boolean, nil] + optional :stream, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute stream_options + # + # @return [Hash{Symbol=>Object}, nil] + optional :stream_options, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute temperature + # + # @return [Float, nil] + optional :temperature, Float, nil?: true + + # @!attribute tool_choice + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :tool_choice, union: -> { Hanzoai::Chat::CompletionCreateParams::ToolChoice }, nil?: true + + # @!attribute tools + # + # @return [ArrayObject}>, nil] + optional :tools, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute top_logprobs + # + # @return [Integer, nil] + optional :top_logprobs, Integer, nil?: true + + # @!attribute top_p + # + # @return [Float, nil] + optional :top_p, Float, nil?: true + + # @!attribute user + # # @return [String, nil] - optional :model, String, nil?: true + optional :user, String, nil?: true + + # @!method initialize(messages:, model:, caching: nil, context_window_fallback_dict: nil, fallbacks: nil, frequency_penalty: nil, function_call: nil, functions: nil, guardrails: nil, logit_bias: nil, logprobs: nil, max_tokens: nil, metadata: nil, n: nil, num_retries: nil, parallel_tool_calls: nil, presence_penalty: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, stream_options: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, user: nil, request_options: {}) + # @param messages [Array] + # @param model [String] + # @param caching [Boolean, nil] + # @param context_window_fallback_dict [Hash{Symbol=>String}, nil] + # @param fallbacks [Array, nil] + # @param frequency_penalty [Float, nil] + # @param function_call [String, Hash{Symbol=>Object}, nil] + # @param functions [ArrayObject}>, nil] + # @param guardrails [Array, nil] + # @param logit_bias [Hash{Symbol=>Float}, nil] + # @param logprobs [Boolean, nil] + # @param max_tokens [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param n [Integer, nil] + # @param num_retries [Integer, nil] + # @param parallel_tool_calls [Boolean, nil] + # @param presence_penalty [Float, nil] + # @param response_format [Hash{Symbol=>Object}, nil] + # @param seed [Integer, nil] + # @param service_tier [String, nil] + # @param stop [String, Array, nil] + # @param stream [Boolean, nil] + # @param stream_options [Hash{Symbol=>Object}, nil] + # @param temperature [Float, nil] + # @param tool_choice [String, Hash{Symbol=>Object}, nil] + # @param tools [ArrayObject}>, nil] + # @param top_logprobs [Integer, nil] + # @param top_p [Float, nil] + # @param user [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + module Message + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage } + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content } + + # @!attribute role + # + # @return [Symbol, :user] + required :role, const: :user + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl } + + # @!method initialize(content:, cache_control: nil, role: :user) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl] + # @param role [Symbol, :user] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1Array } + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + # @!attribute image_url + # + # @return [String, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject] + required :image_url, + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL } + + # @!attribute type + # + # @return [Symbol, :image_url] + required :type, const: :image_url + + # @!method initialize(image_url:, type: :image_url) + # @param image_url [String, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject] + # @param type [Symbol, :image_url] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject#image_url + module ImageURL + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject } + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String + + # @!attribute format_ + # + # @return [String, nil] + optional :format_, String, api_name: :format + + # @!method initialize(url:, detail: nil, format_: nil) + # @param url [String] + # @param detail [String] + # @param format_ [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject)] + end + end + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + # @!attribute input_audio + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio] + required :input_audio, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio } + + # @!attribute type + # + # @return [Symbol, :input_audio] + required :type, const: :input_audio + + # @!method initialize(input_audio:, type: :input_audio) + # @param input_audio [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio] + # @param type [Symbol, :input_audio] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject#input_audio + class InputAudio < Hanzoai::Internal::Type::BaseModel + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute format_ + # + # @return [Symbol, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format] + required :format_, + enum: -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format + }, + api_name: :format + + # @!method initialize(data:, format_:) + # @param data [String] + # @param format_ [Symbol, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio#format_ + module Format + extend Hanzoai::Internal::Type::Enum + + WAV = :wav + MP3 = :mp3 + + # @!method self.values + # @return [Array] + end + end + end + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + # @!attribute citations + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, nil] + required :citations, + -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + }, + nil?: true + + # @!attribute context + # + # @return [String] + required :context, String + + # @!attribute source + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source] + required :source, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source } + + # @!attribute title + # + # @return [String] + required :title, String + + # @!attribute type + # + # @return [Symbol, :document] + required :type, const: :document + + # @!method initialize(citations:, context:, source:, title:, type: :document) + # @param citations [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, nil] + # @param context [String] + # @param source [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source] + # @param title [String] + # @param type [Symbol, :document] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject#citations + class Citations < Hanzoai::Internal::Type::BaseModel + # @!attribute enabled + # + # @return [Boolean] + required :enabled, Hanzoai::Internal::Type::Boolean + + # @!method initialize(enabled:) + # @param enabled [Boolean] + end + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject#source + class Source < Hanzoai::Internal::Type::BaseModel + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute media_type + # + # @return [String] + required :media_type, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!method initialize(data:, media_type:, type: :text) + # @param data [String] + # @param media_type [String] + # @param type [Symbol, :text] + end + end + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :video_url] + required :type, const: :video_url + + # @!attribute video_url + # + # @return [String, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject] + required :video_url, + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL } + + # @!method initialize(video_url:, type: :video_url) + # @param video_url [String, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject] + # @param type [Symbol, :video_url] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject#video_url + module VideoURL + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject } + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String + + # @!method initialize(url:, detail: nil) + # @param url [String] + # @param detail [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject)] + end + end + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + # @!attribute file + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File] + required :file, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File } + + # @!attribute type + # + # @return [Symbol, :file] + required :type, const: :file + + # @!method initialize(file:, type: :file) + # @param file [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File] + # @param type [Symbol, :file] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject#file + class File < Hanzoai::Internal::Type::BaseModel + # @!attribute file_data + # + # @return [String, nil] + optional :file_data, String + + # @!attribute file_id + # + # @return [String, nil] + optional :file_id, String + + # @!attribute filename + # + # @return [String, nil] + optional :filename, String + + # @!attribute format_ + # + # @return [String, nil] + optional :format_, String, api_name: :format + + # @!method initialize(file_data: nil, file_id: nil, filename: nil, format_: nil) + # @param file_data [String] + # @param file_id [String] + # @param filename [String] + # @param format_ [String] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject)] + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1 } + ] + end + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute role + # + # @return [Symbol, :assistant] + required :role, const: :assistant + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl } + + # @!attribute content + # + # @return [String, Array, nil] + optional :content, + union: -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content + }, + nil?: true + + # @!attribute function_call + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall, nil] + optional :function_call, + -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall + }, + nil?: true + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute reasoning_content + # + # @return [String, nil] + optional :reasoning_content, String, nil?: true + + # @!attribute thinking_blocks + # + # @return [Array, nil] + optional :thinking_blocks, + -> { + Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock] + }, + nil?: true + + # @!attribute tool_calls + # + # @return [Array, nil] + optional :tool_calls, + -> { + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall] + }, + nil?: true + + # @!method initialize(cache_control: nil, content: nil, function_call: nil, name: nil, reasoning_content: nil, thinking_blocks: nil, tool_calls: nil, role: :assistant) + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl] + # @param content [String, Array, nil] + # @param function_call [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall, nil] + # @param name [String, nil] + # @param reasoning_content [String, nil] + # @param thinking_blocks [Array, nil] + # @param tool_calls [Array, nil] + # @param role [Symbol, :assistant] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1Array } + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock)] + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1 } + ] + end + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage#function_call + class FunctionCall < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String, nil] + optional :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(arguments: nil, name: nil, provider_specific_fields: nil) + # @param arguments [String] + # @param name [String, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :redacted_thinking] + required :type, const: :redacted_thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute data + # + # @return [String, nil] + optional :data, String + + # @!method initialize(cache_control: nil, data: nil, type: :redacted_thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param data [String] + # @param type [Symbol, :redacted_thinking] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock)] + end + + class ToolCall < Hanzoai::Internal::Type::BaseModel + # @!attribute id + # + # @return [String, nil] + required :id, String, nil?: true + + # @!attribute function + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function] + required :function, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function } + + # @!attribute type + # + # @return [Symbol, :function] + required :type, const: :function + + # @!method initialize(id:, function:, type: :function) + # @param id [String, nil] + # @param function [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function] + # @param type [Symbol, :function] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall#function + class Function < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String, nil] + optional :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(arguments: nil, name: nil, provider_specific_fields: nil) + # @param arguments [String] + # @param name [String, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + end + end + end + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content } + + # @!attribute role + # + # @return [Symbol, :tool] + required :role, const: :tool + + # @!attribute tool_call_id + # + # @return [String] + required :tool_call_id, String + + # @!method initialize(content:, tool_call_id:, role: :tool) + # @param content [String, Array] + # @param tool_call_id [String] + # @param role [Symbol, :tool] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1Array } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[-> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + }] + end + end + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::Content } + + # @!attribute role + # + # @return [Symbol, :system] + required :role, const: :system + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl } + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!method initialize(content:, cache_control: nil, name: nil, role: :system) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl] + # @param name [String] + # @param role [Symbol, :system] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::Content::UnionMember1Array } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + end + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array, nil] + required :content, + union: -> { + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content + }, + nil?: true + + # @!attribute name + # + # @return [String] + required :name, String + + # @!attribute role + # + # @return [Symbol, :function] + required :role, const: :function + + # @!attribute tool_call_id + # + # @return [String, nil] + required :tool_call_id, String, nil?: true + + # @!method initialize(content:, name:, tool_call_id:, role: :function) + # @param content [String, Array, nil] + # @param name [String] + # @param tool_call_id [String, nil] + # @param role [Symbol, :function] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1Array } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 } + ] + end + end + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::Content } + + # @!attribute role + # + # @return [Symbol, :developer] + required :role, const: :developer + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl } + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!method initialize(content:, cache_control: nil, name: nil, role: :developer) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl] + # @param name [String] + # @param role [Symbol, :developer] + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::Content::UnionMember1Array } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + end + + # @see Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage, Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage)] + end + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::FunctionCall::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + + module Stop + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::Stop::StringArray } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + StringArray = Hanzoai::Internal::Type::ArrayOf[String] + end + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Chat::CompletionCreateParams::ToolChoice::UnionMember1Map } - # @!parse - # # @param model [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(model: nil, request_options: {}, **) = super + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end end end end diff --git a/lib/hanzoai/models/chat/completion_create_response.rb b/lib/hanzoai/models/chat/completion_create_response.rb new file mode 100644 index 00000000..6809d969 --- /dev/null +++ b/lib/hanzoai/models/chat/completion_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Chat + # @type [Hanzoai::Internal::Type::Converter] + CompletionCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/client_get_home_params.rb b/lib/hanzoai/models/client_get_home_params.rb index d2e2775f..780bb951 100644 --- a/lib/hanzoai/models/client_get_home_params.rb +++ b/lib/hanzoai/models/client_get_home_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Client#get_home class ClientGetHomeParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cohere_create_params.rb b/lib/hanzoai/models/cohere_create_params.rb index 937761e0..b4f14442 100644 --- a/lib/hanzoai/models/cohere_create_params.rb +++ b/lib/hanzoai/models/cohere_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cohere#create class CohereCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cohere_create_response.rb b/lib/hanzoai/models/cohere_create_response.rb new file mode 100644 index 00000000..a54dafce --- /dev/null +++ b/lib/hanzoai/models/cohere_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CohereCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/cohere_delete_params.rb b/lib/hanzoai/models/cohere_delete_params.rb index d82d7ce5..bc876698 100644 --- a/lib/hanzoai/models/cohere_delete_params.rb +++ b/lib/hanzoai/models/cohere_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cohere#delete class CohereDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cohere_delete_response.rb b/lib/hanzoai/models/cohere_delete_response.rb new file mode 100644 index 00000000..5c36a100 --- /dev/null +++ b/lib/hanzoai/models/cohere_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CohereDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/cohere_modify_params.rb b/lib/hanzoai/models/cohere_modify_params.rb index 34264d15..55112a4c 100644 --- a/lib/hanzoai/models/cohere_modify_params.rb +++ b/lib/hanzoai/models/cohere_modify_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cohere#modify class CohereModifyParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cohere_modify_response.rb b/lib/hanzoai/models/cohere_modify_response.rb new file mode 100644 index 00000000..2f90a74c --- /dev/null +++ b/lib/hanzoai/models/cohere_modify_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CohereModifyResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/cohere_retrieve_params.rb b/lib/hanzoai/models/cohere_retrieve_params.rb index dbe71192..4bb88352 100644 --- a/lib/hanzoai/models/cohere_retrieve_params.rb +++ b/lib/hanzoai/models/cohere_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cohere#retrieve class CohereRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cohere_retrieve_response.rb b/lib/hanzoai/models/cohere_retrieve_response.rb new file mode 100644 index 00000000..510fe33f --- /dev/null +++ b/lib/hanzoai/models/cohere_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CohereRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/cohere_update_params.rb b/lib/hanzoai/models/cohere_update_params.rb index f7c5b263..f06cdff8 100644 --- a/lib/hanzoai/models/cohere_update_params.rb +++ b/lib/hanzoai/models/cohere_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Cohere#update class CohereUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/cohere_update_response.rb b/lib/hanzoai/models/cohere_update_response.rb new file mode 100644 index 00000000..ac659f95 --- /dev/null +++ b/lib/hanzoai/models/cohere_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CohereUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/completion_create_params.rb b/lib/hanzoai/models/completion_create_params.rb index a9db1668..e13e7ca2 100644 --- a/lib/hanzoai/models/completion_create_params.rb +++ b/lib/hanzoai/models/completion_create_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Completions#create class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute model @@ -13,13 +12,9 @@ class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :model, String, nil?: true - # @!parse - # # @param model [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(model: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(model: nil, request_options: {}) + # @param model [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/completion_create_response.rb b/lib/hanzoai/models/completion_create_response.rb new file mode 100644 index 00000000..161b9dbf --- /dev/null +++ b/lib/hanzoai/models/completion_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CompletionCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/config/pass_through_endpoint_create_params.rb b/lib/hanzoai/models/config/pass_through_endpoint_create_params.rb index 39ce15dd..0a741f95 100644 --- a/lib/hanzoai/models/config/pass_through_endpoint_create_params.rb +++ b/lib/hanzoai/models/config/pass_through_endpoint_create_params.rb @@ -5,16 +5,11 @@ module Models module Config # @see Hanzoai::Resources::Config::PassThroughEndpoint#create class PassThroughEndpointCreateParams < Hanzoai::Models::Config::PassThroughGenericEndpoint - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/config/pass_through_endpoint_create_response.rb b/lib/hanzoai/models/config/pass_through_endpoint_create_response.rb new file mode 100644 index 00000000..67ed95bf --- /dev/null +++ b/lib/hanzoai/models/config/pass_through_endpoint_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Config + # @type [Hanzoai::Internal::Type::Converter] + PassThroughEndpointCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/config/pass_through_endpoint_delete_params.rb b/lib/hanzoai/models/config/pass_through_endpoint_delete_params.rb index 5a206e85..fc21bf10 100644 --- a/lib/hanzoai/models/config/pass_through_endpoint_delete_params.rb +++ b/lib/hanzoai/models/config/pass_through_endpoint_delete_params.rb @@ -5,8 +5,7 @@ module Models module Config # @see Hanzoai::Resources::Config::PassThroughEndpoint#delete class PassThroughEndpointDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute endpoint_id @@ -14,13 +13,9 @@ class PassThroughEndpointDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :endpoint_id, String - # @!parse - # # @param endpoint_id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(endpoint_id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(endpoint_id:, request_options: {}) + # @param endpoint_id [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/config/pass_through_endpoint_list_params.rb b/lib/hanzoai/models/config/pass_through_endpoint_list_params.rb index 9e79db3e..e5881534 100644 --- a/lib/hanzoai/models/config/pass_through_endpoint_list_params.rb +++ b/lib/hanzoai/models/config/pass_through_endpoint_list_params.rb @@ -5,8 +5,7 @@ module Models module Config # @see Hanzoai::Resources::Config::PassThroughEndpoint#list class PassThroughEndpointListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute endpoint_id @@ -14,13 +13,15 @@ class PassThroughEndpointListParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :endpoint_id, String, nil?: true - # @!parse - # # @param endpoint_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(endpoint_id: nil, request_options: {}, **) = super + # @!attribute team_id + # + # @return [String, nil] + optional :team_id, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(endpoint_id: nil, team_id: nil, request_options: {}) + # @param endpoint_id [String, nil] + # @param team_id [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/config/pass_through_endpoint_response.rb b/lib/hanzoai/models/config/pass_through_endpoint_response.rb index 3221a268..ea222b51 100644 --- a/lib/hanzoai/models/config/pass_through_endpoint_response.rb +++ b/lib/hanzoai/models/config/pass_through_endpoint_response.rb @@ -8,15 +8,10 @@ class PassThroughEndpointResponse < Hanzoai::Internal::Type::BaseModel # @!attribute endpoints # # @return [Array] - required :endpoints, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Config::PassThroughGenericEndpoint] } + required :endpoints, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Config::PassThroughGenericEndpoint] } - # @!parse - # # @param endpoints [Array] - # # - # def initialize(endpoints:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(endpoints:) + # @param endpoints [Array] end end end diff --git a/lib/hanzoai/models/config/pass_through_endpoint_update_params.rb b/lib/hanzoai/models/config/pass_through_endpoint_update_params.rb index a4e044c6..ff436a31 100644 --- a/lib/hanzoai/models/config/pass_through_endpoint_update_params.rb +++ b/lib/hanzoai/models/config/pass_through_endpoint_update_params.rb @@ -4,17 +4,12 @@ module Hanzoai module Models module Config # @see Hanzoai::Resources::Config::PassThroughEndpoint#update - class PassThroughEndpointUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + class PassThroughEndpointUpdateParams < Hanzoai::Models::Config::PassThroughGenericEndpoint + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/config/pass_through_endpoint_update_response.rb b/lib/hanzoai/models/config/pass_through_endpoint_update_response.rb new file mode 100644 index 00000000..d608a69a --- /dev/null +++ b/lib/hanzoai/models/config/pass_through_endpoint_update_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Config + # @type [Hanzoai::Internal::Type::Converter] + PassThroughEndpointUpdateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/config/pass_through_generic_endpoint.rb b/lib/hanzoai/models/config/pass_through_generic_endpoint.rb index ffcf02a4..ef64ed81 100644 --- a/lib/hanzoai/models/config/pass_through_generic_endpoint.rb +++ b/lib/hanzoai/models/config/pass_through_generic_endpoint.rb @@ -4,15 +4,8 @@ module Hanzoai module Models module Config class PassThroughGenericEndpoint < Hanzoai::Internal::Type::BaseModel - # @!attribute headers - # Key-value pairs of headers to be forwarded with the request. You can set any key - # value pair here and it will be forwarded to your target endpoint - # - # @return [Object] - required :headers, Hanzoai::Internal::Type::Unknown - # @!attribute path - # The route to be added to the LLM Proxy Server. + # The route to be added to the LiteLLM Proxy Server. # # @return [String] required :path, String @@ -23,14 +16,107 @@ class PassThroughGenericEndpoint < Hanzoai::Internal::Type::BaseModel # @return [String] required :target, String - # @!parse - # # @param headers [Object] - # # @param path [String] - # # @param target [String] - # # - # def initialize(headers:, path:, target:, **) = super + # @!attribute id + # Optional unique identifier for the pass-through endpoint. If not provided, + # endpoints will be identified by path for backwards compatibility. + # + # @return [String, nil] + optional :id, String, nil?: true + + # @!attribute auth + # Whether authentication is required for the pass-through endpoint. If True, + # requests to the endpoint will require a valid LiteLLM API key. + # + # @return [Boolean, nil] + optional :auth, Hanzoai::Internal::Type::Boolean + + # @!attribute cost_per_request + # The USD cost per request to the target endpoint. This is used to calculate the + # cost of the request to the target endpoint. + # + # @return [Float, nil] + optional :cost_per_request, Float + + # @!attribute guardrails + # Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # names, values are optional settings for field targeting. When set, all + # org/team/key level guardrails will also execute. Defaults to None (no guardrails + # execute). + # + # @return [Hash{Symbol=>Hanzoai::Models::Config::PassThroughGenericEndpoint::Guardrail, nil}, nil] + optional :guardrails, + -> { + Hanzoai::Internal::Type::HashOf[Hanzoai::Config::PassThroughGenericEndpoint::Guardrail, + nil?: true] + }, + nil?: true + + # @!attribute headers + # Key-value pairs of headers to be forwarded with the request. You can set any key + # value pair here and it will be forwarded to your target endpoint + # + # @return [Hash{Symbol=>Object}, nil] + optional :headers, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute include_subpath + # If True, requests to subpaths of the path will be forwarded to the target + # endpoint. For example, if the path is /bria and include_subpath is True, + # requests to /bria/v1/text-to-image/base/2.3 will be forwarded to the target + # endpoint. + # + # @return [Boolean, nil] + optional :include_subpath, Hanzoai::Internal::Type::Boolean + + # @!method initialize(path:, target:, id: nil, auth: nil, cost_per_request: nil, guardrails: nil, headers: nil, include_subpath: nil) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Config::PassThroughGenericEndpoint} for more details. + # + # @param path [String] The route to be added to the LiteLLM Proxy Server. + # + # @param target [String] The URL to which requests for this path should be forwarded. + # + # @param id [String, nil] Optional unique identifier for the pass-through endpoint. If not provided, endpo + # + # @param auth [Boolean] Whether authentication is required for the pass-through endpoint. If True, reque + # + # @param cost_per_request [Float] The USD cost per request to the target endpoint. This is used to calculate the c + # + # @param guardrails [Hash{Symbol=>Hanzoai::Models::Config::PassThroughGenericEndpoint::Guardrail, nil}, nil] Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # + # @param headers [Hash{Symbol=>Object}] Key-value pairs of headers to be forwarded with the request. You can set any key + # + # @param include_subpath [Boolean] If True, requests to subpaths of the path will be forwarded to the target endpoi + + class Guardrail < Hanzoai::Internal::Type::BaseModel + # @!attribute request_fields + # JSONPath expressions for input field targeting (pre_call). Examples: 'query', + # 'documents[*].text', 'messages[*].content'. If not specified, guardrail runs on + # entire request payload. + # + # @return [Array, nil] + optional :request_fields, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute response_fields + # JSONPath expressions for output field targeting (post_call). Examples: + # 'results[*].text', 'output'. If not specified, guardrail runs on entire response + # payload. + # + # @return [Array, nil] + optional :response_fields, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_fields: nil, response_fields: nil) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Config::PassThroughGenericEndpoint::Guardrail} for more + # details. + # + # Settings for a specific guardrail on a passthrough endpoint. + # + # Allows field-level targeting for guardrail execution. + # + # @param request_fields [Array, nil] JSONPath expressions for input field targeting (pre_call). Examples: 'query', 'd + # + # @param response_fields [Array, nil] JSONPath expressions for output field targeting (post_call). Examples: 'results[ + end end end end diff --git a/lib/hanzoai/models/configurable_clientside_params_custom_auth.rb b/lib/hanzoai/models/configurable_clientside_params_custom_auth.rb deleted file mode 100644 index 68f0d0fe..00000000 --- a/lib/hanzoai/models/configurable_clientside_params_custom_auth.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -module Hanzoai - module Models - class ConfigurableClientsideParamsCustomAuth < Hanzoai::Internal::Type::BaseModel - # @!attribute api_base - # - # @return [String] - required :api_base, String - - # @!parse - # # @param api_base [String] - # # - # def initialize(api_base:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end -end diff --git a/lib/hanzoai/models/credential_create_params.rb b/lib/hanzoai/models/credential_create_params.rb index c6a56762..1f5fa9d0 100644 --- a/lib/hanzoai/models/credential_create_params.rb +++ b/lib/hanzoai/models/credential_create_params.rb @@ -4,14 +4,13 @@ module Hanzoai module Models # @see Hanzoai::Resources::Credentials#create class CredentialCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute credential_info # - # @return [Object] - required :credential_info, Hanzoai::Internal::Type::Unknown + # @return [Hash{Symbol=>Object}] + required :credential_info, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] # @!attribute credential_name # @@ -20,24 +19,22 @@ class CredentialCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute credential_values # - # @return [Object, nil] - optional :credential_values, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :credential_values, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_id # # @return [String, nil] optional :model_id, String, nil?: true - # @!parse - # # @param credential_info [Object] - # # @param credential_name [String] - # # @param credential_values [Object, nil] - # # @param model_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(credential_info:, credential_name:, credential_values: nil, model_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(credential_info:, credential_name:, credential_values: nil, model_id: nil, request_options: {}) + # @param credential_info [Hash{Symbol=>Object}] + # @param credential_name [String] + # @param credential_values [Hash{Symbol=>Object}, nil] + # @param model_id [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/credential_create_response.rb b/lib/hanzoai/models/credential_create_response.rb new file mode 100644 index 00000000..87c45635 --- /dev/null +++ b/lib/hanzoai/models/credential_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CredentialCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/credential_delete_params.rb b/lib/hanzoai/models/credential_delete_params.rb index 6a681f37..de176b59 100644 --- a/lib/hanzoai/models/credential_delete_params.rb +++ b/lib/hanzoai/models/credential_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Credentials#delete class CredentialDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/credential_delete_response.rb b/lib/hanzoai/models/credential_delete_response.rb new file mode 100644 index 00000000..2b818e6f --- /dev/null +++ b/lib/hanzoai/models/credential_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CredentialDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/credential_item.rb b/lib/hanzoai/models/credential_item.rb index d90fbdb6..df8703af 100644 --- a/lib/hanzoai/models/credential_item.rb +++ b/lib/hanzoai/models/credential_item.rb @@ -5,8 +5,8 @@ module Models class CredentialItem < Hanzoai::Internal::Type::BaseModel # @!attribute credential_info # - # @return [Object] - required :credential_info, Hanzoai::Internal::Type::Unknown + # @return [Hash{Symbol=>Object}] + required :credential_info, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] # @!attribute credential_name # @@ -15,17 +15,13 @@ class CredentialItem < Hanzoai::Internal::Type::BaseModel # @!attribute credential_values # - # @return [Object] - required :credential_values, Hanzoai::Internal::Type::Unknown + # @return [Hash{Symbol=>Object}] + required :credential_values, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @param credential_info [Object] - # # @param credential_name [String] - # # @param credential_values [Object] - # # - # def initialize(credential_info:, credential_name:, credential_values:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(credential_info:, credential_name:, credential_values:) + # @param credential_info [Hash{Symbol=>Object}] + # @param credential_name [String] + # @param credential_values [Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/credential_list_params.rb b/lib/hanzoai/models/credential_list_params.rb index 500586c5..88767495 100644 --- a/lib/hanzoai/models/credential_list_params.rb +++ b/lib/hanzoai/models/credential_list_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Credentials#list class CredentialListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/credential_list_response.rb b/lib/hanzoai/models/credential_list_response.rb new file mode 100644 index 00000000..1590f962 --- /dev/null +++ b/lib/hanzoai/models/credential_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CredentialListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/customer_block_params.rb b/lib/hanzoai/models/customer_block_params.rb index d72d8e50..284cd00d 100644 --- a/lib/hanzoai/models/customer_block_params.rb +++ b/lib/hanzoai/models/customer_block_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Customer#block class CustomerBlockParams < Hanzoai::Models::BlockUsers - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/customer_block_response.rb b/lib/hanzoai/models/customer_block_response.rb new file mode 100644 index 00000000..eb04a196 --- /dev/null +++ b/lib/hanzoai/models/customer_block_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CustomerBlockResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/customer_create_params.rb b/lib/hanzoai/models/customer_create_params.rb index 0980f3eb..82435e70 100644 --- a/lib/hanzoai/models/customer_create_params.rb +++ b/lib/hanzoai/models/customer_create_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Customer#create class CustomerCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute user_id @@ -22,17 +21,15 @@ class CustomerCreateParams < Hanzoai::Internal::Type::BaseModel # # @return [Symbol, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion, nil] optional :allowed_model_region, - enum: -> { Hanzoai::Models::CustomerCreateParams::AllowedModelRegion }, + enum: -> { + Hanzoai::CustomerCreateParams::AllowedModelRegion + }, nil?: true - # @!attribute [r] blocked + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked + optional :blocked, Hanzoai::Internal::Type::Boolean # @!attribute budget_duration # Max duration budget should be set for (e.g. '1hr', '1d', '28d') @@ -45,6 +42,12 @@ class CustomerCreateParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :budget_id, String, nil?: true + # @!attribute budget_reset_at + # Datetime when the budget is reset + # + # @return [Time, nil] + optional :budget_reset_at, Time, nil?: true + # @!attribute default_model # # @return [String, nil] @@ -64,11 +67,11 @@ class CustomerCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute model_max_budget # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', - # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) # # @return [Hash{Symbol=>Hanzoai::Models::CustomerCreateParams::ModelMaxBudget}, nil] optional :model_max_budget, - -> { Hanzoai::Internal::Type::HashOf[Hanzoai::Models::CustomerCreateParams::ModelMaxBudget] }, + -> { Hanzoai::Internal::Type::HashOf[Hanzoai::CustomerCreateParams::ModelMaxBudget] }, nil?: true # @!attribute rpm_limit @@ -83,49 +86,52 @@ class CustomerCreateParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :soft_budget, Float, nil?: true + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float, nil?: true + # @!attribute tpm_limit # Max tokens per minute, allowed for this budget id. # # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!parse - # # @param user_id [String] - # # @param alias_ [String, nil] - # # @param allowed_model_region [Symbol, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion, nil] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param default_model [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::CustomerCreateParams::ModelMaxBudget}, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # user_id:, - # alias_: nil, - # allowed_model_region: nil, - # blocked: nil, - # budget_duration: nil, - # budget_id: nil, - # default_model: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(user_id:, alias_: nil, allowed_model_region: nil, blocked: nil, budget_duration: nil, budget_id: nil, budget_reset_at: nil, default_model: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, spend: nil, tpm_limit: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::CustomerCreateParams} for more details. + # + # @param user_id [String] + # + # @param alias_ [String, nil] + # + # @param allowed_model_region [Symbol, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion, nil] + # + # @param blocked [Boolean] + # + # @param budget_duration [String, nil] Max duration budget should be set for (e.g. '1hr', '1d', '28d') + # + # @param budget_id [String, nil] + # + # @param budget_reset_at [Time, nil] Datetime when the budget is reset + # + # @param default_model [String, nil] + # + # @param max_budget [Float, nil] Requests will fail if this budget (in USD) is exceeded. + # + # @param max_parallel_requests [Integer, nil] Max concurrent requests allowed for this budget id. + # + # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::CustomerCreateParams::ModelMaxBudget}, nil] Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_d + # + # @param rpm_limit [Integer, nil] Max requests per minute, allowed for this budget id. + # + # @param soft_budget [Float, nil] Requests will NOT fail if this is exceeded. Will fire alerting though. + # + # @param spend [Float, nil] + # + # @param tpm_limit [Integer, nil] Max tokens per minute, allowed for this budget id. + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module AllowedModelRegion extend Hanzoai::Internal::Type::Enum @@ -133,11 +139,8 @@ module AllowedModelRegion EU = :eu US = :us - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel @@ -161,15 +164,11 @@ class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!parse - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param rpm_limit [Integer, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize(budget_duration: nil, max_budget: nil, rpm_limit: nil, tpm_limit: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(budget_duration: nil, max_budget: nil, rpm_limit: nil, tpm_limit: nil) + # @param budget_duration [String, nil] + # @param max_budget [Float, nil] + # @param rpm_limit [Integer, nil] + # @param tpm_limit [Integer, nil] end end end diff --git a/lib/hanzoai/models/customer_create_response.rb b/lib/hanzoai/models/customer_create_response.rb new file mode 100644 index 00000000..eb5d8ec3 --- /dev/null +++ b/lib/hanzoai/models/customer_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CustomerCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/customer_delete_params.rb b/lib/hanzoai/models/customer_delete_params.rb index e3edb745..ea278ce6 100644 --- a/lib/hanzoai/models/customer_delete_params.rb +++ b/lib/hanzoai/models/customer_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Customer#delete class CustomerDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute user_ids @@ -13,13 +12,9 @@ class CustomerDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [Array] required :user_ids, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @param user_ids [Array] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(user_ids:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(user_ids:, request_options: {}) + # @param user_ids [Array] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/customer_delete_response.rb b/lib/hanzoai/models/customer_delete_response.rb new file mode 100644 index 00000000..5519f088 --- /dev/null +++ b/lib/hanzoai/models/customer_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CustomerDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/customer_list_params.rb b/lib/hanzoai/models/customer_list_params.rb index 48ee804c..1bbb3837 100644 --- a/lib/hanzoai/models/customer_list_params.rb +++ b/lib/hanzoai/models/customer_list_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Customer#list class CustomerListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/customer_list_response.rb b/lib/hanzoai/models/customer_list_response.rb index cf2ef185..44c4810c 100644 --- a/lib/hanzoai/models/customer_list_response.rb +++ b/lib/hanzoai/models/customer_list_response.rb @@ -2,152 +2,7 @@ module Hanzoai module Models - class CustomerListResponseItem < Hanzoai::Internal::Type::BaseModel - # @!attribute blocked - # - # @return [Boolean] - required :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute alias_ - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute allowed_model_region - # - # @return [Symbol, Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion, nil] - optional :allowed_model_region, - enum: -> { Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion }, - nil?: true - - # @!attribute default_model - # - # @return [String, nil] - optional :default_model, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable, nil] - optional :llm_budget_table, -> { Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable }, nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!parse - # # @param blocked [Boolean] - # # @param user_id [String] - # # @param alias_ [String, nil] - # # @param allowed_model_region [Symbol, Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion, nil] - # # @param default_model [String, nil] - # # @param llm_budget_table [Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable, nil] - # # @param spend [Float] - # # - # def initialize( - # blocked:, - # user_id:, - # alias_: nil, - # allowed_model_region: nil, - # default_model: nil, - # llm_budget_table: nil, - # spend: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::CustomerListResponseItem#allowed_model_region - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - EU = :eu - US = :us - - finalize! - - # @!parse - # # @return [Array] - # def self.values; end - end - - # @see Hanzoai::Models::CustomerListResponseItem#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end - - CustomerListResponse = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::CustomerListResponseItem }] + # @type [Hanzoai::Internal::Type::Converter] + CustomerListResponse = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::LiteLlmEndUserTable }] end end diff --git a/lib/hanzoai/models/customer_retrieve_info_params.rb b/lib/hanzoai/models/customer_retrieve_info_params.rb index 521227c6..68fb628f 100644 --- a/lib/hanzoai/models/customer_retrieve_info_params.rb +++ b/lib/hanzoai/models/customer_retrieve_info_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Customer#retrieve_info class CustomerRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute end_user_id @@ -14,13 +13,10 @@ class CustomerRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :end_user_id, String - # @!parse - # # @param end_user_id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(end_user_id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(end_user_id:, request_options: {}) + # @param end_user_id [String] End User ID in the request parameters + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/customer_retrieve_info_response.rb b/lib/hanzoai/models/customer_retrieve_info_response.rb deleted file mode 100644 index fe4a84b7..00000000 --- a/lib/hanzoai/models/customer_retrieve_info_response.rb +++ /dev/null @@ -1,154 +0,0 @@ -# frozen_string_literal: true - -module Hanzoai - module Models - # @see Hanzoai::Resources::Customer#retrieve_info - class CustomerRetrieveInfoResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute blocked - # - # @return [Boolean] - required :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute alias_ - # - # @return [String, nil] - optional :alias_, String, api_name: :alias, nil?: true - - # @!attribute allowed_model_region - # - # @return [Symbol, Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion, nil] - optional :allowed_model_region, - enum: -> { Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion }, - nil?: true - - # @!attribute default_model - # - # @return [String, nil] - optional :default_model, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable }, - nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!parse - # # @param blocked [Boolean] - # # @param user_id [String] - # # @param alias_ [String, nil] - # # @param allowed_model_region [Symbol, Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion, nil] - # # @param default_model [String, nil] - # # @param llm_budget_table [Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable, nil] - # # @param spend [Float] - # # - # def initialize( - # blocked:, - # user_id:, - # alias_: nil, - # allowed_model_region: nil, - # default_model: nil, - # llm_budget_table: nil, - # spend: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::CustomerRetrieveInfoResponse#allowed_model_region - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - EU = :eu - US = :us - - finalize! - - # @!parse - # # @return [Array] - # def self.values; end - end - - # @see Hanzoai::Models::CustomerRetrieveInfoResponse#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end - end -end diff --git a/lib/hanzoai/models/customer_unblock_params.rb b/lib/hanzoai/models/customer_unblock_params.rb index 440af089..cea56f3e 100644 --- a/lib/hanzoai/models/customer_unblock_params.rb +++ b/lib/hanzoai/models/customer_unblock_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Customer#unblock class CustomerUnblockParams < Hanzoai::Models::BlockUsers - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/customer_unblock_response.rb b/lib/hanzoai/models/customer_unblock_response.rb new file mode 100644 index 00000000..97f063ca --- /dev/null +++ b/lib/hanzoai/models/customer_unblock_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CustomerUnblockResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/customer_update_params.rb b/lib/hanzoai/models/customer_update_params.rb index 04d23a78..510e5ddb 100644 --- a/lib/hanzoai/models/customer_update_params.rb +++ b/lib/hanzoai/models/customer_update_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Customer#update class CustomerUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute user_id @@ -22,17 +21,15 @@ class CustomerUpdateParams < Hanzoai::Internal::Type::BaseModel # # @return [Symbol, Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion, nil] optional :allowed_model_region, - enum: -> { Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion }, + enum: -> { + Hanzoai::CustomerUpdateParams::AllowedModelRegion + }, nil?: true - # @!attribute [r] blocked + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked + optional :blocked, Hanzoai::Internal::Type::Boolean # @!attribute budget_id # @@ -49,31 +46,15 @@ class CustomerUpdateParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :max_budget, Float, nil?: true - # @!parse - # # @param user_id [String] - # # @param alias_ [String, nil] - # # @param allowed_model_region [Symbol, Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion, nil] - # # @param blocked [Boolean] - # # @param budget_id [String, nil] - # # @param default_model [String, nil] - # # @param max_budget [Float, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # user_id:, - # alias_: nil, - # allowed_model_region: nil, - # blocked: nil, - # budget_id: nil, - # default_model: nil, - # max_budget: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(user_id:, alias_: nil, allowed_model_region: nil, blocked: nil, budget_id: nil, default_model: nil, max_budget: nil, request_options: {}) + # @param user_id [String] + # @param alias_ [String, nil] + # @param allowed_model_region [Symbol, Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion, nil] + # @param blocked [Boolean] + # @param budget_id [String, nil] + # @param default_model [String, nil] + # @param max_budget [Float, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module AllowedModelRegion extend Hanzoai::Internal::Type::Enum @@ -81,11 +62,8 @@ module AllowedModelRegion EU = :eu US = :us - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/customer_update_response.rb b/lib/hanzoai/models/customer_update_response.rb new file mode 100644 index 00000000..b4ef28e5 --- /dev/null +++ b/lib/hanzoai/models/customer_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + CustomerUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/delete_create_allowed_ip_params.rb b/lib/hanzoai/models/delete_create_allowed_ip_params.rb index 0a2ce48a..d81e747d 100644 --- a/lib/hanzoai/models/delete_create_allowed_ip_params.rb +++ b/lib/hanzoai/models/delete_create_allowed_ip_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Delete#create_allowed_ip class DeleteCreateAllowedIPParams < Hanzoai::Models::IPAddress - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/delete_create_allowed_ip_response.rb b/lib/hanzoai/models/delete_create_allowed_ip_response.rb new file mode 100644 index 00000000..70e0fa92 --- /dev/null +++ b/lib/hanzoai/models/delete_create_allowed_ip_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + DeleteCreateAllowedIPResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/embedding_create_params.rb b/lib/hanzoai/models/embedding_create_params.rb index 1b1eb872..1dba7cf5 100644 --- a/lib/hanzoai/models/embedding_create_params.rb +++ b/lib/hanzoai/models/embedding_create_params.rb @@ -4,22 +4,109 @@ module Hanzoai module Models # @see Hanzoai::Resources::Embeddings#create class EmbeddingCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute model # + # @return [String] + required :model, String + + # @!attribute api_base + # + # @return [String, nil] + optional :api_base, String, nil?: true + + # @!attribute api_key + # + # @return [String, nil] + optional :api_key, String, nil?: true + + # @!attribute api_type + # + # @return [String, nil] + optional :api_type, String, nil?: true + + # @!attribute api_version + # + # @return [String, nil] + optional :api_version, String, nil?: true + + # @!attribute caching + # + # @return [Boolean, nil] + optional :caching, Hanzoai::Internal::Type::Boolean + + # @!attribute custom_llm_provider + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :custom_llm_provider, + union: -> { + Hanzoai::EmbeddingCreateParams::CustomLlmProvider + }, + nil?: true + + # @!attribute input + # + # @return [Array, nil] + optional :input, Hanzoai::Internal::Type::ArrayOf[String] + + # @!attribute litellm_call_id + # # @return [String, nil] - optional :model, String, nil?: true + optional :litellm_call_id, String, nil?: true + + # @!attribute litellm_logging_obj + # + # @return [Hash{Symbol=>Object}, nil] + optional :litellm_logging_obj, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute logger_fn + # + # @return [String, nil] + optional :logger_fn, String, nil?: true + + # @!attribute timeout + # + # @return [Integer, nil] + optional :timeout, Integer + + # @!attribute user + # + # @return [String, nil] + optional :user, String, nil?: true + + # @!method initialize(model:, api_base: nil, api_key: nil, api_type: nil, api_version: nil, caching: nil, custom_llm_provider: nil, input: nil, litellm_call_id: nil, litellm_logging_obj: nil, logger_fn: nil, timeout: nil, user: nil, request_options: {}) + # @param model [String] + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_type [String, nil] + # @param api_version [String, nil] + # @param caching [Boolean] + # @param custom_llm_provider [String, Hash{Symbol=>Object}, nil] + # @param input [Array] + # @param litellm_call_id [String, nil] + # @param litellm_logging_obj [Hash{Symbol=>Object}, nil] + # @param logger_fn [String, nil] + # @param timeout [Integer] + # @param user [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::EmbeddingCreateParams::CustomLlmProvider::UnionMember1Map } - # @!parse - # # @param model [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(model: nil, request_options: {}, **) = super + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end end end end diff --git a/lib/hanzoai/models/embedding_create_response.rb b/lib/hanzoai/models/embedding_create_response.rb new file mode 100644 index 00000000..dfb9af51 --- /dev/null +++ b/lib/hanzoai/models/embedding_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EmbeddingCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/engine_complete_params.rb b/lib/hanzoai/models/engine_complete_params.rb index 127b62b4..415d8083 100644 --- a/lib/hanzoai/models/engine_complete_params.rb +++ b/lib/hanzoai/models/engine_complete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Engines#complete class EngineCompleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/engine_complete_response.rb b/lib/hanzoai/models/engine_complete_response.rb new file mode 100644 index 00000000..41259c32 --- /dev/null +++ b/lib/hanzoai/models/engine_complete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EngineCompleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/engine_embed_params.rb b/lib/hanzoai/models/engine_embed_params.rb index 367a3f4c..25e5b70d 100644 --- a/lib/hanzoai/models/engine_embed_params.rb +++ b/lib/hanzoai/models/engine_embed_params.rb @@ -4,16 +4,105 @@ module Hanzoai module Models # @see Hanzoai::Resources::Engines#embed class EngineEmbedParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super + # @!attribute body_model + # + # @return [String] + required :body_model, String, api_name: :model - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute api_base + # + # @return [String, nil] + optional :api_base, String, nil?: true + + # @!attribute api_key + # + # @return [String, nil] + optional :api_key, String, nil?: true + + # @!attribute api_type + # + # @return [String, nil] + optional :api_type, String, nil?: true + + # @!attribute api_version + # + # @return [String, nil] + optional :api_version, String, nil?: true + + # @!attribute caching + # + # @return [Boolean, nil] + optional :caching, Hanzoai::Internal::Type::Boolean + + # @!attribute custom_llm_provider + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :custom_llm_provider, union: -> { Hanzoai::EngineEmbedParams::CustomLlmProvider }, nil?: true + + # @!attribute input + # + # @return [Array, nil] + optional :input, Hanzoai::Internal::Type::ArrayOf[String] + + # @!attribute litellm_call_id + # + # @return [String, nil] + optional :litellm_call_id, String, nil?: true + + # @!attribute litellm_logging_obj + # + # @return [Hash{Symbol=>Object}, nil] + optional :litellm_logging_obj, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute logger_fn + # + # @return [String, nil] + optional :logger_fn, String, nil?: true + + # @!attribute timeout + # + # @return [Integer, nil] + optional :timeout, Integer + + # @!attribute user + # + # @return [String, nil] + optional :user, String, nil?: true + + # @!method initialize(body_model:, api_base: nil, api_key: nil, api_type: nil, api_version: nil, caching: nil, custom_llm_provider: nil, input: nil, litellm_call_id: nil, litellm_logging_obj: nil, logger_fn: nil, timeout: nil, user: nil, request_options: {}) + # @param body_model [String] + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_type [String, nil] + # @param api_version [String, nil] + # @param caching [Boolean] + # @param custom_llm_provider [String, Hash{Symbol=>Object}, nil] + # @param input [Array] + # @param litellm_call_id [String, nil] + # @param litellm_logging_obj [Hash{Symbol=>Object}, nil] + # @param logger_fn [String, nil] + # @param timeout [Integer] + # @param user [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::EngineEmbedParams::CustomLlmProvider::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end end end end diff --git a/lib/hanzoai/models/engine_embed_response.rb b/lib/hanzoai/models/engine_embed_response.rb new file mode 100644 index 00000000..59feaceb --- /dev/null +++ b/lib/hanzoai/models/engine_embed_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EngineEmbedResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/engines/chat_complete_params.rb b/lib/hanzoai/models/engines/chat_complete_params.rb index 61130d27..9128b9be 100644 --- a/lib/hanzoai/models/engines/chat_complete_params.rb +++ b/lib/hanzoai/models/engines/chat_complete_params.rb @@ -5,16 +5,1288 @@ module Models module Engines # @see Hanzoai::Resources::Engines::Chat#complete class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super + # @!attribute messages + # + # @return [Array] + required :messages, + -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Engines::ChatCompleteParams::Message] } - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute body_model + # + # @return [String] + required :body_model, String, api_name: :model + + # @!attribute caching + # + # @return [Boolean, nil] + optional :caching, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute context_window_fallback_dict + # + # @return [Hash{Symbol=>String}, nil] + optional :context_window_fallback_dict, Hanzoai::Internal::Type::HashOf[String], nil?: true + + # @!attribute fallbacks + # + # @return [Array, nil] + optional :fallbacks, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute frequency_penalty + # + # @return [Float, nil] + optional :frequency_penalty, Float, nil?: true + + # @!attribute function_call + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :function_call, union: -> { Hanzoai::Engines::ChatCompleteParams::FunctionCall }, nil?: true + + # @!attribute functions + # + # @return [ArrayObject}>, nil] + optional :functions, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute guardrails + # + # @return [Array, nil] + optional :guardrails, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute logit_bias + # + # @return [Hash{Symbol=>Float}, nil] + optional :logit_bias, Hanzoai::Internal::Type::HashOf[Float], nil?: true + + # @!attribute logprobs + # + # @return [Boolean, nil] + optional :logprobs, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute max_tokens + # + # @return [Integer, nil] + optional :max_tokens, Integer, nil?: true + + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute n + # + # @return [Integer, nil] + optional :n, Integer, nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute parallel_tool_calls + # + # @return [Boolean, nil] + optional :parallel_tool_calls, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute presence_penalty + # + # @return [Float, nil] + optional :presence_penalty, Float, nil?: true + + # @!attribute response_format + # + # @return [Hash{Symbol=>Object}, nil] + optional :response_format, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute seed + # + # @return [Integer, nil] + optional :seed, Integer, nil?: true + + # @!attribute service_tier + # + # @return [String, nil] + optional :service_tier, String, nil?: true + + # @!attribute stop + # + # @return [String, Array, nil] + optional :stop, union: -> { Hanzoai::Engines::ChatCompleteParams::Stop }, nil?: true + + # @!attribute stream + # + # @return [Boolean, nil] + optional :stream, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute stream_options + # + # @return [Hash{Symbol=>Object}, nil] + optional :stream_options, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute temperature + # + # @return [Float, nil] + optional :temperature, Float, nil?: true + + # @!attribute tool_choice + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :tool_choice, union: -> { Hanzoai::Engines::ChatCompleteParams::ToolChoice }, nil?: true + + # @!attribute tools + # + # @return [ArrayObject}>, nil] + optional :tools, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute top_logprobs + # + # @return [Integer, nil] + optional :top_logprobs, Integer, nil?: true + + # @!attribute top_p + # + # @return [Float, nil] + optional :top_p, Float, nil?: true + + # @!attribute user + # + # @return [String, nil] + optional :user, String, nil?: true + + # @!method initialize(messages:, body_model:, caching: nil, context_window_fallback_dict: nil, fallbacks: nil, frequency_penalty: nil, function_call: nil, functions: nil, guardrails: nil, logit_bias: nil, logprobs: nil, max_tokens: nil, metadata: nil, n: nil, num_retries: nil, parallel_tool_calls: nil, presence_penalty: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, stream_options: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, user: nil, request_options: {}) + # @param messages [Array] + # @param body_model [String] + # @param caching [Boolean, nil] + # @param context_window_fallback_dict [Hash{Symbol=>String}, nil] + # @param fallbacks [Array, nil] + # @param frequency_penalty [Float, nil] + # @param function_call [String, Hash{Symbol=>Object}, nil] + # @param functions [ArrayObject}>, nil] + # @param guardrails [Array, nil] + # @param logit_bias [Hash{Symbol=>Float}, nil] + # @param logprobs [Boolean, nil] + # @param max_tokens [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param n [Integer, nil] + # @param num_retries [Integer, nil] + # @param parallel_tool_calls [Boolean, nil] + # @param presence_penalty [Float, nil] + # @param response_format [Hash{Symbol=>Object}, nil] + # @param seed [Integer, nil] + # @param service_tier [String, nil] + # @param stop [String, Array, nil] + # @param stream [Boolean, nil] + # @param stream_options [Hash{Symbol=>Object}, nil] + # @param temperature [Float, nil] + # @param tool_choice [String, Hash{Symbol=>Object}, nil] + # @param tools [ArrayObject}>, nil] + # @param top_logprobs [Integer, nil] + # @param top_p [Float, nil] + # @param user [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + module Message + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage } + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content } + + # @!attribute role + # + # @return [Symbol, :user] + required :role, const: :user + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl } + + # @!method initialize(content:, cache_control: nil, role: :user) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl] + # @param role [Symbol, :user] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1Array } + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + # @!attribute image_url + # + # @return [String, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject] + required :image_url, + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL } + + # @!attribute type + # + # @return [Symbol, :image_url] + required :type, const: :image_url + + # @!method initialize(image_url:, type: :image_url) + # @param image_url [String, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject] + # @param type [Symbol, :image_url] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject#image_url + module ImageURL + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject } + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String + + # @!attribute format_ + # + # @return [String, nil] + optional :format_, String, api_name: :format + + # @!method initialize(url:, detail: nil, format_: nil) + # @param url [String] + # @param detail [String] + # @param format_ [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject)] + end + end + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + # @!attribute input_audio + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio] + required :input_audio, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio } + + # @!attribute type + # + # @return [Symbol, :input_audio] + required :type, const: :input_audio + + # @!method initialize(input_audio:, type: :input_audio) + # @param input_audio [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio] + # @param type [Symbol, :input_audio] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject#input_audio + class InputAudio < Hanzoai::Internal::Type::BaseModel + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute format_ + # + # @return [Symbol, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format] + required :format_, + enum: -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format + }, + api_name: :format + + # @!method initialize(data:, format_:) + # @param data [String] + # @param format_ [Symbol, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio#format_ + module Format + extend Hanzoai::Internal::Type::Enum + + WAV = :wav + MP3 = :mp3 + + # @!method self.values + # @return [Array] + end + end + end + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + # @!attribute citations + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, nil] + required :citations, + -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + }, + nil?: true + + # @!attribute context + # + # @return [String] + required :context, String + + # @!attribute source + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source] + required :source, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source } + + # @!attribute title + # + # @return [String] + required :title, String + + # @!attribute type + # + # @return [Symbol, :document] + required :type, const: :document + + # @!method initialize(citations:, context:, source:, title:, type: :document) + # @param citations [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, nil] + # @param context [String] + # @param source [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source] + # @param title [String] + # @param type [Symbol, :document] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject#citations + class Citations < Hanzoai::Internal::Type::BaseModel + # @!attribute enabled + # + # @return [Boolean] + required :enabled, Hanzoai::Internal::Type::Boolean + + # @!method initialize(enabled:) + # @param enabled [Boolean] + end + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject#source + class Source < Hanzoai::Internal::Type::BaseModel + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute media_type + # + # @return [String] + required :media_type, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!method initialize(data:, media_type:, type: :text) + # @param data [String] + # @param media_type [String] + # @param type [Symbol, :text] + end + end + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :video_url] + required :type, const: :video_url + + # @!attribute video_url + # + # @return [String, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject] + required :video_url, + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL } + + # @!method initialize(video_url:, type: :video_url) + # @param video_url [String, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject] + # @param type [Symbol, :video_url] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject#video_url + module VideoURL + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject } + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String + + # @!method initialize(url:, detail: nil) + # @param url [String] + # @param detail [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject)] + end + end + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + # @!attribute file + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File] + required :file, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File } + + # @!attribute type + # + # @return [Symbol, :file] + required :type, const: :file + + # @!method initialize(file:, type: :file) + # @param file [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File] + # @param type [Symbol, :file] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject#file + class File < Hanzoai::Internal::Type::BaseModel + # @!attribute file_data + # + # @return [String, nil] + optional :file_data, String + + # @!attribute file_id + # + # @return [String, nil] + optional :file_id, String + + # @!attribute filename + # + # @return [String, nil] + optional :filename, String + + # @!attribute format_ + # + # @return [String, nil] + optional :format_, String, api_name: :format + + # @!method initialize(file_data: nil, file_id: nil, filename: nil, format_: nil) + # @param file_data [String] + # @param file_id [String] + # @param filename [String] + # @param format_ [String] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject)] + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1 } + ] + end + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute role + # + # @return [Symbol, :assistant] + required :role, const: :assistant + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl } + + # @!attribute content + # + # @return [String, Array, nil] + optional :content, + union: -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content + }, + nil?: true + + # @!attribute function_call + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall, nil] + optional :function_call, + -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall + }, + nil?: true + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute reasoning_content + # + # @return [String, nil] + optional :reasoning_content, String, nil?: true + + # @!attribute thinking_blocks + # + # @return [Array, nil] + optional :thinking_blocks, + -> { + Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock] + }, + nil?: true + + # @!attribute tool_calls + # + # @return [Array, nil] + optional :tool_calls, + -> { + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall] + }, + nil?: true + + # @!method initialize(cache_control: nil, content: nil, function_call: nil, name: nil, reasoning_content: nil, thinking_blocks: nil, tool_calls: nil, role: :assistant) + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl] + # @param content [String, Array, nil] + # @param function_call [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall, nil] + # @param name [String, nil] + # @param reasoning_content [String, nil] + # @param thinking_blocks [Array, nil] + # @param tool_calls [Array, nil] + # @param role [Symbol, :assistant] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1Array } + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock)] + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1 } + ] + end + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage#function_call + class FunctionCall < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String, nil] + optional :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(arguments: nil, name: nil, provider_specific_fields: nil) + # @param arguments [String] + # @param name [String, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :redacted_thinking] + required :type, const: :redacted_thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute data + # + # @return [String, nil] + optional :data, String + + # @!method initialize(cache_control: nil, data: nil, type: :redacted_thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param data [String] + # @param type [Symbol, :redacted_thinking] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock)] + end + + class ToolCall < Hanzoai::Internal::Type::BaseModel + # @!attribute id + # + # @return [String, nil] + required :id, String, nil?: true + + # @!attribute function + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function] + required :function, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function } + + # @!attribute type + # + # @return [Symbol, :function] + required :type, const: :function + + # @!method initialize(id:, function:, type: :function) + # @param id [String, nil] + # @param function [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function] + # @param type [Symbol, :function] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall#function + class Function < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String, nil] + optional :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(arguments: nil, name: nil, provider_specific_fields: nil) + # @param arguments [String] + # @param name [String, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + end + end + end + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content } + + # @!attribute role + # + # @return [Symbol, :tool] + required :role, const: :tool + + # @!attribute tool_call_id + # + # @return [String] + required :tool_call_id, String + + # @!method initialize(content:, tool_call_id:, role: :tool) + # @param content [String, Array] + # @param tool_call_id [String] + # @param role [Symbol, :tool] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1Array } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[-> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + }] + end + end + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content } + + # @!attribute role + # + # @return [Symbol, :system] + required :role, const: :system + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl } + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!method initialize(content:, cache_control: nil, name: nil, role: :system) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl] + # @param name [String] + # @param role [Symbol, :system] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::UnionMember1Array } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + end + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array, nil] + required :content, + union: -> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content + }, + nil?: true + + # @!attribute name + # + # @return [String] + required :name, String + + # @!attribute role + # + # @return [Symbol, :function] + required :role, const: :function + + # @!attribute tool_call_id + # + # @return [String, nil] + required :tool_call_id, String, nil?: true + + # @!method initialize(content:, name:, tool_call_id:, role: :function) + # @param content [String, Array, nil] + # @param name [String] + # @param tool_call_id [String, nil] + # @param role [Symbol, :function] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1Array } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[-> { + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 + }] + end + end + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content } + + # @!attribute role + # + # @return [Symbol, :developer] + required :role, const: :developer + + # @!attribute cache_control + # + # @return [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl } + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!method initialize(content:, cache_control: nil, name: nil, role: :developer) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl] + # @param name [String] + # @param role [Symbol, :developer] + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::UnionMember1Array } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + end + + # @see Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage, Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage)] + end + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::FunctionCall::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + + module Stop + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::Stop::StringArray } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + StringArray = Hanzoai::Internal::Type::ArrayOf[String] + end + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Engines::ChatCompleteParams::ToolChoice::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end end end end diff --git a/lib/hanzoai/models/engines/chat_complete_response.rb b/lib/hanzoai/models/engines/chat_complete_response.rb new file mode 100644 index 00000000..d13db13a --- /dev/null +++ b/lib/hanzoai/models/engines/chat_complete_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Engines + # @type [Hanzoai::Internal::Type::Converter] + ChatCompleteResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/eu_assemblyai_create_params.rb b/lib/hanzoai/models/eu_assemblyai_create_params.rb index 37a5fa2e..3d79c9bb 100644 --- a/lib/hanzoai/models/eu_assemblyai_create_params.rb +++ b/lib/hanzoai/models/eu_assemblyai_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::EuAssemblyai#create class EuAssemblyaiCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/eu_assemblyai_create_response.rb b/lib/hanzoai/models/eu_assemblyai_create_response.rb new file mode 100644 index 00000000..d5864822 --- /dev/null +++ b/lib/hanzoai/models/eu_assemblyai_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EuAssemblyaiCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/eu_assemblyai_delete_params.rb b/lib/hanzoai/models/eu_assemblyai_delete_params.rb index ee8610be..41be641e 100644 --- a/lib/hanzoai/models/eu_assemblyai_delete_params.rb +++ b/lib/hanzoai/models/eu_assemblyai_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::EuAssemblyai#delete class EuAssemblyaiDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/eu_assemblyai_delete_response.rb b/lib/hanzoai/models/eu_assemblyai_delete_response.rb new file mode 100644 index 00000000..6ace2609 --- /dev/null +++ b/lib/hanzoai/models/eu_assemblyai_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EuAssemblyaiDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/eu_assemblyai_patch_params.rb b/lib/hanzoai/models/eu_assemblyai_patch_params.rb index 8fdf7bf7..44e92ecb 100644 --- a/lib/hanzoai/models/eu_assemblyai_patch_params.rb +++ b/lib/hanzoai/models/eu_assemblyai_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::EuAssemblyai#patch class EuAssemblyaiPatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/eu_assemblyai_patch_response.rb b/lib/hanzoai/models/eu_assemblyai_patch_response.rb new file mode 100644 index 00000000..961f2231 --- /dev/null +++ b/lib/hanzoai/models/eu_assemblyai_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EuAssemblyaiPatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/eu_assemblyai_retrieve_params.rb b/lib/hanzoai/models/eu_assemblyai_retrieve_params.rb index 2b3bcab2..cf2ec073 100644 --- a/lib/hanzoai/models/eu_assemblyai_retrieve_params.rb +++ b/lib/hanzoai/models/eu_assemblyai_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::EuAssemblyai#retrieve class EuAssemblyaiRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/eu_assemblyai_retrieve_response.rb b/lib/hanzoai/models/eu_assemblyai_retrieve_response.rb new file mode 100644 index 00000000..5799f96f --- /dev/null +++ b/lib/hanzoai/models/eu_assemblyai_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EuAssemblyaiRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/eu_assemblyai_update_params.rb b/lib/hanzoai/models/eu_assemblyai_update_params.rb index ae34f098..9b9fb036 100644 --- a/lib/hanzoai/models/eu_assemblyai_update_params.rb +++ b/lib/hanzoai/models/eu_assemblyai_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::EuAssemblyai#update class EuAssemblyaiUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/eu_assemblyai_update_response.rb b/lib/hanzoai/models/eu_assemblyai_update_response.rb new file mode 100644 index 00000000..9f5f7b07 --- /dev/null +++ b/lib/hanzoai/models/eu_assemblyai_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + EuAssemblyaiUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/file_create_params.rb b/lib/hanzoai/models/file_create_params.rb index 3abed68d..55a1820f 100644 --- a/lib/hanzoai/models/file_create_params.rb +++ b/lib/hanzoai/models/file_create_params.rb @@ -4,38 +4,47 @@ module Hanzoai module Models # @see Hanzoai::Resources::Files#create class FileCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute file # - # @return [IO, StringIO] - required :file, IO + # @return [Pathname, StringIO, IO, String, Hanzoai::FilePart] + required :file, Hanzoai::Internal::Type::FileInput # @!attribute purpose # # @return [String] required :purpose, String - # @!attribute [r] custom_llm_provider + # @!attribute custom_llm_provider # # @return [String, nil] optional :custom_llm_provider, String - # @!parse - # # @return [String] - # attr_writer :custom_llm_provider + # @!attribute litellm_metadata + # + # @return [String, nil] + optional :litellm_metadata, String, nil?: true - # @!parse - # # @param file [IO, StringIO] - # # @param purpose [String] - # # @param custom_llm_provider [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(file:, purpose:, custom_llm_provider: nil, request_options: {}, **) = super + # @!attribute target_model_names + # + # @return [String, nil] + optional :target_model_names, String + + # @!attribute target_storage + # + # @return [String, nil] + optional :target_storage, String - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(file:, purpose:, custom_llm_provider: nil, litellm_metadata: nil, target_model_names: nil, target_storage: nil, request_options: {}) + # @param file [Pathname, StringIO, IO, String, Hanzoai::FilePart] + # @param purpose [String] + # @param custom_llm_provider [String] + # @param litellm_metadata [String, nil] + # @param target_model_names [String] + # @param target_storage [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/file_create_response.rb b/lib/hanzoai/models/file_create_response.rb new file mode 100644 index 00000000..a5e2f938 --- /dev/null +++ b/lib/hanzoai/models/file_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + FileCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/file_delete_params.rb b/lib/hanzoai/models/file_delete_params.rb index 7ba082b7..16e5759a 100644 --- a/lib/hanzoai/models/file_delete_params.rb +++ b/lib/hanzoai/models/file_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Files#delete class FileDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -13,13 +12,9 @@ class FileDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :provider, String - # @!parse - # # @param provider [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider:, request_options: {}) + # @param provider [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/file_delete_response.rb b/lib/hanzoai/models/file_delete_response.rb new file mode 100644 index 00000000..321d9683 --- /dev/null +++ b/lib/hanzoai/models/file_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + FileDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/file_list_params.rb b/lib/hanzoai/models/file_list_params.rb index b142753e..68a0bc29 100644 --- a/lib/hanzoai/models/file_list_params.rb +++ b/lib/hanzoai/models/file_list_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Files#list class FileListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute purpose @@ -13,13 +12,15 @@ class FileListParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :purpose, String, nil?: true - # @!parse - # # @param purpose [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(purpose: nil, request_options: {}, **) = super + # @!attribute target_model_names + # + # @return [String, nil] + optional :target_model_names, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(purpose: nil, target_model_names: nil, request_options: {}) + # @param purpose [String, nil] + # @param target_model_names [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/file_list_response.rb b/lib/hanzoai/models/file_list_response.rb new file mode 100644 index 00000000..c7c065c9 --- /dev/null +++ b/lib/hanzoai/models/file_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + FileListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/file_retrieve_params.rb b/lib/hanzoai/models/file_retrieve_params.rb index de981979..6ce7c288 100644 --- a/lib/hanzoai/models/file_retrieve_params.rb +++ b/lib/hanzoai/models/file_retrieve_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Files#retrieve class FileRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -13,13 +12,9 @@ class FileRetrieveParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :provider, String - # @!parse - # # @param provider [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider:, request_options: {}) + # @param provider [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/file_retrieve_response.rb b/lib/hanzoai/models/file_retrieve_response.rb new file mode 100644 index 00000000..5747bee7 --- /dev/null +++ b/lib/hanzoai/models/file_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + FileRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/files/content_retrieve_params.rb b/lib/hanzoai/models/files/content_retrieve_params.rb index 7fa48fee..b873400a 100644 --- a/lib/hanzoai/models/files/content_retrieve_params.rb +++ b/lib/hanzoai/models/files/content_retrieve_params.rb @@ -5,8 +5,7 @@ module Models module Files # @see Hanzoai::Resources::Files::Content#retrieve class ContentRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute provider @@ -14,13 +13,9 @@ class ContentRetrieveParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :provider, String - # @!parse - # # @param provider [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(provider:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(provider:, request_options: {}) + # @param provider [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/files/content_retrieve_response.rb b/lib/hanzoai/models/files/content_retrieve_response.rb new file mode 100644 index 00000000..4a2b29e0 --- /dev/null +++ b/lib/hanzoai/models/files/content_retrieve_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Files + # @type [Hanzoai::Internal::Type::Converter] + ContentRetrieveResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/fine_tuning/job_create_params.rb b/lib/hanzoai/models/fine_tuning/job_create_params.rb index 97128782..4c9d626e 100644 --- a/lib/hanzoai/models/fine_tuning/job_create_params.rb +++ b/lib/hanzoai/models/fine_tuning/job_create_params.rb @@ -4,166 +4,12 @@ module Hanzoai module Models module FineTuning # @see Hanzoai::Resources::FineTuning::Jobs#create - class JobCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + class JobCreateParams < Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute custom_llm_provider - # - # @return [Symbol, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider] - required :custom_llm_provider, - enum: -> { Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider } - - # @!attribute model - # - # @return [String] - required :model, String - - # @!attribute training_file - # - # @return [String] - required :training_file, String - - # @!attribute hyperparameters - # - # @return [Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters, nil] - optional :hyperparameters, - -> { Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters }, - nil?: true - - # @!attribute integrations - # - # @return [Array, nil] - optional :integrations, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - - # @!attribute seed - # - # @return [Integer, nil] - optional :seed, Integer, nil?: true - - # @!attribute suffix - # - # @return [String, nil] - optional :suffix, String, nil?: true - - # @!attribute validation_file - # - # @return [String, nil] - optional :validation_file, String, nil?: true - - # @!parse - # # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider] - # # @param model [String] - # # @param training_file [String] - # # @param hyperparameters [Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters, nil] - # # @param integrations [Array, nil] - # # @param seed [Integer, nil] - # # @param suffix [String, nil] - # # @param validation_file [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # custom_llm_provider:, - # model:, - # training_file:, - # hyperparameters: nil, - # integrations: nil, - # seed: nil, - # suffix: nil, - # validation_file: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - module CustomLlmProvider - extend Hanzoai::Internal::Type::Enum - - OPENAI = :openai - AZURE = :azure - VERTEX_AI = :vertex_ai - - finalize! - - # @!parse - # # @return [Array] - # def self.values; end - end - - class Hyperparameters < Hanzoai::Internal::Type::BaseModel - # @!attribute batch_size - # - # @return [String, Integer, nil] - optional :batch_size, - union: -> { Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::BatchSize }, - nil?: true - - # @!attribute learning_rate_multiplier - # - # @return [String, Float, nil] - optional :learning_rate_multiplier, - union: -> { Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::LearningRateMultiplier }, - nil?: true - - # @!attribute n_epochs - # - # @return [String, Integer, nil] - optional :n_epochs, - union: -> { Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::NEpochs }, - nil?: true - - # @!parse - # # @param batch_size [String, Integer, nil] - # # @param learning_rate_multiplier [String, Float, nil] - # # @param n_epochs [String, Integer, nil] - # # - # def initialize(batch_size: nil, learning_rate_multiplier: nil, n_epochs: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters#batch_size - module BatchSize - extend Hanzoai::Internal::Type::Union - - variant String - - variant Integer - - # @!parse - # # @return [Array(String, Integer)] - # def self.variants; end - end - - # @see Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters#learning_rate_multiplier - module LearningRateMultiplier - extend Hanzoai::Internal::Type::Union - - variant String - - variant Float - - # @!parse - # # @return [Array(String, Float)] - # def self.variants; end - end - - # @see Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters#n_epochs - module NEpochs - extend Hanzoai::Internal::Type::Union - - variant String - - variant Integer - - # @!parse - # # @return [Array(String, Integer)] - # def self.variants; end - end - end + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/fine_tuning/job_create_response.rb b/lib/hanzoai/models/fine_tuning/job_create_response.rb new file mode 100644 index 00000000..3cb236ef --- /dev/null +++ b/lib/hanzoai/models/fine_tuning/job_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module FineTuning + # @type [Hanzoai::Internal::Type::Converter] + JobCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/fine_tuning/job_list_params.rb b/lib/hanzoai/models/fine_tuning/job_list_params.rb index d0899fce..da33a22e 100644 --- a/lib/hanzoai/models/fine_tuning/job_list_params.rb +++ b/lib/hanzoai/models/fine_tuning/job_list_params.rb @@ -5,34 +5,42 @@ module Models module FineTuning # @see Hanzoai::Resources::FineTuning::Jobs#list class JobListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute custom_llm_provider - # - # @return [Symbol, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider] - required :custom_llm_provider, enum: -> { Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider } - # @!attribute after # # @return [String, nil] optional :after, String, nil?: true + # @!attribute custom_llm_provider + # + # @return [Symbol, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider, nil] + optional :custom_llm_provider, + enum: -> { Hanzoai::FineTuning::JobListParams::CustomLlmProvider }, + nil?: true + # @!attribute limit # # @return [Integer, nil] optional :limit, Integer, nil?: true - # @!parse - # # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider] - # # @param after [String, nil] - # # @param limit [Integer, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(custom_llm_provider:, after: nil, limit: nil, request_options: {}, **) = super + # @!attribute target_model_names + # Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini' + # + # @return [String, nil] + optional :target_model_names, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(after: nil, custom_llm_provider: nil, limit: nil, target_model_names: nil, request_options: {}) + # @param after [String, nil] + # + # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider, nil] + # + # @param limit [Integer, nil] + # + # @param target_model_names [String, nil] Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini' + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module CustomLlmProvider extend Hanzoai::Internal::Type::Enum @@ -40,11 +48,8 @@ module CustomLlmProvider OPENAI = :openai AZURE = :azure - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/fine_tuning/job_list_response.rb b/lib/hanzoai/models/fine_tuning/job_list_response.rb new file mode 100644 index 00000000..8fc07e28 --- /dev/null +++ b/lib/hanzoai/models/fine_tuning/job_list_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module FineTuning + # @type [Hanzoai::Internal::Type::Converter] + JobListResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/fine_tuning/job_retrieve_params.rb b/lib/hanzoai/models/fine_tuning/job_retrieve_params.rb index 6b86d6ef..1832b961 100644 --- a/lib/hanzoai/models/fine_tuning/job_retrieve_params.rb +++ b/lib/hanzoai/models/fine_tuning/job_retrieve_params.rb @@ -5,23 +5,19 @@ module Models module FineTuning # @see Hanzoai::Resources::FineTuning::Jobs#retrieve class JobRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute custom_llm_provider # - # @return [Symbol, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider] - required :custom_llm_provider, - enum: -> { Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider } + # @return [Symbol, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider, nil] + optional :custom_llm_provider, + enum: -> { Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider }, + nil?: true - # @!parse - # # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(custom_llm_provider:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(custom_llm_provider: nil, request_options: {}) + # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module CustomLlmProvider extend Hanzoai::Internal::Type::Enum @@ -29,11 +25,8 @@ module CustomLlmProvider OPENAI = :openai AZURE = :azure - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/fine_tuning/job_retrieve_response.rb b/lib/hanzoai/models/fine_tuning/job_retrieve_response.rb new file mode 100644 index 00000000..902fc5e8 --- /dev/null +++ b/lib/hanzoai/models/fine_tuning/job_retrieve_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module FineTuning + # @type [Hanzoai::Internal::Type::Converter] + JobRetrieveResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/fine_tuning/jobs/cancel_create_params.rb b/lib/hanzoai/models/fine_tuning/jobs/cancel_create_params.rb index ea9cd503..401fc995 100644 --- a/lib/hanzoai/models/fine_tuning/jobs/cancel_create_params.rb +++ b/lib/hanzoai/models/fine_tuning/jobs/cancel_create_params.rb @@ -6,16 +6,11 @@ module FineTuning module Jobs # @see Hanzoai::Resources::FineTuning::Jobs::Cancel#create class CancelCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/fine_tuning/jobs/cancel_create_response.rb b/lib/hanzoai/models/fine_tuning/jobs/cancel_create_response.rb new file mode 100644 index 00000000..e0f4a375 --- /dev/null +++ b/lib/hanzoai/models/fine_tuning/jobs/cancel_create_response.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module FineTuning + module Jobs + # @type [Hanzoai::Internal::Type::Converter] + CancelCreateResponse = Hanzoai::Internal::Type::Unknown + end + end + end +end diff --git a/lib/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rb b/lib/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rb new file mode 100644 index 00000000..c94faf67 --- /dev/null +++ b/lib/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rb @@ -0,0 +1,142 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module FineTuning + class LiteLlmFineTuningJobCreate < Hanzoai::Internal::Type::BaseModel + # @!attribute model + # + # @return [String] + required :model, String + + # @!attribute training_file + # + # @return [String] + required :training_file, String + + # @!attribute custom_llm_provider + # + # @return [Symbol, Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider, nil] + optional :custom_llm_provider, + enum: -> { Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider }, + nil?: true + + # @!attribute hyperparameters + # + # @return [Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters, nil] + optional :hyperparameters, + -> { Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters }, + nil?: true + + # @!attribute integrations + # + # @return [Array, nil] + optional :integrations, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute seed + # + # @return [Integer, nil] + optional :seed, Integer, nil?: true + + # @!attribute suffix + # + # @return [String, nil] + optional :suffix, String, nil?: true + + # @!attribute validation_file + # + # @return [String, nil] + optional :validation_file, String, nil?: true + + # @!method initialize(model:, training_file:, custom_llm_provider: nil, hyperparameters: nil, integrations: nil, seed: nil, suffix: nil, validation_file: nil) + # @param model [String] + # @param training_file [String] + # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider, nil] + # @param hyperparameters [Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters, nil] + # @param integrations [Array, nil] + # @param seed [Integer, nil] + # @param suffix [String, nil] + # @param validation_file [String, nil] + + # @see Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate#custom_llm_provider + module CustomLlmProvider + extend Hanzoai::Internal::Type::Enum + + OPENAI = :openai + AZURE = :azure + VERTEX_AI = :vertex_ai + + # @!method self.values + # @return [Array] + end + + # @see Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate#hyperparameters + class Hyperparameters < Hanzoai::Internal::Type::BaseModel + # @!attribute batch_size + # + # @return [String, Integer, nil] + optional :batch_size, + union: -> { Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::BatchSize }, + nil?: true + + # @!attribute learning_rate_multiplier + # + # @return [String, Float, nil] + optional :learning_rate_multiplier, + union: -> { + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::LearningRateMultiplier + }, + nil?: true + + # @!attribute n_epochs + # + # @return [String, Integer, nil] + optional :n_epochs, + union: -> { Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::NEpochs }, + nil?: true + + # @!method initialize(batch_size: nil, learning_rate_multiplier: nil, n_epochs: nil) + # @param batch_size [String, Integer, nil] + # @param learning_rate_multiplier [String, Float, nil] + # @param n_epochs [String, Integer, nil] + + # @see Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters#batch_size + module BatchSize + extend Hanzoai::Internal::Type::Union + + variant String + + variant Integer + + # @!method self.variants + # @return [Array(String, Integer)] + end + + # @see Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters#learning_rate_multiplier + module LearningRateMultiplier + extend Hanzoai::Internal::Type::Union + + variant String + + variant Float + + # @!method self.variants + # @return [Array(String, Float)] + end + + # @see Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters#n_epochs + module NEpochs + extend Hanzoai::Internal::Type::Union + + variant String + + variant Integer + + # @!method self.variants + # @return [Array(String, Integer)] + end + end + end + end + end +end diff --git a/lib/hanzoai/models/gemini_create_params.rb b/lib/hanzoai/models/gemini_create_params.rb index 2abeb714..6be7ffbc 100644 --- a/lib/hanzoai/models/gemini_create_params.rb +++ b/lib/hanzoai/models/gemini_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Gemini#create class GeminiCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/gemini_create_response.rb b/lib/hanzoai/models/gemini_create_response.rb new file mode 100644 index 00000000..438b34a2 --- /dev/null +++ b/lib/hanzoai/models/gemini_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + GeminiCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/gemini_delete_params.rb b/lib/hanzoai/models/gemini_delete_params.rb index 245c8de2..de66ba65 100644 --- a/lib/hanzoai/models/gemini_delete_params.rb +++ b/lib/hanzoai/models/gemini_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Gemini#delete class GeminiDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/gemini_delete_response.rb b/lib/hanzoai/models/gemini_delete_response.rb new file mode 100644 index 00000000..2513c704 --- /dev/null +++ b/lib/hanzoai/models/gemini_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + GeminiDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/gemini_patch_params.rb b/lib/hanzoai/models/gemini_patch_params.rb index 221c05a2..7b2d8da5 100644 --- a/lib/hanzoai/models/gemini_patch_params.rb +++ b/lib/hanzoai/models/gemini_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Gemini#patch class GeminiPatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/gemini_patch_response.rb b/lib/hanzoai/models/gemini_patch_response.rb new file mode 100644 index 00000000..95f6d353 --- /dev/null +++ b/lib/hanzoai/models/gemini_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + GeminiPatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/gemini_retrieve_params.rb b/lib/hanzoai/models/gemini_retrieve_params.rb index 7cf48d91..b49440f0 100644 --- a/lib/hanzoai/models/gemini_retrieve_params.rb +++ b/lib/hanzoai/models/gemini_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Gemini#retrieve class GeminiRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/gemini_retrieve_response.rb b/lib/hanzoai/models/gemini_retrieve_response.rb new file mode 100644 index 00000000..2b660012 --- /dev/null +++ b/lib/hanzoai/models/gemini_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + GeminiRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/gemini_update_params.rb b/lib/hanzoai/models/gemini_update_params.rb index 84f148be..62de1705 100644 --- a/lib/hanzoai/models/gemini_update_params.rb +++ b/lib/hanzoai/models/gemini_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Gemini#update class GeminiUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/gemini_update_response.rb b/lib/hanzoai/models/gemini_update_response.rb new file mode 100644 index 00000000..50155068 --- /dev/null +++ b/lib/hanzoai/models/gemini_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + GeminiUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/generate_key_response.rb b/lib/hanzoai/models/generate_key_response.rb index 6600caa9..440d4400 100644 --- a/lib/hanzoai/models/generate_key_response.rb +++ b/lib/hanzoai/models/generate_key_response.rb @@ -4,11 +4,6 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#generate class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute expires - # - # @return [Time, nil] - required :expires, Time, nil?: true - # @!attribute key # # @return [String] @@ -21,8 +16,8 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute allowed_cache_controls # @@ -31,10 +26,29 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute allowed_passthrough_routes + # + # @return [Array, nil] + optional :allowed_passthrough_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute allowed_vector_store_indexes + # + # @return [Array, nil] + optional :allowed_vector_store_indexes, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex] }, + nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -48,8 +62,13 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true # @!attribute created_by # @@ -66,6 +85,11 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel # @return [Array, nil] optional :enforced_params, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + # @!attribute expires + # + # @return [Time, nil] + optional :expires, Time, nil?: true + # @!attribute guardrails # # @return [Array, nil] @@ -81,14 +105,10 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key_name, String, nil?: true - # @!attribute [r] llm_budget_table + # @!attribute litellm_budget_table # # @return [Object, nil] - optional :llm_budget_table, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :llm_budget_table + optional :litellm_budget_table, Hanzoai::Internal::Type::Unknown # @!attribute max_budget # @@ -102,39 +122,67 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_rpm_limit # - # @return [Object, nil] - optional :model_rpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_tpm_limit # - # @return [Object, nil] - optional :model_tpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::GenerateKeyResponse::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::GenerateKeyResponse::ObjectPermission }, nil?: true + + # @!attribute organization_id + # + # @return [String, nil] + optional :organization_id, String, nil?: true + # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute router_settings + # Set of params that you can modify via `router.update_settings()`. + # + # @return [Hanzoai::Models::GenerateKeyResponse::RouterSettings, nil] + optional :router_settings, -> { Hanzoai::GenerateKeyResponse::RouterSettings }, nil?: true # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true + # @!attribute rpm_limit_type + # + # @return [Symbol, Hanzoai::Models::GenerateKeyResponse::RpmLimitType, nil] + optional :rpm_limit_type, enum: -> { Hanzoai::GenerateKeyResponse::RpmLimitType }, nil?: true + # @!attribute spend # # @return [Float, nil] @@ -160,6 +208,16 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute tpm_limit_type + # + # @return [Symbol, Hanzoai::Models::GenerateKeyResponse::TpmLimitType, nil] + optional :tpm_limit_type, enum: -> { Hanzoai::GenerateKeyResponse::TpmLimitType }, nil?: true + + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + # @!attribute updated_by # # @return [String, nil] @@ -170,79 +228,291 @@ class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param expires [Time, nil] - # # @param key [String] - # # @param token [String, nil] - # # @param aliases [Object, nil] - # # @param allowed_cache_controls [Array, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param config [Object, nil] - # # @param created_by [String, nil] - # # @param duration [String, nil] - # # @param enforced_params [Array, nil] - # # @param guardrails [Array, nil] - # # @param key_alias [String, nil] - # # @param key_name [String, nil] - # # @param llm_budget_table [Object] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_rpm_limit [Object, nil] - # # @param model_tpm_limit [Object, nil] - # # @param models [Array, nil] - # # @param permissions [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param tags [Array, nil] - # # @param team_id [String, nil] - # # @param token_id [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param updated_by [String, nil] - # # @param user_id [String, nil] - # # - # def initialize( - # expires:, - # key:, - # token: nil, - # aliases: nil, - # allowed_cache_controls: nil, - # blocked: nil, - # budget_duration: nil, - # budget_id: nil, - # config: nil, - # created_by: nil, - # duration: nil, - # enforced_params: nil, - # guardrails: nil, - # key_alias: nil, - # key_name: nil, - # llm_budget_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_rpm_limit: nil, - # model_tpm_limit: nil, - # models: nil, - # permissions: nil, - # rpm_limit: nil, - # spend: nil, - # tags: nil, - # team_id: nil, - # token_id: nil, - # tpm_limit: nil, - # updated_by: nil, - # user_id: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(key:, token: nil, aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, created_at: nil, created_by: nil, duration: nil, enforced_params: nil, expires: nil, guardrails: nil, key_alias: nil, key_name: nil, litellm_budget_table: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, permissions: nil, prompts: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, spend: nil, tags: nil, team_id: nil, token_id: nil, tpm_limit: nil, tpm_limit_type: nil, updated_at: nil, updated_by: nil, user_id: nil) + # @param key [String] + # + # @param token [String, nil] + # + # @param aliases [Hash{Symbol=>Object}, nil] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_passthrough_routes [Array, nil] + # + # @param allowed_routes [Array, nil] + # + # @param allowed_vector_store_indexes [Array, nil] + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_id [String, nil] + # + # @param config [Hash{Symbol=>Object}, nil] + # + # @param created_at [Time, nil] + # + # @param created_by [String, nil] + # + # @param duration [String, nil] + # + # @param enforced_params [Array, nil] + # + # @param expires [Time, nil] + # + # @param guardrails [Array, nil] + # + # @param key_alias [String, nil] + # + # @param key_name [String, nil] + # + # @param litellm_budget_table [Object] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] + # + # @param models [Array, nil] + # + # @param object_permission [Hanzoai::Models::GenerateKeyResponse::ObjectPermission, nil] + # + # @param organization_id [String, nil] + # + # @param permissions [Hash{Symbol=>Object}, nil] + # + # @param prompts [Array, nil] + # + # @param router_settings [Hanzoai::Models::GenerateKeyResponse::RouterSettings, nil] Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::GenerateKeyResponse::RpmLimitType, nil] + # + # @param spend [Float, nil] + # + # @param tags [Array, nil] + # + # @param team_id [String, nil] + # + # @param token_id [String, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::GenerateKeyResponse::TpmLimitType, nil] + # + # @param updated_at [Time, nil] + # + # @param updated_by [String, nil] + # + # @param user_id [String, nil] + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + # @!attribute index_name + # + # @return [String] + required :index_name, String + + # @!attribute index_permissions + # + # @return [Array] + required :index_permissions, + -> { Hanzoai::Internal::Type::ArrayOf[enum: Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission] } + + # @!method initialize(index_name:, index_permissions:) + # @param index_name [String] + # @param index_permissions [Array] + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ = :read + WRITE = :write + + # @!method self.values + # @return [Array] + end + end + + # @see Hanzoai::Models::GenerateKeyResponse#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + # @see Hanzoai::Models::GenerateKeyResponse#router_settings + class RouterSettings < Hanzoai::Internal::Type::BaseModel + # @!attribute allowed_fails + # + # @return [Integer, nil] + optional :allowed_fails, Integer, nil?: true + + # @!attribute context_window_fallbacks + # + # @return [ArrayObject}>, nil] + optional :context_window_fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute cooldown_time + # + # @return [Float, nil] + optional :cooldown_time, Float, nil?: true + + # @!attribute fallbacks + # + # @return [ArrayObject}>, nil] + optional :fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute max_retries + # + # @return [Integer, nil] + optional :max_retries, Integer, nil?: true + + # @!attribute model_group_alias + # + # @return [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + optional :model_group_alias, + -> { + Hanzoai::Internal::Type::HashOf[union: Hanzoai::GenerateKeyResponse::RouterSettings::ModelGroupAlias] + }, + nil?: true + + # @!attribute model_group_retry_policy + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_group_retry_policy, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute retry_after + # + # @return [Float, nil] + optional :retry_after, Float, nil?: true + + # @!attribute routing_strategy + # + # @return [String, nil] + optional :routing_strategy, String, nil?: true + + # @!attribute routing_strategy_args + # + # @return [Hash{Symbol=>Object}, nil] + optional :routing_strategy_args, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute timeout + # + # @return [Float, nil] + optional :timeout, Float, nil?: true + + # @!method initialize(allowed_fails: nil, context_window_fallbacks: nil, cooldown_time: nil, fallbacks: nil, max_retries: nil, model_group_alias: nil, model_group_retry_policy: nil, num_retries: nil, retry_after: nil, routing_strategy: nil, routing_strategy_args: nil, timeout: nil) + # Set of params that you can modify via `router.update_settings()`. + # + # @param allowed_fails [Integer, nil] + # @param context_window_fallbacks [ArrayObject}>, nil] + # @param cooldown_time [Float, nil] + # @param fallbacks [ArrayObject}>, nil] + # @param max_retries [Integer, nil] + # @param model_group_alias [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + # @param model_group_retry_policy [Hash{Symbol=>Object}, nil] + # @param num_retries [Integer, nil] + # @param retry_after [Float, nil] + # @param routing_strategy [String, nil] + # @param routing_strategy_args [Hash{Symbol=>Object}, nil] + # @param timeout [Float, nil] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::GenerateKeyResponse::RouterSettings::ModelGroupAlias::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @see Hanzoai::Models::GenerateKeyResponse#rpm_limit_type + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end + + # @see Hanzoai::Models::GenerateKeyResponse#tpm_limit_type + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/hanzoai/models/get_home_response.rb b/lib/hanzoai/models/get_home_response.rb new file mode 100644 index 00000000..43734fb9 --- /dev/null +++ b/lib/hanzoai/models/get_home_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + GetHomeResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/global/spend_list_tags_params.rb b/lib/hanzoai/models/global/spend_list_tags_params.rb index 4aa1ab89..c1ac987e 100644 --- a/lib/hanzoai/models/global/spend_list_tags_params.rb +++ b/lib/hanzoai/models/global/spend_list_tags_params.rb @@ -5,8 +5,7 @@ module Models module Global # @see Hanzoai::Resources::Global::Spend#list_tags class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute end_date @@ -27,15 +26,14 @@ class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :tags, String, nil?: true - # @!parse - # # @param end_date [String, nil] - # # @param start_date [String, nil] - # # @param tags [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(end_date: nil, start_date: nil, tags: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(end_date: nil, start_date: nil, tags: nil, request_options: {}) + # @param end_date [String, nil] Time till which to view key spend + # + # @param start_date [String, nil] Time from which to start viewing key spend + # + # @param tags [String, nil] comman separated tags to filter on + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/global/spend_list_tags_response.rb b/lib/hanzoai/models/global/spend_list_tags_response.rb index f4217814..2ae53bbe 100644 --- a/lib/hanzoai/models/global/spend_list_tags_response.rb +++ b/lib/hanzoai/models/global/spend_list_tags_response.rb @@ -24,7 +24,7 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute messages # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :messages, union: -> { Hanzoai::Models::Global::SpendListTagsResponseItem::Messages }, nil?: true # @!attribute request_id @@ -34,7 +34,7 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute response # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :response, union: -> { Hanzoai::Models::Global::SpendListTagsResponseItem::Response }, nil?: true # @!attribute start_time @@ -65,15 +65,11 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :completion_tokens, Integer, nil?: true - # @!attribute [r] metadata + # @!attribute metadata # # @return [Object, nil] optional :metadata, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :metadata - # @!attribute model # # @return [String, nil] @@ -84,15 +80,11 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :prompt_tokens, Integer, nil?: true - # @!attribute [r] request_tags + # @!attribute request_tags # # @return [Object, nil] optional :request_tags, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :request_tags - # @!attribute requester_ip_address # # @return [String, nil] @@ -113,53 +105,26 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user, String, nil?: true - # @!parse - # # @param api_key [String] - # # @param call_type [String] - # # @param end_time [String, Time, nil] - # # @param messages [String, Array, Object, nil] - # # @param request_id [String] - # # @param response [String, Array, Object, nil] - # # @param start_time [String, Time, nil] - # # @param api_base [String, nil] - # # @param cache_hit [String, nil] - # # @param cache_key [String, nil] - # # @param completion_tokens [Integer, nil] - # # @param metadata [Object] - # # @param model [String, nil] - # # @param prompt_tokens [Integer, nil] - # # @param request_tags [Object] - # # @param requester_ip_address [String, nil] - # # @param spend [Float, nil] - # # @param total_tokens [Integer, nil] - # # @param user [String, nil] - # # - # def initialize( - # api_key:, - # call_type:, - # end_time:, - # messages:, - # request_id:, - # response:, - # start_time:, - # api_base: nil, - # cache_hit: nil, - # cache_key: nil, - # completion_tokens: nil, - # metadata: nil, - # model: nil, - # prompt_tokens: nil, - # request_tags: nil, - # requester_ip_address: nil, - # spend: nil, - # total_tokens: nil, - # user: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(api_key:, call_type:, end_time:, messages:, request_id:, response:, start_time:, api_base: nil, cache_hit: nil, cache_key: nil, completion_tokens: nil, metadata: nil, model: nil, prompt_tokens: nil, request_tags: nil, requester_ip_address: nil, spend: nil, total_tokens: nil, user: nil) + # @param api_key [String] + # @param call_type [String] + # @param end_time [String, Time, nil] + # @param messages [String, Array, Hash{Symbol=>Object}, nil] + # @param request_id [String] + # @param response [String, Array, Hash{Symbol=>Object}, nil] + # @param start_time [String, Time, nil] + # @param api_base [String, nil] + # @param cache_hit [String, nil] + # @param cache_key [String, nil] + # @param completion_tokens [Integer, nil] + # @param metadata [Object] + # @param model [String, nil] + # @param prompt_tokens [Integer, nil] + # @param request_tags [Object] + # @param requester_ip_address [String, nil] + # @param spend [Float, nil] + # @param total_tokens [Integer, nil] + # @param user [String, nil] # @see Hanzoai::Models::Global::SpendListTagsResponseItem#end_time module EndTime @@ -169,9 +134,8 @@ module EndTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end # @see Hanzoai::Models::Global::SpendListTagsResponseItem#messages @@ -182,13 +146,16 @@ module Messages variant -> { Hanzoai::Models::Global::SpendListTagsResponseItem::Messages::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::Global::SpendListTagsResponseItem::Messages::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::Global::SpendListTagsResponseItem#response @@ -199,13 +166,16 @@ module Response variant -> { Hanzoai::Models::Global::SpendListTagsResponseItem::Response::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::Global::SpendListTagsResponseItem::Response::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::Global::SpendListTagsResponseItem#start_time @@ -216,12 +186,12 @@ module StartTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end end + # @type [Hanzoai::Internal::Type::Converter] SpendListTagsResponse = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::Global::SpendListTagsResponseItem }] end diff --git a/lib/hanzoai/models/global/spend_reset_params.rb b/lib/hanzoai/models/global/spend_reset_params.rb index 56ef0ebf..19a40562 100644 --- a/lib/hanzoai/models/global/spend_reset_params.rb +++ b/lib/hanzoai/models/global/spend_reset_params.rb @@ -5,16 +5,11 @@ module Models module Global # @see Hanzoai::Resources::Global::Spend#reset class SpendResetParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/global/spend_reset_response.rb b/lib/hanzoai/models/global/spend_reset_response.rb new file mode 100644 index 00000000..3cda3b4f --- /dev/null +++ b/lib/hanzoai/models/global/spend_reset_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Global + # @type [Hanzoai::Internal::Type::Converter] + SpendResetResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/global/spend_retrieve_report_params.rb b/lib/hanzoai/models/global/spend_retrieve_report_params.rb index 323ffaa3..793b69bc 100644 --- a/lib/hanzoai/models/global/spend_retrieve_report_params.rb +++ b/lib/hanzoai/models/global/spend_retrieve_report_params.rb @@ -5,8 +5,7 @@ module Models module Global # @see Hanzoai::Resources::Global::Spend#retrieve_report class SpendRetrieveReportParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute api_key @@ -17,7 +16,7 @@ class SpendRetrieveReportParams < Hanzoai::Internal::Type::BaseModel # @!attribute customer_id # View spend for a specific customer_id. Example customer_id='1234. Can be used in - # conjunction with team_id as well. + # conjunction with team_id as well. # # @return [String, nil] optional :customer_id, String, nil?: true @@ -32,7 +31,7 @@ class SpendRetrieveReportParams < Hanzoai::Internal::Type::BaseModel # Group spend by internal team or customer or api_key # # @return [Symbol, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy, nil] - optional :group_by, enum: -> { Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy }, nil?: true + optional :group_by, enum: -> { Hanzoai::Global::SpendRetrieveReportParams::GroupBy }, nil?: true # @!attribute internal_user_id # View spend for a specific internal_user_id. Example internal_user_id='1234 @@ -52,31 +51,25 @@ class SpendRetrieveReportParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :team_id, String, nil?: true - # @!parse - # # @param api_key [String, nil] - # # @param customer_id [String, nil] - # # @param end_date [String, nil] - # # @param group_by [Symbol, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy, nil] - # # @param internal_user_id [String, nil] - # # @param start_date [String, nil] - # # @param team_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # api_key: nil, - # customer_id: nil, - # end_date: nil, - # group_by: nil, - # internal_user_id: nil, - # start_date: nil, - # team_id: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(api_key: nil, customer_id: nil, end_date: nil, group_by: nil, internal_user_id: nil, start_date: nil, team_id: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Global::SpendRetrieveReportParams} for more details. + # + # @param api_key [String, nil] View spend for a specific api_key. Example api_key='sk-1234 + # + # @param customer_id [String, nil] View spend for a specific customer_id. Example customer_id='1234. Can be used in + # + # @param end_date [String, nil] Time till which to view spend + # + # @param group_by [Symbol, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy, nil] Group spend by internal team or customer or api_key + # + # @param internal_user_id [String, nil] View spend for a specific internal_user_id. Example internal_user_id='1234 + # + # @param start_date [String, nil] Time from which to start viewing spend + # + # @param team_id [String, nil] View spend for a specific team_id. Example team_id='1234 + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] # Group spend by internal team or customer or api_key module GroupBy @@ -86,11 +79,8 @@ module GroupBy CUSTOMER = :customer API_KEY = :api_key - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/global/spend_retrieve_report_response.rb b/lib/hanzoai/models/global/spend_retrieve_report_response.rb index 4540d175..844a262f 100644 --- a/lib/hanzoai/models/global/spend_retrieve_report_response.rb +++ b/lib/hanzoai/models/global/spend_retrieve_report_response.rb @@ -24,7 +24,7 @@ class SpendRetrieveReportResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute messages # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :messages, union: -> { Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Messages }, nil?: true @@ -36,7 +36,7 @@ class SpendRetrieveReportResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute response # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :response, union: -> { Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Response }, nil?: true @@ -69,15 +69,11 @@ class SpendRetrieveReportResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :completion_tokens, Integer, nil?: true - # @!attribute [r] metadata + # @!attribute metadata # # @return [Object, nil] optional :metadata, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :metadata - # @!attribute model # # @return [String, nil] @@ -88,15 +84,11 @@ class SpendRetrieveReportResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :prompt_tokens, Integer, nil?: true - # @!attribute [r] request_tags + # @!attribute request_tags # # @return [Object, nil] optional :request_tags, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :request_tags - # @!attribute requester_ip_address # # @return [String, nil] @@ -117,53 +109,26 @@ class SpendRetrieveReportResponseItem < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user, String, nil?: true - # @!parse - # # @param api_key [String] - # # @param call_type [String] - # # @param end_time [String, Time, nil] - # # @param messages [String, Array, Object, nil] - # # @param request_id [String] - # # @param response [String, Array, Object, nil] - # # @param start_time [String, Time, nil] - # # @param api_base [String, nil] - # # @param cache_hit [String, nil] - # # @param cache_key [String, nil] - # # @param completion_tokens [Integer, nil] - # # @param metadata [Object] - # # @param model [String, nil] - # # @param prompt_tokens [Integer, nil] - # # @param request_tags [Object] - # # @param requester_ip_address [String, nil] - # # @param spend [Float, nil] - # # @param total_tokens [Integer, nil] - # # @param user [String, nil] - # # - # def initialize( - # api_key:, - # call_type:, - # end_time:, - # messages:, - # request_id:, - # response:, - # start_time:, - # api_base: nil, - # cache_hit: nil, - # cache_key: nil, - # completion_tokens: nil, - # metadata: nil, - # model: nil, - # prompt_tokens: nil, - # request_tags: nil, - # requester_ip_address: nil, - # spend: nil, - # total_tokens: nil, - # user: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(api_key:, call_type:, end_time:, messages:, request_id:, response:, start_time:, api_base: nil, cache_hit: nil, cache_key: nil, completion_tokens: nil, metadata: nil, model: nil, prompt_tokens: nil, request_tags: nil, requester_ip_address: nil, spend: nil, total_tokens: nil, user: nil) + # @param api_key [String] + # @param call_type [String] + # @param end_time [String, Time, nil] + # @param messages [String, Array, Hash{Symbol=>Object}, nil] + # @param request_id [String] + # @param response [String, Array, Hash{Symbol=>Object}, nil] + # @param start_time [String, Time, nil] + # @param api_base [String, nil] + # @param cache_hit [String, nil] + # @param cache_key [String, nil] + # @param completion_tokens [Integer, nil] + # @param metadata [Object] + # @param model [String, nil] + # @param prompt_tokens [Integer, nil] + # @param request_tags [Object] + # @param requester_ip_address [String, nil] + # @param spend [Float, nil] + # @param total_tokens [Integer, nil] + # @param user [String, nil] # @see Hanzoai::Models::Global::SpendRetrieveReportResponseItem#end_time module EndTime @@ -173,9 +138,8 @@ module EndTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end # @see Hanzoai::Models::Global::SpendRetrieveReportResponseItem#messages @@ -186,13 +150,16 @@ module Messages variant -> { Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Messages::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Messages::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::Global::SpendRetrieveReportResponseItem#response @@ -203,13 +170,16 @@ module Response variant -> { Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Response::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Response::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::Global::SpendRetrieveReportResponseItem#start_time @@ -220,12 +190,12 @@ module StartTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end end + # @type [Hanzoai::Internal::Type::Converter] SpendRetrieveReportResponse = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::Global::SpendRetrieveReportResponseItem }] end diff --git a/lib/hanzoai/models/guardrail_list_params.rb b/lib/hanzoai/models/guardrail_list_params.rb index dd068afc..fa0eaacf 100644 --- a/lib/hanzoai/models/guardrail_list_params.rb +++ b/lib/hanzoai/models/guardrail_list_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Guardrails#list class GuardrailListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/guardrail_list_response.rb b/lib/hanzoai/models/guardrail_list_response.rb index 2003c61f..864e5930 100644 --- a/lib/hanzoai/models/guardrail_list_response.rb +++ b/lib/hanzoai/models/guardrail_list_response.rb @@ -10,84 +10,254 @@ class GuardrailListResponse < Hanzoai::Internal::Type::BaseModel required :guardrails, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::GuardrailListResponse::Guardrail] } - # @!parse - # # @param guardrails [Array] - # # - # def initialize(guardrails:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(guardrails:) + # @param guardrails [Array] class Guardrail < Hanzoai::Internal::Type::BaseModel - # @!attribute guardrail_info - # - # @return [Object, nil] - required :guardrail_info, Hanzoai::Internal::Type::Unknown, nil?: true - # @!attribute guardrail_name # # @return [String] required :guardrail_name, String - # @!attribute llm_params - # The returned LLM Params object for /guardrails/list + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true + + # @!attribute guardrail_definition_location + # + # @return [Symbol, Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation, nil] + optional :guardrail_definition_location, + enum: -> { Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation } + + # @!attribute guardrail_id + # + # @return [String, nil] + optional :guardrail_id, String, nil?: true + + # @!attribute guardrail_info # - # @return [Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams] - required :llm_params, -> { Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams } + # @return [Hash{Symbol=>Object}, nil] + optional :guardrail_info, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!parse - # # @param guardrail_info [Object, nil] - # # @param guardrail_name [String] - # # @param llm_params [Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams] - # # - # def initialize(guardrail_info:, guardrail_name:, llm_params:, **) = super + # @!attribute litellm_params + # + # @return [Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams, nil] + optional :litellm_params, + -> { Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams }, + nil?: true + + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(guardrail_name:, created_at: nil, guardrail_definition_location: nil, guardrail_id: nil, guardrail_info: nil, litellm_params: nil, updated_at: nil) + # @param guardrail_name [String] + # @param created_at [Time, nil] + # @param guardrail_definition_location [Symbol, Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation] + # @param guardrail_id [String, nil] + # @param guardrail_info [Hash{Symbol=>Object}, nil] + # @param litellm_params [Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams, nil] + # @param updated_at [Time, nil] + + # @see Hanzoai::Models::GuardrailListResponse::Guardrail#guardrail_definition_location + module GuardrailDefinitionLocation + extend Hanzoai::Internal::Type::Enum + + DB = :db + CONFIG = :config + + # @!method self.values + # @return [Array] + end - # @see Hanzoai::Models::GuardrailListResponse::Guardrail#llm_params - class LlmParams < Hanzoai::Internal::Type::BaseModel - # @!attribute guardrail + # @see Hanzoai::Models::GuardrailListResponse::Guardrail#litellm_params + class LitellmParams < Hanzoai::Internal::Type::BaseModel + # @!attribute additional_provider_specific_params + # Additional provider-specific parameters for generic guardrail APIs # - # @return [String] - required :guardrail, String + # @return [Hash{Symbol=>Object}, nil] + optional :additional_provider_specific_params, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!attribute mode + # @!attribute api_base + # Base URL for the guardrail service API # - # @return [String, Array] - required :mode, union: -> { Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams::Mode } + # @return [String, nil] + optional :api_base, String, nil?: true - # @!attribute [r] default_on + # @!attribute api_endpoint + # Optional custom API endpoint for Model Armor + # + # @return [String, nil] + optional :api_endpoint, String, nil?: true + + # @!attribute api_key + # API key for the guardrail service + # + # @return [String, nil] + optional :api_key, String, nil?: true + + # @!attribute category_thresholds + # Threshold configuration for Lakera guardrail categories + # + # @return [Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds, nil] + optional :category_thresholds, + -> { Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds }, + nil?: true + + # @!attribute credentials + # Path to Google Cloud credentials JSON file or JSON string + # + # @return [String, nil] + optional :credentials, String, nil?: true + + # @!attribute default_on + # Whether the guardrail is enabled by default # # @return [Boolean, nil] - optional :default_on, Hanzoai::Internal::Type::BooleanModel + optional :default_on, Hanzoai::Internal::Type::Boolean, nil?: true - # @!parse - # # @return [Boolean] - # attr_writer :default_on + # @!attribute detect_secrets_config + # Configuration for detect-secrets guardrail + # + # @return [Hash{Symbol=>Object}, nil] + optional :detect_secrets_config, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!parse - # # The returned LLM Params object for /guardrails/list - # # - # # @param guardrail [String] - # # @param mode [String, Array] - # # @param default_on [Boolean] - # # - # def initialize(guardrail:, mode:, default_on: nil, **) = super + # @!attribute experimental_use_latest_role_message_only + # When True, guardrails only receive the latest message for the relevant role + # (e.g., newest user input pre-call, newest assistant output post-call) + # + # @return [Boolean, nil] + optional :experimental_use_latest_role_message_only, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute fail_on_error + # Whether to fail the request if Model Armor encounters an error + # + # @return [Boolean, nil] + optional :fail_on_error, Hanzoai::Internal::Type::Boolean, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute guard_name + # Name of the guardrail in guardrails.ai + # + # @return [String, nil] + optional :guard_name, String, nil?: true - # @see Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams#mode - module Mode - extend Hanzoai::Internal::Type::Union + # @!attribute location + # Google Cloud location/region (e.g., us-central1) + # + # @return [String, nil] + optional :location, String, nil?: true - variant String + # @!attribute mask_request_content + # Will mask request content if guardrail makes any changes + # + # @return [Boolean, nil] + optional :mask_request_content, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute mask_response_content + # Will mask response content if guardrail makes any changes + # + # @return [Boolean, nil] + optional :mask_response_content, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute model + # Optional field if guardrail requires a 'model' parameter + # + # @return [String, nil] + optional :model, String, nil?: true + + # @!attribute pangea_input_recipe + # Recipe for input (LLM request) + # + # @return [String, nil] + optional :pangea_input_recipe, String, nil?: true + + # @!attribute pangea_output_recipe + # Recipe for output (LLM response) + # + # @return [String, nil] + optional :pangea_output_recipe, String, nil?: true + + # @!attribute template_id + # The ID of your Model Armor template + # + # @return [String, nil] + optional :template_id, String, nil?: true + + # @!attribute violation_message_template + # Custom message when a guardrail blocks an action. Supports placeholders like + # {tool_name}, {rule_id}, and {default_message}. + # + # @return [String, nil] + optional :violation_message_template, String, nil?: true + + # @!method initialize(additional_provider_specific_params: nil, api_base: nil, api_endpoint: nil, api_key: nil, category_thresholds: nil, credentials: nil, default_on: nil, detect_secrets_config: nil, experimental_use_latest_role_message_only: nil, fail_on_error: nil, guard_name: nil, location: nil, mask_request_content: nil, mask_response_content: nil, model: nil, pangea_input_recipe: nil, pangea_output_recipe: nil, template_id: nil, violation_message_template: nil) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams} for more + # details. + # + # @param additional_provider_specific_params [Hash{Symbol=>Object}, nil] Additional provider-specific parameters for generic guardrail APIs + # + # @param api_base [String, nil] Base URL for the guardrail service API + # + # @param api_endpoint [String, nil] Optional custom API endpoint for Model Armor + # + # @param api_key [String, nil] API key for the guardrail service + # + # @param category_thresholds [Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds, nil] Threshold configuration for Lakera guardrail categories + # + # @param credentials [String, nil] Path to Google Cloud credentials JSON file or JSON string + # + # @param default_on [Boolean, nil] Whether the guardrail is enabled by default + # + # @param detect_secrets_config [Hash{Symbol=>Object}, nil] Configuration for detect-secrets guardrail + # + # @param experimental_use_latest_role_message_only [Boolean, nil] When True, guardrails only receive the latest message for the relevant role (e.g + # + # @param fail_on_error [Boolean, nil] Whether to fail the request if Model Armor encounters an error + # + # @param guard_name [String, nil] Name of the guardrail in guardrails.ai + # + # @param location [String, nil] Google Cloud location/region (e.g., us-central1) + # + # @param mask_request_content [Boolean, nil] Will mask request content if guardrail makes any changes + # + # @param mask_response_content [Boolean, nil] Will mask response content if guardrail makes any changes + # + # @param model [String, nil] Optional field if guardrail requires a 'model' parameter + # + # @param pangea_input_recipe [String, nil] Recipe for input (LLM request) + # + # @param pangea_output_recipe [String, nil] Recipe for output (LLM response) + # + # @param template_id [String, nil] The ID of your Model Armor template + # + # @param violation_message_template [String, nil] Custom message when a guardrail blocks an action. Supports placeholders like {to - variant -> { Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams::Mode::StringArray } + # @see Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams#category_thresholds + class CategoryThresholds < Hanzoai::Internal::Type::BaseModel + # @!attribute jailbreak + # + # @return [Float, nil] + optional :jailbreak, Float - # @!parse - # # @return [Array(String, Array)] - # def self.variants; end + # @!attribute prompt_injection + # + # @return [Float, nil] + optional :prompt_injection, Float - StringArray = Hanzoai::Internal::Type::ArrayOf[String] + # @!method initialize(jailbreak: nil, prompt_injection: nil) + # Threshold configuration for Lakera guardrail categories + # + # @param jailbreak [Float] + # @param prompt_injection [Float] end end end diff --git a/lib/hanzoai/models/health_check_all_params.rb b/lib/hanzoai/models/health_check_all_params.rb index d83ab9f4..f9e24e2e 100644 --- a/lib/hanzoai/models/health_check_all_params.rb +++ b/lib/hanzoai/models/health_check_all_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Health#check_all class HealthCheckAllParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute model @@ -14,13 +13,18 @@ class HealthCheckAllParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :model, String, nil?: true - # @!parse - # # @param model [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(model: nil, request_options: {}, **) = super + # @!attribute model_id + # Specify the model ID (optional) + # + # @return [String, nil] + optional :model_id, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(model: nil, model_id: nil, request_options: {}) + # @param model [String, nil] Specify the model name (optional) + # + # @param model_id [String, nil] Specify the model ID (optional) + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/health_check_all_response.rb b/lib/hanzoai/models/health_check_all_response.rb new file mode 100644 index 00000000..7b484910 --- /dev/null +++ b/lib/hanzoai/models/health_check_all_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + HealthCheckAllResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/health_check_liveliness_params.rb b/lib/hanzoai/models/health_check_liveliness_params.rb index 09ee183f..45c39688 100644 --- a/lib/hanzoai/models/health_check_liveliness_params.rb +++ b/lib/hanzoai/models/health_check_liveliness_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Health#check_liveliness class HealthCheckLivelinessParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/health_check_liveliness_response.rb b/lib/hanzoai/models/health_check_liveliness_response.rb new file mode 100644 index 00000000..a8752e1d --- /dev/null +++ b/lib/hanzoai/models/health_check_liveliness_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + HealthCheckLivelinessResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/health_check_liveness_params.rb b/lib/hanzoai/models/health_check_liveness_params.rb index 8eeaa3cd..d2d979fa 100644 --- a/lib/hanzoai/models/health_check_liveness_params.rb +++ b/lib/hanzoai/models/health_check_liveness_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Health#check_liveness class HealthCheckLivenessParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/health_check_liveness_response.rb b/lib/hanzoai/models/health_check_liveness_response.rb new file mode 100644 index 00000000..88014cd1 --- /dev/null +++ b/lib/hanzoai/models/health_check_liveness_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + HealthCheckLivenessResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/health_check_readiness_params.rb b/lib/hanzoai/models/health_check_readiness_params.rb index bb25380a..23cff7bf 100644 --- a/lib/hanzoai/models/health_check_readiness_params.rb +++ b/lib/hanzoai/models/health_check_readiness_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Health#check_readiness class HealthCheckReadinessParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/health_check_readiness_response.rb b/lib/hanzoai/models/health_check_readiness_response.rb new file mode 100644 index 00000000..5d006fae --- /dev/null +++ b/lib/hanzoai/models/health_check_readiness_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + HealthCheckReadinessResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/health_check_services_params.rb b/lib/hanzoai/models/health_check_services_params.rb index e50ff976..d6543828 100644 --- a/lib/hanzoai/models/health_check_services_params.rb +++ b/lib/hanzoai/models/health_check_services_params.rb @@ -4,23 +4,19 @@ module Hanzoai module Models # @see Hanzoai::Resources::Health#check_services class HealthCheckServicesParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute service # Specify the service being hit. # # @return [Symbol, String, Hanzoai::Models::HealthCheckServicesParams::Service] - required :service, union: -> { Hanzoai::Models::HealthCheckServicesParams::Service } + required :service, union: -> { Hanzoai::HealthCheckServicesParams::Service } - # @!parse - # # @param service [Symbol, String, Hanzoai::Models::HealthCheckServicesParams::Service] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(service:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(service:, request_options: {}) + # @param service [Symbol, String, Hanzoai::Models::HealthCheckServicesParams::Service] Specify the service being hit. + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] # Specify the service being hit. module Service @@ -30,6 +26,8 @@ module Service variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::LANGFUSE } + variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::LANGFUSE_OTEL } + variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::SLACK } variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::OPENMETER } @@ -42,22 +40,35 @@ module Service variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::DATADOG } + variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::GENERIC_API } + + variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::ARIZE } + + variant const: -> { Hanzoai::Models::HealthCheckServicesParams::Service::SQS } + variant String - # @!parse - # # @return [Array(Symbol, String)] - # def self.variants; end + # @!method self.variants + # @return [Array(Symbol, String)] + + define_sorbet_constant!(:Variants) do + T.type_alias { T.any(Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol, String) } + end # @!group SLACK_BUDGET_ALERTS = :slack_budget_alerts LANGFUSE = :langfuse + LANGFUSE_OTEL = :langfuse_otel SLACK = :slack OPENMETER = :openmeter WEBHOOK = :webhook EMAIL = :email BRAINTRUST = :braintrust DATADOG = :datadog + GENERIC_API = :generic_api + ARIZE = :arize + SQS = :sqs # @!endgroup end diff --git a/lib/hanzoai/models/health_check_services_response.rb b/lib/hanzoai/models/health_check_services_response.rb new file mode 100644 index 00000000..95004946 --- /dev/null +++ b/lib/hanzoai/models/health_check_services_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + HealthCheckServicesResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/images/generation_create_params.rb b/lib/hanzoai/models/images/generation_create_params.rb index efda5f9f..51c41420 100644 --- a/lib/hanzoai/models/images/generation_create_params.rb +++ b/lib/hanzoai/models/images/generation_create_params.rb @@ -5,16 +5,17 @@ module Models module Images # @see Hanzoai::Resources::Images::Generations#create class GenerationCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super + # @!attribute model + # + # @return [String, nil] + optional :model, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(model: nil, request_options: {}) + # @param model [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/images/generation_create_response.rb b/lib/hanzoai/models/images/generation_create_response.rb new file mode 100644 index 00000000..947a29f2 --- /dev/null +++ b/lib/hanzoai/models/images/generation_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Images + # @type [Hanzoai::Internal::Type::Converter] + GenerationCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/ip_address.rb b/lib/hanzoai/models/ip_address.rb index 8f4fdb80..2b204969 100644 --- a/lib/hanzoai/models/ip_address.rb +++ b/lib/hanzoai/models/ip_address.rb @@ -8,12 +8,8 @@ class IPAddress < Hanzoai::Internal::Type::BaseModel # @return [String] required :ip, String - # @!parse - # # @param ip [String] - # # - # def initialize(ip:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(ip:) + # @param ip [String] end end end diff --git a/lib/hanzoai/models/key/regenerate_key_request.rb b/lib/hanzoai/models/key/regenerate_key_request.rb index 2fd637bd..c6948663 100644 --- a/lib/hanzoai/models/key/regenerate_key_request.rb +++ b/lib/hanzoai/models/key/regenerate_key_request.rb @@ -6,8 +6,8 @@ module Key class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute allowed_cache_controls # @@ -16,10 +16,39 @@ class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute allowed_passthrough_routes + # + # @return [Array, nil] + optional :allowed_passthrough_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_vector_store_indexes + # + # @return [Array, nil] + optional :allowed_vector_store_indexes, + -> { + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex] + }, + nil?: true + + # @!attribute auto_rotate + # Whether this key should be automatically rotated + # + # @return [Boolean, nil] + optional :auto_rotate, Hanzoai::Internal::Type::Boolean, nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -33,8 +62,8 @@ class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute duration # @@ -61,6 +90,12 @@ class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key_alias, String, nil?: true + # @!attribute key_type + # Enum for key types that determine what routes a key can access + # + # @return [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::KeyType, nil] + optional :key_type, enum: -> { Hanzoai::Key::RegenerateKeyRequest::KeyType }, nil?: true + # @!attribute max_budget # # @return [Float, nil] @@ -73,48 +108,91 @@ class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_rpm_limit # - # @return [Object, nil] - optional :model_rpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_rpm_limit, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_tpm_limit # - # @return [Object, nil] - optional :model_tpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_tpm_limit, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute new_key + # + # @return [String, nil] + optional :new_key, String, nil?: true + # @!attribute new_master_key # # @return [String, nil] optional :new_master_key, String, nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::Key::RegenerateKeyRequest::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::Key::RegenerateKeyRequest::ObjectPermission }, nil?: true + + # @!attribute organization_id + # + # @return [String, nil] + optional :organization_id, String, nil?: true + # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute rotation_interval + # How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + # + # @return [String, nil] + optional :rotation_interval, String, nil?: true + + # @!attribute router_settings + # Set of params that you can modify via `router.update_settings()`. + # + # @return [Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings, nil] + optional :router_settings, -> { Hanzoai::Key::RegenerateKeyRequest::RouterSettings }, nil?: true # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true + # @!attribute rpm_limit_type + # + # @return [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::RpmLimitType, nil] + optional :rpm_limit_type, enum: -> { Hanzoai::Key::RegenerateKeyRequest::RpmLimitType }, nil?: true + # @!attribute send_invite_email # # @return [Boolean, nil] - optional :send_invite_email, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :send_invite_email, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute soft_budget # @@ -141,76 +219,312 @@ class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute tpm_limit_type + # + # @return [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::TpmLimitType, nil] + optional :tpm_limit_type, enum: -> { Hanzoai::Key::RegenerateKeyRequest::TpmLimitType }, nil?: true + # @!attribute user_id # # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param aliases [Object, nil] - # # @param allowed_cache_controls [Array, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param config [Object, nil] - # # @param duration [String, nil] - # # @param enforced_params [Array, nil] - # # @param guardrails [Array, nil] - # # @param key [String, nil] - # # @param key_alias [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_rpm_limit [Object, nil] - # # @param model_tpm_limit [Object, nil] - # # @param models [Array, nil] - # # @param new_master_key [String, nil] - # # @param permissions [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param send_invite_email [Boolean, nil] - # # @param soft_budget [Float, nil] - # # @param spend [Float, nil] - # # @param tags [Array, nil] - # # @param team_id [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param user_id [String, nil] - # # - # def initialize( - # aliases: nil, - # allowed_cache_controls: nil, - # blocked: nil, - # budget_duration: nil, - # budget_id: nil, - # config: nil, - # duration: nil, - # enforced_params: nil, - # guardrails: nil, - # key: nil, - # key_alias: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_rpm_limit: nil, - # model_tpm_limit: nil, - # models: nil, - # new_master_key: nil, - # permissions: nil, - # rpm_limit: nil, - # send_invite_email: nil, - # soft_budget: nil, - # spend: nil, - # tags: nil, - # team_id: nil, - # tpm_limit: nil, - # user_id: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, key: nil, key_alias: nil, key_type: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, new_key: nil, new_master_key: nil, object_permission: nil, organization_id: nil, permissions: nil, prompts: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, send_invite_email: nil, soft_budget: nil, spend: nil, tags: nil, team_id: nil, tpm_limit: nil, tpm_limit_type: nil, user_id: nil) + # @param aliases [Hash{Symbol=>Object}, nil] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_passthrough_routes [Array, nil] + # + # @param allowed_routes [Array, nil] + # + # @param allowed_vector_store_indexes [Array, nil] + # + # @param auto_rotate [Boolean, nil] Whether this key should be automatically rotated + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_id [String, nil] + # + # @param config [Hash{Symbol=>Object}, nil] + # + # @param duration [String, nil] + # + # @param enforced_params [Array, nil] + # + # @param guardrails [Array, nil] + # + # @param key [String, nil] + # + # @param key_alias [String, nil] + # + # @param key_type [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::KeyType, nil] Enum for key types that determine what routes a key can access + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] + # + # @param models [Array, nil] + # + # @param new_key [String, nil] + # + # @param new_master_key [String, nil] + # + # @param object_permission [Hanzoai::Models::Key::RegenerateKeyRequest::ObjectPermission, nil] + # + # @param organization_id [String, nil] + # + # @param permissions [Hash{Symbol=>Object}, nil] + # + # @param prompts [Array, nil] + # + # @param rotation_interval [String, nil] How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + # + # @param router_settings [Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings, nil] Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::RpmLimitType, nil] + # + # @param send_invite_email [Boolean, nil] + # + # @param soft_budget [Float, nil] + # + # @param spend [Float, nil] + # + # @param tags [Array, nil] + # + # @param team_id [String, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::TpmLimitType, nil] + # + # @param user_id [String, nil] + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + # @!attribute index_name + # + # @return [String] + required :index_name, String + + # @!attribute index_permissions + # + # @return [Array] + required :index_permissions, + -> { Hanzoai::Internal::Type::ArrayOf[enum: Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission] } + + # @!method initialize(index_name:, index_permissions:) + # @param index_name [String] + # @param index_permissions [Array] + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ = :read + WRITE = :write + + # @!method self.values + # @return [Array] + end + end + + # Enum for key types that determine what routes a key can access + # + # @see Hanzoai::Models::Key::RegenerateKeyRequest#key_type + module KeyType + extend Hanzoai::Internal::Type::Enum + + LLM_API = :llm_api + MANAGEMENT = :management + READ_ONLY = :read_only + DEFAULT = :default + + # @!method self.values + # @return [Array] + end + + # @see Hanzoai::Models::Key::RegenerateKeyRequest#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + # @see Hanzoai::Models::Key::RegenerateKeyRequest#router_settings + class RouterSettings < Hanzoai::Internal::Type::BaseModel + # @!attribute allowed_fails + # + # @return [Integer, nil] + optional :allowed_fails, Integer, nil?: true + + # @!attribute context_window_fallbacks + # + # @return [ArrayObject}>, nil] + optional :context_window_fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute cooldown_time + # + # @return [Float, nil] + optional :cooldown_time, Float, nil?: true + + # @!attribute fallbacks + # + # @return [ArrayObject}>, nil] + optional :fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute max_retries + # + # @return [Integer, nil] + optional :max_retries, Integer, nil?: true + + # @!attribute model_group_alias + # + # @return [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + optional :model_group_alias, + -> { + Hanzoai::Internal::Type::HashOf[union: Hanzoai::Key::RegenerateKeyRequest::RouterSettings::ModelGroupAlias] + }, + nil?: true + + # @!attribute model_group_retry_policy + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_group_retry_policy, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute retry_after + # + # @return [Float, nil] + optional :retry_after, Float, nil?: true + + # @!attribute routing_strategy + # + # @return [String, nil] + optional :routing_strategy, String, nil?: true + + # @!attribute routing_strategy_args + # + # @return [Hash{Symbol=>Object}, nil] + optional :routing_strategy_args, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute timeout + # + # @return [Float, nil] + optional :timeout, Float, nil?: true + + # @!method initialize(allowed_fails: nil, context_window_fallbacks: nil, cooldown_time: nil, fallbacks: nil, max_retries: nil, model_group_alias: nil, model_group_retry_policy: nil, num_retries: nil, retry_after: nil, routing_strategy: nil, routing_strategy_args: nil, timeout: nil) + # Set of params that you can modify via `router.update_settings()`. + # + # @param allowed_fails [Integer, nil] + # @param context_window_fallbacks [ArrayObject}>, nil] + # @param cooldown_time [Float, nil] + # @param fallbacks [ArrayObject}>, nil] + # @param max_retries [Integer, nil] + # @param model_group_alias [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + # @param model_group_retry_policy [Hash{Symbol=>Object}, nil] + # @param num_retries [Integer, nil] + # @param retry_after [Float, nil] + # @param routing_strategy [String, nil] + # @param routing_strategy_args [Hash{Symbol=>Object}, nil] + # @param timeout [Float, nil] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings::ModelGroupAlias::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @see Hanzoai::Models::Key::RegenerateKeyRequest#rpm_limit_type + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end + + # @see Hanzoai::Models::Key::RegenerateKeyRequest#tpm_limit_type + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/hanzoai/models/key_block_params.rb b/lib/hanzoai/models/key_block_params.rb index e6c8dac5..5ab34210 100644 --- a/lib/hanzoai/models/key_block_params.rb +++ b/lib/hanzoai/models/key_block_params.rb @@ -4,28 +4,24 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#block class KeyBlockParams < Hanzoai::Models::BlockKeyRequest - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" + optional :litellm_changed_by, String - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(llm_changed_by: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyBlockParams} for more details. + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/key_block_response.rb b/lib/hanzoai/models/key_block_response.rb index c9b6c933..a2427206 100644 --- a/lib/hanzoai/models/key_block_response.rb +++ b/lib/hanzoai/models/key_block_response.rb @@ -9,14 +9,10 @@ class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :token, String, nil?: true - # @!attribute [r] aliases + # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :aliases + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] # @!attribute allowed_cache_controls # @@ -25,10 +21,20 @@ class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute auto_rotate + # + # @return [Boolean, nil] + optional :auto_rotate, Hanzoai::Internal::Type::Boolean, nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -40,14 +46,10 @@ class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel # @return [Time, nil] optional :budget_reset_at, Time, nil?: true - # @!attribute [r] config + # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :config + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] # @!attribute created_at # @@ -74,10 +76,22 @@ class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key_name, String, nil?: true - # @!attribute llm_budget_table + # @!attribute key_rotation_at + # + # @return [Time, nil] + optional :key_rotation_at, Time, nil?: true + + # @!attribute last_rotation_at # - # @return [Object, nil] - optional :llm_budget_table, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Time, nil] + optional :last_rotation_at, Time, nil?: true + + # @!attribute litellm_budget_table + # + # @return [Hash{Symbol=>Object}, nil] + optional :litellm_budget_table, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute max_budget # @@ -89,79 +103,77 @@ class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :max_parallel_requests, Integer, nil?: true - # @!attribute [r] metadata + # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :metadata + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!attribute [r] model_max_budget + # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Object] - # attr_writer :model_max_budget - - # @!attribute [r] model_spend + # @!attribute model_spend # - # @return [Object, nil] - optional :model_spend, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :model_spend + # @return [Hash{Symbol=>Object}, nil] + optional :model_spend, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!attribute [r] models + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::KeyBlockResponse::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::Models::KeyBlockResponse::ObjectPermission }, nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true # @!attribute org_id # # @return [String, nil] optional :org_id, String, nil?: true - # @!attribute [r] permissions + # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Object] - # attr_writer :permissions + # @!attribute rotation_count + # + # @return [Integer, nil] + optional :rotation_count, Integer, nil?: true + + # @!attribute rotation_interval + # + # @return [String, nil] + optional :rotation_interval, String, nil?: true + + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true - # @!attribute [r] soft_budget_cooldown + # @!attribute soft_budget_cooldown # # @return [Boolean, nil] - optional :soft_budget_cooldown, Hanzoai::Internal::Type::BooleanModel + optional :soft_budget_cooldown, Hanzoai::Internal::Type::Boolean - # @!parse - # # @return [Boolean] - # attr_writer :soft_budget_cooldown - - # @!attribute [r] spend + # @!attribute spend # # @return [Float, nil] optional :spend, Float - # @!parse - # # @return [Float] - # attr_writer :spend - # @!attribute team_id # # @return [String, nil] @@ -187,73 +199,82 @@ class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param token [String, nil] - # # @param aliases [Object] - # # @param allowed_cache_controls [Array, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param config [Object] - # # @param created_at [Time, nil] - # # @param created_by [String, nil] - # # @param expires [String, Time, nil] - # # @param key_alias [String, nil] - # # @param key_name [String, nil] - # # @param llm_budget_table [Object, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object] - # # @param model_max_budget [Object] - # # @param model_spend [Object] - # # @param models [Array] - # # @param org_id [String, nil] - # # @param permissions [Object] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget_cooldown [Boolean] - # # @param spend [Float] - # # @param team_id [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param updated_at [Time, nil] - # # @param updated_by [String, nil] - # # @param user_id [String, nil] - # # - # def initialize( - # token: nil, - # aliases: nil, - # allowed_cache_controls: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # config: nil, - # created_at: nil, - # created_by: nil, - # expires: nil, - # key_alias: nil, - # key_name: nil, - # llm_budget_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_spend: nil, - # models: nil, - # org_id: nil, - # permissions: nil, - # rpm_limit: nil, - # soft_budget_cooldown: nil, - # spend: nil, - # team_id: nil, - # tpm_limit: nil, - # updated_at: nil, - # updated_by: nil, - # user_id: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(token: nil, aliases: nil, allowed_cache_controls: nil, allowed_routes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_reset_at: nil, config: nil, created_at: nil, created_by: nil, expires: nil, key_alias: nil, key_name: nil, key_rotation_at: nil, last_rotation_at: nil, litellm_budget_table: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_spend: nil, models: nil, object_permission: nil, object_permission_id: nil, org_id: nil, permissions: nil, rotation_count: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, soft_budget_cooldown: nil, spend: nil, team_id: nil, tpm_limit: nil, updated_at: nil, updated_by: nil, user_id: nil) + # @param token [String, nil] + # + # @param aliases [Hash{Symbol=>Object}] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_routes [Array, nil] + # + # @param auto_rotate [Boolean, nil] + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param config [Hash{Symbol=>Object}] + # + # @param created_at [Time, nil] + # + # @param created_by [String, nil] + # + # @param expires [String, Time, nil] + # + # @param key_alias [String, nil] + # + # @param key_name [String, nil] + # + # @param key_rotation_at [Time, nil] + # + # @param last_rotation_at [Time, nil] + # + # @param litellm_budget_table [Hash{Symbol=>Object}, nil] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}] + # + # @param model_max_budget [Hash{Symbol=>Object}] + # + # @param model_spend [Hash{Symbol=>Object}] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::KeyBlockResponse::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param org_id [String, nil] + # + # @param permissions [Hash{Symbol=>Object}] + # + # @param rotation_count [Integer, nil] + # + # @param rotation_interval [String, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param soft_budget_cooldown [Boolean] + # + # @param spend [Float] + # + # @param team_id [String, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] + # + # @param updated_by [String, nil] + # + # @param user_id [String, nil] # @see Hanzoai::Models::KeyBlockResponse#expires module Expires @@ -263,9 +284,59 @@ module Expires variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] + end + + # @see Hanzoai::Models::KeyBlockResponse#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] end end end diff --git a/lib/hanzoai/models/key_check_health_params.rb b/lib/hanzoai/models/key_check_health_params.rb index 420007a0..9861c097 100644 --- a/lib/hanzoai/models/key_check_health_params.rb +++ b/lib/hanzoai/models/key_check_health_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#check_health class KeyCheckHealthParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/key_check_health_response.rb b/lib/hanzoai/models/key_check_health_response.rb index 3443b429..d1650071 100644 --- a/lib/hanzoai/models/key_check_health_response.rb +++ b/lib/hanzoai/models/key_check_health_response.rb @@ -4,27 +4,19 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#check_health class KeyCheckHealthResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute [r] key + # @!attribute key # # @return [Symbol, Hanzoai::Models::KeyCheckHealthResponse::Key, nil] optional :key, enum: -> { Hanzoai::Models::KeyCheckHealthResponse::Key } - # @!parse - # # @return [Symbol, Hanzoai::Models::KeyCheckHealthResponse::Key] - # attr_writer :key - # @!attribute logging_callbacks # # @return [Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks, nil] optional :logging_callbacks, -> { Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks }, nil?: true - # @!parse - # # @param key [Symbol, Hanzoai::Models::KeyCheckHealthResponse::Key] - # # @param logging_callbacks [Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks, nil] - # # - # def initialize(key: nil, logging_callbacks: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(key: nil, logging_callbacks: nil) + # @param key [Symbol, Hanzoai::Models::KeyCheckHealthResponse::Key] + # @param logging_callbacks [Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks, nil] # @see Hanzoai::Models::KeyCheckHealthResponse#key module Key @@ -33,46 +25,31 @@ module Key HEALTHY = :healthy UNHEALTHY = :unhealthy - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end # @see Hanzoai::Models::KeyCheckHealthResponse#logging_callbacks class LoggingCallbacks < Hanzoai::Internal::Type::BaseModel - # @!attribute [r] callbacks + # @!attribute callbacks # # @return [Array, nil] optional :callbacks, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @return [Array] - # attr_writer :callbacks - # @!attribute details # # @return [String, nil] optional :details, String, nil?: true - # @!attribute [r] status + # @!attribute status # # @return [Symbol, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status, nil] optional :status, enum: -> { Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status } - # @!parse - # # @return [Symbol, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status] - # attr_writer :status - - # @!parse - # # @param callbacks [Array] - # # @param details [String, nil] - # # @param status [Symbol, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status] - # # - # def initialize(callbacks: nil, details: nil, status: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(callbacks: nil, details: nil, status: nil) + # @param callbacks [Array] + # @param details [String, nil] + # @param status [Symbol, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status] # @see Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks#status module Status @@ -81,11 +58,8 @@ module Status HEALTHY = :healthy UNHEALTHY = :unhealthy - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/key_delete_params.rb b/lib/hanzoai/models/key_delete_params.rb index a9ab3525..8c68cee9 100644 --- a/lib/hanzoai/models/key_delete_params.rb +++ b/lib/hanzoai/models/key_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#delete class KeyDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute key_aliases @@ -18,26 +17,25 @@ class KeyDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [Array, nil] optional :keys, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" + optional :litellm_changed_by, String - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param key_aliases [Array, nil] - # # @param keys [Array, nil] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(key_aliases: nil, keys: nil, llm_changed_by: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(key_aliases: nil, keys: nil, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyDeleteParams} for more details. + # + # @param key_aliases [Array, nil] + # + # @param keys [Array, nil] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/key_delete_response.rb b/lib/hanzoai/models/key_delete_response.rb new file mode 100644 index 00000000..d4676cf9 --- /dev/null +++ b/lib/hanzoai/models/key_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + KeyDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/key_generate_params.rb b/lib/hanzoai/models/key_generate_params.rb index 5d1d98d5..c0f40b63 100644 --- a/lib/hanzoai/models/key_generate_params.rb +++ b/lib/hanzoai/models/key_generate_params.rb @@ -4,14 +4,13 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#generate class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute allowed_cache_controls # @@ -20,10 +19,35 @@ class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute allowed_passthrough_routes + # + # @return [Array, nil] + optional :allowed_passthrough_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute allowed_vector_store_indexes + # + # @return [Array, nil] + optional :allowed_vector_store_indexes, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex] }, + nil?: true + + # @!attribute auto_rotate + # Whether this key should be automatically rotated + # + # @return [Boolean, nil] + optional :auto_rotate, Hanzoai::Internal::Type::Boolean, nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -37,8 +61,8 @@ class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute duration # @@ -65,6 +89,12 @@ class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key_alias, String, nil?: true + # @!attribute key_type + # Enum for key types that determine what routes a key can access + # + # @return [Symbol, Hanzoai::Models::KeyGenerateParams::KeyType, nil] + optional :key_type, enum: -> { Hanzoai::KeyGenerateParams::KeyType }, nil?: true + # @!attribute max_budget # # @return [Float, nil] @@ -77,43 +107,77 @@ class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_rpm_limit # - # @return [Object, nil] - optional :model_rpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_tpm_limit # - # @return [Object, nil] - optional :model_tpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::KeyGenerateParams::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::KeyGenerateParams::ObjectPermission }, nil?: true + + # @!attribute organization_id + # + # @return [String, nil] + optional :organization_id, String, nil?: true + # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute rotation_interval + # How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + # + # @return [String, nil] + optional :rotation_interval, String, nil?: true + + # @!attribute router_settings + # Set of params that you can modify via `router.update_settings()`. + # + # @return [Hanzoai::Models::KeyGenerateParams::RouterSettings, nil] + optional :router_settings, -> { Hanzoai::KeyGenerateParams::RouterSettings }, nil?: true # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true + # @!attribute rpm_limit_type + # + # @return [Symbol, Hanzoai::Models::KeyGenerateParams::RpmLimitType, nil] + optional :rpm_limit_type, enum: -> { Hanzoai::KeyGenerateParams::RpmLimitType }, nil?: true + # @!attribute send_invite_email # # @return [Boolean, nil] - optional :send_invite_email, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :send_invite_email, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute soft_budget # @@ -140,89 +204,317 @@ class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute tpm_limit_type + # + # @return [Symbol, Hanzoai::Models::KeyGenerateParams::TpmLimitType, nil] + optional :tpm_limit_type, enum: -> { Hanzoai::KeyGenerateParams::TpmLimitType }, nil?: true + # @!attribute user_id # # @return [String, nil] optional :user_id, String, nil?: true - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" - - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param aliases [Object, nil] - # # @param allowed_cache_controls [Array, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param config [Object, nil] - # # @param duration [String, nil] - # # @param enforced_params [Array, nil] - # # @param guardrails [Array, nil] - # # @param key [String, nil] - # # @param key_alias [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_rpm_limit [Object, nil] - # # @param model_tpm_limit [Object, nil] - # # @param models [Array, nil] - # # @param permissions [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param send_invite_email [Boolean, nil] - # # @param soft_budget [Float, nil] - # # @param spend [Float, nil] - # # @param tags [Array, nil] - # # @param team_id [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param user_id [String, nil] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # aliases: nil, - # allowed_cache_controls: nil, - # blocked: nil, - # budget_duration: nil, - # budget_id: nil, - # config: nil, - # duration: nil, - # enforced_params: nil, - # guardrails: nil, - # key: nil, - # key_alias: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_rpm_limit: nil, - # model_tpm_limit: nil, - # models: nil, - # permissions: nil, - # rpm_limit: nil, - # send_invite_email: nil, - # soft_budget: nil, - # spend: nil, - # tags: nil, - # team_id: nil, - # tpm_limit: nil, - # user_id: nil, - # llm_changed_by: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + optional :litellm_changed_by, String + + # @!method initialize(aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, key: nil, key_alias: nil, key_type: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, permissions: nil, prompts: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, send_invite_email: nil, soft_budget: nil, spend: nil, tags: nil, team_id: nil, tpm_limit: nil, tpm_limit_type: nil, user_id: nil, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyGenerateParams} for more details. + # + # @param aliases [Hash{Symbol=>Object}, nil] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_passthrough_routes [Array, nil] + # + # @param allowed_routes [Array, nil] + # + # @param allowed_vector_store_indexes [Array, nil] + # + # @param auto_rotate [Boolean, nil] Whether this key should be automatically rotated + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_id [String, nil] + # + # @param config [Hash{Symbol=>Object}, nil] + # + # @param duration [String, nil] + # + # @param enforced_params [Array, nil] + # + # @param guardrails [Array, nil] + # + # @param key [String, nil] + # + # @param key_alias [String, nil] + # + # @param key_type [Symbol, Hanzoai::Models::KeyGenerateParams::KeyType, nil] Enum for key types that determine what routes a key can access + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] + # + # @param models [Array, nil] + # + # @param object_permission [Hanzoai::Models::KeyGenerateParams::ObjectPermission, nil] + # + # @param organization_id [String, nil] + # + # @param permissions [Hash{Symbol=>Object}, nil] + # + # @param prompts [Array, nil] + # + # @param rotation_interval [String, nil] How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + # + # @param router_settings [Hanzoai::Models::KeyGenerateParams::RouterSettings, nil] Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::KeyGenerateParams::RpmLimitType, nil] + # + # @param send_invite_email [Boolean, nil] + # + # @param soft_budget [Float, nil] + # + # @param spend [Float, nil] + # + # @param tags [Array, nil] + # + # @param team_id [String, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::KeyGenerateParams::TpmLimitType, nil] + # + # @param user_id [String, nil] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + # @!attribute index_name + # + # @return [String] + required :index_name, String + + # @!attribute index_permissions + # + # @return [Array] + required :index_permissions, + -> { Hanzoai::Internal::Type::ArrayOf[enum: Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission] } + + # @!method initialize(index_name:, index_permissions:) + # @param index_name [String] + # @param index_permissions [Array] + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ = :read + WRITE = :write + + # @!method self.values + # @return [Array] + end + end + + # Enum for key types that determine what routes a key can access + module KeyType + extend Hanzoai::Internal::Type::Enum + + LLM_API = :llm_api + MANAGEMENT = :management + READ_ONLY = :read_only + DEFAULT = :default + + # @!method self.values + # @return [Array] + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + # @!attribute allowed_fails + # + # @return [Integer, nil] + optional :allowed_fails, Integer, nil?: true + + # @!attribute context_window_fallbacks + # + # @return [ArrayObject}>, nil] + optional :context_window_fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute cooldown_time + # + # @return [Float, nil] + optional :cooldown_time, Float, nil?: true + + # @!attribute fallbacks + # + # @return [ArrayObject}>, nil] + optional :fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute max_retries + # + # @return [Integer, nil] + optional :max_retries, Integer, nil?: true + + # @!attribute model_group_alias + # + # @return [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + optional :model_group_alias, + -> { + Hanzoai::Internal::Type::HashOf[union: Hanzoai::KeyGenerateParams::RouterSettings::ModelGroupAlias] + }, + nil?: true + + # @!attribute model_group_retry_policy + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_group_retry_policy, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute retry_after + # + # @return [Float, nil] + optional :retry_after, Float, nil?: true + + # @!attribute routing_strategy + # + # @return [String, nil] + optional :routing_strategy, String, nil?: true + + # @!attribute routing_strategy_args + # + # @return [Hash{Symbol=>Object}, nil] + optional :routing_strategy_args, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute timeout + # + # @return [Float, nil] + optional :timeout, Float, nil?: true + + # @!method initialize(allowed_fails: nil, context_window_fallbacks: nil, cooldown_time: nil, fallbacks: nil, max_retries: nil, model_group_alias: nil, model_group_retry_policy: nil, num_retries: nil, retry_after: nil, routing_strategy: nil, routing_strategy_args: nil, timeout: nil) + # Set of params that you can modify via `router.update_settings()`. + # + # @param allowed_fails [Integer, nil] + # @param context_window_fallbacks [ArrayObject}>, nil] + # @param cooldown_time [Float, nil] + # @param fallbacks [ArrayObject}>, nil] + # @param max_retries [Integer, nil] + # @param model_group_alias [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + # @param model_group_retry_policy [Hash{Symbol=>Object}, nil] + # @param num_retries [Integer, nil] + # @param retry_after [Float, nil] + # @param routing_strategy [String, nil] + # @param routing_strategy_args [Hash{Symbol=>Object}, nil] + # @param timeout [Float, nil] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::KeyGenerateParams::RouterSettings::ModelGroupAlias::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/hanzoai/models/key_list_params.rb b/lib/hanzoai/models/key_list_params.rb index 8e4be13b..8e86f8bc 100644 --- a/lib/hanzoai/models/key_list_params.rb +++ b/lib/hanzoai/models/key_list_params.rb @@ -4,19 +4,26 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#list class KeyListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute [r] include_team_keys - # Include all keys for teams that user is an admin of. + # @!attribute expand + # Expand related objects (e.g. 'user') + # + # @return [Array, nil] + optional :expand, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute include_created_by_keys + # Include keys created by the user # # @return [Boolean, nil] - optional :include_team_keys, Hanzoai::Internal::Type::BooleanModel + optional :include_created_by_keys, Hanzoai::Internal::Type::Boolean - # @!parse - # # @return [Boolean] - # attr_writer :include_team_keys + # @!attribute include_team_keys + # Include all keys for teams that user is an admin of. + # + # @return [Boolean, nil] + optional :include_team_keys, Hanzoai::Internal::Type::Boolean # @!attribute key_alias # Filter keys by key alias @@ -24,41 +31,53 @@ class KeyListParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key_alias, String, nil?: true + # @!attribute key_hash + # Filter keys by key hash + # + # @return [String, nil] + optional :key_hash, String, nil?: true + # @!attribute organization_id # Filter keys by organization ID # # @return [String, nil] optional :organization_id, String, nil?: true - # @!attribute [r] page + # @!attribute page # Page number # # @return [Integer, nil] optional :page, Integer - # @!parse - # # @return [Integer] - # attr_writer :page - - # @!attribute [r] return_full_object + # @!attribute return_full_object # Return full key object # # @return [Boolean, nil] - optional :return_full_object, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :return_full_object + optional :return_full_object, Hanzoai::Internal::Type::Boolean - # @!attribute [r] size + # @!attribute size # Page size # # @return [Integer, nil] optional :size, Integer - # @!parse - # # @return [Integer] - # attr_writer :size + # @!attribute sort_by + # Column to sort by (e.g. 'user_id', 'created_at', 'spend') + # + # @return [String, nil] + optional :sort_by, String, nil?: true + + # @!attribute sort_order + # Sort order ('asc' or 'desc') + # + # @return [String, nil] + optional :sort_order, String + + # @!attribute status + # Filter by status (e.g. 'deleted') + # + # @return [String, nil] + optional :status, String, nil?: true # @!attribute team_id # Filter keys by team ID @@ -72,33 +91,36 @@ class KeyListParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param include_team_keys [Boolean] - # # @param key_alias [String, nil] - # # @param organization_id [String, nil] - # # @param page [Integer] - # # @param return_full_object [Boolean] - # # @param size [Integer] - # # @param team_id [String, nil] - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # include_team_keys: nil, - # key_alias: nil, - # organization_id: nil, - # page: nil, - # return_full_object: nil, - # size: nil, - # team_id: nil, - # user_id: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(expand: nil, include_created_by_keys: nil, include_team_keys: nil, key_alias: nil, key_hash: nil, organization_id: nil, page: nil, return_full_object: nil, size: nil, sort_by: nil, sort_order: nil, status: nil, team_id: nil, user_id: nil, request_options: {}) + # @param expand [Array, nil] Expand related objects (e.g. 'user') + # + # @param include_created_by_keys [Boolean] Include keys created by the user + # + # @param include_team_keys [Boolean] Include all keys for teams that user is an admin of. + # + # @param key_alias [String, nil] Filter keys by key alias + # + # @param key_hash [String, nil] Filter keys by key hash + # + # @param organization_id [String, nil] Filter keys by organization ID + # + # @param page [Integer] Page number + # + # @param return_full_object [Boolean] Return full key object + # + # @param size [Integer] Page size + # + # @param sort_by [String, nil] Column to sort by (e.g. 'user_id', 'created_at', 'spend') + # + # @param sort_order [String] Sort order ('asc' or 'desc') + # + # @param status [String, nil] Filter by status (e.g. 'deleted') + # + # @param team_id [String, nil] Filter keys by team ID + # + # @param user_id [String, nil] Filter keys by user ID + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/key_list_response.rb b/lib/hanzoai/models/key_list_response.rb index 2fb51a43..87fc6b4e 100644 --- a/lib/hanzoai/models/key_list_response.rb +++ b/lib/hanzoai/models/key_list_response.rb @@ -9,15 +9,11 @@ class KeyListResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :current_page, Integer, nil?: true - # @!attribute [r] keys + # @!attribute keys # - # @return [Array, nil] + # @return [Array, nil] optional :keys, -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Models::KeyListResponse::Key] } - # @!parse - # # @return [Array] - # attr_writer :keys - # @!attribute total_count # # @return [Integer, nil] @@ -28,15 +24,11 @@ class KeyListResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :total_pages, Integer, nil?: true - # @!parse - # # @param current_page [Integer, nil] - # # @param keys [Array] - # # @param total_count [Integer, nil] - # # @param total_pages [Integer, nil] - # # - # def initialize(current_page: nil, keys: nil, total_count: nil, total_pages: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(current_page: nil, keys: nil, total_count: nil, total_pages: nil) + # @param current_page [Integer, nil] + # @param keys [Array] + # @param total_count [Integer, nil] + # @param total_pages [Integer, nil] # Return the row in the db module Key @@ -47,20 +39,20 @@ module Key # Return the row in the db variant -> { Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth } + # Recording of deleted keys for audit purposes. Mirrors LiteLLM_VerificationToken + # plus metadata captured at deletion time. + variant -> { Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken } + class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @!attribute token # # @return [String, nil] optional :token, String, nil?: true - # @!attribute [r] aliases + # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :aliases + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] # @!attribute allowed_cache_controls # @@ -76,15 +68,27 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel enum: -> { Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion }, nil?: true + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + # @!attribute api_key # # @return [String, nil] optional :api_key, String, nil?: true + # @!attribute auto_rotate + # + # @return [Boolean, nil] + optional :auto_rotate, Hanzoai::Internal::Type::Boolean, nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -96,14 +100,10 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @return [Time, nil] optional :budget_reset_at, Time, nil?: true - # @!attribute [r] config + # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :config + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] # @!attribute created_at # @@ -152,15 +152,27 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key_name, String, nil?: true + # @!attribute key_rotation_at + # + # @return [Time, nil] + optional :key_rotation_at, Time, nil?: true + # @!attribute last_refreshed_at # # @return [Float, nil] optional :last_refreshed_at, Float, nil?: true - # @!attribute llm_budget_table + # @!attribute last_rotation_at # - # @return [Object, nil] - optional :llm_budget_table, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Time, nil] + optional :last_rotation_at, Time, nil?: true + + # @!attribute litellm_budget_table + # + # @return [Hash{Symbol=>Object}, nil] + optional :litellm_budget_table, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute max_budget # @@ -172,64 +184,97 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :max_parallel_requests, Integer, nil?: true - # @!attribute [r] metadata + # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :metadata + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!attribute [r] model_max_budget + # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :model_max_budget + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!attribute [r] model_spend + # @!attribute model_spend # - # @return [Object, nil] - optional :model_spend, Hanzoai::Internal::Type::Unknown + # @return [Hash{Symbol=>Object}, nil] + optional :model_spend, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Object] - # attr_writer :model_spend - - # @!attribute [r] models + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission }, + nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true # @!attribute org_id # # @return [String, nil] optional :org_id, String, nil?: true - # @!attribute [r] parent_otel_span + # @!attribute organization_max_budget + # + # @return [Float, nil] + optional :organization_max_budget, Float, nil?: true + + # @!attribute organization_metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :organization_metadata, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute organization_rpm_limit + # + # @return [Integer, nil] + optional :organization_rpm_limit, Integer, nil?: true + + # @!attribute organization_tpm_limit + # + # @return [Integer, nil] + optional :organization_tpm_limit, Integer, nil?: true + + # @!attribute parent_otel_span # # @return [Object, nil] optional :parent_otel_span, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :parent_otel_span + # @!attribute permissions + # + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!attribute [r] permissions + # @!attribute request_route # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown + # @return [String, nil] + optional :request_route, String, nil?: true - # @!parse - # # @return [Object] - # attr_writer :permissions + # @!attribute rotation_count + # + # @return [Integer, nil] + optional :rotation_count, Integer, nil?: true + + # @!attribute rotation_interval + # + # @return [String, nil] + optional :rotation_interval, String, nil?: true + + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute rpm_limit # @@ -246,37 +291,25 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :soft_budget, Float, nil?: true - # @!attribute [r] soft_budget_cooldown + # @!attribute soft_budget_cooldown # # @return [Boolean, nil] - optional :soft_budget_cooldown, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :soft_budget_cooldown + optional :soft_budget_cooldown, Hanzoai::Internal::Type::Boolean - # @!attribute [r] spend + # @!attribute spend # # @return [Float, nil] optional :spend, Float - # @!parse - # # @return [Float] - # attr_writer :spend - # @!attribute team_alias # # @return [String, nil] optional :team_alias, String, nil?: true - # @!attribute [r] team_blocked + # @!attribute team_blocked # # @return [Boolean, nil] - optional :team_blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :team_blocked + optional :team_blocked, Hanzoai::Internal::Type::Boolean # @!attribute team_id # @@ -291,31 +324,46 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @!attribute team_member # # @return [Hanzoai::Models::Member, nil] - optional :team_member, -> { Hanzoai::Models::Member }, nil?: true + optional :team_member, -> { Hanzoai::Member }, nil?: true + + # @!attribute team_member_rpm_limit + # + # @return [Integer, nil] + optional :team_member_rpm_limit, Integer, nil?: true # @!attribute team_member_spend # # @return [Float, nil] optional :team_member_spend, Float, nil?: true + # @!attribute team_member_tpm_limit + # + # @return [Integer, nil] + optional :team_member_tpm_limit, Integer, nil?: true + # @!attribute team_metadata # - # @return [Object, nil] - optional :team_metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :team_metadata, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute team_model_aliases # - # @return [Object, nil] - optional :team_model_aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :team_model_aliases, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!attribute [r] team_models + # @!attribute team_models # # @return [Array, nil] optional :team_models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :team_models + # @!attribute team_object_permission_id + # + # @return [String, nil] + optional :team_object_permission_id, String, nil?: true # @!attribute team_rpm_limit # @@ -352,6 +400,11 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :updated_by, String, nil?: true + # @!attribute user + # + # @return [Object, nil] + optional :user, Hanzoai::Internal::Type::Unknown + # @!attribute user_email # # @return [String, nil] @@ -362,155 +415,197 @@ class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true + # @!attribute user_max_budget + # + # @return [Float, nil] + optional :user_max_budget, Float, nil?: true + # @!attribute user_role # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend # - # Team Roles: TEAM: used for JWT auth + # Team Roles: TEAM: used for JWT auth # - # Customer Roles: CUSTOMER: External users -> these are customers + # Customer Roles: CUSTOMER: External users -> these are customers # - # @return [Symbol, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole, nil] - optional :user_role, - enum: -> { Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole }, - nil?: true + # @return [Symbol, Hanzoai::Models::UserRoles, nil] + optional :user_role, enum: -> { Hanzoai::UserRoles }, nil?: true # @!attribute user_rpm_limit # # @return [Integer, nil] optional :user_rpm_limit, Integer, nil?: true + # @!attribute user_spend + # + # @return [Float, nil] + optional :user_spend, Float, nil?: true + # @!attribute user_tpm_limit # # @return [Integer, nil] optional :user_tpm_limit, Integer, nil?: true - # @!parse - # # Return the row in the db - # # - # # @param token [String, nil] - # # @param aliases [Object] - # # @param allowed_cache_controls [Array, nil] - # # @param allowed_model_region [Symbol, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion, nil] - # # @param api_key [String, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param config [Object] - # # @param created_at [Time, nil] - # # @param created_by [String, nil] - # # @param end_user_id [String, nil] - # # @param end_user_max_budget [Float, nil] - # # @param end_user_rpm_limit [Integer, nil] - # # @param end_user_tpm_limit [Integer, nil] - # # @param expires [String, Time, nil] - # # @param key_alias [String, nil] - # # @param key_name [String, nil] - # # @param last_refreshed_at [Float, nil] - # # @param llm_budget_table [Object, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object] - # # @param model_max_budget [Object] - # # @param model_spend [Object] - # # @param models [Array] - # # @param org_id [String, nil] - # # @param parent_otel_span [Object] - # # @param permissions [Object] - # # @param rpm_limit [Integer, nil] - # # @param rpm_limit_per_model [Hash{Symbol=>Integer}, nil] - # # @param soft_budget [Float, nil] - # # @param soft_budget_cooldown [Boolean] - # # @param spend [Float] - # # @param team_alias [String, nil] - # # @param team_blocked [Boolean] - # # @param team_id [String, nil] - # # @param team_max_budget [Float, nil] - # # @param team_member [Hanzoai::Models::Member, nil] - # # @param team_member_spend [Float, nil] - # # @param team_metadata [Object, nil] - # # @param team_model_aliases [Object, nil] - # # @param team_models [Array] - # # @param team_rpm_limit [Integer, nil] - # # @param team_spend [Float, nil] - # # @param team_tpm_limit [Integer, nil] - # # @param tpm_limit [Integer, nil] - # # @param tpm_limit_per_model [Hash{Symbol=>Integer}, nil] - # # @param updated_at [Time, nil] - # # @param updated_by [String, nil] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param user_role [Symbol, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole, nil] - # # @param user_rpm_limit [Integer, nil] - # # @param user_tpm_limit [Integer, nil] - # # - # def initialize( - # token: nil, - # aliases: nil, - # allowed_cache_controls: nil, - # allowed_model_region: nil, - # api_key: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # config: nil, - # created_at: nil, - # created_by: nil, - # end_user_id: nil, - # end_user_max_budget: nil, - # end_user_rpm_limit: nil, - # end_user_tpm_limit: nil, - # expires: nil, - # key_alias: nil, - # key_name: nil, - # last_refreshed_at: nil, - # llm_budget_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_spend: nil, - # models: nil, - # org_id: nil, - # parent_otel_span: nil, - # permissions: nil, - # rpm_limit: nil, - # rpm_limit_per_model: nil, - # soft_budget: nil, - # soft_budget_cooldown: nil, - # spend: nil, - # team_alias: nil, - # team_blocked: nil, - # team_id: nil, - # team_max_budget: nil, - # team_member: nil, - # team_member_spend: nil, - # team_metadata: nil, - # team_model_aliases: nil, - # team_models: nil, - # team_rpm_limit: nil, - # team_spend: nil, - # team_tpm_limit: nil, - # tpm_limit: nil, - # tpm_limit_per_model: nil, - # updated_at: nil, - # updated_by: nil, - # user_email: nil, - # user_id: nil, - # user_role: nil, - # user_rpm_limit: nil, - # user_tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(token: nil, aliases: nil, allowed_cache_controls: nil, allowed_model_region: nil, allowed_routes: nil, api_key: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_reset_at: nil, config: nil, created_at: nil, created_by: nil, end_user_id: nil, end_user_max_budget: nil, end_user_rpm_limit: nil, end_user_tpm_limit: nil, expires: nil, key_alias: nil, key_name: nil, key_rotation_at: nil, last_refreshed_at: nil, last_rotation_at: nil, litellm_budget_table: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_spend: nil, models: nil, object_permission: nil, object_permission_id: nil, org_id: nil, organization_max_budget: nil, organization_metadata: nil, organization_rpm_limit: nil, organization_tpm_limit: nil, parent_otel_span: nil, permissions: nil, request_route: nil, rotation_count: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, rpm_limit_per_model: nil, soft_budget: nil, soft_budget_cooldown: nil, spend: nil, team_alias: nil, team_blocked: nil, team_id: nil, team_max_budget: nil, team_member: nil, team_member_rpm_limit: nil, team_member_spend: nil, team_member_tpm_limit: nil, team_metadata: nil, team_model_aliases: nil, team_models: nil, team_object_permission_id: nil, team_rpm_limit: nil, team_spend: nil, team_tpm_limit: nil, tpm_limit: nil, tpm_limit_per_model: nil, updated_at: nil, updated_by: nil, user: nil, user_email: nil, user_id: nil, user_max_budget: nil, user_role: nil, user_rpm_limit: nil, user_spend: nil, user_tpm_limit: nil) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth} for more details. + # + # Return the row in the db + # + # @param token [String, nil] + # + # @param aliases [Hash{Symbol=>Object}] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_model_region [Symbol, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion, nil] + # + # @param allowed_routes [Array, nil] + # + # @param api_key [String, nil] + # + # @param auto_rotate [Boolean, nil] + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param config [Hash{Symbol=>Object}] + # + # @param created_at [Time, nil] + # + # @param created_by [String, nil] + # + # @param end_user_id [String, nil] + # + # @param end_user_max_budget [Float, nil] + # + # @param end_user_rpm_limit [Integer, nil] + # + # @param end_user_tpm_limit [Integer, nil] + # + # @param expires [String, Time, nil] + # + # @param key_alias [String, nil] + # + # @param key_name [String, nil] + # + # @param key_rotation_at [Time, nil] + # + # @param last_refreshed_at [Float, nil] + # + # @param last_rotation_at [Time, nil] + # + # @param litellm_budget_table [Hash{Symbol=>Object}, nil] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}] + # + # @param model_max_budget [Hash{Symbol=>Object}] + # + # @param model_spend [Hash{Symbol=>Object}] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param org_id [String, nil] + # + # @param organization_max_budget [Float, nil] + # + # @param organization_metadata [Hash{Symbol=>Object}, nil] + # + # @param organization_rpm_limit [Integer, nil] + # + # @param organization_tpm_limit [Integer, nil] + # + # @param parent_otel_span [Object] + # + # @param permissions [Hash{Symbol=>Object}] + # + # @param request_route [String, nil] + # + # @param rotation_count [Integer, nil] + # + # @param rotation_interval [String, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param rpm_limit_per_model [Hash{Symbol=>Integer}, nil] + # + # @param soft_budget [Float, nil] + # + # @param soft_budget_cooldown [Boolean] + # + # @param spend [Float] + # + # @param team_alias [String, nil] + # + # @param team_blocked [Boolean] + # + # @param team_id [String, nil] + # + # @param team_max_budget [Float, nil] + # + # @param team_member [Hanzoai::Models::Member, nil] + # + # @param team_member_rpm_limit [Integer, nil] + # + # @param team_member_spend [Float, nil] + # + # @param team_member_tpm_limit [Integer, nil] + # + # @param team_metadata [Hash{Symbol=>Object}, nil] + # + # @param team_model_aliases [Hash{Symbol=>Object}, nil] + # + # @param team_models [Array] + # + # @param team_object_permission_id [String, nil] + # + # @param team_rpm_limit [Integer, nil] + # + # @param team_spend [Float, nil] + # + # @param team_tpm_limit [Integer, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param tpm_limit_per_model [Hash{Symbol=>Integer}, nil] + # + # @param updated_at [Time, nil] + # + # @param updated_by [String, nil] + # + # @param user [Object] + # + # @param user_email [String, nil] + # + # @param user_id [String, nil] + # + # @param user_max_budget [Float, nil] + # + # @param user_role [Symbol, Hanzoai::Models::UserRoles, nil] Admin Roles: + # + # @param user_rpm_limit [Integer, nil] + # + # @param user_spend [Float, nil] + # + # @param user_tpm_limit [Integer, nil] # @see Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth#allowed_model_region module AllowedModelRegion @@ -519,11 +614,8 @@ module AllowedModelRegion EU = :eu US = :us - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end # @see Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth#expires @@ -534,46 +626,447 @@ module Expires variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end - # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization + # @see Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + end + + class LiteLlmDeletedVerificationToken < Hanzoai::Internal::Type::BaseModel + # @!attribute id # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend + # @return [String, nil] + optional :id, String, nil?: true + + # @!attribute token # - # Team Roles: TEAM: used for JWT auth + # @return [String, nil] + optional :token, String, nil?: true + + # @!attribute aliases # - # Customer Roles: CUSTOMER: External users -> these are customers + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute allowed_cache_controls # - # @see Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth#user_role - module UserRole - extend Hanzoai::Internal::Type::Enum + # @return [Array, nil] + optional :allowed_cache_controls, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute auto_rotate + # + # @return [Boolean, nil] + optional :auto_rotate, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute blocked + # + # @return [Boolean, nil] + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute budget_duration + # + # @return [String, nil] + optional :budget_duration, String, nil?: true + + # @!attribute budget_reset_at + # + # @return [Time, nil] + optional :budget_reset_at, Time, nil?: true + + # @!attribute config + # + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true + + # @!attribute created_by + # + # @return [String, nil] + optional :created_by, String, nil?: true + + # @!attribute deleted_at + # + # @return [Time, nil] + optional :deleted_at, Time, nil?: true + + # @!attribute deleted_by + # + # @return [String, nil] + optional :deleted_by, String, nil?: true + + # @!attribute deleted_by_api_key + # + # @return [String, nil] + optional :deleted_by_api_key, String, nil?: true + + # @!attribute expires + # + # @return [String, Time, nil] + optional :expires, + union: -> { Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::Expires }, + nil?: true + + # @!attribute key_alias + # + # @return [String, nil] + optional :key_alias, String, nil?: true + + # @!attribute key_name + # + # @return [String, nil] + optional :key_name, String, nil?: true + + # @!attribute key_rotation_at + # + # @return [Time, nil] + optional :key_rotation_at, Time, nil?: true + + # @!attribute last_rotation_at + # + # @return [Time, nil] + optional :last_rotation_at, Time, nil?: true + + # @!attribute litellm_budget_table + # + # @return [Hash{Symbol=>Object}, nil] + optional :litellm_budget_table, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - PROXY_ADMIN = :proxy_admin - PROXY_ADMIN_VIEWER = :proxy_admin_viewer - ORG_ADMIN = :org_admin - INTERNAL_USER = :internal_user - INTERNAL_USER_VIEWER = :internal_user_viewer - TEAM = :team - CUSTOMER = :customer + # @!attribute litellm_changed_by + # + # @return [String, nil] + optional :litellm_changed_by, String, nil?: true + + # @!attribute max_budget + # + # @return [Float, nil] + optional :max_budget, Float, nil?: true + + # @!attribute max_parallel_requests + # + # @return [Integer, nil] + optional :max_parallel_requests, Integer, nil?: true - finalize! + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute model_max_budget + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute model_spend + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_spend, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute models + # + # @return [Array, nil] + optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission }, + nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true + + # @!attribute org_id + # + # @return [String, nil] + optional :org_id, String, nil?: true + + # @!attribute permissions + # + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute rotation_count + # + # @return [Integer, nil] + optional :rotation_count, Integer, nil?: true + + # @!attribute rotation_interval + # + # @return [String, nil] + optional :rotation_interval, String, nil?: true + + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute rpm_limit + # + # @return [Integer, nil] + optional :rpm_limit, Integer, nil?: true + + # @!attribute soft_budget_cooldown + # + # @return [Boolean, nil] + optional :soft_budget_cooldown, Hanzoai::Internal::Type::Boolean + + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float + + # @!attribute team_id + # + # @return [String, nil] + optional :team_id, String, nil?: true + + # @!attribute tpm_limit + # + # @return [Integer, nil] + optional :tpm_limit, Integer, nil?: true + + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + + # @!attribute updated_by + # + # @return [String, nil] + optional :updated_by, String, nil?: true + + # @!attribute user_id + # + # @return [String, nil] + optional :user_id, String, nil?: true + + # @!method initialize(id: nil, token: nil, aliases: nil, allowed_cache_controls: nil, allowed_routes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_reset_at: nil, config: nil, created_at: nil, created_by: nil, deleted_at: nil, deleted_by: nil, deleted_by_api_key: nil, expires: nil, key_alias: nil, key_name: nil, key_rotation_at: nil, last_rotation_at: nil, litellm_budget_table: nil, litellm_changed_by: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_spend: nil, models: nil, object_permission: nil, object_permission_id: nil, org_id: nil, permissions: nil, rotation_count: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, soft_budget_cooldown: nil, spend: nil, team_id: nil, tpm_limit: nil, updated_at: nil, updated_by: nil, user_id: nil) + # Recording of deleted keys for audit purposes. Mirrors LiteLLM_VerificationToken + # plus metadata captured at deletion time. + # + # @param id [String, nil] + # + # @param token [String, nil] + # + # @param aliases [Hash{Symbol=>Object}] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_routes [Array, nil] + # + # @param auto_rotate [Boolean, nil] + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param config [Hash{Symbol=>Object}] + # + # @param created_at [Time, nil] + # + # @param created_by [String, nil] + # + # @param deleted_at [Time, nil] + # + # @param deleted_by [String, nil] + # + # @param deleted_by_api_key [String, nil] + # + # @param expires [String, Time, nil] + # + # @param key_alias [String, nil] + # + # @param key_name [String, nil] + # + # @param key_rotation_at [Time, nil] + # + # @param last_rotation_at [Time, nil] + # + # @param litellm_budget_table [Hash{Symbol=>Object}, nil] + # + # @param litellm_changed_by [String, nil] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}] + # + # @param model_max_budget [Hash{Symbol=>Object}] + # + # @param model_spend [Hash{Symbol=>Object}] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param org_id [String, nil] + # + # @param permissions [Hash{Symbol=>Object}] + # + # @param rotation_count [Integer, nil] + # + # @param rotation_interval [String, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param soft_budget_cooldown [Boolean] + # + # @param spend [Float] + # + # @param team_id [String, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] + # + # @param updated_by [String, nil] + # + # @param user_id [String, nil] + + # @see Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken#expires + module Expires + extend Hanzoai::Internal::Type::Union + + variant String + + variant Time + + # @!method self.variants + # @return [Array(String, Time)] + end - # @!parse - # # @return [Array] - # def self.values; end + # @see Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] end end - # @!parse - # # @return [Array(String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth, Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken)] end end end diff --git a/lib/hanzoai/models/key_regenerate_by_key_params.rb b/lib/hanzoai/models/key_regenerate_by_key_params.rb index 20b44362..33275a19 100644 --- a/lib/hanzoai/models/key_regenerate_by_key_params.rb +++ b/lib/hanzoai/models/key_regenerate_by_key_params.rb @@ -4,28 +4,24 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#regenerate_by_key class KeyRegenerateByKeyParams < Hanzoai::Models::Key::RegenerateKeyRequest - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" + optional :litellm_changed_by, String - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(llm_changed_by: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyRegenerateByKeyParams} for more details. + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/key_retrieve_info_params.rb b/lib/hanzoai/models/key_retrieve_info_params.rb index 9939f20e..ae75a160 100644 --- a/lib/hanzoai/models/key_retrieve_info_params.rb +++ b/lib/hanzoai/models/key_retrieve_info_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#retrieve_info class KeyRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute key @@ -14,13 +13,10 @@ class KeyRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key, String, nil?: true - # @!parse - # # @param key [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(key: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(key: nil, request_options: {}) + # @param key [String, nil] Key in the request parameters + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/key_retrieve_info_response.rb b/lib/hanzoai/models/key_retrieve_info_response.rb new file mode 100644 index 00000000..154daf3e --- /dev/null +++ b/lib/hanzoai/models/key_retrieve_info_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + KeyRetrieveInfoResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/key_unblock_params.rb b/lib/hanzoai/models/key_unblock_params.rb index 38d8136c..102b674f 100644 --- a/lib/hanzoai/models/key_unblock_params.rb +++ b/lib/hanzoai/models/key_unblock_params.rb @@ -4,28 +4,24 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#unblock class KeyUnblockParams < Hanzoai::Models::BlockKeyRequest - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" + optional :litellm_changed_by, String - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(llm_changed_by: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyUnblockParams} for more details. + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/key_unblock_response.rb b/lib/hanzoai/models/key_unblock_response.rb new file mode 100644 index 00000000..5e0608d2 --- /dev/null +++ b/lib/hanzoai/models/key_unblock_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + KeyUnblockResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/key_update_params.rb b/lib/hanzoai/models/key_update_params.rb index 46778d8b..3f598855 100644 --- a/lib/hanzoai/models/key_update_params.rb +++ b/lib/hanzoai/models/key_update_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Key#update class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute key @@ -15,8 +14,8 @@ class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute allowed_cache_controls # @@ -25,10 +24,34 @@ class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute allowed_passthrough_routes + # + # @return [Array, nil] + optional :allowed_passthrough_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute allowed_vector_store_indexes + # + # @return [Array, nil] + optional :allowed_vector_store_indexes, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex] }, + nil?: true + + # @!attribute auto_rotate + # + # @return [Boolean, nil] + optional :auto_rotate, Hanzoai::Internal::Type::Boolean, nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -42,8 +65,8 @@ class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute duration # @@ -77,39 +100,67 @@ class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_rpm_limit # - # @return [Object, nil] - optional :model_rpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_tpm_limit # - # @return [Object, nil] - optional :model_tpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::KeyUpdateParams::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::KeyUpdateParams::ObjectPermission }, nil?: true + # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute rotation_interval + # + # @return [String, nil] + optional :rotation_interval, String, nil?: true + + # @!attribute router_settings + # Set of params that you can modify via `router.update_settings()`. + # + # @return [Hanzoai::Models::KeyUpdateParams::RouterSettings, nil] + optional :router_settings, -> { Hanzoai::KeyUpdateParams::RouterSettings }, nil?: true # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true + # @!attribute rpm_limit_type + # + # @return [Symbol, Hanzoai::Models::KeyUpdateParams::RpmLimitType, nil] + optional :rpm_limit_type, enum: -> { Hanzoai::KeyUpdateParams::RpmLimitType }, nil?: true + # @!attribute spend # # @return [Float, nil] @@ -140,89 +191,300 @@ class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute tpm_limit_type + # + # @return [Symbol, Hanzoai::Models::KeyUpdateParams::TpmLimitType, nil] + optional :tpm_limit_type, enum: -> { Hanzoai::KeyUpdateParams::TpmLimitType }, nil?: true + # @!attribute user_id # # @return [String, nil] optional :user_id, String, nil?: true - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" - - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param key [String] - # # @param aliases [Object, nil] - # # @param allowed_cache_controls [Array, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param config [Object, nil] - # # @param duration [String, nil] - # # @param enforced_params [Array, nil] - # # @param guardrails [Array, nil] - # # @param key_alias [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_rpm_limit [Object, nil] - # # @param model_tpm_limit [Object, nil] - # # @param models [Array, nil] - # # @param permissions [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param tags [Array, nil] - # # @param team_id [String, nil] - # # @param temp_budget_expiry [Time, nil] - # # @param temp_budget_increase [Float, nil] - # # @param tpm_limit [Integer, nil] - # # @param user_id [String, nil] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # key:, - # aliases: nil, - # allowed_cache_controls: nil, - # blocked: nil, - # budget_duration: nil, - # budget_id: nil, - # config: nil, - # duration: nil, - # enforced_params: nil, - # guardrails: nil, - # key_alias: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_rpm_limit: nil, - # model_tpm_limit: nil, - # models: nil, - # permissions: nil, - # rpm_limit: nil, - # spend: nil, - # tags: nil, - # team_id: nil, - # temp_budget_expiry: nil, - # temp_budget_increase: nil, - # tpm_limit: nil, - # user_id: nil, - # llm_changed_by: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + optional :litellm_changed_by, String + + # @!method initialize(key:, aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, permissions: nil, prompts: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, spend: nil, tags: nil, team_id: nil, temp_budget_expiry: nil, temp_budget_increase: nil, tpm_limit: nil, tpm_limit_type: nil, user_id: nil, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyUpdateParams} for more details. + # + # @param key [String] + # + # @param aliases [Hash{Symbol=>Object}, nil] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_passthrough_routes [Array, nil] + # + # @param allowed_routes [Array, nil] + # + # @param allowed_vector_store_indexes [Array, nil] + # + # @param auto_rotate [Boolean, nil] + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_id [String, nil] + # + # @param config [Hash{Symbol=>Object}, nil] + # + # @param duration [String, nil] + # + # @param enforced_params [Array, nil] + # + # @param guardrails [Array, nil] + # + # @param key_alias [String, nil] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] + # + # @param models [Array, nil] + # + # @param object_permission [Hanzoai::Models::KeyUpdateParams::ObjectPermission, nil] + # + # @param permissions [Hash{Symbol=>Object}, nil] + # + # @param prompts [Array, nil] + # + # @param rotation_interval [String, nil] + # + # @param router_settings [Hanzoai::Models::KeyUpdateParams::RouterSettings, nil] Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::KeyUpdateParams::RpmLimitType, nil] + # + # @param spend [Float, nil] + # + # @param tags [Array, nil] + # + # @param team_id [String, nil] + # + # @param temp_budget_expiry [Time, nil] + # + # @param temp_budget_increase [Float, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::KeyUpdateParams::TpmLimitType, nil] + # + # @param user_id [String, nil] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + # @!attribute index_name + # + # @return [String] + required :index_name, String + + # @!attribute index_permissions + # + # @return [Array] + required :index_permissions, + -> { Hanzoai::Internal::Type::ArrayOf[enum: Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission] } + + # @!method initialize(index_name:, index_permissions:) + # @param index_name [String] + # @param index_permissions [Array] + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ = :read + WRITE = :write + + # @!method self.values + # @return [Array] + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + # @!attribute allowed_fails + # + # @return [Integer, nil] + optional :allowed_fails, Integer, nil?: true + + # @!attribute context_window_fallbacks + # + # @return [ArrayObject}>, nil] + optional :context_window_fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute cooldown_time + # + # @return [Float, nil] + optional :cooldown_time, Float, nil?: true + + # @!attribute fallbacks + # + # @return [ArrayObject}>, nil] + optional :fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute max_retries + # + # @return [Integer, nil] + optional :max_retries, Integer, nil?: true + + # @!attribute model_group_alias + # + # @return [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + optional :model_group_alias, + -> { + Hanzoai::Internal::Type::HashOf[union: Hanzoai::KeyUpdateParams::RouterSettings::ModelGroupAlias] + }, + nil?: true + + # @!attribute model_group_retry_policy + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_group_retry_policy, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute retry_after + # + # @return [Float, nil] + optional :retry_after, Float, nil?: true + + # @!attribute routing_strategy + # + # @return [String, nil] + optional :routing_strategy, String, nil?: true + + # @!attribute routing_strategy_args + # + # @return [Hash{Symbol=>Object}, nil] + optional :routing_strategy_args, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute timeout + # + # @return [Float, nil] + optional :timeout, Float, nil?: true + + # @!method initialize(allowed_fails: nil, context_window_fallbacks: nil, cooldown_time: nil, fallbacks: nil, max_retries: nil, model_group_alias: nil, model_group_retry_policy: nil, num_retries: nil, retry_after: nil, routing_strategy: nil, routing_strategy_args: nil, timeout: nil) + # Set of params that you can modify via `router.update_settings()`. + # + # @param allowed_fails [Integer, nil] + # @param context_window_fallbacks [ArrayObject}>, nil] + # @param cooldown_time [Float, nil] + # @param fallbacks [ArrayObject}>, nil] + # @param max_retries [Integer, nil] + # @param model_group_alias [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + # @param model_group_retry_policy [Hash{Symbol=>Object}, nil] + # @param num_retries [Integer, nil] + # @param retry_after [Float, nil] + # @param routing_strategy [String, nil] + # @param routing_strategy_args [Hash{Symbol=>Object}, nil] + # @param timeout [Float, nil] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::KeyUpdateParams::RouterSettings::ModelGroupAlias::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/hanzoai/models/key_update_response.rb b/lib/hanzoai/models/key_update_response.rb new file mode 100644 index 00000000..4720ebe8 --- /dev/null +++ b/lib/hanzoai/models/key_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + KeyUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/langfuse_create_params.rb b/lib/hanzoai/models/langfuse_create_params.rb index 66f31ec2..64d3f87b 100644 --- a/lib/hanzoai/models/langfuse_create_params.rb +++ b/lib/hanzoai/models/langfuse_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Langfuse#create class LangfuseCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/langfuse_create_response.rb b/lib/hanzoai/models/langfuse_create_response.rb new file mode 100644 index 00000000..c8442b25 --- /dev/null +++ b/lib/hanzoai/models/langfuse_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + LangfuseCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/langfuse_delete_params.rb b/lib/hanzoai/models/langfuse_delete_params.rb index 55712f7a..59faece0 100644 --- a/lib/hanzoai/models/langfuse_delete_params.rb +++ b/lib/hanzoai/models/langfuse_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Langfuse#delete class LangfuseDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/langfuse_delete_response.rb b/lib/hanzoai/models/langfuse_delete_response.rb new file mode 100644 index 00000000..b3947e8a --- /dev/null +++ b/lib/hanzoai/models/langfuse_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + LangfuseDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/langfuse_patch_params.rb b/lib/hanzoai/models/langfuse_patch_params.rb index bd1bad4b..8fc5593f 100644 --- a/lib/hanzoai/models/langfuse_patch_params.rb +++ b/lib/hanzoai/models/langfuse_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Langfuse#patch class LangfusePatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/langfuse_patch_response.rb b/lib/hanzoai/models/langfuse_patch_response.rb new file mode 100644 index 00000000..d9786544 --- /dev/null +++ b/lib/hanzoai/models/langfuse_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + LangfusePatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/langfuse_retrieve_params.rb b/lib/hanzoai/models/langfuse_retrieve_params.rb index e0baf390..258bd4d6 100644 --- a/lib/hanzoai/models/langfuse_retrieve_params.rb +++ b/lib/hanzoai/models/langfuse_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Langfuse#retrieve class LangfuseRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/langfuse_retrieve_response.rb b/lib/hanzoai/models/langfuse_retrieve_response.rb new file mode 100644 index 00000000..7b88c81c --- /dev/null +++ b/lib/hanzoai/models/langfuse_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + LangfuseRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/langfuse_update_params.rb b/lib/hanzoai/models/langfuse_update_params.rb index 4af025d1..a557983c 100644 --- a/lib/hanzoai/models/langfuse_update_params.rb +++ b/lib/hanzoai/models/langfuse_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Langfuse#update class LangfuseUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/langfuse_update_response.rb b/lib/hanzoai/models/langfuse_update_response.rb new file mode 100644 index 00000000..0e9e5454 --- /dev/null +++ b/lib/hanzoai/models/langfuse_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + LangfuseUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/lite_llm_end_user_table.rb b/lib/hanzoai/models/lite_llm_end_user_table.rb new file mode 100644 index 00000000..92939032 --- /dev/null +++ b/lib/hanzoai/models/lite_llm_end_user_table.rb @@ -0,0 +1,74 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @see Hanzoai::Resources::Customer#retrieve_info + class LiteLlmEndUserTable < Hanzoai::Internal::Type::BaseModel + # @!attribute blocked + # + # @return [Boolean] + required :blocked, Hanzoai::Internal::Type::Boolean + + # @!attribute user_id + # + # @return [String] + required :user_id, String + + # @!attribute alias_ + # + # @return [String, nil] + optional :alias_, String, api_name: :alias, nil?: true + + # @!attribute allowed_model_region + # + # @return [Symbol, Hanzoai::Models::LiteLlmEndUserTable::AllowedModelRegion, nil] + optional :allowed_model_region, + enum: -> { + Hanzoai::LiteLlmEndUserTable::AllowedModelRegion + }, + nil?: true + + # @!attribute default_model + # + # @return [String, nil] + optional :default_model, String, nil?: true + + # @!attribute litellm_budget_table + # Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @return [Hanzoai::Models::BudgetTable, nil] + optional :litellm_budget_table, -> { Hanzoai::BudgetTable }, nil?: true + + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float + + # @!method initialize(blocked:, user_id:, alias_: nil, allowed_model_region: nil, default_model: nil, litellm_budget_table: nil, spend: nil) + # @param blocked [Boolean] + # + # @param user_id [String] + # + # @param alias_ [String, nil] + # + # @param allowed_model_region [Symbol, Hanzoai::Models::LiteLlmEndUserTable::AllowedModelRegion, nil] + # + # @param default_model [String, nil] + # + # @param litellm_budget_table [Hanzoai::Models::BudgetTable, nil] Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @param spend [Float] + + # @see Hanzoai::Models::LiteLlmEndUserTable#allowed_model_region + module AllowedModelRegion + extend Hanzoai::Internal::Type::Enum + + EU = :eu + US = :us + + # @!method self.values + # @return [Array] + end + end + end +end diff --git a/lib/hanzoai/models/member.rb b/lib/hanzoai/models/member.rb index a7a1cec6..98dc09cf 100644 --- a/lib/hanzoai/models/member.rb +++ b/lib/hanzoai/models/member.rb @@ -4,29 +4,38 @@ module Hanzoai module Models class Member < Hanzoai::Internal::Type::BaseModel # @!attribute role + # The role of the user within the team. 'admin' users can manage team settings and + # members, 'user' is a regular team member # # @return [Symbol, Hanzoai::Models::Member::Role] - required :role, enum: -> { Hanzoai::Models::Member::Role } + required :role, enum: -> { Hanzoai::Member::Role } # @!attribute user_email + # The email address of the user to add. Either user_id or user_email must be + # provided # # @return [String, nil] optional :user_email, String, nil?: true # @!attribute user_id + # The unique ID of the user to add. Either user_id or user_email must be provided # # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param role [Symbol, Hanzoai::Models::Member::Role] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # - # def initialize(role:, user_email: nil, user_id: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(role:, user_email: nil, user_id: nil) + # Some parameter documentations has been truncated, see {Hanzoai::Models::Member} + # for more details. + # + # @param role [Symbol, Hanzoai::Models::Member::Role] The role of the user within the team. 'admin' users can manage team settings and + # + # @param user_email [String, nil] The email address of the user to add. Either user_id or user_email must be provi + # + # @param user_id [String, nil] The unique ID of the user to add. Either user_id or user_email must be provided + # The role of the user within the team. 'admin' users can manage team settings and + # members, 'user' is a regular team member + # # @see Hanzoai::Models::Member#role module Role extend Hanzoai::Internal::Type::Enum @@ -34,11 +43,8 @@ module Role ADMIN = :admin USER = :user - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/model/info_list_params.rb b/lib/hanzoai/models/model/info_list_params.rb index d67861bb..5a075ec6 100644 --- a/lib/hanzoai/models/model/info_list_params.rb +++ b/lib/hanzoai/models/model/info_list_params.rb @@ -5,22 +5,17 @@ module Models module Model # @see Hanzoai::Resources::Model::Info#list class InfoListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute llm_model_id + # @!attribute litellm_model_id # # @return [String, nil] - optional :llm_model_id, String, nil?: true + optional :litellm_model_id, String, nil?: true - # @!parse - # # @param llm_model_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(llm_model_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(litellm_model_id: nil, request_options: {}) + # @param litellm_model_id [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/model/info_list_response.rb b/lib/hanzoai/models/model/info_list_response.rb new file mode 100644 index 00000000..8fd510cc --- /dev/null +++ b/lib/hanzoai/models/model/info_list_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Model + # @type [Hanzoai::Internal::Type::Converter] + InfoListResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/model/update_deployment.rb b/lib/hanzoai/models/model/update_deployment.rb index 768183a3..df64307d 100644 --- a/lib/hanzoai/models/model/update_deployment.rb +++ b/lib/hanzoai/models/model/update_deployment.rb @@ -4,32 +4,28 @@ module Hanzoai module Models module Model class UpdateDeployment < Hanzoai::Internal::Type::BaseModel - # @!attribute llm_params + # @!attribute litellm_params # - # @return [Hanzoai::Models::Model::UpdateDeployment::LlmParams, nil] - optional :llm_params, -> { Hanzoai::Models::Model::UpdateDeployment::LlmParams }, nil?: true + # @return [Hanzoai::Models::Model::UpdateDeployment::LitellmParams, nil] + optional :litellm_params, -> { Hanzoai::Model::UpdateDeployment::LitellmParams }, nil?: true # @!attribute model_info # # @return [Hanzoai::Models::ModelInfo, nil] - optional :model_info, -> { Hanzoai::Models::ModelInfo }, nil?: true + optional :model_info, -> { Hanzoai::ModelInfo }, nil?: true # @!attribute model_name # # @return [String, nil] optional :model_name, String, nil?: true - # @!parse - # # @param llm_params [Hanzoai::Models::Model::UpdateDeployment::LlmParams, nil] - # # @param model_info [Hanzoai::Models::ModelInfo, nil] - # # @param model_name [String, nil] - # # - # def initialize(llm_params: nil, model_info: nil, model_name: nil, **) = super + # @!method initialize(litellm_params: nil, model_info: nil, model_name: nil) + # @param litellm_params [Hanzoai::Models::Model::UpdateDeployment::LitellmParams, nil] + # @param model_info [Hanzoai::Models::ModelInfo, nil] + # @param model_name [String, nil] - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::Model::UpdateDeployment#llm_params - class LlmParams < Hanzoai::Internal::Type::BaseModel + # @see Hanzoai::Models::Model::UpdateDeployment#litellm_params + class LitellmParams < Hanzoai::Internal::Type::BaseModel # @!attribute api_base # # @return [String, nil] @@ -45,11 +41,36 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :api_version, String, nil?: true + # @!attribute auto_router_config + # + # @return [String, nil] + optional :auto_router_config, String, nil?: true + + # @!attribute auto_router_config_path + # + # @return [String, nil] + optional :auto_router_config_path, String, nil?: true + + # @!attribute auto_router_default_model + # + # @return [String, nil] + optional :auto_router_default_model, String, nil?: true + + # @!attribute auto_router_embedding_model + # + # @return [String, nil] + optional :auto_router_embedding_model, String, nil?: true + # @!attribute aws_access_key_id # # @return [String, nil] optional :aws_access_key_id, String, nil?: true + # @!attribute aws_bedrock_runtime_endpoint + # + # @return [String, nil] + optional :aws_bedrock_runtime_endpoint, String, nil?: true + # @!attribute aws_region_name # # @return [String, nil] @@ -65,11 +86,63 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :budget_duration, String, nil?: true + # @!attribute cache_creation_input_audio_token_cost + # + # @return [Float, nil] + optional :cache_creation_input_audio_token_cost, Float, nil?: true + + # @!attribute cache_creation_input_token_cost + # + # @return [Float, nil] + optional :cache_creation_input_token_cost, Float, nil?: true + + # @!attribute cache_creation_input_token_cost_above_1hr + # + # @return [Float, nil] + optional :cache_creation_input_token_cost_above_1hr, Float, nil?: true + + # @!attribute cache_creation_input_token_cost_above_200k_tokens + # + # @return [Float, nil] + optional :cache_creation_input_token_cost_above_200k_tokens, Float, nil?: true + + # @!attribute cache_read_input_audio_token_cost + # + # @return [Float, nil] + optional :cache_read_input_audio_token_cost, Float, nil?: true + + # @!attribute cache_read_input_token_cost + # + # @return [Float, nil] + optional :cache_read_input_token_cost, Float, nil?: true + + # @!attribute cache_read_input_token_cost_above_200k_tokens + # + # @return [Float, nil] + optional :cache_read_input_token_cost_above_200k_tokens, Float, nil?: true + + # @!attribute cache_read_input_token_cost_flex + # + # @return [Float, nil] + optional :cache_read_input_token_cost_flex, Float, nil?: true + + # @!attribute cache_read_input_token_cost_priority + # + # @return [Float, nil] + optional :cache_read_input_token_cost_priority, Float, nil?: true + + # @!attribute citation_cost_per_token + # + # @return [Float, nil] + optional :citation_cost_per_token, Float, nil?: true + # @!attribute configurable_clientside_auth_params # - # @return [Array, nil] + # @return [Array, nil] optional :configurable_clientside_auth_params, - -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Models::Model::UpdateDeployment::LlmParams::ConfigurableClientsideAuthParam] }, + -> { + Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam] + }, nil?: true # @!attribute custom_llm_provider @@ -77,6 +150,56 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :custom_llm_provider, String, nil?: true + # @!attribute gcs_bucket_name + # + # @return [String, nil] + optional :gcs_bucket_name, String, nil?: true + + # @!attribute input_cost_per_audio_per_second + # + # @return [Float, nil] + optional :input_cost_per_audio_per_second, Float, nil?: true + + # @!attribute input_cost_per_audio_per_second_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_audio_per_second_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_audio_token + # + # @return [Float, nil] + optional :input_cost_per_audio_token, Float, nil?: true + + # @!attribute input_cost_per_character + # + # @return [Float, nil] + optional :input_cost_per_character, Float, nil?: true + + # @!attribute input_cost_per_character_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_character_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_image + # + # @return [Float, nil] + optional :input_cost_per_image, Float, nil?: true + + # @!attribute input_cost_per_image_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_image_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_pixel + # + # @return [Float, nil] + optional :input_cost_per_pixel, Float, nil?: true + + # @!attribute input_cost_per_query + # + # @return [Float, nil] + optional :input_cost_per_query, Float, nil?: true + # @!attribute input_cost_per_second # # @return [Float, nil] @@ -87,10 +210,65 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :input_cost_per_token, Float, nil?: true - # @!attribute llm_trace_id + # @!attribute input_cost_per_token_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_token_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_token_above_200k_tokens + # + # @return [Float, nil] + optional :input_cost_per_token_above_200k_tokens, Float, nil?: true + + # @!attribute input_cost_per_token_batches + # + # @return [Float, nil] + optional :input_cost_per_token_batches, Float, nil?: true + + # @!attribute input_cost_per_token_cache_hit + # + # @return [Float, nil] + optional :input_cost_per_token_cache_hit, Float, nil?: true + + # @!attribute input_cost_per_token_flex + # + # @return [Float, nil] + optional :input_cost_per_token_flex, Float, nil?: true + + # @!attribute input_cost_per_token_priority + # + # @return [Float, nil] + optional :input_cost_per_token_priority, Float, nil?: true + + # @!attribute input_cost_per_video_per_second + # + # @return [Float, nil] + optional :input_cost_per_video_per_second, Float, nil?: true + + # @!attribute input_cost_per_video_per_second_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_video_per_second_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_video_per_second_above_15s_interval + # + # @return [Float, nil] + optional :input_cost_per_video_per_second_above_15s_interval, Float, nil?: true + + # @!attribute input_cost_per_video_per_second_above_8s_interval + # + # @return [Float, nil] + optional :input_cost_per_video_per_second_above_8s_interval, Float, nil?: true + + # @!attribute litellm_credential_name # # @return [String, nil] - optional :llm_trace_id, String, nil?: true + optional :litellm_credential_name, String, nil?: true + + # @!attribute litellm_trace_id + # + # @return [String, nil] + optional :litellm_trace_id, String, nil?: true # @!attribute max_budget # @@ -110,7 +288,19 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @!attribute merge_reasoning_content_in_choices # # @return [Boolean, nil] - optional :merge_reasoning_content_in_choices, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :merge_reasoning_content_in_choices, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute milvus_text_field + # + # @return [String, nil] + optional :milvus_text_field, String, nil?: true + + # @!attribute mock_response + # + # @return [String, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse, Object, nil] + optional :mock_response, + union: -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse }, + nil?: true # @!attribute model # @@ -119,14 +309,54 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @!attribute model_info # - # @return [Object, nil] - optional :model_info, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_info, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute organization # # @return [String, nil] optional :organization, String, nil?: true + # @!attribute output_cost_per_audio_per_second + # + # @return [Float, nil] + optional :output_cost_per_audio_per_second, Float, nil?: true + + # @!attribute output_cost_per_audio_token + # + # @return [Float, nil] + optional :output_cost_per_audio_token, Float, nil?: true + + # @!attribute output_cost_per_character + # + # @return [Float, nil] + optional :output_cost_per_character, Float, nil?: true + + # @!attribute output_cost_per_character_above_128k_tokens + # + # @return [Float, nil] + optional :output_cost_per_character_above_128k_tokens, Float, nil?: true + + # @!attribute output_cost_per_image + # + # @return [Float, nil] + optional :output_cost_per_image, Float, nil?: true + + # @!attribute output_cost_per_image_token + # + # @return [Float, nil] + optional :output_cost_per_image_token, Float, nil?: true + + # @!attribute output_cost_per_pixel + # + # @return [Float, nil] + optional :output_cost_per_pixel, Float, nil?: true + + # @!attribute output_cost_per_reasoning_token + # + # @return [Float, nil] + optional :output_cost_per_reasoning_token, Float, nil?: true + # @!attribute output_cost_per_second # # @return [Float, nil] @@ -137,6 +367,36 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :output_cost_per_token, Float, nil?: true + # @!attribute output_cost_per_token_above_128k_tokens + # + # @return [Float, nil] + optional :output_cost_per_token_above_128k_tokens, Float, nil?: true + + # @!attribute output_cost_per_token_above_200k_tokens + # + # @return [Float, nil] + optional :output_cost_per_token_above_200k_tokens, Float, nil?: true + + # @!attribute output_cost_per_token_batches + # + # @return [Float, nil] + optional :output_cost_per_token_batches, Float, nil?: true + + # @!attribute output_cost_per_token_flex + # + # @return [Float, nil] + optional :output_cost_per_token_flex, Float, nil?: true + + # @!attribute output_cost_per_token_priority + # + # @return [Float, nil] + optional :output_cost_per_token_priority, Float, nil?: true + + # @!attribute output_cost_per_video_per_second + # + # @return [Float, nil] + optional :output_cost_per_video_per_second, Float, nil?: true + # @!attribute region_name # # @return [String, nil] @@ -147,17 +407,45 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :rpm, Integer, nil?: true + # @!attribute s3_bucket_name + # + # @return [String, nil] + optional :s3_bucket_name, String, nil?: true + + # @!attribute s3_encryption_key_id + # + # @return [String, nil] + optional :s3_encryption_key_id, String, nil?: true + + # @!attribute search_context_cost_per_query + # + # @return [Hash{Symbol=>Object}, nil] + optional :search_context_cost_per_query, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + # @!attribute stream_timeout # # @return [Float, String, nil] optional :stream_timeout, - union: -> { Hanzoai::Models::Model::UpdateDeployment::LlmParams::StreamTimeout }, + union: -> { Hanzoai::Model::UpdateDeployment::LitellmParams::StreamTimeout }, + nil?: true + + # @!attribute tiered_pricing + # + # @return [ArrayObject}>, nil] + optional :tiered_pricing, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], nil?: true # @!attribute timeout # # @return [Float, String, nil] - optional :timeout, union: -> { Hanzoai::Models::Model::UpdateDeployment::LlmParams::Timeout }, nil?: true + optional :timeout, + union: -> { + Hanzoai::Model::UpdateDeployment::LitellmParams::Timeout + }, + nil?: true # @!attribute tpm # @@ -167,13 +455,23 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @!attribute use_in_pass_through # # @return [Boolean, nil] - optional :use_in_pass_through, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :use_in_pass_through, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute use_litellm_proxy + # + # @return [Boolean, nil] + optional :use_litellm_proxy, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute vector_store_id + # + # @return [String, nil] + optional :vector_store_id, String, nil?: true # @!attribute vertex_credentials # - # @return [Object, String, nil] + # @return [String, Hash{Symbol=>Object}, nil] optional :vertex_credentials, - union: -> { Hanzoai::Models::Model::UpdateDeployment::LlmParams::VertexCredentials }, + union: -> { Hanzoai::Model::UpdateDeployment::LitellmParams::VertexCredentials }, nil?: true # @!attribute vertex_location @@ -191,91 +489,684 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :watsonx_region_name, String, nil?: true - # @!parse - # # @param api_base [String, nil] - # # @param api_key [String, nil] - # # @param api_version [String, nil] - # # @param aws_access_key_id [String, nil] - # # @param aws_region_name [String, nil] - # # @param aws_secret_access_key [String, nil] - # # @param budget_duration [String, nil] - # # @param configurable_clientside_auth_params [Array, nil] - # # @param custom_llm_provider [String, nil] - # # @param input_cost_per_second [Float, nil] - # # @param input_cost_per_token [Float, nil] - # # @param llm_trace_id [String, nil] - # # @param max_budget [Float, nil] - # # @param max_file_size_mb [Float, nil] - # # @param max_retries [Integer, nil] - # # @param merge_reasoning_content_in_choices [Boolean, nil] - # # @param model [String, nil] - # # @param model_info [Object, nil] - # # @param organization [String, nil] - # # @param output_cost_per_second [Float, nil] - # # @param output_cost_per_token [Float, nil] - # # @param region_name [String, nil] - # # @param rpm [Integer, nil] - # # @param stream_timeout [Float, String, nil] - # # @param timeout [Float, String, nil] - # # @param tpm [Integer, nil] - # # @param use_in_pass_through [Boolean, nil] - # # @param vertex_credentials [Object, String, nil] - # # @param vertex_location [String, nil] - # # @param vertex_project [String, nil] - # # @param watsonx_region_name [String, nil] - # # - # def initialize( - # api_base: nil, - # api_key: nil, - # api_version: nil, - # aws_access_key_id: nil, - # aws_region_name: nil, - # aws_secret_access_key: nil, - # budget_duration: nil, - # configurable_clientside_auth_params: nil, - # custom_llm_provider: nil, - # input_cost_per_second: nil, - # input_cost_per_token: nil, - # llm_trace_id: nil, - # max_budget: nil, - # max_file_size_mb: nil, - # max_retries: nil, - # merge_reasoning_content_in_choices: nil, - # model: nil, - # model_info: nil, - # organization: nil, - # output_cost_per_second: nil, - # output_cost_per_token: nil, - # region_name: nil, - # rpm: nil, - # stream_timeout: nil, - # timeout: nil, - # tpm: nil, - # use_in_pass_through: nil, - # vertex_credentials: nil, - # vertex_location: nil, - # vertex_project: nil, - # watsonx_region_name: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(api_base: nil, api_key: nil, api_version: nil, auto_router_config: nil, auto_router_config_path: nil, auto_router_default_model: nil, auto_router_embedding_model: nil, aws_access_key_id: nil, aws_bedrock_runtime_endpoint: nil, aws_region_name: nil, aws_secret_access_key: nil, budget_duration: nil, cache_creation_input_audio_token_cost: nil, cache_creation_input_token_cost: nil, cache_creation_input_token_cost_above_1hr: nil, cache_creation_input_token_cost_above_200k_tokens: nil, cache_read_input_audio_token_cost: nil, cache_read_input_token_cost: nil, cache_read_input_token_cost_above_200k_tokens: nil, cache_read_input_token_cost_flex: nil, cache_read_input_token_cost_priority: nil, citation_cost_per_token: nil, configurable_clientside_auth_params: nil, custom_llm_provider: nil, gcs_bucket_name: nil, input_cost_per_audio_per_second: nil, input_cost_per_audio_per_second_above_128k_tokens: nil, input_cost_per_audio_token: nil, input_cost_per_character: nil, input_cost_per_character_above_128k_tokens: nil, input_cost_per_image: nil, input_cost_per_image_above_128k_tokens: nil, input_cost_per_pixel: nil, input_cost_per_query: nil, input_cost_per_second: nil, input_cost_per_token: nil, input_cost_per_token_above_128k_tokens: nil, input_cost_per_token_above_200k_tokens: nil, input_cost_per_token_batches: nil, input_cost_per_token_cache_hit: nil, input_cost_per_token_flex: nil, input_cost_per_token_priority: nil, input_cost_per_video_per_second: nil, input_cost_per_video_per_second_above_128k_tokens: nil, input_cost_per_video_per_second_above_15s_interval: nil, input_cost_per_video_per_second_above_8s_interval: nil, litellm_credential_name: nil, litellm_trace_id: nil, max_budget: nil, max_file_size_mb: nil, max_retries: nil, merge_reasoning_content_in_choices: nil, milvus_text_field: nil, mock_response: nil, model: nil, model_info: nil, organization: nil, output_cost_per_audio_per_second: nil, output_cost_per_audio_token: nil, output_cost_per_character: nil, output_cost_per_character_above_128k_tokens: nil, output_cost_per_image: nil, output_cost_per_image_token: nil, output_cost_per_pixel: nil, output_cost_per_reasoning_token: nil, output_cost_per_second: nil, output_cost_per_token: nil, output_cost_per_token_above_128k_tokens: nil, output_cost_per_token_above_200k_tokens: nil, output_cost_per_token_batches: nil, output_cost_per_token_flex: nil, output_cost_per_token_priority: nil, output_cost_per_video_per_second: nil, region_name: nil, rpm: nil, s3_bucket_name: nil, s3_encryption_key_id: nil, search_context_cost_per_query: nil, stream_timeout: nil, tiered_pricing: nil, timeout: nil, tpm: nil, use_in_pass_through: nil, use_litellm_proxy: nil, vector_store_id: nil, vertex_credentials: nil, vertex_location: nil, vertex_project: nil, watsonx_region_name: nil) + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_version [String, nil] + # @param auto_router_config [String, nil] + # @param auto_router_config_path [String, nil] + # @param auto_router_default_model [String, nil] + # @param auto_router_embedding_model [String, nil] + # @param aws_access_key_id [String, nil] + # @param aws_bedrock_runtime_endpoint [String, nil] + # @param aws_region_name [String, nil] + # @param aws_secret_access_key [String, nil] + # @param budget_duration [String, nil] + # @param cache_creation_input_audio_token_cost [Float, nil] + # @param cache_creation_input_token_cost [Float, nil] + # @param cache_creation_input_token_cost_above_1hr [Float, nil] + # @param cache_creation_input_token_cost_above_200k_tokens [Float, nil] + # @param cache_read_input_audio_token_cost [Float, nil] + # @param cache_read_input_token_cost [Float, nil] + # @param cache_read_input_token_cost_above_200k_tokens [Float, nil] + # @param cache_read_input_token_cost_flex [Float, nil] + # @param cache_read_input_token_cost_priority [Float, nil] + # @param citation_cost_per_token [Float, nil] + # @param configurable_clientside_auth_params [Array, nil] + # @param custom_llm_provider [String, nil] + # @param gcs_bucket_name [String, nil] + # @param input_cost_per_audio_per_second [Float, nil] + # @param input_cost_per_audio_per_second_above_128k_tokens [Float, nil] + # @param input_cost_per_audio_token [Float, nil] + # @param input_cost_per_character [Float, nil] + # @param input_cost_per_character_above_128k_tokens [Float, nil] + # @param input_cost_per_image [Float, nil] + # @param input_cost_per_image_above_128k_tokens [Float, nil] + # @param input_cost_per_pixel [Float, nil] + # @param input_cost_per_query [Float, nil] + # @param input_cost_per_second [Float, nil] + # @param input_cost_per_token [Float, nil] + # @param input_cost_per_token_above_128k_tokens [Float, nil] + # @param input_cost_per_token_above_200k_tokens [Float, nil] + # @param input_cost_per_token_batches [Float, nil] + # @param input_cost_per_token_cache_hit [Float, nil] + # @param input_cost_per_token_flex [Float, nil] + # @param input_cost_per_token_priority [Float, nil] + # @param input_cost_per_video_per_second [Float, nil] + # @param input_cost_per_video_per_second_above_128k_tokens [Float, nil] + # @param input_cost_per_video_per_second_above_15s_interval [Float, nil] + # @param input_cost_per_video_per_second_above_8s_interval [Float, nil] + # @param litellm_credential_name [String, nil] + # @param litellm_trace_id [String, nil] + # @param max_budget [Float, nil] + # @param max_file_size_mb [Float, nil] + # @param max_retries [Integer, nil] + # @param merge_reasoning_content_in_choices [Boolean, nil] + # @param milvus_text_field [String, nil] + # @param mock_response [String, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse, Object, nil] + # @param model [String, nil] + # @param model_info [Hash{Symbol=>Object}, nil] + # @param organization [String, nil] + # @param output_cost_per_audio_per_second [Float, nil] + # @param output_cost_per_audio_token [Float, nil] + # @param output_cost_per_character [Float, nil] + # @param output_cost_per_character_above_128k_tokens [Float, nil] + # @param output_cost_per_image [Float, nil] + # @param output_cost_per_image_token [Float, nil] + # @param output_cost_per_pixel [Float, nil] + # @param output_cost_per_reasoning_token [Float, nil] + # @param output_cost_per_second [Float, nil] + # @param output_cost_per_token [Float, nil] + # @param output_cost_per_token_above_128k_tokens [Float, nil] + # @param output_cost_per_token_above_200k_tokens [Float, nil] + # @param output_cost_per_token_batches [Float, nil] + # @param output_cost_per_token_flex [Float, nil] + # @param output_cost_per_token_priority [Float, nil] + # @param output_cost_per_video_per_second [Float, nil] + # @param region_name [String, nil] + # @param rpm [Integer, nil] + # @param s3_bucket_name [String, nil] + # @param s3_encryption_key_id [String, nil] + # @param search_context_cost_per_query [Hash{Symbol=>Object}, nil] + # @param stream_timeout [Float, String, nil] + # @param tiered_pricing [ArrayObject}>, nil] + # @param timeout [Float, String, nil] + # @param tpm [Integer, nil] + # @param use_in_pass_through [Boolean, nil] + # @param use_litellm_proxy [Boolean, nil] + # @param vector_store_id [String, nil] + # @param vertex_credentials [String, Hash{Symbol=>Object}, nil] + # @param vertex_location [String, nil] + # @param vertex_project [String, nil] + # @param watsonx_region_name [String, nil] module ConfigurableClientsideAuthParam extend Hanzoai::Internal::Type::Union variant String - variant -> { Hanzoai::Models::ConfigurableClientsideParamsCustomAuth } + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput } + + class ConfigurableClientsideParamsCustomAuthInput < Hanzoai::Internal::Type::BaseModel + # @!attribute api_base + # + # @return [String] + required :api_base, String - # @!parse - # # @return [Array(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth)] - # def self.variants; end + # @!method initialize(api_base:) + # @param api_base [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput)] end - # @see Hanzoai::Models::Model::UpdateDeployment::LlmParams#stream_timeout + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams#mock_response + module MockResponse + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse } + + variant Hanzoai::Internal::Type::Unknown + + class ModelResponse < Hanzoai::Internal::Type::BaseModel + # @!attribute id + # + # @return [String] + required :id, String + + # @!attribute choices + # + # @return [ArrayObject}>] + required :choices, + -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice] } + + # @!attribute created + # + # @return [Integer] + required :created, Integer + + # @!attribute object + # + # @return [String] + required :object, String + + # @!attribute model + # + # @return [String, nil] + optional :model, String, nil?: true + + # @!attribute system_fingerprint + # + # @return [String, nil] + optional :system_fingerprint, String, nil?: true + + # @!method initialize(id:, choices:, created:, object:, model: nil, system_fingerprint: nil) + # @param id [String] + # @param choices [ArrayObject}>] + # @param created [Integer] + # @param object [String] + # @param model [String, nil] + # @param system_fingerprint [String, nil] + + module Choice + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices } + + variant -> { Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::StreamingChoiceMap } + + class Choices < Hanzoai::Internal::Type::BaseModel + # @!attribute finish_reason + # + # @return [String] + required :finish_reason, String + + # @!attribute index + # + # @return [Integer] + required :index, Integer + + # @!attribute message + # + # @return [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message] + required :message, + -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message } + + # @!attribute logprobs + # + # @return [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, Object, nil] + optional :logprobs, + union: -> { + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs + }, + nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(finish_reason:, index:, message:, logprobs: nil, provider_specific_fields: nil) + # @param finish_reason [String] + # @param index [Integer] + # @param message [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message] + # @param logprobs [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, Object, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices#message + class Message < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, nil] + required :content, String, nil?: true + + # @!attribute function_call + # + # @return [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall, nil] + required :function_call, + -> { + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall + }, + nil?: true + + # @!attribute role + # + # @return [Symbol, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role] + required :role, + enum: -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role } + + # @!attribute tool_calls + # + # @return [ArrayObject}>, nil] + required :tool_calls, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute annotations + # + # @return [Array, nil] + optional :annotations, + -> do + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation + ] + end, + nil?: true + + # @!attribute audio + # + # @return [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio, nil] + optional :audio, + -> { + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio + }, + nil?: true + + # @!attribute images + # + # @return [Array, nil] + optional :images, + -> do + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image + ] + end, + nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute reasoning_content + # + # @return [String, nil] + optional :reasoning_content, String, nil?: true + + # @!attribute thinking_blocks + # + # @return [Array, nil] + optional :thinking_blocks, + -> do + Hanzoai::Internal::Type::ArrayOf[ + union: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock + ] + end, + nil?: true + + # @!method initialize(content:, function_call:, role:, tool_calls:, annotations: nil, audio: nil, images: nil, provider_specific_fields: nil, reasoning_content: nil, thinking_blocks: nil) + # @param content [String, nil] + # @param function_call [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall, nil] + # @param role [Symbol, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role] + # @param tool_calls [ArrayObject}>, nil] + # @param annotations [Array, nil] + # @param audio [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio, nil] + # @param images [Array, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + # @param reasoning_content [String, nil] + # @param thinking_blocks [Array, nil] + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message#function_call + class FunctionCall < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String] + required :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!method initialize(arguments:, name: nil) + # @param arguments [String] + # @param name [String, nil] + end + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message#role + module Role + extend Hanzoai::Internal::Type::Enum + + ASSISTANT = :assistant + USER = :user + SYSTEM = :system + TOOL = :tool + FUNCTION = :function + + # @!method self.values + # @return [Array] + end + + class Annotation < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type, nil] + optional :type, + enum: -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type } + + # @!attribute url_citation + # + # @return [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation, nil] + optional :url_citation, + -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation } + + # @!method initialize(type: nil, url_citation: nil) + # @param type [Symbol, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type] + # @param url_citation [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation] + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation#type + module Type + extend Hanzoai::Internal::Type::Enum + + URL_CITATION = :url_citation + + # @!method self.values + # @return [Array] + end + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation#url_citation + class URLCitation < Hanzoai::Internal::Type::BaseModel + # @!attribute end_index + # + # @return [Integer, nil] + optional :end_index, Integer + + # @!attribute start_index + # + # @return [Integer, nil] + optional :start_index, Integer + + # @!attribute title + # + # @return [String, nil] + optional :title, String + + # @!attribute url + # + # @return [String, nil] + optional :url, String + + # @!method initialize(end_index: nil, start_index: nil, title: nil, url: nil) + # @param end_index [Integer] + # @param start_index [Integer] + # @param title [String] + # @param url [String] + end + end + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message#audio + class Audio < Hanzoai::Internal::Type::BaseModel + # @!attribute id + # + # @return [String] + required :id, String + + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute expires_at + # + # @return [Integer] + required :expires_at, Integer + + # @!attribute transcript + # + # @return [String] + required :transcript, String + + # @!method initialize(id:, data:, expires_at:, transcript:) + # @param id [String] + # @param data [String] + # @param expires_at [Integer] + # @param transcript [String] + end + + class Image < Hanzoai::Internal::Type::BaseModel + # @!attribute image_url + # + # @return [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL] + required :image_url, + -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL } + + # @!attribute index + # + # @return [Integer] + required :index, Integer + + # @!attribute type + # + # @return [Symbol, :image_url] + required :type, const: :image_url + + # @!method initialize(image_url:, index:, type: :image_url) + # @param image_url [Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL] + # @param index [Integer] + # @param type [Symbol, :image_url] + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image#image_url + class ImageURL < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String, nil?: true + + # @!method initialize(url:, detail: nil) + # @param url [String] + # @param detail [String, nil] + end + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock } + + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :redacted_thinking] + required :type, const: :redacted_thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute data + # + # @return [String, nil] + optional :data, String + + # @!method initialize(cache_control: nil, data: nil, type: :redacted_thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param data [String] + # @param type [Symbol, :redacted_thinking] + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock)] + end + end + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices#logprobs + module Logprobs + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs } + + variant Hanzoai::Internal::Type::Unknown + + class ChoiceLogprobs < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [Array, nil] + optional :content, + -> do + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content + ] + end, + nil?: true + + # @!method initialize(content: nil) + # @param content [Array, nil] + + class Content < Hanzoai::Internal::Type::BaseModel + # @!attribute token + # + # @return [String] + required :token, String + + # @!attribute logprob + # + # @return [Float] + required :logprob, Float + + # @!attribute top_logprobs + # + # @return [Array] + required :top_logprobs, + -> do + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob + ] + end + + # @!attribute bytes + # + # @return [Array, nil] + optional :bytes, Hanzoai::Internal::Type::ArrayOf[Integer], nil?: true + + # @!method initialize(token:, logprob:, top_logprobs:, bytes: nil) + # @param token [String] + # @param logprob [Float] + # @param top_logprobs [Array] + # @param bytes [Array, nil] + + class TopLogprob < Hanzoai::Internal::Type::BaseModel + # @!attribute token + # + # @return [String] + required :token, String + + # @!attribute logprob + # + # @return [Float] + required :logprob, Float + + # @!attribute bytes + # + # @return [Array, nil] + optional :bytes, Hanzoai::Internal::Type::ArrayOf[Integer], nil?: true + + # @!method initialize(token:, logprob:, bytes: nil) + # @param token [String] + # @param logprob [Float] + # @param bytes [Array, nil] + end + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, Object)] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + StreamingChoiceMap = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse, Object)] + end + + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams#stream_timeout module StreamTimeout extend Hanzoai::Internal::Type::Union @@ -283,12 +1174,11 @@ module StreamTimeout variant String - # @!parse - # # @return [Array(Float, String)] - # def self.variants; end + # @!method self.variants + # @return [Array(Float, String)] end - # @see Hanzoai::Models::Model::UpdateDeployment::LlmParams#timeout + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams#timeout module Timeout extend Hanzoai::Internal::Type::Union @@ -296,22 +1186,23 @@ module Timeout variant String - # @!parse - # # @return [Array(Float, String)] - # def self.variants; end + # @!method self.variants + # @return [Array(Float, String)] end - # @see Hanzoai::Models::Model::UpdateDeployment::LlmParams#vertex_credentials + # @see Hanzoai::Models::Model::UpdateDeployment::LitellmParams#vertex_credentials module VertexCredentials extend Hanzoai::Internal::Type::Union - variant Hanzoai::Internal::Type::Unknown - variant String - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end + variant -> { Hanzoai::Models::Model::UpdateDeployment::LitellmParams::VertexCredentials::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end end end diff --git a/lib/hanzoai/models/model/update_full_params.rb b/lib/hanzoai/models/model/update_full_params.rb index 6bdefc94..cc6d3463 100644 --- a/lib/hanzoai/models/model/update_full_params.rb +++ b/lib/hanzoai/models/model/update_full_params.rb @@ -5,16 +5,11 @@ module Models module Model # @see Hanzoai::Resources::Model::Update#full class UpdateFullParams < Hanzoai::Models::Model::UpdateDeployment - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/model/update_full_response.rb b/lib/hanzoai/models/model/update_full_response.rb new file mode 100644 index 00000000..92794b44 --- /dev/null +++ b/lib/hanzoai/models/model/update_full_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Model + # @type [Hanzoai::Internal::Type::Converter] + UpdateFullResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/model/update_partial_params.rb b/lib/hanzoai/models/model/update_partial_params.rb index 4b56b8cd..ee683c59 100644 --- a/lib/hanzoai/models/model/update_partial_params.rb +++ b/lib/hanzoai/models/model/update_partial_params.rb @@ -5,16 +5,11 @@ module Models module Model # @see Hanzoai::Resources::Model::Update#partial class UpdatePartialParams < Hanzoai::Models::Model::UpdateDeployment - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/model/update_partial_response.rb b/lib/hanzoai/models/model/update_partial_response.rb new file mode 100644 index 00000000..750fdb55 --- /dev/null +++ b/lib/hanzoai/models/model/update_partial_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Model + # @type [Hanzoai::Internal::Type::Converter] + UpdatePartialResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/model_create_params.rb b/lib/hanzoai/models/model_create_params.rb index b20ec902..6a37d67f 100644 --- a/lib/hanzoai/models/model_create_params.rb +++ b/lib/hanzoai/models/model_create_params.rb @@ -4,37 +4,35 @@ module Hanzoai module Models # @see Hanzoai::Resources::Model#create class ModelCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute llm_params - # LLM Params with 'model' requirement - used for completions + # @!attribute litellm_params + # LiteLLM Params with 'model' requirement - used for completions # - # @return [Hanzoai::Models::ModelCreateParams::LlmParams] - required :llm_params, -> { Hanzoai::Models::ModelCreateParams::LlmParams } + # @return [Hanzoai::Models::ModelCreateParams::LitellmParams] + required :litellm_params, -> { Hanzoai::ModelCreateParams::LitellmParams } # @!attribute model_info # # @return [Hanzoai::Models::ModelInfo] - required :model_info, -> { Hanzoai::Models::ModelInfo } + required :model_info, -> { Hanzoai::ModelInfo } # @!attribute model_name # # @return [String] required :model_name, String - # @!parse - # # @param llm_params [Hanzoai::Models::ModelCreateParams::LlmParams] - # # @param model_info [Hanzoai::Models::ModelInfo] - # # @param model_name [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(llm_params:, model_info:, model_name:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(litellm_params:, model_info:, model_name:, request_options: {}) + # @param litellm_params [Hanzoai::Models::ModelCreateParams::LitellmParams] LiteLLM Params with 'model' requirement - used for completions + # + # @param model_info [Hanzoai::Models::ModelInfo] + # + # @param model_name [String] + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - class LlmParams < Hanzoai::Internal::Type::BaseModel + class LitellmParams < Hanzoai::Internal::Type::BaseModel # @!attribute model # # @return [String] @@ -55,11 +53,36 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :api_version, String, nil?: true + # @!attribute auto_router_config + # + # @return [String, nil] + optional :auto_router_config, String, nil?: true + + # @!attribute auto_router_config_path + # + # @return [String, nil] + optional :auto_router_config_path, String, nil?: true + + # @!attribute auto_router_default_model + # + # @return [String, nil] + optional :auto_router_default_model, String, nil?: true + + # @!attribute auto_router_embedding_model + # + # @return [String, nil] + optional :auto_router_embedding_model, String, nil?: true + # @!attribute aws_access_key_id # # @return [String, nil] optional :aws_access_key_id, String, nil?: true + # @!attribute aws_bedrock_runtime_endpoint + # + # @return [String, nil] + optional :aws_bedrock_runtime_endpoint, String, nil?: true + # @!attribute aws_region_name # # @return [String, nil] @@ -75,11 +98,63 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :budget_duration, String, nil?: true + # @!attribute cache_creation_input_audio_token_cost + # + # @return [Float, nil] + optional :cache_creation_input_audio_token_cost, Float, nil?: true + + # @!attribute cache_creation_input_token_cost + # + # @return [Float, nil] + optional :cache_creation_input_token_cost, Float, nil?: true + + # @!attribute cache_creation_input_token_cost_above_1hr + # + # @return [Float, nil] + optional :cache_creation_input_token_cost_above_1hr, Float, nil?: true + + # @!attribute cache_creation_input_token_cost_above_200k_tokens + # + # @return [Float, nil] + optional :cache_creation_input_token_cost_above_200k_tokens, Float, nil?: true + + # @!attribute cache_read_input_audio_token_cost + # + # @return [Float, nil] + optional :cache_read_input_audio_token_cost, Float, nil?: true + + # @!attribute cache_read_input_token_cost + # + # @return [Float, nil] + optional :cache_read_input_token_cost, Float, nil?: true + + # @!attribute cache_read_input_token_cost_above_200k_tokens + # + # @return [Float, nil] + optional :cache_read_input_token_cost_above_200k_tokens, Float, nil?: true + + # @!attribute cache_read_input_token_cost_flex + # + # @return [Float, nil] + optional :cache_read_input_token_cost_flex, Float, nil?: true + + # @!attribute cache_read_input_token_cost_priority + # + # @return [Float, nil] + optional :cache_read_input_token_cost_priority, Float, nil?: true + + # @!attribute citation_cost_per_token + # + # @return [Float, nil] + optional :citation_cost_per_token, Float, nil?: true + # @!attribute configurable_clientside_auth_params # - # @return [Array, nil] + # @return [Array, nil] optional :configurable_clientside_auth_params, - -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::Models::ModelCreateParams::LlmParams::ConfigurableClientsideAuthParam] }, + -> { + Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam] + }, nil?: true # @!attribute custom_llm_provider @@ -87,6 +162,56 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :custom_llm_provider, String, nil?: true + # @!attribute gcs_bucket_name + # + # @return [String, nil] + optional :gcs_bucket_name, String, nil?: true + + # @!attribute input_cost_per_audio_per_second + # + # @return [Float, nil] + optional :input_cost_per_audio_per_second, Float, nil?: true + + # @!attribute input_cost_per_audio_per_second_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_audio_per_second_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_audio_token + # + # @return [Float, nil] + optional :input_cost_per_audio_token, Float, nil?: true + + # @!attribute input_cost_per_character + # + # @return [Float, nil] + optional :input_cost_per_character, Float, nil?: true + + # @!attribute input_cost_per_character_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_character_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_image + # + # @return [Float, nil] + optional :input_cost_per_image, Float, nil?: true + + # @!attribute input_cost_per_image_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_image_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_pixel + # + # @return [Float, nil] + optional :input_cost_per_pixel, Float, nil?: true + + # @!attribute input_cost_per_query + # + # @return [Float, nil] + optional :input_cost_per_query, Float, nil?: true + # @!attribute input_cost_per_second # # @return [Float, nil] @@ -97,10 +222,65 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :input_cost_per_token, Float, nil?: true - # @!attribute llm_trace_id + # @!attribute input_cost_per_token_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_token_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_token_above_200k_tokens + # + # @return [Float, nil] + optional :input_cost_per_token_above_200k_tokens, Float, nil?: true + + # @!attribute input_cost_per_token_batches + # + # @return [Float, nil] + optional :input_cost_per_token_batches, Float, nil?: true + + # @!attribute input_cost_per_token_cache_hit + # + # @return [Float, nil] + optional :input_cost_per_token_cache_hit, Float, nil?: true + + # @!attribute input_cost_per_token_flex + # + # @return [Float, nil] + optional :input_cost_per_token_flex, Float, nil?: true + + # @!attribute input_cost_per_token_priority + # + # @return [Float, nil] + optional :input_cost_per_token_priority, Float, nil?: true + + # @!attribute input_cost_per_video_per_second + # + # @return [Float, nil] + optional :input_cost_per_video_per_second, Float, nil?: true + + # @!attribute input_cost_per_video_per_second_above_128k_tokens + # + # @return [Float, nil] + optional :input_cost_per_video_per_second_above_128k_tokens, Float, nil?: true + + # @!attribute input_cost_per_video_per_second_above_15s_interval + # + # @return [Float, nil] + optional :input_cost_per_video_per_second_above_15s_interval, Float, nil?: true + + # @!attribute input_cost_per_video_per_second_above_8s_interval + # + # @return [Float, nil] + optional :input_cost_per_video_per_second_above_8s_interval, Float, nil?: true + + # @!attribute litellm_credential_name # # @return [String, nil] - optional :llm_trace_id, String, nil?: true + optional :litellm_credential_name, String, nil?: true + + # @!attribute litellm_trace_id + # + # @return [String, nil] + optional :litellm_trace_id, String, nil?: true # @!attribute max_budget # @@ -120,18 +300,72 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @!attribute merge_reasoning_content_in_choices # # @return [Boolean, nil] - optional :merge_reasoning_content_in_choices, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :merge_reasoning_content_in_choices, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute milvus_text_field + # + # @return [String, nil] + optional :milvus_text_field, String, nil?: true + + # @!attribute mock_response + # + # @return [String, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse, Object, nil] + optional :mock_response, + union: -> { + Hanzoai::ModelCreateParams::LitellmParams::MockResponse + }, + nil?: true # @!attribute model_info # - # @return [Object, nil] - optional :model_info, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_info, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute organization # # @return [String, nil] optional :organization, String, nil?: true + # @!attribute output_cost_per_audio_per_second + # + # @return [Float, nil] + optional :output_cost_per_audio_per_second, Float, nil?: true + + # @!attribute output_cost_per_audio_token + # + # @return [Float, nil] + optional :output_cost_per_audio_token, Float, nil?: true + + # @!attribute output_cost_per_character + # + # @return [Float, nil] + optional :output_cost_per_character, Float, nil?: true + + # @!attribute output_cost_per_character_above_128k_tokens + # + # @return [Float, nil] + optional :output_cost_per_character_above_128k_tokens, Float, nil?: true + + # @!attribute output_cost_per_image + # + # @return [Float, nil] + optional :output_cost_per_image, Float, nil?: true + + # @!attribute output_cost_per_image_token + # + # @return [Float, nil] + optional :output_cost_per_image_token, Float, nil?: true + + # @!attribute output_cost_per_pixel + # + # @return [Float, nil] + optional :output_cost_per_pixel, Float, nil?: true + + # @!attribute output_cost_per_reasoning_token + # + # @return [Float, nil] + optional :output_cost_per_reasoning_token, Float, nil?: true + # @!attribute output_cost_per_second # # @return [Float, nil] @@ -142,6 +376,36 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :output_cost_per_token, Float, nil?: true + # @!attribute output_cost_per_token_above_128k_tokens + # + # @return [Float, nil] + optional :output_cost_per_token_above_128k_tokens, Float, nil?: true + + # @!attribute output_cost_per_token_above_200k_tokens + # + # @return [Float, nil] + optional :output_cost_per_token_above_200k_tokens, Float, nil?: true + + # @!attribute output_cost_per_token_batches + # + # @return [Float, nil] + optional :output_cost_per_token_batches, Float, nil?: true + + # @!attribute output_cost_per_token_flex + # + # @return [Float, nil] + optional :output_cost_per_token_flex, Float, nil?: true + + # @!attribute output_cost_per_token_priority + # + # @return [Float, nil] + optional :output_cost_per_token_priority, Float, nil?: true + + # @!attribute output_cost_per_video_per_second + # + # @return [Float, nil] + optional :output_cost_per_video_per_second, Float, nil?: true + # @!attribute region_name # # @return [String, nil] @@ -152,17 +416,41 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :rpm, Integer, nil?: true + # @!attribute s3_bucket_name + # + # @return [String, nil] + optional :s3_bucket_name, String, nil?: true + + # @!attribute s3_encryption_key_id + # + # @return [String, nil] + optional :s3_encryption_key_id, String, nil?: true + + # @!attribute search_context_cost_per_query + # + # @return [Hash{Symbol=>Object}, nil] + optional :search_context_cost_per_query, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + # @!attribute stream_timeout # # @return [Float, String, nil] optional :stream_timeout, - union: -> { Hanzoai::Models::ModelCreateParams::LlmParams::StreamTimeout }, + union: -> { Hanzoai::ModelCreateParams::LitellmParams::StreamTimeout }, + nil?: true + + # @!attribute tiered_pricing + # + # @return [ArrayObject}>, nil] + optional :tiered_pricing, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], nil?: true # @!attribute timeout # # @return [Float, String, nil] - optional :timeout, union: -> { Hanzoai::Models::ModelCreateParams::LlmParams::Timeout }, nil?: true + optional :timeout, union: -> { Hanzoai::ModelCreateParams::LitellmParams::Timeout }, nil?: true # @!attribute tpm # @@ -172,13 +460,23 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @!attribute use_in_pass_through # # @return [Boolean, nil] - optional :use_in_pass_through, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :use_in_pass_through, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute use_litellm_proxy + # + # @return [Boolean, nil] + optional :use_litellm_proxy, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute vector_store_id + # + # @return [String, nil] + optional :vector_store_id, String, nil?: true # @!attribute vertex_credentials # - # @return [Object, String, nil] + # @return [String, Hash{Symbol=>Object}, nil] optional :vertex_credentials, - union: -> { Hanzoai::Models::ModelCreateParams::LlmParams::VertexCredentials }, + union: -> { Hanzoai::ModelCreateParams::LitellmParams::VertexCredentials }, nil?: true # @!attribute vertex_location @@ -196,93 +494,684 @@ class LlmParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :watsonx_region_name, String, nil?: true - # @!parse - # # LLM Params with 'model' requirement - used for completions - # # - # # @param model [String] - # # @param api_base [String, nil] - # # @param api_key [String, nil] - # # @param api_version [String, nil] - # # @param aws_access_key_id [String, nil] - # # @param aws_region_name [String, nil] - # # @param aws_secret_access_key [String, nil] - # # @param budget_duration [String, nil] - # # @param configurable_clientside_auth_params [Array, nil] - # # @param custom_llm_provider [String, nil] - # # @param input_cost_per_second [Float, nil] - # # @param input_cost_per_token [Float, nil] - # # @param llm_trace_id [String, nil] - # # @param max_budget [Float, nil] - # # @param max_file_size_mb [Float, nil] - # # @param max_retries [Integer, nil] - # # @param merge_reasoning_content_in_choices [Boolean, nil] - # # @param model_info [Object, nil] - # # @param organization [String, nil] - # # @param output_cost_per_second [Float, nil] - # # @param output_cost_per_token [Float, nil] - # # @param region_name [String, nil] - # # @param rpm [Integer, nil] - # # @param stream_timeout [Float, String, nil] - # # @param timeout [Float, String, nil] - # # @param tpm [Integer, nil] - # # @param use_in_pass_through [Boolean, nil] - # # @param vertex_credentials [Object, String, nil] - # # @param vertex_location [String, nil] - # # @param vertex_project [String, nil] - # # @param watsonx_region_name [String, nil] - # # - # def initialize( - # model:, - # api_base: nil, - # api_key: nil, - # api_version: nil, - # aws_access_key_id: nil, - # aws_region_name: nil, - # aws_secret_access_key: nil, - # budget_duration: nil, - # configurable_clientside_auth_params: nil, - # custom_llm_provider: nil, - # input_cost_per_second: nil, - # input_cost_per_token: nil, - # llm_trace_id: nil, - # max_budget: nil, - # max_file_size_mb: nil, - # max_retries: nil, - # merge_reasoning_content_in_choices: nil, - # model_info: nil, - # organization: nil, - # output_cost_per_second: nil, - # output_cost_per_token: nil, - # region_name: nil, - # rpm: nil, - # stream_timeout: nil, - # timeout: nil, - # tpm: nil, - # use_in_pass_through: nil, - # vertex_credentials: nil, - # vertex_location: nil, - # vertex_project: nil, - # watsonx_region_name: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(model:, api_base: nil, api_key: nil, api_version: nil, auto_router_config: nil, auto_router_config_path: nil, auto_router_default_model: nil, auto_router_embedding_model: nil, aws_access_key_id: nil, aws_bedrock_runtime_endpoint: nil, aws_region_name: nil, aws_secret_access_key: nil, budget_duration: nil, cache_creation_input_audio_token_cost: nil, cache_creation_input_token_cost: nil, cache_creation_input_token_cost_above_1hr: nil, cache_creation_input_token_cost_above_200k_tokens: nil, cache_read_input_audio_token_cost: nil, cache_read_input_token_cost: nil, cache_read_input_token_cost_above_200k_tokens: nil, cache_read_input_token_cost_flex: nil, cache_read_input_token_cost_priority: nil, citation_cost_per_token: nil, configurable_clientside_auth_params: nil, custom_llm_provider: nil, gcs_bucket_name: nil, input_cost_per_audio_per_second: nil, input_cost_per_audio_per_second_above_128k_tokens: nil, input_cost_per_audio_token: nil, input_cost_per_character: nil, input_cost_per_character_above_128k_tokens: nil, input_cost_per_image: nil, input_cost_per_image_above_128k_tokens: nil, input_cost_per_pixel: nil, input_cost_per_query: nil, input_cost_per_second: nil, input_cost_per_token: nil, input_cost_per_token_above_128k_tokens: nil, input_cost_per_token_above_200k_tokens: nil, input_cost_per_token_batches: nil, input_cost_per_token_cache_hit: nil, input_cost_per_token_flex: nil, input_cost_per_token_priority: nil, input_cost_per_video_per_second: nil, input_cost_per_video_per_second_above_128k_tokens: nil, input_cost_per_video_per_second_above_15s_interval: nil, input_cost_per_video_per_second_above_8s_interval: nil, litellm_credential_name: nil, litellm_trace_id: nil, max_budget: nil, max_file_size_mb: nil, max_retries: nil, merge_reasoning_content_in_choices: nil, milvus_text_field: nil, mock_response: nil, model_info: nil, organization: nil, output_cost_per_audio_per_second: nil, output_cost_per_audio_token: nil, output_cost_per_character: nil, output_cost_per_character_above_128k_tokens: nil, output_cost_per_image: nil, output_cost_per_image_token: nil, output_cost_per_pixel: nil, output_cost_per_reasoning_token: nil, output_cost_per_second: nil, output_cost_per_token: nil, output_cost_per_token_above_128k_tokens: nil, output_cost_per_token_above_200k_tokens: nil, output_cost_per_token_batches: nil, output_cost_per_token_flex: nil, output_cost_per_token_priority: nil, output_cost_per_video_per_second: nil, region_name: nil, rpm: nil, s3_bucket_name: nil, s3_encryption_key_id: nil, search_context_cost_per_query: nil, stream_timeout: nil, tiered_pricing: nil, timeout: nil, tpm: nil, use_in_pass_through: nil, use_litellm_proxy: nil, vector_store_id: nil, vertex_credentials: nil, vertex_location: nil, vertex_project: nil, watsonx_region_name: nil) + # LiteLLM Params with 'model' requirement - used for completions + # + # @param model [String] + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_version [String, nil] + # @param auto_router_config [String, nil] + # @param auto_router_config_path [String, nil] + # @param auto_router_default_model [String, nil] + # @param auto_router_embedding_model [String, nil] + # @param aws_access_key_id [String, nil] + # @param aws_bedrock_runtime_endpoint [String, nil] + # @param aws_region_name [String, nil] + # @param aws_secret_access_key [String, nil] + # @param budget_duration [String, nil] + # @param cache_creation_input_audio_token_cost [Float, nil] + # @param cache_creation_input_token_cost [Float, nil] + # @param cache_creation_input_token_cost_above_1hr [Float, nil] + # @param cache_creation_input_token_cost_above_200k_tokens [Float, nil] + # @param cache_read_input_audio_token_cost [Float, nil] + # @param cache_read_input_token_cost [Float, nil] + # @param cache_read_input_token_cost_above_200k_tokens [Float, nil] + # @param cache_read_input_token_cost_flex [Float, nil] + # @param cache_read_input_token_cost_priority [Float, nil] + # @param citation_cost_per_token [Float, nil] + # @param configurable_clientside_auth_params [Array, nil] + # @param custom_llm_provider [String, nil] + # @param gcs_bucket_name [String, nil] + # @param input_cost_per_audio_per_second [Float, nil] + # @param input_cost_per_audio_per_second_above_128k_tokens [Float, nil] + # @param input_cost_per_audio_token [Float, nil] + # @param input_cost_per_character [Float, nil] + # @param input_cost_per_character_above_128k_tokens [Float, nil] + # @param input_cost_per_image [Float, nil] + # @param input_cost_per_image_above_128k_tokens [Float, nil] + # @param input_cost_per_pixel [Float, nil] + # @param input_cost_per_query [Float, nil] + # @param input_cost_per_second [Float, nil] + # @param input_cost_per_token [Float, nil] + # @param input_cost_per_token_above_128k_tokens [Float, nil] + # @param input_cost_per_token_above_200k_tokens [Float, nil] + # @param input_cost_per_token_batches [Float, nil] + # @param input_cost_per_token_cache_hit [Float, nil] + # @param input_cost_per_token_flex [Float, nil] + # @param input_cost_per_token_priority [Float, nil] + # @param input_cost_per_video_per_second [Float, nil] + # @param input_cost_per_video_per_second_above_128k_tokens [Float, nil] + # @param input_cost_per_video_per_second_above_15s_interval [Float, nil] + # @param input_cost_per_video_per_second_above_8s_interval [Float, nil] + # @param litellm_credential_name [String, nil] + # @param litellm_trace_id [String, nil] + # @param max_budget [Float, nil] + # @param max_file_size_mb [Float, nil] + # @param max_retries [Integer, nil] + # @param merge_reasoning_content_in_choices [Boolean, nil] + # @param milvus_text_field [String, nil] + # @param mock_response [String, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse, Object, nil] + # @param model_info [Hash{Symbol=>Object}, nil] + # @param organization [String, nil] + # @param output_cost_per_audio_per_second [Float, nil] + # @param output_cost_per_audio_token [Float, nil] + # @param output_cost_per_character [Float, nil] + # @param output_cost_per_character_above_128k_tokens [Float, nil] + # @param output_cost_per_image [Float, nil] + # @param output_cost_per_image_token [Float, nil] + # @param output_cost_per_pixel [Float, nil] + # @param output_cost_per_reasoning_token [Float, nil] + # @param output_cost_per_second [Float, nil] + # @param output_cost_per_token [Float, nil] + # @param output_cost_per_token_above_128k_tokens [Float, nil] + # @param output_cost_per_token_above_200k_tokens [Float, nil] + # @param output_cost_per_token_batches [Float, nil] + # @param output_cost_per_token_flex [Float, nil] + # @param output_cost_per_token_priority [Float, nil] + # @param output_cost_per_video_per_second [Float, nil] + # @param region_name [String, nil] + # @param rpm [Integer, nil] + # @param s3_bucket_name [String, nil] + # @param s3_encryption_key_id [String, nil] + # @param search_context_cost_per_query [Hash{Symbol=>Object}, nil] + # @param stream_timeout [Float, String, nil] + # @param tiered_pricing [ArrayObject}>, nil] + # @param timeout [Float, String, nil] + # @param tpm [Integer, nil] + # @param use_in_pass_through [Boolean, nil] + # @param use_litellm_proxy [Boolean, nil] + # @param vector_store_id [String, nil] + # @param vertex_credentials [String, Hash{Symbol=>Object}, nil] + # @param vertex_location [String, nil] + # @param vertex_project [String, nil] + # @param watsonx_region_name [String, nil] module ConfigurableClientsideAuthParam extend Hanzoai::Internal::Type::Union variant String - variant -> { Hanzoai::Models::ConfigurableClientsideParamsCustomAuth } + variant -> { Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput } + + class ConfigurableClientsideParamsCustomAuthInput < Hanzoai::Internal::Type::BaseModel + # @!attribute api_base + # + # @return [String] + required :api_base, String - # @!parse - # # @return [Array(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth)] - # def self.variants; end + # @!method initialize(api_base:) + # @param api_base [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput)] end - # @see Hanzoai::Models::ModelCreateParams::LlmParams#stream_timeout + # @see Hanzoai::Models::ModelCreateParams::LitellmParams#mock_response + module MockResponse + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse } + + variant Hanzoai::Internal::Type::Unknown + + class ModelResponse < Hanzoai::Internal::Type::BaseModel + # @!attribute id + # + # @return [String] + required :id, String + + # @!attribute choices + # + # @return [ArrayObject}>] + required :choices, + -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice] } + + # @!attribute created + # + # @return [Integer] + required :created, Integer + + # @!attribute object + # + # @return [String] + required :object, String + + # @!attribute model + # + # @return [String, nil] + optional :model, String, nil?: true + + # @!attribute system_fingerprint + # + # @return [String, nil] + optional :system_fingerprint, String, nil?: true + + # @!method initialize(id:, choices:, created:, object:, model: nil, system_fingerprint: nil) + # @param id [String] + # @param choices [ArrayObject}>] + # @param created [Integer] + # @param object [String] + # @param model [String, nil] + # @param system_fingerprint [String, nil] + + module Choice + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices } + + variant -> { Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::StreamingChoiceMap } + + class Choices < Hanzoai::Internal::Type::BaseModel + # @!attribute finish_reason + # + # @return [String] + required :finish_reason, String + + # @!attribute index + # + # @return [Integer] + required :index, Integer + + # @!attribute message + # + # @return [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message] + required :message, + -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message } + + # @!attribute logprobs + # + # @return [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, Object, nil] + optional :logprobs, + union: -> { + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs + }, + nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(finish_reason:, index:, message:, logprobs: nil, provider_specific_fields: nil) + # @param finish_reason [String] + # @param index [Integer] + # @param message [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message] + # @param logprobs [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, Object, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices#message + class Message < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, nil] + required :content, String, nil?: true + + # @!attribute function_call + # + # @return [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall, nil] + required :function_call, + -> { + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall + }, + nil?: true + + # @!attribute role + # + # @return [Symbol, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role] + required :role, + enum: -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role } + + # @!attribute tool_calls + # + # @return [ArrayObject}>, nil] + required :tool_calls, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute annotations + # + # @return [Array, nil] + optional :annotations, + -> do + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation + ] + end, + nil?: true + + # @!attribute audio + # + # @return [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio, nil] + optional :audio, + -> { + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio + }, + nil?: true + + # @!attribute images + # + # @return [Array, nil] + optional :images, + -> { + Hanzoai::Internal::Type::ArrayOf[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image] + }, + nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute reasoning_content + # + # @return [String, nil] + optional :reasoning_content, String, nil?: true + + # @!attribute thinking_blocks + # + # @return [Array, nil] + optional :thinking_blocks, + -> do + Hanzoai::Internal::Type::ArrayOf[ + union: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock + ] + end, + nil?: true + + # @!method initialize(content:, function_call:, role:, tool_calls:, annotations: nil, audio: nil, images: nil, provider_specific_fields: nil, reasoning_content: nil, thinking_blocks: nil) + # @param content [String, nil] + # @param function_call [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall, nil] + # @param role [Symbol, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role] + # @param tool_calls [ArrayObject}>, nil] + # @param annotations [Array, nil] + # @param audio [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio, nil] + # @param images [Array, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + # @param reasoning_content [String, nil] + # @param thinking_blocks [Array, nil] + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message#function_call + class FunctionCall < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String] + required :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!method initialize(arguments:, name: nil) + # @param arguments [String] + # @param name [String, nil] + end + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message#role + module Role + extend Hanzoai::Internal::Type::Enum + + ASSISTANT = :assistant + USER = :user + SYSTEM = :system + TOOL = :tool + FUNCTION = :function + + # @!method self.values + # @return [Array] + end + + class Annotation < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type, nil] + optional :type, + enum: -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type } + + # @!attribute url_citation + # + # @return [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation, nil] + optional :url_citation, + -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation } + + # @!method initialize(type: nil, url_citation: nil) + # @param type [Symbol, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type] + # @param url_citation [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation] + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation#type + module Type + extend Hanzoai::Internal::Type::Enum + + URL_CITATION = :url_citation + + # @!method self.values + # @return [Array] + end + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation#url_citation + class URLCitation < Hanzoai::Internal::Type::BaseModel + # @!attribute end_index + # + # @return [Integer, nil] + optional :end_index, Integer + + # @!attribute start_index + # + # @return [Integer, nil] + optional :start_index, Integer + + # @!attribute title + # + # @return [String, nil] + optional :title, String + + # @!attribute url + # + # @return [String, nil] + optional :url, String + + # @!method initialize(end_index: nil, start_index: nil, title: nil, url: nil) + # @param end_index [Integer] + # @param start_index [Integer] + # @param title [String] + # @param url [String] + end + end + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message#audio + class Audio < Hanzoai::Internal::Type::BaseModel + # @!attribute id + # + # @return [String] + required :id, String + + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute expires_at + # + # @return [Integer] + required :expires_at, Integer + + # @!attribute transcript + # + # @return [String] + required :transcript, String + + # @!method initialize(id:, data:, expires_at:, transcript:) + # @param id [String] + # @param data [String] + # @param expires_at [Integer] + # @param transcript [String] + end + + class Image < Hanzoai::Internal::Type::BaseModel + # @!attribute image_url + # + # @return [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL] + required :image_url, + -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL } + + # @!attribute index + # + # @return [Integer] + required :index, Integer + + # @!attribute type + # + # @return [Symbol, :image_url] + required :type, const: :image_url + + # @!method initialize(image_url:, index:, type: :image_url) + # @param image_url [Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL] + # @param index [Integer] + # @param type [Symbol, :image_url] + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image#image_url + class ImageURL < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String, nil?: true + + # @!method initialize(url:, detail: nil) + # @param url [String] + # @param detail [String, nil] + end + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock } + + variant -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :redacted_thinking] + required :type, const: :redacted_thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute data + # + # @return [String, nil] + optional :data, String + + # @!method initialize(cache_control: nil, data: nil, type: :redacted_thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param data [String] + # @param type [Symbol, :redacted_thinking] + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock)] + end + end + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices#logprobs + module Logprobs + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs } + + variant Hanzoai::Internal::Type::Unknown + + class ChoiceLogprobs < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [Array, nil] + optional :content, + -> do + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content + ] + end, + nil?: true + + # @!method initialize(content: nil) + # @param content [Array, nil] + + class Content < Hanzoai::Internal::Type::BaseModel + # @!attribute token + # + # @return [String] + required :token, String + + # @!attribute logprob + # + # @return [Float] + required :logprob, Float + + # @!attribute top_logprobs + # + # @return [Array] + required :top_logprobs, + -> do + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob + ] + end + + # @!attribute bytes + # + # @return [Array, nil] + optional :bytes, Hanzoai::Internal::Type::ArrayOf[Integer], nil?: true + + # @!method initialize(token:, logprob:, top_logprobs:, bytes: nil) + # @param token [String] + # @param logprob [Float] + # @param top_logprobs [Array] + # @param bytes [Array, nil] + + class TopLogprob < Hanzoai::Internal::Type::BaseModel + # @!attribute token + # + # @return [String] + required :token, String + + # @!attribute logprob + # + # @return [Float] + required :logprob, Float + + # @!attribute bytes + # + # @return [Array, nil] + optional :bytes, Hanzoai::Internal::Type::ArrayOf[Integer], nil?: true + + # @!method initialize(token:, logprob:, bytes: nil) + # @param token [String] + # @param logprob [Float] + # @param bytes [Array, nil] + end + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, Object)] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + StreamingChoiceMap = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse, Object)] + end + + # @see Hanzoai::Models::ModelCreateParams::LitellmParams#stream_timeout module StreamTimeout extend Hanzoai::Internal::Type::Union @@ -290,12 +1179,11 @@ module StreamTimeout variant String - # @!parse - # # @return [Array(Float, String)] - # def self.variants; end + # @!method self.variants + # @return [Array(Float, String)] end - # @see Hanzoai::Models::ModelCreateParams::LlmParams#timeout + # @see Hanzoai::Models::ModelCreateParams::LitellmParams#timeout module Timeout extend Hanzoai::Internal::Type::Union @@ -303,22 +1191,23 @@ module Timeout variant String - # @!parse - # # @return [Array(Float, String)] - # def self.variants; end + # @!method self.variants + # @return [Array(Float, String)] end - # @see Hanzoai::Models::ModelCreateParams::LlmParams#vertex_credentials + # @see Hanzoai::Models::ModelCreateParams::LitellmParams#vertex_credentials module VertexCredentials extend Hanzoai::Internal::Type::Union - variant Hanzoai::Internal::Type::Unknown - variant String - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end + variant -> { Hanzoai::Models::ModelCreateParams::LitellmParams::VertexCredentials::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end end end diff --git a/lib/hanzoai/models/model_create_response.rb b/lib/hanzoai/models/model_create_response.rb new file mode 100644 index 00000000..04ead8d2 --- /dev/null +++ b/lib/hanzoai/models/model_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ModelCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/model_delete_params.rb b/lib/hanzoai/models/model_delete_params.rb index 1543d761..acbf492b 100644 --- a/lib/hanzoai/models/model_delete_params.rb +++ b/lib/hanzoai/models/model_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Model#delete class ModelDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute id @@ -13,13 +12,9 @@ class ModelDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :id, String - # @!parse - # # @param id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(id:, request_options: {}) + # @param id [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/model_delete_response.rb b/lib/hanzoai/models/model_delete_response.rb new file mode 100644 index 00000000..5b77adb4 --- /dev/null +++ b/lib/hanzoai/models/model_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ModelDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/model_group_retrieve_info_params.rb b/lib/hanzoai/models/model_group_retrieve_info_params.rb index d546c556..9699e074 100644 --- a/lib/hanzoai/models/model_group_retrieve_info_params.rb +++ b/lib/hanzoai/models/model_group_retrieve_info_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::ModelGroup#retrieve_info class ModelGroupRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute model_group @@ -13,13 +12,9 @@ class ModelGroupRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :model_group, String, nil?: true - # @!parse - # # @param model_group [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(model_group: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(model_group: nil, request_options: {}) + # @param model_group [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/model_group_retrieve_info_response.rb b/lib/hanzoai/models/model_group_retrieve_info_response.rb new file mode 100644 index 00000000..4d4116a4 --- /dev/null +++ b/lib/hanzoai/models/model_group_retrieve_info_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ModelGroupRetrieveInfoResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/model_info.rb b/lib/hanzoai/models/model_info.rb index f64dc75c..fa83ff38 100644 --- a/lib/hanzoai/models/model_info.rb +++ b/lib/hanzoai/models/model_info.rb @@ -23,14 +23,10 @@ class ModelInfo < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :created_by, String, nil?: true - # @!attribute [r] db_model + # @!attribute db_model # # @return [Boolean, nil] - optional :db_model, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :db_model + optional :db_model, Hanzoai::Internal::Type::Boolean # @!attribute team_id # @@ -45,7 +41,7 @@ class ModelInfo < Hanzoai::Internal::Type::BaseModel # @!attribute tier # # @return [Symbol, Hanzoai::Models::ModelInfo::Tier, nil] - optional :tier, enum: -> { Hanzoai::Models::ModelInfo::Tier }, nil?: true + optional :tier, enum: -> { Hanzoai::ModelInfo::Tier }, nil?: true # @!attribute updated_at # @@ -57,35 +53,17 @@ class ModelInfo < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :updated_by, String, nil?: true - # @!parse - # # @param id [String, nil] - # # @param base_model [String, nil] - # # @param created_at [Time, nil] - # # @param created_by [String, nil] - # # @param db_model [Boolean] - # # @param team_id [String, nil] - # # @param team_public_model_name [String, nil] - # # @param tier [Symbol, Hanzoai::Models::ModelInfo::Tier, nil] - # # @param updated_at [Time, nil] - # # @param updated_by [String, nil] - # # - # def initialize( - # id:, - # base_model: nil, - # created_at: nil, - # created_by: nil, - # db_model: nil, - # team_id: nil, - # team_public_model_name: nil, - # tier: nil, - # updated_at: nil, - # updated_by: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(id:, base_model: nil, created_at: nil, created_by: nil, db_model: nil, team_id: nil, team_public_model_name: nil, tier: nil, updated_at: nil, updated_by: nil) + # @param id [String, nil] + # @param base_model [String, nil] + # @param created_at [Time, nil] + # @param created_by [String, nil] + # @param db_model [Boolean] + # @param team_id [String, nil] + # @param team_public_model_name [String, nil] + # @param tier [Symbol, Hanzoai::Models::ModelInfo::Tier, nil] + # @param updated_at [Time, nil] + # @param updated_by [String, nil] # @see Hanzoai::Models::ModelInfo#tier module Tier @@ -94,11 +72,8 @@ module Tier FREE = :free PAID = :paid - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/model_list_params.rb b/lib/hanzoai/models/model_list_params.rb index 39c891e0..30821779 100644 --- a/lib/hanzoai/models/model_list_params.rb +++ b/lib/hanzoai/models/model_list_params.rb @@ -4,28 +4,47 @@ module Hanzoai module Models # @see Hanzoai::Resources::Models#list class ModelListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters + # @!attribute fallback_type + # + # @return [String, nil] + optional :fallback_type, String, nil?: true + + # @!attribute include_metadata + # + # @return [Boolean, nil] + optional :include_metadata, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute include_model_access_groups + # + # @return [Boolean, nil] + optional :include_model_access_groups, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute only_model_access_groups + # + # @return [Boolean, nil] + optional :only_model_access_groups, Hanzoai::Internal::Type::Boolean, nil?: true + # @!attribute return_wildcard_routes # # @return [Boolean, nil] - optional :return_wildcard_routes, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :return_wildcard_routes, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute team_id # # @return [String, nil] optional :team_id, String, nil?: true - # @!parse - # # @param return_wildcard_routes [Boolean, nil] - # # @param team_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(return_wildcard_routes: nil, team_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(fallback_type: nil, include_metadata: nil, include_model_access_groups: nil, only_model_access_groups: nil, return_wildcard_routes: nil, team_id: nil, request_options: {}) + # @param fallback_type [String, nil] + # @param include_metadata [Boolean, nil] + # @param include_model_access_groups [Boolean, nil] + # @param only_model_access_groups [Boolean, nil] + # @param return_wildcard_routes [Boolean, nil] + # @param team_id [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/model_list_response.rb b/lib/hanzoai/models/model_list_response.rb new file mode 100644 index 00000000..c0f52861 --- /dev/null +++ b/lib/hanzoai/models/model_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ModelListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/moderation_create_params.rb b/lib/hanzoai/models/moderation_create_params.rb index 37b23a2f..788d45af 100644 --- a/lib/hanzoai/models/moderation_create_params.rb +++ b/lib/hanzoai/models/moderation_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Moderations#create class ModerationCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/moderation_create_response.rb b/lib/hanzoai/models/moderation_create_response.rb new file mode 100644 index 00000000..634f8ea7 --- /dev/null +++ b/lib/hanzoai/models/moderation_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ModerationCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/openai/deployment_complete_params.rb b/lib/hanzoai/models/openai/deployment_complete_params.rb index 4af31472..617460a6 100644 --- a/lib/hanzoai/models/openai/deployment_complete_params.rb +++ b/lib/hanzoai/models/openai/deployment_complete_params.rb @@ -5,16 +5,11 @@ module Models module OpenAI # @see Hanzoai::Resources::OpenAI::Deployments#complete class DeploymentCompleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/openai/deployment_complete_response.rb b/lib/hanzoai/models/openai/deployment_complete_response.rb new file mode 100644 index 00000000..4d793758 --- /dev/null +++ b/lib/hanzoai/models/openai/deployment_complete_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module OpenAI + # @type [Hanzoai::Internal::Type::Converter] + DeploymentCompleteResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/openai/deployment_embed_params.rb b/lib/hanzoai/models/openai/deployment_embed_params.rb index 555af9f8..99290bb4 100644 --- a/lib/hanzoai/models/openai/deployment_embed_params.rb +++ b/lib/hanzoai/models/openai/deployment_embed_params.rb @@ -5,16 +5,107 @@ module Models module OpenAI # @see Hanzoai::Resources::OpenAI::Deployments#embed class DeploymentEmbedParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super + # @!attribute body_model + # + # @return [String] + required :body_model, String, api_name: :model - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute api_base + # + # @return [String, nil] + optional :api_base, String, nil?: true + + # @!attribute api_key + # + # @return [String, nil] + optional :api_key, String, nil?: true + + # @!attribute api_type + # + # @return [String, nil] + optional :api_type, String, nil?: true + + # @!attribute api_version + # + # @return [String, nil] + optional :api_version, String, nil?: true + + # @!attribute caching + # + # @return [Boolean, nil] + optional :caching, Hanzoai::Internal::Type::Boolean + + # @!attribute custom_llm_provider + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :custom_llm_provider, + union: -> { Hanzoai::OpenAI::DeploymentEmbedParams::CustomLlmProvider }, + nil?: true + + # @!attribute input + # + # @return [Array, nil] + optional :input, Hanzoai::Internal::Type::ArrayOf[String] + + # @!attribute litellm_call_id + # + # @return [String, nil] + optional :litellm_call_id, String, nil?: true + + # @!attribute litellm_logging_obj + # + # @return [Hash{Symbol=>Object}, nil] + optional :litellm_logging_obj, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute logger_fn + # + # @return [String, nil] + optional :logger_fn, String, nil?: true + + # @!attribute timeout + # + # @return [Integer, nil] + optional :timeout, Integer + + # @!attribute user + # + # @return [String, nil] + optional :user, String, nil?: true + + # @!method initialize(body_model:, api_base: nil, api_key: nil, api_type: nil, api_version: nil, caching: nil, custom_llm_provider: nil, input: nil, litellm_call_id: nil, litellm_logging_obj: nil, logger_fn: nil, timeout: nil, user: nil, request_options: {}) + # @param body_model [String] + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_type [String, nil] + # @param api_version [String, nil] + # @param caching [Boolean] + # @param custom_llm_provider [String, Hash{Symbol=>Object}, nil] + # @param input [Array] + # @param litellm_call_id [String, nil] + # @param litellm_logging_obj [Hash{Symbol=>Object}, nil] + # @param logger_fn [String, nil] + # @param timeout [Integer] + # @param user [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::DeploymentEmbedParams::CustomLlmProvider::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end end end end diff --git a/lib/hanzoai/models/openai/deployment_embed_response.rb b/lib/hanzoai/models/openai/deployment_embed_response.rb new file mode 100644 index 00000000..d8e89bc6 --- /dev/null +++ b/lib/hanzoai/models/openai/deployment_embed_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module OpenAI + # @type [Hanzoai::Internal::Type::Converter] + DeploymentEmbedResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/openai/deployments/chat_complete_params.rb b/lib/hanzoai/models/openai/deployments/chat_complete_params.rb index 7f817d1d..cd68eb8b 100644 --- a/lib/hanzoai/models/openai/deployments/chat_complete_params.rb +++ b/lib/hanzoai/models/openai/deployments/chat_complete_params.rb @@ -6,16 +6,1294 @@ module OpenAI module Deployments # @see Hanzoai::Resources::OpenAI::Deployments::Chat#complete class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super + # @!attribute messages + # + # @return [Array] + required :messages, + -> { Hanzoai::Internal::Type::ArrayOf[union: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message] } - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute body_model + # + # @return [String] + required :body_model, String, api_name: :model + + # @!attribute caching + # + # @return [Boolean, nil] + optional :caching, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute context_window_fallback_dict + # + # @return [Hash{Symbol=>String}, nil] + optional :context_window_fallback_dict, Hanzoai::Internal::Type::HashOf[String], nil?: true + + # @!attribute fallbacks + # + # @return [Array, nil] + optional :fallbacks, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute frequency_penalty + # + # @return [Float, nil] + optional :frequency_penalty, Float, nil?: true + + # @!attribute function_call + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :function_call, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::FunctionCall }, + nil?: true + + # @!attribute functions + # + # @return [ArrayObject}>, nil] + optional :functions, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute guardrails + # + # @return [Array, nil] + optional :guardrails, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute logit_bias + # + # @return [Hash{Symbol=>Float}, nil] + optional :logit_bias, Hanzoai::Internal::Type::HashOf[Float], nil?: true + + # @!attribute logprobs + # + # @return [Boolean, nil] + optional :logprobs, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute max_tokens + # + # @return [Integer, nil] + optional :max_tokens, Integer, nil?: true + + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute n + # + # @return [Integer, nil] + optional :n, Integer, nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute parallel_tool_calls + # + # @return [Boolean, nil] + optional :parallel_tool_calls, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute presence_penalty + # + # @return [Float, nil] + optional :presence_penalty, Float, nil?: true + + # @!attribute response_format + # + # @return [Hash{Symbol=>Object}, nil] + optional :response_format, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute seed + # + # @return [Integer, nil] + optional :seed, Integer, nil?: true + + # @!attribute service_tier + # + # @return [String, nil] + optional :service_tier, String, nil?: true + + # @!attribute stop + # + # @return [String, Array, nil] + optional :stop, union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Stop }, nil?: true + + # @!attribute stream + # + # @return [Boolean, nil] + optional :stream, Hanzoai::Internal::Type::Boolean, nil?: true + + # @!attribute stream_options + # + # @return [Hash{Symbol=>Object}, nil] + optional :stream_options, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute temperature + # + # @return [Float, nil] + optional :temperature, Float, nil?: true + + # @!attribute tool_choice + # + # @return [String, Hash{Symbol=>Object}, nil] + optional :tool_choice, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::ToolChoice }, + nil?: true + + # @!attribute tools + # + # @return [ArrayObject}>, nil] + optional :tools, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute top_logprobs + # + # @return [Integer, nil] + optional :top_logprobs, Integer, nil?: true + + # @!attribute top_p + # + # @return [Float, nil] + optional :top_p, Float, nil?: true + + # @!attribute user + # + # @return [String, nil] + optional :user, String, nil?: true + + # @!method initialize(messages:, body_model:, caching: nil, context_window_fallback_dict: nil, fallbacks: nil, frequency_penalty: nil, function_call: nil, functions: nil, guardrails: nil, logit_bias: nil, logprobs: nil, max_tokens: nil, metadata: nil, n: nil, num_retries: nil, parallel_tool_calls: nil, presence_penalty: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, stream_options: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, user: nil, request_options: {}) + # @param messages [Array] + # @param body_model [String] + # @param caching [Boolean, nil] + # @param context_window_fallback_dict [Hash{Symbol=>String}, nil] + # @param fallbacks [Array, nil] + # @param frequency_penalty [Float, nil] + # @param function_call [String, Hash{Symbol=>Object}, nil] + # @param functions [ArrayObject}>, nil] + # @param guardrails [Array, nil] + # @param logit_bias [Hash{Symbol=>Float}, nil] + # @param logprobs [Boolean, nil] + # @param max_tokens [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param n [Integer, nil] + # @param num_retries [Integer, nil] + # @param parallel_tool_calls [Boolean, nil] + # @param presence_penalty [Float, nil] + # @param response_format [Hash{Symbol=>Object}, nil] + # @param seed [Integer, nil] + # @param service_tier [String, nil] + # @param stop [String, Array, nil] + # @param stream [Boolean, nil] + # @param stream_options [Hash{Symbol=>Object}, nil] + # @param temperature [Float, nil] + # @param tool_choice [String, Hash{Symbol=>Object}, nil] + # @param tools [ArrayObject}>, nil] + # @param top_logprobs [Integer, nil] + # @param top_p [Float, nil] + # @param user [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + module Message + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage } + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content } + + # @!attribute role + # + # @return [Symbol, :user] + required :role, const: :user + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl } + + # @!method initialize(content:, cache_control: nil, role: :user) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl] + # @param role [Symbol, :user] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1Array } + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + # @!attribute image_url + # + # @return [String, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject] + required :image_url, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL } + + # @!attribute type + # + # @return [Symbol, :image_url] + required :type, const: :image_url + + # @!method initialize(image_url:, type: :image_url) + # @param image_url [String, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject] + # @param type [Symbol, :image_url] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject#image_url + module ImageURL + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject } + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String + + # @!attribute format_ + # + # @return [String, nil] + optional :format_, String, api_name: :format + + # @!method initialize(url:, detail: nil, format_: nil) + # @param url [String] + # @param detail [String] + # @param format_ [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject)] + end + end + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + # @!attribute input_audio + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio] + required :input_audio, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio } + + # @!attribute type + # + # @return [Symbol, :input_audio] + required :type, const: :input_audio + + # @!method initialize(input_audio:, type: :input_audio) + # @param input_audio [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio] + # @param type [Symbol, :input_audio] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject#input_audio + class InputAudio < Hanzoai::Internal::Type::BaseModel + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute format_ + # + # @return [Symbol, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format] + required :format_, + enum: -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format + }, + api_name: :format + + # @!method initialize(data:, format_:) + # @param data [String] + # @param format_ [Symbol, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio#format_ + module Format + extend Hanzoai::Internal::Type::Enum + + WAV = :wav + MP3 = :mp3 + + # @!method self.values + # @return [Array] + end + end + end + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + # @!attribute citations + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, nil] + required :citations, + -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + }, + nil?: true + + # @!attribute context + # + # @return [String] + required :context, String + + # @!attribute source + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source] + required :source, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source } + + # @!attribute title + # + # @return [String] + required :title, String + + # @!attribute type + # + # @return [Symbol, :document] + required :type, const: :document + + # @!method initialize(citations:, context:, source:, title:, type: :document) + # @param citations [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, nil] + # @param context [String] + # @param source [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source] + # @param title [String] + # @param type [Symbol, :document] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject#citations + class Citations < Hanzoai::Internal::Type::BaseModel + # @!attribute enabled + # + # @return [Boolean] + required :enabled, Hanzoai::Internal::Type::Boolean + + # @!method initialize(enabled:) + # @param enabled [Boolean] + end + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject#source + class Source < Hanzoai::Internal::Type::BaseModel + # @!attribute data + # + # @return [String] + required :data, String + + # @!attribute media_type + # + # @return [String] + required :media_type, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!method initialize(data:, media_type:, type: :text) + # @param data [String] + # @param media_type [String] + # @param type [Symbol, :text] + end + end + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :video_url] + required :type, const: :video_url + + # @!attribute video_url + # + # @return [String, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject] + required :video_url, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL } + + # @!method initialize(video_url:, type: :video_url) + # @param video_url [String, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject] + # @param type [Symbol, :video_url] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject#video_url + module VideoURL + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject } + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + # @!attribute url + # + # @return [String] + required :url, String + + # @!attribute detail + # + # @return [String, nil] + optional :detail, String + + # @!method initialize(url:, detail: nil) + # @param url [String] + # @param detail [String] + end + + # @!method self.variants + # @return [Array(String, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject)] + end + end + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + # @!attribute file + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File] + required :file, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File } + + # @!attribute type + # + # @return [Symbol, :file] + required :type, const: :file + + # @!method initialize(file:, type: :file) + # @param file [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File] + # @param type [Symbol, :file] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject#file + class File < Hanzoai::Internal::Type::BaseModel + # @!attribute file_data + # + # @return [String, nil] + optional :file_data, String + + # @!attribute file_id + # + # @return [String, nil] + optional :file_id, String + + # @!attribute filename + # + # @return [String, nil] + optional :filename, String + + # @!attribute format_ + # + # @return [String, nil] + optional :format_, String, api_name: :format + + # @!method initialize(file_data: nil, file_id: nil, filename: nil, format_: nil) + # @param file_data [String] + # @param file_id [String] + # @param filename [String] + # @param format_ [String] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject)] + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1 } + ] + end + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute role + # + # @return [Symbol, :assistant] + required :role, const: :assistant + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl } + + # @!attribute content + # + # @return [String, Array, nil] + optional :content, + union: -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content + }, + nil?: true + + # @!attribute function_call + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall, nil] + optional :function_call, + -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall + }, + nil?: true + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute reasoning_content + # + # @return [String, nil] + optional :reasoning_content, String, nil?: true + + # @!attribute thinking_blocks + # + # @return [Array, nil] + optional :thinking_blocks, + -> do + Hanzoai::Internal::Type::ArrayOf[ + union: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock + ] + end, + nil?: true + + # @!attribute tool_calls + # + # @return [Array, nil] + optional :tool_calls, + -> { + Hanzoai::Internal::Type::ArrayOf[Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall] + }, + nil?: true + + # @!method initialize(cache_control: nil, content: nil, function_call: nil, name: nil, reasoning_content: nil, thinking_blocks: nil, tool_calls: nil, role: :assistant) + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl] + # @param content [String, Array, nil] + # @param function_call [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall, nil] + # @param name [String, nil] + # @param reasoning_content [String, nil] + # @param thinking_blocks [Array, nil] + # @param tool_calls [Array, nil] + # @param role [Symbol, :assistant] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1Array } + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock)] + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1 } + ] + end + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage#function_call + class FunctionCall < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String, nil] + optional :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(arguments: nil, name: nil, provider_specific_fields: nil) + # @param arguments [String] + # @param name [String, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :thinking] + required :type, const: :thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute signature + # + # @return [String, nil] + optional :signature, String + + # @!attribute thinking + # + # @return [String, nil] + optional :thinking, String + + # @!method initialize(cache_control: nil, signature: nil, thinking: nil, type: :thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param signature [String] + # @param thinking [String] + # @param type [Symbol, :thinking] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :redacted_thinking] + required :type, const: :redacted_thinking + + # @!attribute cache_control + # + # @return [Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + optional :cache_control, + union: -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl + }, + nil?: true + + # @!attribute data + # + # @return [String, nil] + optional :data, String + + # @!method initialize(cache_control: nil, data: nil, type: :redacted_thinking) + # @param cache_control [Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, nil] + # @param data [String] + # @param type [Symbol, :redacted_thinking] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock#cache_control + module CacheControl + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::UnionMember0Map } + + variant -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock)] + end + + class ToolCall < Hanzoai::Internal::Type::BaseModel + # @!attribute id + # + # @return [String, nil] + required :id, String, nil?: true + + # @!attribute function + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function] + required :function, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function } + + # @!attribute type + # + # @return [Symbol, :function] + required :type, const: :function + + # @!method initialize(id:, function:, type: :function) + # @param id [String, nil] + # @param function [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function] + # @param type [Symbol, :function] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall#function + class Function < Hanzoai::Internal::Type::BaseModel + # @!attribute arguments + # + # @return [String, nil] + optional :arguments, String + + # @!attribute name + # + # @return [String, nil] + optional :name, String, nil?: true + + # @!attribute provider_specific_fields + # + # @return [Hash{Symbol=>Object}, nil] + optional :provider_specific_fields, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!method initialize(arguments: nil, name: nil, provider_specific_fields: nil) + # @param arguments [String] + # @param name [String, nil] + # @param provider_specific_fields [Hash{Symbol=>Object}, nil] + end + end + end + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content } + + # @!attribute role + # + # @return [Symbol, :tool] + required :role, const: :tool + + # @!attribute tool_call_id + # + # @return [String] + required :tool_call_id, String + + # @!method initialize(content:, tool_call_id:, role: :tool) + # @param content [String, Array] + # @param tool_call_id [String] + # @param role [Symbol, :tool] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1Array } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1 } + ] + end + end + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content } + + # @!attribute role + # + # @return [Symbol, :system] + required :role, const: :system + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl } + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!method initialize(content:, cache_control: nil, name: nil, role: :system) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl] + # @param name [String] + # @param role [Symbol, :system] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::UnionMember1Array } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + end + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array, nil] + required :content, + union: -> { + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content + }, + nil?: true + + # @!attribute name + # + # @return [String] + required :name, String + + # @!attribute role + # + # @return [Symbol, :function] + required :role, const: :function + + # @!attribute tool_call_id + # + # @return [String, nil] + required :tool_call_id, String, nil?: true + + # @!method initialize(content:, name:, tool_call_id:, role: :function) + # @param content [String, Array, nil] + # @param name [String] + # @param tool_call_id [String, nil] + # @param role [Symbol, :function] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1Array } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + # @!attribute text + # + # @return [String] + required :text, String + + # @!attribute type + # + # @return [Symbol, :text] + required :type, const: :text + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl } + + # @!method initialize(text:, cache_control: nil, type: :text) + # @param text [String] + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl] + # @param type [Symbol, :text] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[ + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 } + ] + end + end + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + # @!attribute content + # + # @return [String, Array] + required :content, + union: -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content } + + # @!attribute role + # + # @return [Symbol, :developer] + required :role, const: :developer + + # @!attribute cache_control + # + # @return [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, nil] + optional :cache_control, + -> { Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl } + + # @!attribute name + # + # @return [String, nil] + optional :name, String + + # @!method initialize(content:, cache_control: nil, name: nil, role: :developer) + # @param content [String, Array] + # @param cache_control [Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl] + # @param name [String] + # @param role [Symbol, :developer] + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage#content + module Content + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::UnionMember1Array } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + end + + # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage#cache_control + class CacheControl < Hanzoai::Internal::Type::BaseModel + # @!attribute type + # + # @return [Symbol, :ephemeral] + required :type, const: :ephemeral + + # @!method initialize(type: :ephemeral) + # @param type [Symbol, :ephemeral] + end + end + + # @!method self.variants + # @return [Array(Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage, Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage)] + end + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::FunctionCall::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + + module Stop + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Stop::StringArray } + + # @!method self.variants + # @return [Array(String, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + StringArray = Hanzoai::Internal::Type::ArrayOf[String] + end + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::ToolChoice::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end end end end diff --git a/lib/hanzoai/models/openai/deployments/chat_complete_response.rb b/lib/hanzoai/models/openai/deployments/chat_complete_response.rb new file mode 100644 index 00000000..4ae8a195 --- /dev/null +++ b/lib/hanzoai/models/openai/deployments/chat_complete_response.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module OpenAI + module Deployments + # @type [Hanzoai::Internal::Type::Converter] + ChatCompleteResponse = Hanzoai::Internal::Type::Unknown + end + end + end +end diff --git a/lib/hanzoai/models/openai_create_params.rb b/lib/hanzoai/models/openai_create_params.rb index 2c6f793c..a846db80 100644 --- a/lib/hanzoai/models/openai_create_params.rb +++ b/lib/hanzoai/models/openai_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::OpenAI#create class OpenAICreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/openai_create_response.rb b/lib/hanzoai/models/openai_create_response.rb new file mode 100644 index 00000000..4a460897 --- /dev/null +++ b/lib/hanzoai/models/openai_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + OpenAICreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/openai_delete_params.rb b/lib/hanzoai/models/openai_delete_params.rb index 1b14ea44..f5499fa6 100644 --- a/lib/hanzoai/models/openai_delete_params.rb +++ b/lib/hanzoai/models/openai_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::OpenAI#delete class OpenAIDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/openai_delete_response.rb b/lib/hanzoai/models/openai_delete_response.rb new file mode 100644 index 00000000..d6ca472d --- /dev/null +++ b/lib/hanzoai/models/openai_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + OpenAIDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/openai_patch_params.rb b/lib/hanzoai/models/openai_patch_params.rb index 61c53a61..1d84466b 100644 --- a/lib/hanzoai/models/openai_patch_params.rb +++ b/lib/hanzoai/models/openai_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::OpenAI#patch class OpenAIPatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/openai_patch_response.rb b/lib/hanzoai/models/openai_patch_response.rb new file mode 100644 index 00000000..7f260691 --- /dev/null +++ b/lib/hanzoai/models/openai_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + OpenAIPatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/openai_retrieve_params.rb b/lib/hanzoai/models/openai_retrieve_params.rb index 478d1f3a..ce89c155 100644 --- a/lib/hanzoai/models/openai_retrieve_params.rb +++ b/lib/hanzoai/models/openai_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::OpenAI#retrieve class OpenAIRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/openai_retrieve_response.rb b/lib/hanzoai/models/openai_retrieve_response.rb new file mode 100644 index 00000000..09f08243 --- /dev/null +++ b/lib/hanzoai/models/openai_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + OpenAIRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/openai_update_params.rb b/lib/hanzoai/models/openai_update_params.rb index ae29054a..5ff3e81f 100644 --- a/lib/hanzoai/models/openai_update_params.rb +++ b/lib/hanzoai/models/openai_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::OpenAI#update class OpenAIUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/openai_update_response.rb b/lib/hanzoai/models/openai_update_response.rb new file mode 100644 index 00000000..d99bd598 --- /dev/null +++ b/lib/hanzoai/models/openai_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + OpenAIUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/org_member.rb b/lib/hanzoai/models/org_member.rb index 6bbf5276..a712bd87 100644 --- a/lib/hanzoai/models/org_member.rb +++ b/lib/hanzoai/models/org_member.rb @@ -6,26 +6,30 @@ class OrgMember < Hanzoai::Internal::Type::BaseModel # @!attribute role # # @return [Symbol, Hanzoai::Models::OrgMember::Role] - required :role, enum: -> { Hanzoai::Models::OrgMember::Role } + required :role, enum: -> { Hanzoai::OrgMember::Role } # @!attribute user_email + # The email address of the user to add. Either user_id or user_email must be + # provided # # @return [String, nil] optional :user_email, String, nil?: true # @!attribute user_id + # The unique ID of the user to add. Either user_id or user_email must be provided # # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param role [Symbol, Hanzoai::Models::OrgMember::Role] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # - # def initialize(role:, user_email: nil, user_id: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(role:, user_email: nil, user_id: nil) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::OrgMember} for more details. + # + # @param role [Symbol, Hanzoai::Models::OrgMember::Role] + # + # @param user_email [String, nil] The email address of the user to add. Either user_id or user_email must be provi + # + # @param user_id [String, nil] The unique ID of the user to add. Either user_id or user_email must be provided # @see Hanzoai::Models::OrgMember#role module Role @@ -35,11 +39,8 @@ module Role INTERNAL_USER = :internal_user INTERNAL_USER_VIEWER = :internal_user_viewer - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/organization/info_deprecated_params.rb b/lib/hanzoai/models/organization/info_deprecated_params.rb index 27031fe2..4802da70 100644 --- a/lib/hanzoai/models/organization/info_deprecated_params.rb +++ b/lib/hanzoai/models/organization/info_deprecated_params.rb @@ -5,8 +5,7 @@ module Models module Organization # @see Hanzoai::Resources::Organization::Info#deprecated class InfoDeprecatedParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute organizations @@ -14,13 +13,9 @@ class InfoDeprecatedParams < Hanzoai::Internal::Type::BaseModel # @return [Array] required :organizations, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @param organizations [Array] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(organizations:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(organizations:, request_options: {}) + # @param organizations [Array] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/organization/info_deprecated_response.rb b/lib/hanzoai/models/organization/info_deprecated_response.rb new file mode 100644 index 00000000..83e9b312 --- /dev/null +++ b/lib/hanzoai/models/organization/info_deprecated_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Organization + # @type [Hanzoai::Internal::Type::Converter] + InfoDeprecatedResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/organization/info_retrieve_params.rb b/lib/hanzoai/models/organization/info_retrieve_params.rb index 096efe09..5eb2fdf6 100644 --- a/lib/hanzoai/models/organization/info_retrieve_params.rb +++ b/lib/hanzoai/models/organization/info_retrieve_params.rb @@ -5,8 +5,7 @@ module Models module Organization # @see Hanzoai::Resources::Organization::Info#retrieve class InfoRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute organization_id @@ -14,13 +13,9 @@ class InfoRetrieveParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :organization_id, String - # @!parse - # # @param organization_id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(organization_id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(organization_id:, request_options: {}) + # @param organization_id [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/organization/info_retrieve_response.rb b/lib/hanzoai/models/organization/info_retrieve_response.rb deleted file mode 100644 index 40445288..00000000 --- a/lib/hanzoai/models/organization/info_retrieve_response.rb +++ /dev/null @@ -1,556 +0,0 @@ -# frozen_string_literal: true - -module Hanzoai - module Models - module Organization - # @see Hanzoai::Resources::Organization::Info#retrieve - class InfoRetrieveResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_id - # - # @return [String] - required :budget_id, String - - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute models - # - # @return [Array] - required :models, Hanzoai::Internal::Type::ArrayOf[String] - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable }, - nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Organization::InfoRetrieveResponse::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute organization_alias - # - # @return [String, nil] - optional :organization_alias, String, nil?: true - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] teams - # - # @return [Array, nil] - optional :teams, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Organization::InfoRetrieveResponse::Team] } - - # @!parse - # # @return [Array] - # attr_writer :teams - - # @!parse - # # Returned by the /organization/info endpoint and /organization/list endpoint - # # - # # @param budget_id [String] - # # @param created_at [Time] - # # @param created_by [String] - # # @param models [Array] - # # @param updated_at [Time] - # # @param updated_by [String] - # # @param llm_budget_table [Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable, nil] - # # @param members [Array] - # # @param metadata [Object, nil] - # # @param organization_alias [String, nil] - # # @param organization_id [String, nil] - # # @param spend [Float] - # # @param teams [Array] - # # - # def initialize( - # budget_id:, - # created_at:, - # created_by:, - # models:, - # updated_at:, - # updated_by:, - # llm_budget_table: nil, - # members: nil, - # metadata: nil, - # organization_alias: nil, - # organization_id: nil, - # spend: nil, - # teams: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::Organization::InfoRetrieveResponse#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - - class Member < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute organization_id - # - # @return [String] - required :organization_id, String - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute budget_id - # - # @return [String, nil] - optional :budget_id, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable }, - nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] user - # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user - - # @!attribute user_role - # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::Organization::InfoRetrieveResponse::Member#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - # @!attribute team_id - # - # @return [String] - required :team_id, String - - # @!attribute [r] admins - # - # @return [Array, nil] - optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :admins - - # @!attribute [r] blocked - # - # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked - - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute budget_reset_at - # - # @return [Time, nil] - optional :budget_reset_at, Time, nil?: true - - # @!attribute created_at - # - # @return [Time, nil] - optional :created_at, Time, nil?: true - - # @!attribute llm_model_table - # - # @return [Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable, nil] - optional :llm_model_table, - -> { Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable }, - nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute [r] members_with_roles - # - # @return [Array, nil] - optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members_with_roles - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute model_id - # - # @return [Integer, nil] - optional :model_id, Integer, nil?: true - - # @!attribute [r] models - # - # @return [Array, nil] - optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :models - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute spend - # - # @return [Float, nil] - optional :spend, Float, nil?: true - - # @!attribute team_alias - # - # @return [String, nil] - optional :team_alias, String, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # @param team_id [String] - # # @param admins [Array] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param created_at [Time, nil] - # # @param llm_model_table [Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param members [Array] - # # @param members_with_roles [Array] - # # @param metadata [Object, nil] - # # @param model_id [Integer, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param team_alias [String, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # team_id:, - # admins: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # created_at: nil, - # llm_model_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # members: nil, - # members_with_roles: nil, - # metadata: nil, - # model_id: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # spend: nil, - # team_alias: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::Organization::InfoRetrieveResponse::Team#llm_model_table - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute model_aliases - # - # @return [Object, String, nil] - optional :model_aliases, - union: -> { Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable::ModelAliases }, - nil?: true - - # @!parse - # # @param created_by [String] - # # @param updated_by [String] - # # @param model_aliases [Object, String, nil] - # # - # def initialize(created_by:, updated_by:, model_aliases: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable#model_aliases - module ModelAliases - extend Hanzoai::Internal::Type::Union - - variant Hanzoai::Internal::Type::Unknown - - variant String - - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end - end - end - end - end - end - end -end diff --git a/lib/hanzoai/models/organization_add_member_params.rb b/lib/hanzoai/models/organization_add_member_params.rb index 459b40f8..6bc5c276 100644 --- a/lib/hanzoai/models/organization_add_member_params.rb +++ b/lib/hanzoai/models/organization_add_member_params.rb @@ -4,14 +4,13 @@ module Hanzoai module Models # @see Hanzoai::Resources::Organization#add_member class OrganizationAddMemberParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute member # # @return [Array, Hanzoai::Models::OrgMember] - required :member, union: -> { Hanzoai::Models::OrganizationAddMemberParams::Member } + required :member, union: -> { Hanzoai::OrganizationAddMemberParams::Member } # @!attribute organization_id # @@ -23,28 +22,24 @@ class OrganizationAddMemberParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :max_budget_in_organization, Float, nil?: true - # @!parse - # # @param member [Array, Hanzoai::Models::OrgMember] - # # @param organization_id [String] - # # @param max_budget_in_organization [Float, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(member:, organization_id:, max_budget_in_organization: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(member:, organization_id:, max_budget_in_organization: nil, request_options: {}) + # @param member [Array, Hanzoai::Models::OrgMember] + # @param organization_id [String] + # @param max_budget_in_organization [Float, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module Member extend Hanzoai::Internal::Type::Union variant -> { Hanzoai::Models::OrganizationAddMemberParams::Member::OrgMemberArray } - variant -> { Hanzoai::Models::OrgMember } + variant -> { Hanzoai::OrgMember } - # @!parse - # # @return [Array(Array, Hanzoai::Models::OrgMember)] - # def self.variants; end + # @!method self.variants + # @return [Array(Array, Hanzoai::Models::OrgMember)] - OrgMemberArray = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::OrgMember }] + # @type [Hanzoai::Internal::Type::Converter] + OrgMemberArray = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::OrgMember }] end end end diff --git a/lib/hanzoai/models/organization_add_member_response.rb b/lib/hanzoai/models/organization_add_member_response.rb index 18d7de07..92d0ee43 100644 --- a/lib/hanzoai/models/organization_add_member_response.rb +++ b/lib/hanzoai/models/organization_add_member_response.rb @@ -11,9 +11,9 @@ class OrganizationAddMemberResponse < Hanzoai::Internal::Type::BaseModel # @!attribute updated_organization_memberships # - # @return [Array] + # @return [Array] required :updated_organization_memberships, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership] } + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable] } # @!attribute updated_users # @@ -21,167 +21,10 @@ class OrganizationAddMemberResponse < Hanzoai::Internal::Type::BaseModel required :updated_users, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser] } - # @!parse - # # @param organization_id [String] - # # @param updated_organization_memberships [Array] - # # @param updated_users [Array] - # # - # def initialize(organization_id:, updated_organization_memberships:, updated_users:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - class UpdatedOrganizationMembership < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute organization_id - # - # @return [String] - required :organization_id, String - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute budget_id - # - # @return [String, nil] - optional :budget_id, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable }, - nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] user - # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user - - # @!attribute user_role - # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end + # @!method initialize(organization_id:, updated_organization_memberships:, updated_users:) + # @param organization_id [String] + # @param updated_organization_memberships [Array] + # @param updated_users [Array] class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @!attribute user_id @@ -199,6 +42,11 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @return [Time, nil] optional :budget_reset_at, Time, nil?: true + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true + # @!attribute max_budget # # @return [Float, nil] @@ -206,33 +54,39 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_spend # - # @return [Object, nil] - optional :model_spend, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_spend, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true - # @!attribute [r] models + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission }, + nil?: true # @!attribute organization_memberships # - # @return [Array, nil] + # @return [Array, nil] optional :organization_memberships, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership] }, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable] }, nil?: true # @!attribute rpm_limit @@ -240,34 +94,36 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true - # @!attribute [r] spend + # @!attribute spend # # @return [Float, nil] optional :spend, Float - # @!parse - # # @return [Float] - # attr_writer :spend - # @!attribute sso_user_id # # @return [String, nil] optional :sso_user_id, String, nil?: true - # @!attribute [r] teams + # @!attribute teams # # @return [Array, nil] optional :teams, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @return [Array] - # attr_writer :teams - # @!attribute tpm_limit # # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + + # @!attribute user_alias + # + # @return [String, nil] + optional :user_alias, String, nil?: true + # @!attribute user_email # # @return [String, nil] @@ -278,199 +134,96 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_role, String, nil?: true - # @!parse - # # @param user_id [String] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param max_budget [Float, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_spend [Object, nil] - # # @param models [Array] - # # @param organization_memberships [Array, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float] - # # @param sso_user_id [String, nil] - # # @param teams [Array] - # # @param tpm_limit [Integer, nil] - # # @param user_email [String, nil] - # # @param user_role [String, nil] - # # - # def initialize( - # user_id:, - # budget_duration: nil, - # budget_reset_at: nil, - # max_budget: nil, - # metadata: nil, - # model_max_budget: nil, - # model_spend: nil, - # models: nil, - # organization_memberships: nil, - # rpm_limit: nil, - # spend: nil, - # sso_user_id: nil, - # teams: nil, - # tpm_limit: nil, - # user_email: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - class OrganizationMembership < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time + # @!method initialize(user_id:, budget_duration: nil, budget_reset_at: nil, created_at: nil, max_budget: nil, metadata: nil, model_max_budget: nil, model_spend: nil, models: nil, object_permission: nil, organization_memberships: nil, rpm_limit: nil, spend: nil, sso_user_id: nil, teams: nil, tpm_limit: nil, updated_at: nil, user_alias: nil, user_email: nil, user_role: nil) + # @param user_id [String] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param created_at [Time, nil] + # + # @param max_budget [Float, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_spend [Hash{Symbol=>Object}, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param organization_memberships [Array, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param spend [Float] + # + # @param sso_user_id [String, nil] + # + # @param teams [Array] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] + # + # @param user_alias [String, nil] + # + # @param user_email [String, nil] + # + # @param user_role [String, nil] - # @!attribute organization_id + # @see Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id # # @return [String] - required :organization_id, String + required :object_permission_id, String - # @!attribute updated_at + # @!attribute agent_access_groups # - # @return [Time] - required :updated_at, Time + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute user_id + # @!attribute agents # - # @return [String] - required :user_id, String + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute budget_id + # @!attribute mcp_access_groups # - # @return [String, nil] - optional :budget_id, String, nil?: true + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record + # @!attribute mcp_servers # - # @return [Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable }, - nil?: true + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute [r] spend + # @!attribute mcp_tool_permissions # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true - # @!attribute [r] user + # @!attribute vector_stores # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute user_role + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] end end end diff --git a/lib/hanzoai/models/organization_create_params.rb b/lib/hanzoai/models/organization_create_params.rb index d4d176e3..b1795ca2 100644 --- a/lib/hanzoai/models/organization_create_params.rb +++ b/lib/hanzoai/models/organization_create_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Organization#create class OrganizationCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute organization_alias @@ -35,22 +34,35 @@ class OrganizationCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!attribute [r] models + # @!attribute model_rpm_limit + # + # @return [Hash{Symbol=>Integer}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Integer], nil?: true + + # @!attribute model_tpm_limit + # + # @return [Hash{Symbol=>Integer}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Integer], nil?: true + + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # + # @return [Hanzoai::Models::OrganizationCreateParams::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::OrganizationCreateParams::ObjectPermission }, nil?: true # @!attribute organization_id # @@ -72,41 +84,65 @@ class OrganizationCreateParams < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!parse - # # @param organization_alias [String] - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # organization_alias:, - # budget_duration: nil, - # budget_id: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(organization_alias:, budget_duration: nil, budget_id: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) + # @param organization_alias [String] + # @param budget_duration [String, nil] + # @param budget_id [String, nil] + # @param max_budget [Float, nil] + # @param max_parallel_requests [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # @param model_rpm_limit [Hash{Symbol=>Integer}, nil] + # @param model_tpm_limit [Hash{Symbol=>Integer}, nil] + # @param models [Array] + # @param object_permission [Hanzoai::Models::OrganizationCreateParams::ObjectPermission, nil] + # @param organization_id [String, nil] + # @param rpm_limit [Integer, nil] + # @param soft_budget [Float, nil] + # @param tpm_limit [Integer, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end end end end diff --git a/lib/hanzoai/models/organization_create_response.rb b/lib/hanzoai/models/organization_create_response.rb index 178037f7..d6a5c5a8 100644 --- a/lib/hanzoai/models/organization_create_response.rb +++ b/lib/hanzoai/models/organization_create_response.rb @@ -39,54 +39,327 @@ class OrganizationCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [String] required :updated_by, String + # @!attribute litellm_budget_table + # Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @return [Hanzoai::Models::BudgetTable, nil] + optional :litellm_budget_table, -> { Hanzoai::BudgetTable }, nil?: true + # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::OrganizationCreateResponse::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::Models::OrganizationCreateResponse::ObjectPermission }, + nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true # @!attribute organization_alias # # @return [String, nil] optional :organization_alias, String, nil?: true - # @!attribute [r] spend + # @!attribute spend # # @return [Float, nil] optional :spend, Float - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!parse - # # @param budget_id [String] - # # @param created_at [Time] - # # @param created_by [String] - # # @param models [Array] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param updated_by [String] - # # @param metadata [Object, nil] - # # @param organization_alias [String, nil] - # # @param spend [Float] - # # - # def initialize( - # budget_id:, - # created_at:, - # created_by:, - # models:, - # organization_id:, - # updated_at:, - # updated_by:, - # metadata: nil, - # organization_alias: nil, - # spend: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute users + # + # @return [Array, nil] + optional :users, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationCreateResponse::User] }, + nil?: true + + # @!method initialize(budget_id:, created_at:, created_by:, models:, organization_id:, updated_at:, updated_by:, litellm_budget_table: nil, metadata: nil, object_permission: nil, object_permission_id: nil, organization_alias: nil, spend: nil, users: nil) + # @param budget_id [String] + # + # @param created_at [Time] + # + # @param created_by [String] + # + # @param models [Array] + # + # @param organization_id [String] + # + # @param updated_at [Time] + # + # @param updated_by [String] + # + # @param litellm_budget_table [Hanzoai::Models::BudgetTable, nil] Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param object_permission [Hanzoai::Models::OrganizationCreateResponse::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param organization_alias [String, nil] + # + # @param spend [Float] + # + # @param users [Array, nil] + + # @see Hanzoai::Models::OrganizationCreateResponse#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + class User < Hanzoai::Internal::Type::BaseModel + # @!attribute user_id + # + # @return [String] + required :user_id, String + + # @!attribute budget_duration + # + # @return [String, nil] + optional :budget_duration, String, nil?: true + + # @!attribute budget_reset_at + # + # @return [Time, nil] + optional :budget_reset_at, Time, nil?: true + + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true + + # @!attribute max_budget + # + # @return [Float, nil] + optional :max_budget, Float, nil?: true + + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute model_max_budget + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute model_spend + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_spend, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute models + # + # @return [Array, nil] + optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission }, + nil?: true + + # @!attribute organization_memberships + # + # @return [Array, nil] + optional :organization_memberships, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable] }, + nil?: true + + # @!attribute rpm_limit + # + # @return [Integer, nil] + optional :rpm_limit, Integer, nil?: true + + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float + + # @!attribute sso_user_id + # + # @return [String, nil] + optional :sso_user_id, String, nil?: true + + # @!attribute teams + # + # @return [Array, nil] + optional :teams, Hanzoai::Internal::Type::ArrayOf[String] + + # @!attribute tpm_limit + # + # @return [Integer, nil] + optional :tpm_limit, Integer, nil?: true + + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + + # @!attribute user_alias + # + # @return [String, nil] + optional :user_alias, String, nil?: true + + # @!attribute user_email + # + # @return [String, nil] + optional :user_email, String, nil?: true + + # @!attribute user_role + # + # @return [String, nil] + optional :user_role, String, nil?: true + + # @!method initialize(user_id:, budget_duration: nil, budget_reset_at: nil, created_at: nil, max_budget: nil, metadata: nil, model_max_budget: nil, model_spend: nil, models: nil, object_permission: nil, organization_memberships: nil, rpm_limit: nil, spend: nil, sso_user_id: nil, teams: nil, tpm_limit: nil, updated_at: nil, user_alias: nil, user_email: nil, user_role: nil) + # @param user_id [String] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param created_at [Time, nil] + # + # @param max_budget [Float, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_spend [Hash{Symbol=>Object}, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param organization_memberships [Array, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param spend [Float] + # + # @param sso_user_id [String, nil] + # + # @param teams [Array] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] + # + # @param user_alias [String, nil] + # + # @param user_email [String, nil] + # + # @param user_role [String, nil] + + # @see Hanzoai::Models::OrganizationCreateResponse::User#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + end end end end diff --git a/lib/hanzoai/models/organization_delete_member_params.rb b/lib/hanzoai/models/organization_delete_member_params.rb index 4babc187..0ce0ed66 100644 --- a/lib/hanzoai/models/organization_delete_member_params.rb +++ b/lib/hanzoai/models/organization_delete_member_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Organization#delete_member class OrganizationDeleteMemberParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute organization_id @@ -23,15 +22,11 @@ class OrganizationDeleteMemberParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param organization_id [String] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(organization_id:, user_email: nil, user_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(organization_id:, user_email: nil, user_id: nil, request_options: {}) + # @param organization_id [String] + # @param user_email [String, nil] + # @param user_id [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/organization_delete_member_response.rb b/lib/hanzoai/models/organization_delete_member_response.rb new file mode 100644 index 00000000..5e5400ef --- /dev/null +++ b/lib/hanzoai/models/organization_delete_member_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + OrganizationDeleteMemberResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/organization_delete_params.rb b/lib/hanzoai/models/organization_delete_params.rb index a8add205..932264e9 100644 --- a/lib/hanzoai/models/organization_delete_params.rb +++ b/lib/hanzoai/models/organization_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Organization#delete class OrganizationDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute organization_ids @@ -13,13 +12,9 @@ class OrganizationDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [Array] required :organization_ids, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @param organization_ids [Array] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(organization_ids:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(organization_ids:, request_options: {}) + # @param organization_ids [Array] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/organization_delete_response.rb b/lib/hanzoai/models/organization_delete_response.rb index cb141821..4e28055c 100644 --- a/lib/hanzoai/models/organization_delete_response.rb +++ b/lib/hanzoai/models/organization_delete_response.rb @@ -2,555 +2,8 @@ module Hanzoai module Models - class OrganizationDeleteResponseItem < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_id - # - # @return [String] - required :budget_id, String - - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute models - # - # @return [Array] - required :models, Hanzoai::Internal::Type::ArrayOf[String] - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable }, - nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationDeleteResponseItem::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute organization_alias - # - # @return [String, nil] - optional :organization_alias, String, nil?: true - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] teams - # - # @return [Array, nil] - optional :teams, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationDeleteResponseItem::Team] } - - # @!parse - # # @return [Array] - # attr_writer :teams - - # @!parse - # # Returned by the /organization/info endpoint and /organization/list endpoint - # # - # # @param budget_id [String] - # # @param created_at [Time] - # # @param created_by [String] - # # @param models [Array] - # # @param updated_at [Time] - # # @param updated_by [String] - # # @param llm_budget_table [Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable, nil] - # # @param members [Array] - # # @param metadata [Object, nil] - # # @param organization_alias [String, nil] - # # @param organization_id [String, nil] - # # @param spend [Float] - # # @param teams [Array] - # # - # def initialize( - # budget_id:, - # created_at:, - # created_by:, - # models:, - # updated_at:, - # updated_by:, - # llm_budget_table: nil, - # members: nil, - # metadata: nil, - # organization_alias: nil, - # organization_id: nil, - # spend: nil, - # teams: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationDeleteResponseItem#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - - class Member < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute organization_id - # - # @return [String] - required :organization_id, String - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute budget_id - # - # @return [String, nil] - optional :budget_id, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable }, - nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] user - # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user - - # @!attribute user_role - # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationDeleteResponseItem::Member#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - # @!attribute team_id - # - # @return [String] - required :team_id, String - - # @!attribute [r] admins - # - # @return [Array, nil] - optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :admins - - # @!attribute [r] blocked - # - # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked - - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute budget_reset_at - # - # @return [Time, nil] - optional :budget_reset_at, Time, nil?: true - - # @!attribute created_at - # - # @return [Time, nil] - optional :created_at, Time, nil?: true - - # @!attribute llm_model_table - # - # @return [Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable, nil] - optional :llm_model_table, - -> { Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable }, - nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute [r] members_with_roles - # - # @return [Array, nil] - optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members_with_roles - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute model_id - # - # @return [Integer, nil] - optional :model_id, Integer, nil?: true - - # @!attribute [r] models - # - # @return [Array, nil] - optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :models - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute spend - # - # @return [Float, nil] - optional :spend, Float, nil?: true - - # @!attribute team_alias - # - # @return [String, nil] - optional :team_alias, String, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # @param team_id [String] - # # @param admins [Array] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param created_at [Time, nil] - # # @param llm_model_table [Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param members [Array] - # # @param members_with_roles [Array] - # # @param metadata [Object, nil] - # # @param model_id [Integer, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param team_alias [String, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # team_id:, - # admins: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # created_at: nil, - # llm_model_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # members: nil, - # members_with_roles: nil, - # metadata: nil, - # model_id: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # spend: nil, - # team_alias: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationDeleteResponseItem::Team#llm_model_table - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute model_aliases - # - # @return [Object, String, nil] - optional :model_aliases, - union: -> { Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable::ModelAliases }, - nil?: true - - # @!parse - # # @param created_by [String] - # # @param updated_by [String] - # # @param model_aliases [Object, String, nil] - # # - # def initialize(created_by:, updated_by:, model_aliases: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable#model_aliases - module ModelAliases - extend Hanzoai::Internal::Type::Union - - variant Hanzoai::Internal::Type::Unknown - - variant String - - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end - end - end - end - end - + # @type [Hanzoai::Internal::Type::Converter] OrganizationDeleteResponse = - Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::OrganizationDeleteResponseItem }] + Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::OrganizationTableWithMembers }] end end diff --git a/lib/hanzoai/models/organization_list_params.rb b/lib/hanzoai/models/organization_list_params.rb index 05736a45..8ffbb642 100644 --- a/lib/hanzoai/models/organization_list_params.rb +++ b/lib/hanzoai/models/organization_list_params.rb @@ -4,16 +4,31 @@ module Hanzoai module Models # @see Hanzoai::Resources::Organization#list class OrganizationListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super + # @!attribute org_alias + # Filter organizations by partial organization_alias match. Supports + # case-insensitive search. + # + # @return [String, nil] + optional :org_alias, String, nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute org_id + # Filter organizations by exact organization_id match + # + # @return [String, nil] + optional :org_id, String, nil?: true + + # @!method initialize(org_alias: nil, org_id: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::OrganizationListParams} for more details. + # + # @param org_alias [String, nil] Filter organizations by partial organization_alias match. Supports case-insensit + # + # @param org_id [String, nil] Filter organizations by exact organization_id match + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/organization_list_response.rb b/lib/hanzoai/models/organization_list_response.rb index 3f6f9605..4a536620 100644 --- a/lib/hanzoai/models/organization_list_response.rb +++ b/lib/hanzoai/models/organization_list_response.rb @@ -2,555 +2,7 @@ module Hanzoai module Models - class OrganizationListResponseItem < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_id - # - # @return [String] - required :budget_id, String - - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute models - # - # @return [Array] - required :models, Hanzoai::Internal::Type::ArrayOf[String] - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable }, - nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationListResponseItem::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute organization_alias - # - # @return [String, nil] - optional :organization_alias, String, nil?: true - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] teams - # - # @return [Array, nil] - optional :teams, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationListResponseItem::Team] } - - # @!parse - # # @return [Array] - # attr_writer :teams - - # @!parse - # # Returned by the /organization/info endpoint and /organization/list endpoint - # # - # # @param budget_id [String] - # # @param created_at [Time] - # # @param created_by [String] - # # @param models [Array] - # # @param updated_at [Time] - # # @param updated_by [String] - # # @param llm_budget_table [Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable, nil] - # # @param members [Array] - # # @param metadata [Object, nil] - # # @param organization_alias [String, nil] - # # @param organization_id [String, nil] - # # @param spend [Float] - # # @param teams [Array] - # # - # def initialize( - # budget_id:, - # created_at:, - # created_by:, - # models:, - # updated_at:, - # updated_by:, - # llm_budget_table: nil, - # members: nil, - # metadata: nil, - # organization_alias: nil, - # organization_id: nil, - # spend: nil, - # teams: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationListResponseItem#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - - class Member < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute organization_id - # - # @return [String] - required :organization_id, String - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute budget_id - # - # @return [String, nil] - optional :budget_id, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable }, - nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] user - # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user - - # @!attribute user_role - # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationListResponseItem::Member#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - # @!attribute team_id - # - # @return [String] - required :team_id, String - - # @!attribute [r] admins - # - # @return [Array, nil] - optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :admins - - # @!attribute [r] blocked - # - # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked - - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute budget_reset_at - # - # @return [Time, nil] - optional :budget_reset_at, Time, nil?: true - - # @!attribute created_at - # - # @return [Time, nil] - optional :created_at, Time, nil?: true - - # @!attribute llm_model_table - # - # @return [Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable, nil] - optional :llm_model_table, - -> { Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable }, - nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute [r] members_with_roles - # - # @return [Array, nil] - optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members_with_roles - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute model_id - # - # @return [Integer, nil] - optional :model_id, Integer, nil?: true - - # @!attribute [r] models - # - # @return [Array, nil] - optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :models - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute spend - # - # @return [Float, nil] - optional :spend, Float, nil?: true - - # @!attribute team_alias - # - # @return [String, nil] - optional :team_alias, String, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # @param team_id [String] - # # @param admins [Array] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param created_at [Time, nil] - # # @param llm_model_table [Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param members [Array] - # # @param members_with_roles [Array] - # # @param metadata [Object, nil] - # # @param model_id [Integer, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param team_alias [String, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # team_id:, - # admins: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # created_at: nil, - # llm_model_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # members: nil, - # members_with_roles: nil, - # metadata: nil, - # model_id: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # spend: nil, - # team_alias: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationListResponseItem::Team#llm_model_table - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute model_aliases - # - # @return [Object, String, nil] - optional :model_aliases, - union: -> { Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable::ModelAliases }, - nil?: true - - # @!parse - # # @param created_by [String] - # # @param updated_by [String] - # # @param model_aliases [Object, String, nil] - # # - # def initialize(created_by:, updated_by:, model_aliases: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable#model_aliases - module ModelAliases - extend Hanzoai::Internal::Type::Union - - variant Hanzoai::Internal::Type::Unknown - - variant String - - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end - end - end - end - end - - OrganizationListResponse = - Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::OrganizationListResponseItem }] + # @type [Hanzoai::Internal::Type::Converter] + OrganizationListResponse = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::OrganizationTableWithMembers }] end end diff --git a/lib/hanzoai/models/organization_membership_table.rb b/lib/hanzoai/models/organization_membership_table.rb new file mode 100644 index 00000000..eaf960cd --- /dev/null +++ b/lib/hanzoai/models/organization_membership_table.rb @@ -0,0 +1,76 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @see Hanzoai::Resources::Organization#update_member + class OrganizationMembershipTable < Hanzoai::Internal::Type::BaseModel + # @!attribute created_at + # + # @return [Time] + required :created_at, Time + + # @!attribute organization_id + # + # @return [String] + required :organization_id, String + + # @!attribute updated_at + # + # @return [Time] + required :updated_at, Time + + # @!attribute user_id + # + # @return [String] + required :user_id, String + + # @!attribute budget_id + # + # @return [String, nil] + optional :budget_id, String, nil?: true + + # @!attribute litellm_budget_table + # Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @return [Hanzoai::Models::BudgetTable, nil] + optional :litellm_budget_table, -> { Hanzoai::BudgetTable }, nil?: true + + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float + + # @!attribute user + # + # @return [Object, nil] + optional :user, Hanzoai::Internal::Type::Unknown + + # @!attribute user_role + # + # @return [String, nil] + optional :user_role, String, nil?: true + + # @!method initialize(created_at:, organization_id:, updated_at:, user_id:, budget_id: nil, litellm_budget_table: nil, spend: nil, user: nil, user_role: nil) + # This is the table that track what organizations a user belongs to and users + # spend within the organization + # + # @param created_at [Time] + # + # @param organization_id [String] + # + # @param updated_at [Time] + # + # @param user_id [String] + # + # @param budget_id [String, nil] + # + # @param litellm_budget_table [Hanzoai::Models::BudgetTable, nil] Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @param spend [Float] + # + # @param user [Object] + # + # @param user_role [String, nil] + end + end +end diff --git a/lib/hanzoai/models/organization_table_with_members.rb b/lib/hanzoai/models/organization_table_with_members.rb new file mode 100644 index 00000000..63aec8e2 --- /dev/null +++ b/lib/hanzoai/models/organization_table_with_members.rb @@ -0,0 +1,606 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @see Hanzoai::Resources::Organization#update + class OrganizationTableWithMembers < Hanzoai::Internal::Type::BaseModel + # @!attribute budget_id + # + # @return [String] + required :budget_id, String + + # @!attribute created_at + # + # @return [Time] + required :created_at, Time + + # @!attribute created_by + # + # @return [String] + required :created_by, String + + # @!attribute models + # + # @return [Array] + required :models, Hanzoai::Internal::Type::ArrayOf[String] + + # @!attribute updated_at + # + # @return [Time] + required :updated_at, Time + + # @!attribute updated_by + # + # @return [String] + required :updated_by, String + + # @!attribute litellm_budget_table + # Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @return [Hanzoai::Models::BudgetTable, nil] + optional :litellm_budget_table, -> { Hanzoai::BudgetTable }, nil?: true + + # @!attribute members + # + # @return [Array, nil] + optional :members, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable] } + + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::OrganizationTableWithMembers::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::OrganizationTableWithMembers::ObjectPermission }, nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true + + # @!attribute organization_alias + # + # @return [String, nil] + optional :organization_alias, String, nil?: true + + # @!attribute organization_id + # + # @return [String, nil] + optional :organization_id, String, nil?: true + + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float + + # @!attribute teams + # + # @return [Array, nil] + optional :teams, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers::Team] } + + # @!attribute users + # + # @return [Array, nil] + optional :users, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers::User] }, + nil?: true + + # @!method initialize(budget_id:, created_at:, created_by:, models:, updated_at:, updated_by:, litellm_budget_table: nil, members: nil, metadata: nil, object_permission: nil, object_permission_id: nil, organization_alias: nil, organization_id: nil, spend: nil, teams: nil, users: nil) + # Returned by the /organization/info endpoint and /organization/list endpoint + # + # @param budget_id [String] + # + # @param created_at [Time] + # + # @param created_by [String] + # + # @param models [Array] + # + # @param updated_at [Time] + # + # @param updated_by [String] + # + # @param litellm_budget_table [Hanzoai::Models::BudgetTable, nil] Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @param members [Array] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param object_permission [Hanzoai::Models::OrganizationTableWithMembers::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param organization_alias [String, nil] + # + # @param organization_id [String, nil] + # + # @param spend [Float] + # + # @param teams [Array] + # + # @param users [Array, nil] + + # @see Hanzoai::Models::OrganizationTableWithMembers#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + class Team < Hanzoai::Internal::Type::BaseModel + # @!attribute team_id + # + # @return [String] + required :team_id, String + + # @!attribute admins + # + # @return [Array, nil] + optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute blocked + # + # @return [Boolean, nil] + optional :blocked, Hanzoai::Internal::Type::Boolean + + # @!attribute budget_duration + # + # @return [String, nil] + optional :budget_duration, String, nil?: true + + # @!attribute budget_reset_at + # + # @return [Time, nil] + optional :budget_reset_at, Time, nil?: true + + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true + + # @!attribute litellm_model_table + # + # @return [Object, nil] + optional :litellm_model_table, Hanzoai::Internal::Type::Unknown + + # @!attribute max_budget + # + # @return [Float, nil] + optional :max_budget, Float, nil?: true + + # @!attribute max_parallel_requests + # + # @return [Integer, nil] + optional :max_parallel_requests, Integer, nil?: true + + # @!attribute members + # + # @return [Array, nil] + optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute members_with_roles + # + # @return [Array, nil] + optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Member] } + + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute model_id + # + # @return [Integer, nil] + optional :model_id, Integer, nil?: true + + # @!attribute models + # + # @return [Array, nil] + optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::OrganizationTableWithMembers::Team::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission }, + nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true + + # @!attribute organization_id + # + # @return [String, nil] + optional :organization_id, String, nil?: true + + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute rpm_limit + # + # @return [Integer, nil] + optional :rpm_limit, Integer, nil?: true + + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float, nil?: true + + # @!attribute team_alias + # + # @return [String, nil] + optional :team_alias, String, nil?: true + + # @!attribute team_member_permissions + # + # @return [Array, nil] + optional :team_member_permissions, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute tpm_limit + # + # @return [Integer, nil] + optional :tpm_limit, Integer, nil?: true + + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + + # @!method initialize(team_id:, admins: nil, blocked: nil, budget_duration: nil, budget_reset_at: nil, created_at: nil, litellm_model_table: nil, max_budget: nil, max_parallel_requests: nil, members: nil, members_with_roles: nil, metadata: nil, model_id: nil, models: nil, object_permission: nil, object_permission_id: nil, organization_id: nil, router_settings: nil, rpm_limit: nil, spend: nil, team_alias: nil, team_member_permissions: nil, tpm_limit: nil, updated_at: nil) + # @param team_id [String] + # + # @param admins [Array] + # + # @param blocked [Boolean] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param created_at [Time, nil] + # + # @param litellm_model_table [Object] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param members [Array] + # + # @param members_with_roles [Array] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_id [Integer, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::OrganizationTableWithMembers::Team::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param organization_id [String, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param spend [Float, nil] + # + # @param team_alias [String, nil] + # + # @param team_member_permissions [Array, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] + + # @see Hanzoai::Models::OrganizationTableWithMembers::Team#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + end + + class User < Hanzoai::Internal::Type::BaseModel + # @!attribute user_id + # + # @return [String] + required :user_id, String + + # @!attribute budget_duration + # + # @return [String, nil] + optional :budget_duration, String, nil?: true + + # @!attribute budget_reset_at + # + # @return [Time, nil] + optional :budget_reset_at, Time, nil?: true + + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true + + # @!attribute max_budget + # + # @return [Float, nil] + optional :max_budget, Float, nil?: true + + # @!attribute metadata + # + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute model_max_budget + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute model_spend + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_spend, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute models + # + # @return [Array, nil] + optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::OrganizationTableWithMembers::User::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::OrganizationTableWithMembers::User::ObjectPermission }, + nil?: true + + # @!attribute organization_memberships + # + # @return [Array, nil] + optional :organization_memberships, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable] }, + nil?: true + + # @!attribute rpm_limit + # + # @return [Integer, nil] + optional :rpm_limit, Integer, nil?: true + + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float + + # @!attribute sso_user_id + # + # @return [String, nil] + optional :sso_user_id, String, nil?: true + + # @!attribute teams + # + # @return [Array, nil] + optional :teams, Hanzoai::Internal::Type::ArrayOf[String] + + # @!attribute tpm_limit + # + # @return [Integer, nil] + optional :tpm_limit, Integer, nil?: true + + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + + # @!attribute user_alias + # + # @return [String, nil] + optional :user_alias, String, nil?: true + + # @!attribute user_email + # + # @return [String, nil] + optional :user_email, String, nil?: true + + # @!attribute user_role + # + # @return [String, nil] + optional :user_role, String, nil?: true + + # @!method initialize(user_id:, budget_duration: nil, budget_reset_at: nil, created_at: nil, max_budget: nil, metadata: nil, model_max_budget: nil, model_spend: nil, models: nil, object_permission: nil, organization_memberships: nil, rpm_limit: nil, spend: nil, sso_user_id: nil, teams: nil, tpm_limit: nil, updated_at: nil, user_alias: nil, user_email: nil, user_role: nil) + # @param user_id [String] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param created_at [Time, nil] + # + # @param max_budget [Float, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_spend [Hash{Symbol=>Object}, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::OrganizationTableWithMembers::User::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param organization_memberships [Array, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param spend [Float] + # + # @param sso_user_id [String, nil] + # + # @param teams [Array] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] + # + # @param user_alias [String, nil] + # + # @param user_email [String, nil] + # + # @param user_role [String, nil] + + # @see Hanzoai::Models::OrganizationTableWithMembers::User#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + end + end + end +end diff --git a/lib/hanzoai/models/organization_update_member_params.rb b/lib/hanzoai/models/organization_update_member_params.rb index 0a595020..99a71421 100644 --- a/lib/hanzoai/models/organization_update_member_params.rb +++ b/lib/hanzoai/models/organization_update_member_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Organization#update_member class OrganizationUpdateMemberParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute organization_id @@ -20,19 +19,19 @@ class OrganizationUpdateMemberParams < Hanzoai::Internal::Type::BaseModel # @!attribute role # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend # - # Team Roles: TEAM: used for JWT auth + # Team Roles: TEAM: used for JWT auth # - # Customer Roles: CUSTOMER: External users -> these are customers + # Customer Roles: CUSTOMER: External users -> these are customers # - # @return [Symbol, Hanzoai::Models::OrganizationUpdateMemberParams::Role, nil] - optional :role, enum: -> { Hanzoai::Models::OrganizationUpdateMemberParams::Role }, nil?: true + # @return [Symbol, Hanzoai::Models::UserRoles, nil] + optional :role, enum: -> { Hanzoai::UserRoles }, nil?: true # @!attribute user_email # @@ -44,56 +43,21 @@ class OrganizationUpdateMemberParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param organization_id [String] - # # @param max_budget_in_organization [Float, nil] - # # @param role [Symbol, Hanzoai::Models::OrganizationUpdateMemberParams::Role, nil] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # organization_id:, - # max_budget_in_organization: nil, - # role: nil, - # user_email: nil, - # user_id: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization + # @!method initialize(organization_id:, max_budget_in_organization: nil, role: nil, user_email: nil, user_id: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::OrganizationUpdateMemberParams} for more details. # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend + # @param organization_id [String] # - # Team Roles: TEAM: used for JWT auth + # @param max_budget_in_organization [Float, nil] # - # Customer Roles: CUSTOMER: External users -> these are customers - module Role - extend Hanzoai::Internal::Type::Enum - - PROXY_ADMIN = :proxy_admin - PROXY_ADMIN_VIEWER = :proxy_admin_viewer - ORG_ADMIN = :org_admin - INTERNAL_USER = :internal_user - INTERNAL_USER_VIEWER = :internal_user_viewer - TEAM = :team - CUSTOMER = :customer - - finalize! - - # @!parse - # # @return [Array] - # def self.values; end - end + # @param role [Symbol, Hanzoai::Models::UserRoles, nil] Admin Roles: + # + # @param user_email [String, nil] + # + # @param user_id [String, nil] + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/organization_update_member_response.rb b/lib/hanzoai/models/organization_update_member_response.rb deleted file mode 100644 index 91582587..00000000 --- a/lib/hanzoai/models/organization_update_member_response.rb +++ /dev/null @@ -1,159 +0,0 @@ -# frozen_string_literal: true - -module Hanzoai - module Models - # @see Hanzoai::Resources::Organization#update_member - class OrganizationUpdateMemberResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute organization_id - # - # @return [String] - required :organization_id, String - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute budget_id - # - # @return [String, nil] - optional :budget_id, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable }, - nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] user - # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user - - # @!attribute user_role - # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationUpdateMemberResponse#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end - end -end diff --git a/lib/hanzoai/models/organization_update_params.rb b/lib/hanzoai/models/organization_update_params.rb index a8e48bc2..f6aa95da 100644 --- a/lib/hanzoai/models/organization_update_params.rb +++ b/lib/hanzoai/models/organization_update_params.rb @@ -4,70 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Organization#update class OrganizationUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute budget_id - # - # @return [String, nil] - optional :budget_id, String, nil?: true - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute models - # - # @return [Array, nil] - optional :models, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - - # @!attribute organization_alias - # - # @return [String, nil] - optional :organization_alias, String, nil?: true - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute spend - # - # @return [Float, nil] - optional :spend, Float, nil?: true - - # @!attribute updated_by - # - # @return [String, nil] - optional :updated_by, String, nil?: true - - # @!parse - # # @param budget_id [String, nil] - # # @param metadata [Object, nil] - # # @param models [Array, nil] - # # @param organization_alias [String, nil] - # # @param organization_id [String, nil] - # # @param spend [Float, nil] - # # @param updated_by [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # budget_id: nil, - # metadata: nil, - # models: nil, - # organization_alias: nil, - # organization_id: nil, - # spend: nil, - # updated_by: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/organization_update_response.rb b/lib/hanzoai/models/organization_update_response.rb deleted file mode 100644 index 6067a266..00000000 --- a/lib/hanzoai/models/organization_update_response.rb +++ /dev/null @@ -1,552 +0,0 @@ -# frozen_string_literal: true - -module Hanzoai - module Models - # @see Hanzoai::Resources::Organization#update - class OrganizationUpdateResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_id - # - # @return [String] - required :budget_id, String - - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute models - # - # @return [Array] - required :models, Hanzoai::Internal::Type::ArrayOf[String] - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable, nil] - optional :llm_budget_table, -> { Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable }, nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationUpdateResponse::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute organization_alias - # - # @return [String, nil] - optional :organization_alias, String, nil?: true - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] teams - # - # @return [Array, nil] - optional :teams, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationUpdateResponse::Team] } - - # @!parse - # # @return [Array] - # attr_writer :teams - - # @!parse - # # Returned by the /organization/info endpoint and /organization/list endpoint - # # - # # @param budget_id [String] - # # @param created_at [Time] - # # @param created_by [String] - # # @param models [Array] - # # @param updated_at [Time] - # # @param updated_by [String] - # # @param llm_budget_table [Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable, nil] - # # @param members [Array] - # # @param metadata [Object, nil] - # # @param organization_alias [String, nil] - # # @param organization_id [String, nil] - # # @param spend [Float] - # # @param teams [Array] - # # - # def initialize( - # budget_id:, - # created_at:, - # created_by:, - # models:, - # updated_at:, - # updated_by:, - # llm_budget_table: nil, - # members: nil, - # metadata: nil, - # organization_alias: nil, - # organization_id: nil, - # spend: nil, - # teams: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationUpdateResponse#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - - class Member < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time - - # @!attribute organization_id - # - # @return [String] - required :organization_id, String - - # @!attribute updated_at - # - # @return [Time] - required :updated_at, Time - - # @!attribute user_id - # - # @return [String] - required :user_id, String - - # @!attribute budget_id - # - # @return [String, nil] - optional :budget_id, String, nil?: true - - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record - # - # @return [Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable }, - nil?: true - - # @!attribute [r] spend - # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend - - # @!attribute [r] user - # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user - - # @!attribute user_role - # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationUpdateResponse::Member#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - # @!attribute team_id - # - # @return [String] - required :team_id, String - - # @!attribute [r] admins - # - # @return [Array, nil] - optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :admins - - # @!attribute [r] blocked - # - # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked - - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute budget_reset_at - # - # @return [Time, nil] - optional :budget_reset_at, Time, nil?: true - - # @!attribute created_at - # - # @return [Time, nil] - optional :created_at, Time, nil?: true - - # @!attribute llm_model_table - # - # @return [Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable, nil] - optional :llm_model_table, - -> { Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable }, - nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute [r] members - # - # @return [Array, nil] - optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute [r] members_with_roles - # - # @return [Array, nil] - optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members_with_roles - - # @!attribute metadata - # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute model_id - # - # @return [Integer, nil] - optional :model_id, Integer, nil?: true - - # @!attribute [r] models - # - # @return [Array, nil] - optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - - # @!parse - # # @return [Array] - # attr_writer :models - - # @!attribute organization_id - # - # @return [String, nil] - optional :organization_id, String, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute spend - # - # @return [Float, nil] - optional :spend, Float, nil?: true - - # @!attribute team_alias - # - # @return [String, nil] - optional :team_alias, String, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # @param team_id [String] - # # @param admins [Array] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param created_at [Time, nil] - # # @param llm_model_table [Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param members [Array] - # # @param members_with_roles [Array] - # # @param metadata [Object, nil] - # # @param model_id [Integer, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param team_alias [String, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # team_id:, - # admins: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # created_at: nil, - # llm_model_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # members: nil, - # members_with_roles: nil, - # metadata: nil, - # model_id: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # spend: nil, - # team_alias: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationUpdateResponse::Team#llm_model_table - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - # @!attribute created_by - # - # @return [String] - required :created_by, String - - # @!attribute updated_by - # - # @return [String] - required :updated_by, String - - # @!attribute model_aliases - # - # @return [Object, String, nil] - optional :model_aliases, - union: -> { Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable::ModelAliases }, - nil?: true - - # @!parse - # # @param created_by [String] - # # @param updated_by [String] - # # @param model_aliases [Object, String, nil] - # # - # def initialize(created_by:, updated_by:, model_aliases: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable#model_aliases - module ModelAliases - extend Hanzoai::Internal::Type::Union - - variant Hanzoai::Internal::Type::Unknown - - variant String - - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end - end - end - end - end - end -end diff --git a/lib/hanzoai/models/provider_list_budgets_params.rb b/lib/hanzoai/models/provider_list_budgets_params.rb index 8cad874b..74a669f8 100644 --- a/lib/hanzoai/models/provider_list_budgets_params.rb +++ b/lib/hanzoai/models/provider_list_budgets_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Provider#list_budgets class ProviderListBudgetsParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/provider_list_budgets_response.rb b/lib/hanzoai/models/provider_list_budgets_response.rb index 14e9bf5a..8f7a2dce 100644 --- a/lib/hanzoai/models/provider_list_budgets_response.rb +++ b/lib/hanzoai/models/provider_list_budgets_response.rb @@ -4,25 +4,17 @@ module Hanzoai module Models # @see Hanzoai::Resources::Provider#list_budgets class ProviderListBudgetsResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute [r] providers + # @!attribute providers # # @return [Hash{Symbol=>Hanzoai::Models::ProviderListBudgetsResponse::Provider}, nil] optional :providers, -> { Hanzoai::Internal::Type::HashOf[Hanzoai::Models::ProviderListBudgetsResponse::Provider] } - # @!parse - # # @return [Hash{Symbol=>Hanzoai::Models::ProviderListBudgetsResponse::Provider}] - # attr_writer :providers - - # @!parse - # # Complete provider budget configuration and status. Maps provider names to their - # # budget configs. - # # - # # @param providers [Hash{Symbol=>Hanzoai::Models::ProviderListBudgetsResponse::Provider}] - # # - # def initialize(providers: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(providers: nil) + # Complete provider budget configuration and status. Maps provider names to their + # budget configs. + # + # @param providers [Hash{Symbol=>Hanzoai::Models::ProviderListBudgetsResponse::Provider}] class Provider < Hanzoai::Internal::Type::BaseModel # @!attribute budget_limit @@ -45,17 +37,13 @@ class Provider < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :spend, Float, nil?: true - # @!parse - # # Configuration for a single provider's budget settings - # # - # # @param budget_limit [Float, nil] - # # @param time_period [String, nil] - # # @param budget_reset_at [String, nil] - # # @param spend [Float, nil] - # # - # def initialize(budget_limit:, time_period:, budget_reset_at: nil, spend: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(budget_limit:, time_period:, budget_reset_at: nil, spend: nil) + # Configuration for a single provider's budget settings + # + # @param budget_limit [Float, nil] + # @param time_period [String, nil] + # @param budget_reset_at [String, nil] + # @param spend [Float, nil] end end end diff --git a/lib/hanzoai/models/rerank_create_params.rb b/lib/hanzoai/models/rerank_create_params.rb index b67e009d..c4c1fad0 100644 --- a/lib/hanzoai/models/rerank_create_params.rb +++ b/lib/hanzoai/models/rerank_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Rerank#create class RerankCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/rerank_create_response.rb b/lib/hanzoai/models/rerank_create_response.rb new file mode 100644 index 00000000..08cf4d92 --- /dev/null +++ b/lib/hanzoai/models/rerank_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + RerankCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/rerank_create_v1_params.rb b/lib/hanzoai/models/rerank_create_v1_params.rb index b47169d2..9afe57d8 100644 --- a/lib/hanzoai/models/rerank_create_v1_params.rb +++ b/lib/hanzoai/models/rerank_create_v1_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Rerank#create_v1 class RerankCreateV1Params < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/rerank_create_v1_response.rb b/lib/hanzoai/models/rerank_create_v1_response.rb new file mode 100644 index 00000000..f415fefc --- /dev/null +++ b/lib/hanzoai/models/rerank_create_v1_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + RerankCreateV1Response = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/rerank_create_v2_params.rb b/lib/hanzoai/models/rerank_create_v2_params.rb index eeee8602..8b82031b 100644 --- a/lib/hanzoai/models/rerank_create_v2_params.rb +++ b/lib/hanzoai/models/rerank_create_v2_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Rerank#create_v2 class RerankCreateV2Params < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/rerank_create_v2_response.rb b/lib/hanzoai/models/rerank_create_v2_response.rb new file mode 100644 index 00000000..593adf9a --- /dev/null +++ b/lib/hanzoai/models/rerank_create_v2_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + RerankCreateV2Response = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/response_create_params.rb b/lib/hanzoai/models/response_create_params.rb index c7175926..dcc968e4 100644 --- a/lib/hanzoai/models/response_create_params.rb +++ b/lib/hanzoai/models/response_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Responses#create class ResponseCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/response_create_response.rb b/lib/hanzoai/models/response_create_response.rb new file mode 100644 index 00000000..14ff5b2e --- /dev/null +++ b/lib/hanzoai/models/response_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ResponseCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/response_delete_params.rb b/lib/hanzoai/models/response_delete_params.rb index 28cb482e..67682982 100644 --- a/lib/hanzoai/models/response_delete_params.rb +++ b/lib/hanzoai/models/response_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Responses#delete class ResponseDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/response_delete_response.rb b/lib/hanzoai/models/response_delete_response.rb new file mode 100644 index 00000000..db9543e0 --- /dev/null +++ b/lib/hanzoai/models/response_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ResponseDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/response_retrieve_params.rb b/lib/hanzoai/models/response_retrieve_params.rb index 1213d340..351d30a5 100644 --- a/lib/hanzoai/models/response_retrieve_params.rb +++ b/lib/hanzoai/models/response_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Responses#retrieve class ResponseRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/response_retrieve_response.rb b/lib/hanzoai/models/response_retrieve_response.rb new file mode 100644 index 00000000..f44512e8 --- /dev/null +++ b/lib/hanzoai/models/response_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ResponseRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/responses/input_item_list_params.rb b/lib/hanzoai/models/responses/input_item_list_params.rb index 1e5a65e5..b5fb813c 100644 --- a/lib/hanzoai/models/responses/input_item_list_params.rb +++ b/lib/hanzoai/models/responses/input_item_list_params.rb @@ -5,16 +5,11 @@ module Models module Responses # @see Hanzoai::Resources::Responses::InputItems#list class InputItemListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/responses/input_item_list_response.rb b/lib/hanzoai/models/responses/input_item_list_response.rb new file mode 100644 index 00000000..722fbf54 --- /dev/null +++ b/lib/hanzoai/models/responses/input_item_list_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Responses + # @type [Hanzoai::Internal::Type::Converter] + InputItemListResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/route_list_params.rb b/lib/hanzoai/models/route_list_params.rb index 56328954..1e56e3cb 100644 --- a/lib/hanzoai/models/route_list_params.rb +++ b/lib/hanzoai/models/route_list_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Routes#list class RouteListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/route_list_response.rb b/lib/hanzoai/models/route_list_response.rb new file mode 100644 index 00000000..7a60b955 --- /dev/null +++ b/lib/hanzoai/models/route_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + RouteListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/setting_retrieve_params.rb b/lib/hanzoai/models/setting_retrieve_params.rb index 869dbb5c..fad0d6e9 100644 --- a/lib/hanzoai/models/setting_retrieve_params.rb +++ b/lib/hanzoai/models/setting_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Settings#retrieve class SettingRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/setting_retrieve_response.rb b/lib/hanzoai/models/setting_retrieve_response.rb new file mode 100644 index 00000000..dea25c67 --- /dev/null +++ b/lib/hanzoai/models/setting_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + SettingRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/spend_calculate_spend_params.rb b/lib/hanzoai/models/spend_calculate_spend_params.rb index e1476d45..78ff78df 100644 --- a/lib/hanzoai/models/spend_calculate_spend_params.rb +++ b/lib/hanzoai/models/spend_calculate_spend_params.rb @@ -4,14 +4,15 @@ module Hanzoai module Models # @see Hanzoai::Resources::Spend#calculate_spend class SpendCalculateSpendParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute completion_response # - # @return [Object, nil] - optional :completion_response, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :completion_response, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute messages # @@ -23,15 +24,11 @@ class SpendCalculateSpendParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :model, String, nil?: true - # @!parse - # # @param completion_response [Object, nil] - # # @param messages [Array, nil] - # # @param model [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(completion_response: nil, messages: nil, model: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(completion_response: nil, messages: nil, model: nil, request_options: {}) + # @param completion_response [Hash{Symbol=>Object}, nil] + # @param messages [Array, nil] + # @param model [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/spend_calculate_spend_response.rb b/lib/hanzoai/models/spend_calculate_spend_response.rb new file mode 100644 index 00000000..04fa5c92 --- /dev/null +++ b/lib/hanzoai/models/spend_calculate_spend_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + SpendCalculateSpendResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/spend_list_logs_params.rb b/lib/hanzoai/models/spend_list_logs_params.rb index 15d6e2b2..1cf554d4 100644 --- a/lib/hanzoai/models/spend_list_logs_params.rb +++ b/lib/hanzoai/models/spend_list_logs_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Spend#list_logs class SpendListLogsParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute api_key @@ -22,7 +21,7 @@ class SpendListLogsParams < Hanzoai::Internal::Type::BaseModel # @!attribute request_id # request_id to get spend logs for specific request_id. If none passed then pass - # spend logs for all requests + # spend logs for all requests # # @return [String, nil] optional :request_id, String, nil?: true @@ -33,23 +32,36 @@ class SpendListLogsParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :start_date, String, nil?: true + # @!attribute summarize + # When start_date and end_date are provided, summarize=true returns aggregated + # data by date (legacy behavior), summarize=false returns filtered individual logs + # + # @return [Boolean, nil] + optional :summarize, Hanzoai::Internal::Type::Boolean + # @!attribute user_id # Get spend logs based on user_id # # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param api_key [String, nil] - # # @param end_date [String, nil] - # # @param request_id [String, nil] - # # @param start_date [String, nil] - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(api_key: nil, end_date: nil, request_id: nil, start_date: nil, user_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(api_key: nil, end_date: nil, request_id: nil, start_date: nil, summarize: nil, user_id: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::SpendListLogsParams} for more details. + # + # @param api_key [String, nil] Get spend logs based on api key + # + # @param end_date [String, nil] Time till which to view key spend + # + # @param request_id [String, nil] request_id to get spend logs for specific request_id. If none passed then pass s + # + # @param start_date [String, nil] Time from which to start viewing key spend + # + # @param summarize [Boolean] When start_date and end_date are provided, summarize=true returns aggregated dat + # + # @param user_id [String, nil] Get spend logs based on user_id + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/spend_list_logs_response.rb b/lib/hanzoai/models/spend_list_logs_response.rb index e1a673c3..a7433661 100644 --- a/lib/hanzoai/models/spend_list_logs_response.rb +++ b/lib/hanzoai/models/spend_list_logs_response.rb @@ -23,7 +23,7 @@ class SpendListLogsResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute messages # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :messages, union: -> { Hanzoai::Models::SpendListLogsResponseItem::Messages }, nil?: true # @!attribute request_id @@ -33,7 +33,7 @@ class SpendListLogsResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute response # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :response, union: -> { Hanzoai::Models::SpendListLogsResponseItem::Response }, nil?: true # @!attribute start_time @@ -64,15 +64,11 @@ class SpendListLogsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :completion_tokens, Integer, nil?: true - # @!attribute [r] metadata + # @!attribute metadata # # @return [Object, nil] optional :metadata, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :metadata - # @!attribute model # # @return [String, nil] @@ -83,15 +79,11 @@ class SpendListLogsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :prompt_tokens, Integer, nil?: true - # @!attribute [r] request_tags + # @!attribute request_tags # # @return [Object, nil] optional :request_tags, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :request_tags - # @!attribute requester_ip_address # # @return [String, nil] @@ -112,53 +104,26 @@ class SpendListLogsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user, String, nil?: true - # @!parse - # # @param api_key [String] - # # @param call_type [String] - # # @param end_time [String, Time, nil] - # # @param messages [String, Array, Object, nil] - # # @param request_id [String] - # # @param response [String, Array, Object, nil] - # # @param start_time [String, Time, nil] - # # @param api_base [String, nil] - # # @param cache_hit [String, nil] - # # @param cache_key [String, nil] - # # @param completion_tokens [Integer, nil] - # # @param metadata [Object] - # # @param model [String, nil] - # # @param prompt_tokens [Integer, nil] - # # @param request_tags [Object] - # # @param requester_ip_address [String, nil] - # # @param spend [Float, nil] - # # @param total_tokens [Integer, nil] - # # @param user [String, nil] - # # - # def initialize( - # api_key:, - # call_type:, - # end_time:, - # messages:, - # request_id:, - # response:, - # start_time:, - # api_base: nil, - # cache_hit: nil, - # cache_key: nil, - # completion_tokens: nil, - # metadata: nil, - # model: nil, - # prompt_tokens: nil, - # request_tags: nil, - # requester_ip_address: nil, - # spend: nil, - # total_tokens: nil, - # user: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(api_key:, call_type:, end_time:, messages:, request_id:, response:, start_time:, api_base: nil, cache_hit: nil, cache_key: nil, completion_tokens: nil, metadata: nil, model: nil, prompt_tokens: nil, request_tags: nil, requester_ip_address: nil, spend: nil, total_tokens: nil, user: nil) + # @param api_key [String] + # @param call_type [String] + # @param end_time [String, Time, nil] + # @param messages [String, Array, Hash{Symbol=>Object}, nil] + # @param request_id [String] + # @param response [String, Array, Hash{Symbol=>Object}, nil] + # @param start_time [String, Time, nil] + # @param api_base [String, nil] + # @param cache_hit [String, nil] + # @param cache_key [String, nil] + # @param completion_tokens [Integer, nil] + # @param metadata [Object] + # @param model [String, nil] + # @param prompt_tokens [Integer, nil] + # @param request_tags [Object] + # @param requester_ip_address [String, nil] + # @param spend [Float, nil] + # @param total_tokens [Integer, nil] + # @param user [String, nil] # @see Hanzoai::Models::SpendListLogsResponseItem#end_time module EndTime @@ -168,9 +133,8 @@ module EndTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end # @see Hanzoai::Models::SpendListLogsResponseItem#messages @@ -181,13 +145,16 @@ module Messages variant -> { Hanzoai::Models::SpendListLogsResponseItem::Messages::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::SpendListLogsResponseItem::Messages::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::SpendListLogsResponseItem#response @@ -198,13 +165,16 @@ module Response variant -> { Hanzoai::Models::SpendListLogsResponseItem::Response::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::SpendListLogsResponseItem::Response::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::SpendListLogsResponseItem#start_time @@ -215,12 +185,12 @@ module StartTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end end + # @type [Hanzoai::Internal::Type::Converter] SpendListLogsResponse = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::SpendListLogsResponseItem }] end diff --git a/lib/hanzoai/models/spend_list_tags_params.rb b/lib/hanzoai/models/spend_list_tags_params.rb index 50dd3a51..741d658e 100644 --- a/lib/hanzoai/models/spend_list_tags_params.rb +++ b/lib/hanzoai/models/spend_list_tags_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Spend#list_tags class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute end_date @@ -20,14 +19,12 @@ class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :start_date, String, nil?: true - # @!parse - # # @param end_date [String, nil] - # # @param start_date [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(end_date: nil, start_date: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(end_date: nil, start_date: nil, request_options: {}) + # @param end_date [String, nil] Time till which to view key spend + # + # @param start_date [String, nil] Time from which to start viewing key spend + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/spend_list_tags_response.rb b/lib/hanzoai/models/spend_list_tags_response.rb index 842ba578..60eca3b2 100644 --- a/lib/hanzoai/models/spend_list_tags_response.rb +++ b/lib/hanzoai/models/spend_list_tags_response.rb @@ -23,7 +23,7 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute messages # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :messages, union: -> { Hanzoai::Models::SpendListTagsResponseItem::Messages }, nil?: true # @!attribute request_id @@ -33,7 +33,7 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @!attribute response # - # @return [String, Array, Object, nil] + # @return [String, Array, Hash{Symbol=>Object}, nil] required :response, union: -> { Hanzoai::Models::SpendListTagsResponseItem::Response }, nil?: true # @!attribute start_time @@ -64,15 +64,11 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :completion_tokens, Integer, nil?: true - # @!attribute [r] metadata + # @!attribute metadata # # @return [Object, nil] optional :metadata, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :metadata - # @!attribute model # # @return [String, nil] @@ -83,15 +79,11 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :prompt_tokens, Integer, nil?: true - # @!attribute [r] request_tags + # @!attribute request_tags # # @return [Object, nil] optional :request_tags, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :request_tags - # @!attribute requester_ip_address # # @return [String, nil] @@ -112,53 +104,26 @@ class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user, String, nil?: true - # @!parse - # # @param api_key [String] - # # @param call_type [String] - # # @param end_time [String, Time, nil] - # # @param messages [String, Array, Object, nil] - # # @param request_id [String] - # # @param response [String, Array, Object, nil] - # # @param start_time [String, Time, nil] - # # @param api_base [String, nil] - # # @param cache_hit [String, nil] - # # @param cache_key [String, nil] - # # @param completion_tokens [Integer, nil] - # # @param metadata [Object] - # # @param model [String, nil] - # # @param prompt_tokens [Integer, nil] - # # @param request_tags [Object] - # # @param requester_ip_address [String, nil] - # # @param spend [Float, nil] - # # @param total_tokens [Integer, nil] - # # @param user [String, nil] - # # - # def initialize( - # api_key:, - # call_type:, - # end_time:, - # messages:, - # request_id:, - # response:, - # start_time:, - # api_base: nil, - # cache_hit: nil, - # cache_key: nil, - # completion_tokens: nil, - # metadata: nil, - # model: nil, - # prompt_tokens: nil, - # request_tags: nil, - # requester_ip_address: nil, - # spend: nil, - # total_tokens: nil, - # user: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(api_key:, call_type:, end_time:, messages:, request_id:, response:, start_time:, api_base: nil, cache_hit: nil, cache_key: nil, completion_tokens: nil, metadata: nil, model: nil, prompt_tokens: nil, request_tags: nil, requester_ip_address: nil, spend: nil, total_tokens: nil, user: nil) + # @param api_key [String] + # @param call_type [String] + # @param end_time [String, Time, nil] + # @param messages [String, Array, Hash{Symbol=>Object}, nil] + # @param request_id [String] + # @param response [String, Array, Hash{Symbol=>Object}, nil] + # @param start_time [String, Time, nil] + # @param api_base [String, nil] + # @param cache_hit [String, nil] + # @param cache_key [String, nil] + # @param completion_tokens [Integer, nil] + # @param metadata [Object] + # @param model [String, nil] + # @param prompt_tokens [Integer, nil] + # @param request_tags [Object] + # @param requester_ip_address [String, nil] + # @param spend [Float, nil] + # @param total_tokens [Integer, nil] + # @param user [String, nil] # @see Hanzoai::Models::SpendListTagsResponseItem#end_time module EndTime @@ -168,9 +133,8 @@ module EndTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end # @see Hanzoai::Models::SpendListTagsResponseItem#messages @@ -181,13 +145,16 @@ module Messages variant -> { Hanzoai::Models::SpendListTagsResponseItem::Messages::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::SpendListTagsResponseItem::Messages::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::SpendListTagsResponseItem#response @@ -198,13 +165,16 @@ module Response variant -> { Hanzoai::Models::SpendListTagsResponseItem::Response::UnionMember1Array } - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::SpendListTagsResponseItem::Response::UnionMember2Map } - # @!parse - # # @return [Array(String, Array, Object)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Array, Hash{Symbol=>Object})] + # @type [Hanzoai::Internal::Type::Converter] UnionMember1Array = Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember2Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end # @see Hanzoai::Models::SpendListTagsResponseItem#start_time @@ -215,12 +185,12 @@ module StartTime variant Time - # @!parse - # # @return [Array(String, Time)] - # def self.variants; end + # @!method self.variants + # @return [Array(String, Time)] end end + # @type [Hanzoai::Internal::Type::Converter] SpendListTagsResponse = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::SpendListTagsResponseItem }] end diff --git a/lib/hanzoai/models/team/callback_add_params.rb b/lib/hanzoai/models/team/callback_add_params.rb index 3ec2c59a..acec55f8 100644 --- a/lib/hanzoai/models/team/callback_add_params.rb +++ b/lib/hanzoai/models/team/callback_add_params.rb @@ -5,8 +5,7 @@ module Models module Team # @see Hanzoai::Resources::Team::Callback#add class CallbackAddParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute callback_name @@ -22,29 +21,29 @@ class CallbackAddParams < Hanzoai::Internal::Type::BaseModel # @!attribute callback_type # # @return [Symbol, Hanzoai::Models::Team::CallbackAddParams::CallbackType, nil] - optional :callback_type, enum: -> { Hanzoai::Models::Team::CallbackAddParams::CallbackType }, nil?: true + optional :callback_type, enum: -> { Hanzoai::Team::CallbackAddParams::CallbackType }, nil?: true - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" + optional :litellm_changed_by, String - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param callback_name [String] - # # @param callback_vars [Hash{Symbol=>String}] - # # @param callback_type [Symbol, Hanzoai::Models::Team::CallbackAddParams::CallbackType, nil] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(callback_name:, callback_vars:, callback_type: nil, llm_changed_by: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(callback_name:, callback_vars:, callback_type: nil, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Team::CallbackAddParams} for more details. + # + # @param callback_name [String] + # + # @param callback_vars [Hash{Symbol=>String}] + # + # @param callback_type [Symbol, Hanzoai::Models::Team::CallbackAddParams::CallbackType, nil] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module CallbackType extend Hanzoai::Internal::Type::Enum @@ -53,11 +52,8 @@ module CallbackType FAILURE = :failure SUCCESS_AND_FAILURE = :success_and_failure - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/team/callback_add_response.rb b/lib/hanzoai/models/team/callback_add_response.rb new file mode 100644 index 00000000..2f11bb6c --- /dev/null +++ b/lib/hanzoai/models/team/callback_add_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Team + # @type [Hanzoai::Internal::Type::Converter] + CallbackAddResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/team/callback_retrieve_params.rb b/lib/hanzoai/models/team/callback_retrieve_params.rb index c2224a31..6d67dccc 100644 --- a/lib/hanzoai/models/team/callback_retrieve_params.rb +++ b/lib/hanzoai/models/team/callback_retrieve_params.rb @@ -5,16 +5,11 @@ module Models module Team # @see Hanzoai::Resources::Team::Callback#retrieve class CallbackRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team/callback_retrieve_response.rb b/lib/hanzoai/models/team/callback_retrieve_response.rb new file mode 100644 index 00000000..d2b60f83 --- /dev/null +++ b/lib/hanzoai/models/team/callback_retrieve_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Team + # @type [Hanzoai::Internal::Type::Converter] + CallbackRetrieveResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/team/model_add_params.rb b/lib/hanzoai/models/team/model_add_params.rb index f688c945..c1ae5c43 100644 --- a/lib/hanzoai/models/team/model_add_params.rb +++ b/lib/hanzoai/models/team/model_add_params.rb @@ -5,8 +5,7 @@ module Models module Team # @see Hanzoai::Resources::Team::Model#add class ModelAddParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute models @@ -19,14 +18,10 @@ class ModelAddParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :team_id, String - # @!parse - # # @param models [Array] - # # @param team_id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(models:, team_id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(models:, team_id:, request_options: {}) + # @param models [Array] + # @param team_id [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team/model_add_response.rb b/lib/hanzoai/models/team/model_add_response.rb new file mode 100644 index 00000000..9752a761 --- /dev/null +++ b/lib/hanzoai/models/team/model_add_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Team + # @type [Hanzoai::Internal::Type::Converter] + ModelAddResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/team/model_remove_params.rb b/lib/hanzoai/models/team/model_remove_params.rb index 754645ea..ad8e9e60 100644 --- a/lib/hanzoai/models/team/model_remove_params.rb +++ b/lib/hanzoai/models/team/model_remove_params.rb @@ -5,8 +5,7 @@ module Models module Team # @see Hanzoai::Resources::Team::Model#remove class ModelRemoveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute models @@ -19,14 +18,10 @@ class ModelRemoveParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :team_id, String - # @!parse - # # @param models [Array] - # # @param team_id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(models:, team_id:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(models:, team_id:, request_options: {}) + # @param models [Array] + # @param team_id [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team/model_remove_response.rb b/lib/hanzoai/models/team/model_remove_response.rb new file mode 100644 index 00000000..0cc0d75a --- /dev/null +++ b/lib/hanzoai/models/team/model_remove_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Team + # @type [Hanzoai::Internal::Type::Converter] + ModelRemoveResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/team_add_member_params.rb b/lib/hanzoai/models/team_add_member_params.rb index c9b4895c..820473ec 100644 --- a/lib/hanzoai/models/team_add_member_params.rb +++ b/lib/hanzoai/models/team_add_member_params.rb @@ -4,47 +4,55 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#add_member class TeamAddMemberParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute member + # Member object or list of member objects to add. Each member must include either + # user_id or user_email, and a role # # @return [Array, Hanzoai::Models::Member] - required :member, union: -> { Hanzoai::Models::TeamAddMemberParams::Member } + required :member, union: -> { Hanzoai::TeamAddMemberParams::Member } # @!attribute team_id + # The ID of the team to add the member to # # @return [String] required :team_id, String # @!attribute max_budget_in_team + # Maximum budget allocated to this user within the team. If not set, user has + # unlimited budget within team limits # # @return [Float, nil] optional :max_budget_in_team, Float, nil?: true - # @!parse - # # @param member [Array, Hanzoai::Models::Member] - # # @param team_id [String] - # # @param max_budget_in_team [Float, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(member:, team_id:, max_budget_in_team: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(member:, team_id:, max_budget_in_team: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamAddMemberParams} for more details. + # + # @param member [Array, Hanzoai::Models::Member] Member object or list of member objects to add. Each member must include either + # + # @param team_id [String] The ID of the team to add the member to + # + # @param max_budget_in_team [Float, nil] Maximum budget allocated to this user within the team. If not set, user has unli + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + # Member object or list of member objects to add. Each member must include either + # user_id or user_email, and a role module Member extend Hanzoai::Internal::Type::Union variant -> { Hanzoai::Models::TeamAddMemberParams::Member::MemberArray } - variant -> { Hanzoai::Models::Member } + variant -> { Hanzoai::Member } - # @!parse - # # @return [Array(Array, Hanzoai::Models::Member)] - # def self.variants; end + # @!method self.variants + # @return [Array(Array, Hanzoai::Models::Member)] - MemberArray = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Models::Member }] + # @type [Hanzoai::Internal::Type::Converter] + MemberArray = Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::Member }] end end end diff --git a/lib/hanzoai/models/team_add_member_response.rb b/lib/hanzoai/models/team_add_member_response.rb index f7f0cc2b..34546f8b 100644 --- a/lib/hanzoai/models/team_add_member_response.rb +++ b/lib/hanzoai/models/team_add_member_response.rb @@ -21,23 +21,15 @@ class TeamAddMemberResponse < Hanzoai::Internal::Type::BaseModel required :updated_users, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser] } - # @!attribute [r] admins + # @!attribute admins # # @return [Array, nil] optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :admins - - # @!attribute [r] blocked + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked + optional :blocked, Hanzoai::Internal::Type::Boolean # @!attribute budget_duration # @@ -54,10 +46,12 @@ class TeamAddMemberResponse < Hanzoai::Internal::Type::BaseModel # @return [Time, nil] optional :created_at, Time, nil?: true - # @!attribute llm_model_table + # @!attribute litellm_model_table # - # @return [Hanzoai::Models::TeamAddMemberResponse::LlmModelTable, nil] - optional :llm_model_table, -> { Hanzoai::Models::TeamAddMemberResponse::LlmModelTable }, nil?: true + # @return [Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable, nil] + optional :litellm_model_table, + -> { Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable }, + nil?: true # @!attribute max_budget # @@ -69,48 +63,52 @@ class TeamAddMemberResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :max_parallel_requests, Integer, nil?: true - # @!attribute [r] members + # @!attribute members # # @return [Array, nil] optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute [r] members_with_roles + # @!attribute members_with_roles # # @return [Array, nil] - optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members_with_roles + optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Member] } # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_id # # @return [Integer, nil] optional :model_id, Integer, nil?: true - # @!attribute [r] models + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::TeamAddMemberResponse::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::Models::TeamAddMemberResponse::ObjectPermission }, nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true # @!attribute organization_id # # @return [String, nil] optional :organization_id, String, nil?: true + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute rpm_limit # # @return [Integer, nil] @@ -126,76 +124,80 @@ class TeamAddMemberResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :team_alias, String, nil?: true + # @!attribute team_member_permissions + # + # @return [Array, nil] + optional :team_member_permissions, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + # @!attribute tpm_limit # # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!parse - # # @param team_id [String] - # # @param updated_team_memberships [Array] - # # @param updated_users [Array] - # # @param admins [Array] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param created_at [Time, nil] - # # @param llm_model_table [Hanzoai::Models::TeamAddMemberResponse::LlmModelTable, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param members [Array] - # # @param members_with_roles [Array] - # # @param metadata [Object, nil] - # # @param model_id [Integer, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param team_alias [String, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # team_id:, - # updated_team_memberships:, - # updated_users:, - # admins: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # created_at: nil, - # llm_model_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # members: nil, - # members_with_roles: nil, - # metadata: nil, - # model_id: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # spend: nil, - # team_alias: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true - class UpdatedTeamMembership < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_id - # - # @return [String] - required :budget_id, String + # @!method initialize(team_id:, updated_team_memberships:, updated_users:, admins: nil, blocked: nil, budget_duration: nil, budget_reset_at: nil, created_at: nil, litellm_model_table: nil, max_budget: nil, max_parallel_requests: nil, members: nil, members_with_roles: nil, metadata: nil, model_id: nil, models: nil, object_permission: nil, object_permission_id: nil, organization_id: nil, router_settings: nil, rpm_limit: nil, spend: nil, team_alias: nil, team_member_permissions: nil, tpm_limit: nil, updated_at: nil) + # @param team_id [String] + # + # @param updated_team_memberships [Array] + # + # @param updated_users [Array] + # + # @param admins [Array] + # + # @param blocked [Boolean] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param created_at [Time, nil] + # + # @param litellm_model_table [Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable, nil] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param members [Array] + # + # @param members_with_roles [Array] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_id [Integer, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::TeamAddMemberResponse::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param organization_id [String, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param spend [Float, nil] + # + # @param team_alias [String, nil] + # + # @param team_member_permissions [Array, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record + class UpdatedTeamMembership < Hanzoai::Internal::Type::BaseModel + # @!attribute litellm_budget_table + # Represents user-controllable params for a LiteLLM_BudgetTable record # - # @return [Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable, nil] - required :llm_budget_table, - -> { Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable }, - nil?: true + # @return [Hanzoai::Models::BudgetTable, nil] + required :litellm_budget_table, -> { Hanzoai::BudgetTable }, nil?: true # @!attribute team_id # @@ -207,79 +209,26 @@ class UpdatedTeamMembership < Hanzoai::Internal::Type::BaseModel # @return [String] required :user_id, String - # @!parse - # # @param budget_id [String] - # # @param llm_budget_table [Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable, nil] - # # @param team_id [String] - # # @param user_id [String] - # # - # def initialize(budget_id:, llm_budget_table:, team_id:, user_id:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true + # @!attribute budget_id + # + # @return [String, nil] + optional :budget_id, String, nil?: true - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true + # @!attribute spend + # + # @return [Float, nil] + optional :spend, Float, nil?: true - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end + # @!method initialize(litellm_budget_table:, team_id:, user_id:, budget_id: nil, spend: nil) + # @param litellm_budget_table [Hanzoai::Models::BudgetTable, nil] Represents user-controllable params for a LiteLLM_BudgetTable record + # + # @param team_id [String] + # + # @param user_id [String] + # + # @param budget_id [String, nil] + # + # @param spend [Float, nil] end class UpdatedUser < Hanzoai::Internal::Type::BaseModel @@ -298,6 +247,11 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @return [Time, nil] optional :budget_reset_at, Time, nil?: true + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true + # @!attribute max_budget # # @return [Float, nil] @@ -305,33 +259,39 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_spend # - # @return [Object, nil] - optional :model_spend, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_spend, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true - # @!attribute [r] models + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission, nil] + optional :object_permission, + -> { Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission }, + nil?: true # @!attribute organization_memberships # - # @return [Array, nil] + # @return [Array, nil] optional :organization_memberships, - -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership] }, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable] }, nil?: true # @!attribute rpm_limit @@ -339,34 +299,36 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true - # @!attribute [r] spend + # @!attribute spend # # @return [Float, nil] optional :spend, Float - # @!parse - # # @return [Float] - # attr_writer :spend - # @!attribute sso_user_id # # @return [String, nil] optional :sso_user_id, String, nil?: true - # @!attribute [r] teams + # @!attribute teams # # @return [Array, nil] optional :teams, Hanzoai::Internal::Type::ArrayOf[String] - # @!parse - # # @return [Array] - # attr_writer :teams - # @!attribute tpm_limit # # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + + # @!attribute user_alias + # + # @return [String, nil] + optional :user_alias, String, nil?: true + # @!attribute user_email # # @return [String, nil] @@ -377,204 +339,101 @@ class UpdatedUser < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_role, String, nil?: true - # @!parse - # # @param user_id [String] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param max_budget [Float, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_spend [Object, nil] - # # @param models [Array] - # # @param organization_memberships [Array, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float] - # # @param sso_user_id [String, nil] - # # @param teams [Array] - # # @param tpm_limit [Integer, nil] - # # @param user_email [String, nil] - # # @param user_role [String, nil] - # # - # def initialize( - # user_id:, - # budget_duration: nil, - # budget_reset_at: nil, - # max_budget: nil, - # metadata: nil, - # model_max_budget: nil, - # model_spend: nil, - # models: nil, - # organization_memberships: nil, - # rpm_limit: nil, - # spend: nil, - # sso_user_id: nil, - # teams: nil, - # tpm_limit: nil, - # user_email: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - class OrganizationMembership < Hanzoai::Internal::Type::BaseModel - # @!attribute created_at - # - # @return [Time] - required :created_at, Time + # @!method initialize(user_id:, budget_duration: nil, budget_reset_at: nil, created_at: nil, max_budget: nil, metadata: nil, model_max_budget: nil, model_spend: nil, models: nil, object_permission: nil, organization_memberships: nil, rpm_limit: nil, spend: nil, sso_user_id: nil, teams: nil, tpm_limit: nil, updated_at: nil, user_alias: nil, user_email: nil, user_role: nil) + # @param user_id [String] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param created_at [Time, nil] + # + # @param max_budget [Float, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_spend [Hash{Symbol=>Object}, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param organization_memberships [Array, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param spend [Float] + # + # @param sso_user_id [String, nil] + # + # @param teams [Array] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] + # + # @param user_alias [String, nil] + # + # @param user_email [String, nil] + # + # @param user_role [String, nil] - # @!attribute organization_id + # @see Hanzoai::Models::TeamAddMemberResponse::UpdatedUser#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id # # @return [String] - required :organization_id, String + required :object_permission_id, String - # @!attribute updated_at + # @!attribute agent_access_groups # - # @return [Time] - required :updated_at, Time + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute user_id + # @!attribute agents # - # @return [String] - required :user_id, String + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute budget_id + # @!attribute mcp_access_groups # - # @return [String, nil] - optional :budget_id, String, nil?: true + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute llm_budget_table - # Represents user-controllable params for a LLM_BudgetTable record + # @!attribute mcp_servers # - # @return [Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, nil] - optional :llm_budget_table, - -> { Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable }, - nil?: true + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute [r] spend + # @!attribute mcp_tool_permissions # - # @return [Float, nil] - optional :spend, Float - - # @!parse - # # @return [Float] - # attr_writer :spend + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true - # @!attribute [r] user + # @!attribute vector_stores # - # @return [Object, nil] - optional :user, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :user + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!attribute user_role + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record # - # @return [String, nil] - optional :user_role, String, nil?: true - - # @!parse - # # This is the table that track what organizations a user belongs to and users - # # spend within the organization - # # - # # @param created_at [Time] - # # @param organization_id [String] - # # @param updated_at [Time] - # # @param user_id [String] - # # @param budget_id [String, nil] - # # @param llm_budget_table [Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, nil] - # # @param spend [Float] - # # @param user [Object] - # # @param user_role [String, nil] - # # - # def initialize( - # created_at:, - # organization_id:, - # updated_at:, - # user_id:, - # budget_id: nil, - # llm_budget_table: nil, - # spend: nil, - # user: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership#llm_budget_table - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - # @!attribute budget_duration - # - # @return [String, nil] - optional :budget_duration, String, nil?: true - - # @!attribute max_budget - # - # @return [Float, nil] - optional :max_budget, Float, nil?: true - - # @!attribute max_parallel_requests - # - # @return [Integer, nil] - optional :max_parallel_requests, Integer, nil?: true - - # @!attribute model_max_budget - # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true - - # @!attribute rpm_limit - # - # @return [Integer, nil] - optional :rpm_limit, Integer, nil?: true - - # @!attribute soft_budget - # - # @return [Float, nil] - optional :soft_budget, Float, nil?: true - - # @!attribute tpm_limit - # - # @return [Integer, nil] - optional :tpm_limit, Integer, nil?: true - - # @!parse - # # Represents user-controllable params for a LLM_BudgetTable record - # # - # # @param budget_duration [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param model_max_budget [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param soft_budget [Float, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # budget_duration: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # model_max_budget: nil, - # rpm_limit: nil, - # soft_budget: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] end end - # @see Hanzoai::Models::TeamAddMemberResponse#llm_model_table - class LlmModelTable < Hanzoai::Internal::Type::BaseModel + # @see Hanzoai::Models::TeamAddMemberResponse#litellm_model_table + class LitellmModelTable < Hanzoai::Internal::Type::BaseModel # @!attribute created_by # # @return [String] @@ -585,35 +444,96 @@ class LlmModelTable < Hanzoai::Internal::Type::BaseModel # @return [String] required :updated_by, String + # @!attribute id + # + # @return [Integer, nil] + optional :id, Integer, nil?: true + # @!attribute model_aliases # - # @return [Object, String, nil] + # @return [Hash{Symbol=>Object}, String, nil] optional :model_aliases, - union: -> { Hanzoai::Models::TeamAddMemberResponse::LlmModelTable::ModelAliases }, + union: -> { Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::ModelAliases }, nil?: true - # @!parse - # # @param created_by [String] - # # @param updated_by [String] - # # @param model_aliases [Object, String, nil] - # # - # def initialize(created_by:, updated_by:, model_aliases: nil, **) = super + # @!attribute team + # + # @return [Object, nil] + optional :team, Hanzoai::Internal::Type::Unknown - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(created_by:, updated_by:, id: nil, model_aliases: nil, team: nil) + # @param created_by [String] + # @param updated_by [String] + # @param id [Integer, nil] + # @param model_aliases [Hash{Symbol=>Object}, String, nil] + # @param team [Object] - # @see Hanzoai::Models::TeamAddMemberResponse::LlmModelTable#model_aliases + # @see Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable#model_aliases module ModelAliases extend Hanzoai::Internal::Type::Union - variant Hanzoai::Internal::Type::Unknown + variant -> { Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::ModelAliases::UnionMember0Map } variant String - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end + # @!method self.variants + # @return [Array(Hash{Symbol=>Object}, String)] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember0Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] end end + + # @see Hanzoai::Models::TeamAddMemberResponse#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id + # + # @return [String] + required :object_permission_id, String + + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end end end end diff --git a/lib/hanzoai/models/team_block_params.rb b/lib/hanzoai/models/team_block_params.rb index 4f04974b..54aa2741 100644 --- a/lib/hanzoai/models/team_block_params.rb +++ b/lib/hanzoai/models/team_block_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#block class TeamBlockParams < Hanzoai::Models::BlockTeamRequest - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_block_response.rb b/lib/hanzoai/models/team_block_response.rb new file mode 100644 index 00000000..8b4b8956 --- /dev/null +++ b/lib/hanzoai/models/team_block_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamBlockResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_create_params.rb b/lib/hanzoai/models/team_create_params.rb index 62ea0be7..13c878c4 100644 --- a/lib/hanzoai/models/team_create_params.rb +++ b/lib/hanzoai/models/team_create_params.rb @@ -4,27 +4,32 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#create class TeamCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute [r] admins + # @!attribute admins # # @return [Array, nil] optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :admins + # @!attribute allowed_passthrough_routes + # + # @return [Array, nil] + optional :allowed_passthrough_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!attribute [r] blocked + # @!attribute allowed_vector_store_indexes # - # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel + # @return [Array, nil] + optional :allowed_vector_store_indexes, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex] }, + nil?: true - # @!parse - # # @return [Boolean] - # attr_writer :blocked + # @!attribute blocked + # + # @return [Boolean, nil] + optional :blocked, Hanzoai::Internal::Type::Boolean # @!attribute budget_duration # @@ -41,53 +46,78 @@ class TeamCreateParams < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :max_budget, Float, nil?: true - # @!attribute [r] members + # @!attribute members # # @return [Array, nil] optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute [r] members_with_roles + # @!attribute members_with_roles # # @return [Array, nil] - optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members_with_roles + optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Member] } # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_aliases # - # @return [Object, nil] - optional :model_aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute model_rpm_limit + # + # @return [Hash{Symbol=>Integer}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Integer], nil?: true - # @!attribute [r] models + # @!attribute model_tpm_limit + # + # @return [Hash{Symbol=>Integer}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Integer], nil?: true + + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # + # @return [Hanzoai::Models::TeamCreateParams::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::TeamCreateParams::ObjectPermission }, nil?: true # @!attribute organization_id # # @return [String, nil] optional :organization_id, String, nil?: true + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true + # @!attribute rpm_limit_type + # + # @return [Symbol, Hanzoai::Models::TeamCreateParams::RpmLimitType, nil] + optional :rpm_limit_type, enum: -> { Hanzoai::TeamCreateParams::RpmLimitType }, nil?: true + + # @!attribute secret_manager_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :secret_manager_settings, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + # @!attribute tags # # @return [Array, nil] @@ -103,67 +133,207 @@ class TeamCreateParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :team_id, String, nil?: true + # @!attribute team_member_budget + # + # @return [Float, nil] + optional :team_member_budget, Float, nil?: true + + # @!attribute team_member_key_duration + # + # @return [String, nil] + optional :team_member_key_duration, String, nil?: true + + # @!attribute team_member_permissions + # + # @return [Array, nil] + optional :team_member_permissions, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute team_member_rpm_limit + # + # @return [Integer, nil] + optional :team_member_rpm_limit, Integer, nil?: true + + # @!attribute team_member_tpm_limit + # + # @return [Integer, nil] + optional :team_member_tpm_limit, Integer, nil?: true + # @!attribute tpm_limit # # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute tpm_limit_type + # + # @return [Symbol, Hanzoai::Models::TeamCreateParams::TpmLimitType, nil] + optional :tpm_limit_type, enum: -> { Hanzoai::TeamCreateParams::TpmLimitType }, nil?: true + + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" - - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param admins [Array] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param guardrails [Array, nil] - # # @param max_budget [Float, nil] - # # @param members [Array] - # # @param members_with_roles [Array] - # # @param metadata [Object, nil] - # # @param model_aliases [Object, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param tags [Array, nil] - # # @param team_alias [String, nil] - # # @param team_id [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # admins: nil, - # blocked: nil, - # budget_duration: nil, - # guardrails: nil, - # max_budget: nil, - # members: nil, - # members_with_roles: nil, - # metadata: nil, - # model_aliases: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # tags: nil, - # team_alias: nil, - # team_id: nil, - # tpm_limit: nil, - # llm_changed_by: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + optional :litellm_changed_by, String + + # @!method initialize(admins: nil, allowed_passthrough_routes: nil, allowed_vector_store_indexes: nil, blocked: nil, budget_duration: nil, guardrails: nil, max_budget: nil, members: nil, members_with_roles: nil, metadata: nil, model_aliases: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, prompts: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, secret_manager_settings: nil, tags: nil, team_alias: nil, team_id: nil, team_member_budget: nil, team_member_key_duration: nil, team_member_permissions: nil, team_member_rpm_limit: nil, team_member_tpm_limit: nil, tpm_limit: nil, tpm_limit_type: nil, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamCreateParams} for more details. + # + # @param admins [Array] + # + # @param allowed_passthrough_routes [Array, nil] + # + # @param allowed_vector_store_indexes [Array, nil] + # + # @param blocked [Boolean] + # + # @param budget_duration [String, nil] + # + # @param guardrails [Array, nil] + # + # @param max_budget [Float, nil] + # + # @param members [Array] + # + # @param members_with_roles [Array] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_aliases [Hash{Symbol=>Object}, nil] + # + # @param model_rpm_limit [Hash{Symbol=>Integer}, nil] + # + # @param model_tpm_limit [Hash{Symbol=>Integer}, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::TeamCreateParams::ObjectPermission, nil] + # + # @param organization_id [String, nil] + # + # @param prompts [Array, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::TeamCreateParams::RpmLimitType, nil] + # + # @param secret_manager_settings [Hash{Symbol=>Object}, nil] + # + # @param tags [Array, nil] + # + # @param team_alias [String, nil] + # + # @param team_id [String, nil] + # + # @param team_member_budget [Float, nil] + # + # @param team_member_key_duration [String, nil] + # + # @param team_member_permissions [Array, nil] + # + # @param team_member_rpm_limit [Integer, nil] + # + # @param team_member_tpm_limit [Integer, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::TeamCreateParams::TpmLimitType, nil] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + # @!attribute index_name + # + # @return [String] + required :index_name, String + + # @!attribute index_permissions + # + # @return [Array] + required :index_permissions, + -> { Hanzoai::Internal::Type::ArrayOf[enum: Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission] } + + # @!method initialize(index_name:, index_permissions:) + # @param index_name [String] + # @param index_permissions [Array] + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ = :read + WRITE = :write + + # @!method self.values + # @return [Array] + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + + # @!method self.values + # @return [Array] + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/hanzoai/models/team_create_response.rb b/lib/hanzoai/models/team_create_response.rb index b1d7a8b9..4d07bfb9 100644 --- a/lib/hanzoai/models/team_create_response.rb +++ b/lib/hanzoai/models/team_create_response.rb @@ -9,23 +9,15 @@ class TeamCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [String] required :team_id, String - # @!attribute [r] admins + # @!attribute admins # # @return [Array, nil] optional :admins, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :admins - - # @!attribute [r] blocked + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :blocked + optional :blocked, Hanzoai::Internal::Type::Boolean # @!attribute budget_duration # @@ -42,10 +34,10 @@ class TeamCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [Time, nil] optional :created_at, Time, nil?: true - # @!attribute llm_model_table + # @!attribute litellm_model_table # - # @return [Hanzoai::Models::TeamCreateResponse::LlmModelTable, nil] - optional :llm_model_table, -> { Hanzoai::Models::TeamCreateResponse::LlmModelTable }, nil?: true + # @return [Object, nil] + optional :litellm_model_table, Hanzoai::Internal::Type::Unknown # @!attribute max_budget # @@ -57,48 +49,52 @@ class TeamCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :max_parallel_requests, Integer, nil?: true - # @!attribute [r] members + # @!attribute members # # @return [Array, nil] optional :members, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :members - - # @!attribute [r] members_with_roles + # @!attribute members_with_roles # # @return [Array, nil] - optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member] } - - # @!parse - # # @return [Array] - # attr_writer :members_with_roles + optional :members_with_roles, -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Member] } # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_id # # @return [Integer, nil] optional :model_id, Integer, nil?: true - # @!attribute [r] models + # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @return [Array] - # attr_writer :models + # @!attribute object_permission + # Represents a LiteLLM_ObjectPermissionTable record + # + # @return [Hanzoai::Models::TeamCreateResponse::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::Models::TeamCreateResponse::ObjectPermission }, nil?: true + + # @!attribute object_permission_id + # + # @return [String, nil] + optional :object_permission_id, String, nil?: true # @!attribute organization_id # # @return [String, nil] optional :organization_id, String, nil?: true + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute rpm_limit # # @return [Integer, nil] @@ -114,99 +110,119 @@ class TeamCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :team_alias, String, nil?: true + # @!attribute team_member_permissions + # + # @return [Array, nil] + optional :team_member_permissions, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + # @!attribute tpm_limit # # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!parse - # # @param team_id [String] - # # @param admins [Array] - # # @param blocked [Boolean] - # # @param budget_duration [String, nil] - # # @param budget_reset_at [Time, nil] - # # @param created_at [Time, nil] - # # @param llm_model_table [Hanzoai::Models::TeamCreateResponse::LlmModelTable, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param members [Array] - # # @param members_with_roles [Array] - # # @param metadata [Object, nil] - # # @param model_id [Integer, nil] - # # @param models [Array] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param team_alias [String, nil] - # # @param tpm_limit [Integer, nil] - # # - # def initialize( - # team_id:, - # admins: nil, - # blocked: nil, - # budget_duration: nil, - # budget_reset_at: nil, - # created_at: nil, - # llm_model_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # members: nil, - # members_with_roles: nil, - # metadata: nil, - # model_id: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # spend: nil, - # team_alias: nil, - # tpm_limit: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - - # @see Hanzoai::Models::TeamCreateResponse#llm_model_table - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - # @!attribute created_by - # - # @return [String] - required :created_by, String + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + + # @!method initialize(team_id:, admins: nil, blocked: nil, budget_duration: nil, budget_reset_at: nil, created_at: nil, litellm_model_table: nil, max_budget: nil, max_parallel_requests: nil, members: nil, members_with_roles: nil, metadata: nil, model_id: nil, models: nil, object_permission: nil, object_permission_id: nil, organization_id: nil, router_settings: nil, rpm_limit: nil, spend: nil, team_alias: nil, team_member_permissions: nil, tpm_limit: nil, updated_at: nil) + # @param team_id [String] + # + # @param admins [Array] + # + # @param blocked [Boolean] + # + # @param budget_duration [String, nil] + # + # @param budget_reset_at [Time, nil] + # + # @param created_at [Time, nil] + # + # @param litellm_model_table [Object] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param members [Array] + # + # @param members_with_roles [Array] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_id [Integer, nil] + # + # @param models [Array] + # + # @param object_permission [Hanzoai::Models::TeamCreateResponse::ObjectPermission, nil] Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String, nil] + # + # @param organization_id [String, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param spend [Float, nil] + # + # @param team_alias [String, nil] + # + # @param team_member_permissions [Array, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param updated_at [Time, nil] - # @!attribute updated_by + # @see Hanzoai::Models::TeamCreateResponse#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute object_permission_id # # @return [String] - required :updated_by, String + required :object_permission_id, String - # @!attribute model_aliases + # @!attribute agent_access_groups # - # @return [Object, String, nil] - optional :model_aliases, - union: -> { Hanzoai::Models::TeamCreateResponse::LlmModelTable::ModelAliases }, - nil?: true + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!parse - # # @param created_by [String] - # # @param updated_by [String] - # # @param model_aliases [Object, String, nil] - # # - # def initialize(created_by:, updated_by:, model_aliases: nil, **) = super + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @see Hanzoai::Models::TeamCreateResponse::LlmModelTable#model_aliases - module ModelAliases - extend Hanzoai::Internal::Type::Union + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - variant Hanzoai::Internal::Type::Unknown + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true - variant String + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true - # @!parse - # # @return [Array(Object, String)] - # def self.variants; end - end + # @!method initialize(object_permission_id:, agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # Represents a LiteLLM_ObjectPermissionTable record + # + # @param object_permission_id [String] + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] end end end diff --git a/lib/hanzoai/models/team_delete_params.rb b/lib/hanzoai/models/team_delete_params.rb index a83dc9e5..c152f806 100644 --- a/lib/hanzoai/models/team_delete_params.rb +++ b/lib/hanzoai/models/team_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#delete class TeamDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute team_ids @@ -13,25 +12,23 @@ class TeamDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [Array] required :team_ids, Hanzoai::Internal::Type::ArrayOf[String] - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" + optional :litellm_changed_by, String - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param team_ids [Array] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(team_ids:, llm_changed_by: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(team_ids:, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamDeleteParams} for more details. + # + # @param team_ids [Array] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_delete_response.rb b/lib/hanzoai/models/team_delete_response.rb new file mode 100644 index 00000000..5d6f3394 --- /dev/null +++ b/lib/hanzoai/models/team_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_disable_logging_params.rb b/lib/hanzoai/models/team_disable_logging_params.rb index b5cc227c..f806cf5b 100644 --- a/lib/hanzoai/models/team_disable_logging_params.rb +++ b/lib/hanzoai/models/team_disable_logging_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#disable_logging class TeamDisableLoggingParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_disable_logging_response.rb b/lib/hanzoai/models/team_disable_logging_response.rb new file mode 100644 index 00000000..0703d2aa --- /dev/null +++ b/lib/hanzoai/models/team_disable_logging_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamDisableLoggingResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_list_available_params.rb b/lib/hanzoai/models/team_list_available_params.rb index 7e894191..da4d4091 100644 --- a/lib/hanzoai/models/team_list_available_params.rb +++ b/lib/hanzoai/models/team_list_available_params.rb @@ -4,26 +4,17 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#list_available class TeamListAvailableParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute [r] response_model + # @!attribute response_model # # @return [Object, nil] optional :response_model, Hanzoai::Internal::Type::Unknown - # @!parse - # # @return [Object] - # attr_writer :response_model - - # @!parse - # # @param response_model [Object] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(response_model: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(response_model: nil, request_options: {}) + # @param response_model [Object] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_list_available_response.rb b/lib/hanzoai/models/team_list_available_response.rb new file mode 100644 index 00000000..df685428 --- /dev/null +++ b/lib/hanzoai/models/team_list_available_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamListAvailableResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_list_params.rb b/lib/hanzoai/models/team_list_params.rb index d3c79377..fe4b4b45 100644 --- a/lib/hanzoai/models/team_list_params.rb +++ b/lib/hanzoai/models/team_list_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#list class TeamListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute organization_id @@ -19,14 +18,12 @@ class TeamListParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param organization_id [String, nil] - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(organization_id: nil, user_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(organization_id: nil, user_id: nil, request_options: {}) + # @param organization_id [String, nil] + # + # @param user_id [String, nil] Only return teams which this 'user_id' belongs to + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_list_response.rb b/lib/hanzoai/models/team_list_response.rb new file mode 100644 index 00000000..bd07e2af --- /dev/null +++ b/lib/hanzoai/models/team_list_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamListResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_remove_member_params.rb b/lib/hanzoai/models/team_remove_member_params.rb index 2da1faea..d327184b 100644 --- a/lib/hanzoai/models/team_remove_member_params.rb +++ b/lib/hanzoai/models/team_remove_member_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#remove_member class TeamRemoveMemberParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute team_id @@ -23,15 +22,11 @@ class TeamRemoveMemberParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param team_id [String] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(team_id:, user_email: nil, user_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(team_id:, user_email: nil, user_id: nil, request_options: {}) + # @param team_id [String] + # @param user_email [String, nil] + # @param user_id [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_remove_member_response.rb b/lib/hanzoai/models/team_remove_member_response.rb new file mode 100644 index 00000000..be9424a1 --- /dev/null +++ b/lib/hanzoai/models/team_remove_member_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamRemoveMemberResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_retrieve_info_params.rb b/lib/hanzoai/models/team_retrieve_info_params.rb index 08fd7ad9..0c7b8fb2 100644 --- a/lib/hanzoai/models/team_retrieve_info_params.rb +++ b/lib/hanzoai/models/team_retrieve_info_params.rb @@ -4,27 +4,19 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#retrieve_info class TeamRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!attribute [r] team_id + # @!attribute team_id # Team ID in the request parameters # # @return [String, nil] optional :team_id, String - # @!parse - # # @return [String] - # attr_writer :team_id - - # @!parse - # # @param team_id [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(team_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(team_id: nil, request_options: {}) + # @param team_id [String] Team ID in the request parameters + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_retrieve_info_response.rb b/lib/hanzoai/models/team_retrieve_info_response.rb new file mode 100644 index 00000000..f9665782 --- /dev/null +++ b/lib/hanzoai/models/team_retrieve_info_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamRetrieveInfoResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_unblock_params.rb b/lib/hanzoai/models/team_unblock_params.rb index d9a0170d..27de5f56 100644 --- a/lib/hanzoai/models/team_unblock_params.rb +++ b/lib/hanzoai/models/team_unblock_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#unblock class TeamUnblockParams < Hanzoai::Models::BlockTeamRequest - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/team_unblock_response.rb b/lib/hanzoai/models/team_unblock_response.rb new file mode 100644 index 00000000..0e3ba532 --- /dev/null +++ b/lib/hanzoai/models/team_unblock_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamUnblockResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/team_update_member_params.rb b/lib/hanzoai/models/team_update_member_params.rb index e2efbeee..ea7ceadd 100644 --- a/lib/hanzoai/models/team_update_member_params.rb +++ b/lib/hanzoai/models/team_update_member_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#update_member class TeamUpdateMemberParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute team_id @@ -21,7 +20,19 @@ class TeamUpdateMemberParams < Hanzoai::Internal::Type::BaseModel # @!attribute role # # @return [Symbol, Hanzoai::Models::TeamUpdateMemberParams::Role, nil] - optional :role, enum: -> { Hanzoai::Models::TeamUpdateMemberParams::Role }, nil?: true + optional :role, enum: -> { Hanzoai::TeamUpdateMemberParams::Role }, nil?: true + + # @!attribute rpm_limit + # Requests per minute limit for this team member + # + # @return [Integer, nil] + optional :rpm_limit, Integer, nil?: true + + # @!attribute tpm_limit + # Tokens per minute limit for this team member + # + # @return [Integer, nil] + optional :tpm_limit, Integer, nil?: true # @!attribute user_email # @@ -33,17 +44,22 @@ class TeamUpdateMemberParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param team_id [String] - # # @param max_budget_in_team [Float, nil] - # # @param role [Symbol, Hanzoai::Models::TeamUpdateMemberParams::Role, nil] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(team_id:, max_budget_in_team: nil, role: nil, user_email: nil, user_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(team_id:, max_budget_in_team: nil, role: nil, rpm_limit: nil, tpm_limit: nil, user_email: nil, user_id: nil, request_options: {}) + # @param team_id [String] + # + # @param max_budget_in_team [Float, nil] + # + # @param role [Symbol, Hanzoai::Models::TeamUpdateMemberParams::Role, nil] + # + # @param rpm_limit [Integer, nil] Requests per minute limit for this team member + # + # @param tpm_limit [Integer, nil] Tokens per minute limit for this team member + # + # @param user_email [String, nil] + # + # @param user_id [String, nil] + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module Role extend Hanzoai::Internal::Type::Enum @@ -51,11 +67,8 @@ module Role ADMIN = :admin USER = :user - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/team_update_member_response.rb b/lib/hanzoai/models/team_update_member_response.rb index 044814ba..17e2b8be 100644 --- a/lib/hanzoai/models/team_update_member_response.rb +++ b/lib/hanzoai/models/team_update_member_response.rb @@ -19,20 +19,28 @@ class TeamUpdateMemberResponse < Hanzoai::Internal::Type::BaseModel # @return [Float, nil] optional :max_budget_in_team, Float, nil?: true + # @!attribute rpm_limit + # + # @return [Integer, nil] + optional :rpm_limit, Integer, nil?: true + + # @!attribute tpm_limit + # + # @return [Integer, nil] + optional :tpm_limit, Integer, nil?: true + # @!attribute user_email # # @return [String, nil] optional :user_email, String, nil?: true - # @!parse - # # @param team_id [String] - # # @param user_id [String] - # # @param max_budget_in_team [Float, nil] - # # @param user_email [String, nil] - # # - # def initialize(team_id:, user_id:, max_budget_in_team: nil, user_email: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(team_id:, user_id:, max_budget_in_team: nil, rpm_limit: nil, tpm_limit: nil, user_email: nil) + # @param team_id [String] + # @param user_id [String] + # @param max_budget_in_team [Float, nil] + # @param rpm_limit [Integer, nil] + # @param tpm_limit [Integer, nil] + # @param user_email [String, nil] end end end diff --git a/lib/hanzoai/models/team_update_params.rb b/lib/hanzoai/models/team_update_params.rb index 8fcfadbc..70261fdc 100644 --- a/lib/hanzoai/models/team_update_params.rb +++ b/lib/hanzoai/models/team_update_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Team#update class TeamUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute team_id @@ -13,10 +12,24 @@ class TeamUpdateParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :team_id, String + # @!attribute allowed_passthrough_routes + # + # @return [Array, nil] + optional :allowed_passthrough_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_vector_store_indexes + # + # @return [Array, nil] + optional :allowed_vector_store_indexes, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex] }, + nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -35,29 +48,61 @@ class TeamUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_aliases # - # @return [Object, nil] - optional :model_aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute model_rpm_limit + # + # @return [Hash{Symbol=>Integer}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Integer], nil?: true + + # @!attribute model_tpm_limit + # + # @return [Hash{Symbol=>Integer}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Integer], nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::TeamUpdateParams::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::TeamUpdateParams::ObjectPermission }, nil?: true + # @!attribute organization_id # # @return [String, nil] optional :organization_id, String, nil?: true + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute router_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :router_settings, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true + # @!attribute secret_manager_settings + # + # @return [Hash{Symbol=>Object}, nil] + optional :secret_manager_settings, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + # @!attribute tags # # @return [Array, nil] @@ -68,61 +113,172 @@ class TeamUpdateParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :team_alias, String, nil?: true + # @!attribute team_member_budget + # + # @return [Float, nil] + optional :team_member_budget, Float, nil?: true + + # @!attribute team_member_budget_duration + # + # @return [String, nil] + optional :team_member_budget_duration, String, nil?: true + + # @!attribute team_member_key_duration + # + # @return [String, nil] + optional :team_member_key_duration, String, nil?: true + + # @!attribute team_member_rpm_limit + # + # @return [Integer, nil] + optional :team_member_rpm_limit, Integer, nil?: true + + # @!attribute team_member_tpm_limit + # + # @return [Integer, nil] + optional :team_member_tpm_limit, Integer, nil?: true + # @!attribute tpm_limit # # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" - - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param team_id [String] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param guardrails [Array, nil] - # # @param max_budget [Float, nil] - # # @param metadata [Object, nil] - # # @param model_aliases [Object, nil] - # # @param models [Array, nil] - # # @param organization_id [String, nil] - # # @param rpm_limit [Integer, nil] - # # @param tags [Array, nil] - # # @param team_alias [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # team_id:, - # blocked: nil, - # budget_duration: nil, - # guardrails: nil, - # max_budget: nil, - # metadata: nil, - # model_aliases: nil, - # models: nil, - # organization_id: nil, - # rpm_limit: nil, - # tags: nil, - # team_alias: nil, - # tpm_limit: nil, - # llm_changed_by: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + optional :litellm_changed_by, String + + # @!method initialize(team_id:, allowed_passthrough_routes: nil, allowed_vector_store_indexes: nil, blocked: nil, budget_duration: nil, guardrails: nil, max_budget: nil, metadata: nil, model_aliases: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, prompts: nil, router_settings: nil, rpm_limit: nil, secret_manager_settings: nil, tags: nil, team_alias: nil, team_member_budget: nil, team_member_budget_duration: nil, team_member_key_duration: nil, team_member_rpm_limit: nil, team_member_tpm_limit: nil, tpm_limit: nil, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamUpdateParams} for more details. + # + # @param team_id [String] + # + # @param allowed_passthrough_routes [Array, nil] + # + # @param allowed_vector_store_indexes [Array, nil] + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param guardrails [Array, nil] + # + # @param max_budget [Float, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_aliases [Hash{Symbol=>Object}, nil] + # + # @param model_rpm_limit [Hash{Symbol=>Integer}, nil] + # + # @param model_tpm_limit [Hash{Symbol=>Integer}, nil] + # + # @param models [Array, nil] + # + # @param object_permission [Hanzoai::Models::TeamUpdateParams::ObjectPermission, nil] + # + # @param organization_id [String, nil] + # + # @param prompts [Array, nil] + # + # @param router_settings [Hash{Symbol=>Object}, nil] + # + # @param rpm_limit [Integer, nil] + # + # @param secret_manager_settings [Hash{Symbol=>Object}, nil] + # + # @param tags [Array, nil] + # + # @param team_alias [String, nil] + # + # @param team_member_budget [Float, nil] + # + # @param team_member_budget_duration [String, nil] + # + # @param team_member_key_duration [String, nil] + # + # @param team_member_rpm_limit [Integer, nil] + # + # @param team_member_tpm_limit [Integer, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + # @!attribute index_name + # + # @return [String] + required :index_name, String + + # @!attribute index_permissions + # + # @return [Array] + required :index_permissions, + -> { Hanzoai::Internal::Type::ArrayOf[enum: Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission] } + + # @!method initialize(index_name:, index_permissions:) + # @param index_name [String] + # @param index_permissions [Array] + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ = :read + WRITE = :write + + # @!method self.values + # @return [Array] + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end end end end diff --git a/lib/hanzoai/models/team_update_response.rb b/lib/hanzoai/models/team_update_response.rb new file mode 100644 index 00000000..af21a643 --- /dev/null +++ b/lib/hanzoai/models/team_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TeamUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/test_ping_params.rb b/lib/hanzoai/models/test_ping_params.rb index b58d7a7a..34e93741 100644 --- a/lib/hanzoai/models/test_ping_params.rb +++ b/lib/hanzoai/models/test_ping_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Test#ping class TestPingParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/test_ping_response.rb b/lib/hanzoai/models/test_ping_response.rb new file mode 100644 index 00000000..554c05ee --- /dev/null +++ b/lib/hanzoai/models/test_ping_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + TestPingResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/thread_create_params.rb b/lib/hanzoai/models/thread_create_params.rb index ac726c7f..3f93af4b 100644 --- a/lib/hanzoai/models/thread_create_params.rb +++ b/lib/hanzoai/models/thread_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Threads#create class ThreadCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/thread_create_response.rb b/lib/hanzoai/models/thread_create_response.rb new file mode 100644 index 00000000..7373e594 --- /dev/null +++ b/lib/hanzoai/models/thread_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ThreadCreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/thread_retrieve_params.rb b/lib/hanzoai/models/thread_retrieve_params.rb index db22969c..45a86b3f 100644 --- a/lib/hanzoai/models/thread_retrieve_params.rb +++ b/lib/hanzoai/models/thread_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::Threads#retrieve class ThreadRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/thread_retrieve_response.rb b/lib/hanzoai/models/thread_retrieve_response.rb new file mode 100644 index 00000000..7c96a104 --- /dev/null +++ b/lib/hanzoai/models/thread_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + ThreadRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/threads/message_create_params.rb b/lib/hanzoai/models/threads/message_create_params.rb index 0a58a0ea..e17959a4 100644 --- a/lib/hanzoai/models/threads/message_create_params.rb +++ b/lib/hanzoai/models/threads/message_create_params.rb @@ -5,16 +5,11 @@ module Models module Threads # @see Hanzoai::Resources::Threads::Messages#create class MessageCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/threads/message_create_response.rb b/lib/hanzoai/models/threads/message_create_response.rb new file mode 100644 index 00000000..5ff0f900 --- /dev/null +++ b/lib/hanzoai/models/threads/message_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Threads + # @type [Hanzoai::Internal::Type::Converter] + MessageCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/threads/message_list_params.rb b/lib/hanzoai/models/threads/message_list_params.rb index 0441df04..75f330e7 100644 --- a/lib/hanzoai/models/threads/message_list_params.rb +++ b/lib/hanzoai/models/threads/message_list_params.rb @@ -5,16 +5,11 @@ module Models module Threads # @see Hanzoai::Resources::Threads::Messages#list class MessageListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/threads/message_list_response.rb b/lib/hanzoai/models/threads/message_list_response.rb new file mode 100644 index 00000000..486e8d34 --- /dev/null +++ b/lib/hanzoai/models/threads/message_list_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Threads + # @type [Hanzoai::Internal::Type::Converter] + MessageListResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/threads/run_create_params.rb b/lib/hanzoai/models/threads/run_create_params.rb index 19e7d64f..cdb17ad4 100644 --- a/lib/hanzoai/models/threads/run_create_params.rb +++ b/lib/hanzoai/models/threads/run_create_params.rb @@ -5,16 +5,11 @@ module Models module Threads # @see Hanzoai::Resources::Threads::Runs#create class RunCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/threads/run_create_response.rb b/lib/hanzoai/models/threads/run_create_response.rb new file mode 100644 index 00000000..8741aae6 --- /dev/null +++ b/lib/hanzoai/models/threads/run_create_response.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + module Threads + # @type [Hanzoai::Internal::Type::Converter] + RunCreateResponse = Hanzoai::Internal::Type::Unknown + end + end +end diff --git a/lib/hanzoai/models/user_create_params.rb b/lib/hanzoai/models/user_create_params.rb index ea8f0c70..355cdbf4 100644 --- a/lib/hanzoai/models/user_create_params.rb +++ b/lib/hanzoai/models/user_create_params.rb @@ -4,14 +4,13 @@ module Hanzoai module Models # @see Hanzoai::Resources::User#create class UserCreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute allowed_cache_controls # @@ -20,19 +19,15 @@ class UserCreateParams < Hanzoai::Internal::Type::BaseModel Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true - # @!attribute [r] auto_create_key + # @!attribute auto_create_key # # @return [Boolean, nil] - optional :auto_create_key, Hanzoai::Internal::Type::BooleanModel - - # @!parse - # # @return [Boolean] - # attr_writer :auto_create_key + optional :auto_create_key, Hanzoai::Internal::Type::Boolean # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -41,8 +36,8 @@ class UserCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute duration # @@ -71,33 +66,50 @@ class UserCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_rpm_limit # - # @return [Object, nil] - optional :model_rpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_tpm_limit # - # @return [Object, nil] - optional :model_tpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::UserCreateParams::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::UserCreateParams::ObjectPermission }, nil?: true + + # @!attribute organizations + # + # @return [Array, nil] + optional :organizations, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true # @!attribute rpm_limit # @@ -107,13 +119,18 @@ class UserCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute send_invite_email # # @return [Boolean, nil] - optional :send_invite_email, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :send_invite_email, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute spend # # @return [Float, nil] optional :spend, Float, nil?: true + # @!attribute sso_user_id + # + # @return [String, nil] + optional :sso_user_id, String, nil?: true + # @!attribute team_id # # @return [String, nil] @@ -121,8 +138,8 @@ class UserCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute teams # - # @return [Array, nil] - optional :teams, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @return [Array, Array, nil] + optional :teams, union: -> { Hanzoai::UserCreateParams::Teams }, nil?: true # @!attribute tpm_limit # @@ -147,73 +164,134 @@ class UserCreateParams < Hanzoai::Internal::Type::BaseModel # @!attribute user_role # # @return [Symbol, Hanzoai::Models::UserCreateParams::UserRole, nil] - optional :user_role, enum: -> { Hanzoai::Models::UserCreateParams::UserRole }, nil?: true - - # @!parse - # # @param aliases [Object, nil] - # # @param allowed_cache_controls [Array, nil] - # # @param auto_create_key [Boolean] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param config [Object, nil] - # # @param duration [String, nil] - # # @param guardrails [Array, nil] - # # @param key_alias [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_rpm_limit [Object, nil] - # # @param model_tpm_limit [Object, nil] - # # @param models [Array, nil] - # # @param permissions [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param send_invite_email [Boolean, nil] - # # @param spend [Float, nil] - # # @param team_id [String, nil] - # # @param teams [Array, nil] - # # @param tpm_limit [Integer, nil] - # # @param user_alias [String, nil] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param user_role [Symbol, Hanzoai::Models::UserCreateParams::UserRole, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # aliases: nil, - # allowed_cache_controls: nil, - # auto_create_key: nil, - # blocked: nil, - # budget_duration: nil, - # config: nil, - # duration: nil, - # guardrails: nil, - # key_alias: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_rpm_limit: nil, - # model_tpm_limit: nil, - # models: nil, - # permissions: nil, - # rpm_limit: nil, - # send_invite_email: nil, - # spend: nil, - # team_id: nil, - # teams: nil, - # tpm_limit: nil, - # user_alias: nil, - # user_email: nil, - # user_id: nil, - # user_role: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + optional :user_role, enum: -> { Hanzoai::UserCreateParams::UserRole }, nil?: true + + # @!method initialize(aliases: nil, allowed_cache_controls: nil, auto_create_key: nil, blocked: nil, budget_duration: nil, config: nil, duration: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organizations: nil, permissions: nil, prompts: nil, rpm_limit: nil, send_invite_email: nil, spend: nil, sso_user_id: nil, team_id: nil, teams: nil, tpm_limit: nil, user_alias: nil, user_email: nil, user_id: nil, user_role: nil, request_options: {}) + # @param aliases [Hash{Symbol=>Object}, nil] + # @param allowed_cache_controls [Array, nil] + # @param auto_create_key [Boolean] + # @param blocked [Boolean, nil] + # @param budget_duration [String, nil] + # @param config [Hash{Symbol=>Object}, nil] + # @param duration [String, nil] + # @param guardrails [Array, nil] + # @param key_alias [String, nil] + # @param max_budget [Float, nil] + # @param max_parallel_requests [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] + # @param models [Array, nil] + # @param object_permission [Hanzoai::Models::UserCreateParams::ObjectPermission, nil] + # @param organizations [Array, nil] + # @param permissions [Hash{Symbol=>Object}, nil] + # @param prompts [Array, nil] + # @param rpm_limit [Integer, nil] + # @param send_invite_email [Boolean, nil] + # @param spend [Float, nil] + # @param sso_user_id [String, nil] + # @param team_id [String, nil] + # @param teams [Array, Array, nil] + # @param tpm_limit [Integer, nil] + # @param user_alias [String, nil] + # @param user_email [String, nil] + # @param user_id [String, nil] + # @param user_role [Symbol, Hanzoai::Models::UserCreateParams::UserRole, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + module Teams + extend Hanzoai::Internal::Type::Union + + variant -> { Hanzoai::Models::UserCreateParams::Teams::StringArray } + + variant -> { Hanzoai::Models::UserCreateParams::Teams::UnionMember1Array } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + # @!attribute team_id + # + # @return [String] + required :team_id, String + + # @!attribute max_budget_in_team + # + # @return [Float, nil] + optional :max_budget_in_team, Float, nil?: true + + # @!attribute user_role + # + # @return [Symbol, Hanzoai::Models::UserCreateParams::Teams::UnionMember1::UserRole, nil] + optional :user_role, enum: -> { Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole } + + # @!method initialize(team_id:, max_budget_in_team: nil, user_role: nil) + # @param team_id [String] + # @param max_budget_in_team [Float, nil] + # @param user_role [Symbol, Hanzoai::Models::UserCreateParams::Teams::UnionMember1::UserRole] + + # @see Hanzoai::Models::UserCreateParams::Teams::UnionMember1#user_role + module UserRole + extend Hanzoai::Internal::Type::Enum + + USER = :user + ADMIN = :admin + + # @!method self.values + # @return [Array] + end + end + + # @!method self.variants + # @return [Array(Array, Array)] + + # @type [Hanzoai::Internal::Type::Converter] + StringArray = Hanzoai::Internal::Type::ArrayOf[String] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Array = + Hanzoai::Internal::Type::ArrayOf[-> { Hanzoai::UserCreateParams::Teams::UnionMember1 }] + end module UserRole extend Hanzoai::Internal::Type::Enum @@ -223,11 +301,8 @@ module UserRole INTERNAL_USER = :internal_user INTERNAL_USER_VIEWER = :internal_user_viewer - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/user_create_response.rb b/lib/hanzoai/models/user_create_response.rb index 074a701e..61010b94 100644 --- a/lib/hanzoai/models/user_create_response.rb +++ b/lib/hanzoai/models/user_create_response.rb @@ -4,11 +4,6 @@ module Hanzoai module Models # @see Hanzoai::Resources::User#create class UserCreateResponse < Hanzoai::Internal::Type::BaseModel - # @!attribute expires - # - # @return [Time, nil] - required :expires, Time, nil?: true - # @!attribute key # # @return [String] @@ -21,8 +16,8 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute allowed_cache_controls # @@ -31,10 +26,29 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute allowed_passthrough_routes + # + # @return [Array, nil] + optional :allowed_passthrough_routes, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute allowed_routes + # + # @return [Array, nil] + optional :allowed_routes, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute allowed_vector_store_indexes + # + # @return [Array, nil] + optional :allowed_vector_store_indexes, + -> { Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex] }, + nil?: true + # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -48,8 +62,13 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute created_at + # + # @return [Time, nil] + optional :created_at, Time, nil?: true # @!attribute created_by # @@ -66,6 +85,11 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [Array, nil] optional :enforced_params, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + # @!attribute expires + # + # @return [Time, nil] + optional :expires, Time, nil?: true + # @!attribute guardrails # # @return [Array, nil] @@ -81,14 +105,10 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :key_name, String, nil?: true - # @!attribute [r] llm_budget_table + # @!attribute litellm_budget_table # # @return [Object, nil] - optional :llm_budget_table, Hanzoai::Internal::Type::Unknown - - # @!parse - # # @return [Object] - # attr_writer :llm_budget_table + optional :litellm_budget_table, Hanzoai::Internal::Type::Unknown # @!attribute max_budget # @@ -102,39 +122,67 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_rpm_limit # - # @return [Object, nil] - optional :model_rpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_tpm_limit # - # @return [Object, nil] - optional :model_tpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::UserCreateResponse::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::Models::UserCreateResponse::ObjectPermission }, nil?: true + + # @!attribute organization_id + # + # @return [String, nil] + optional :organization_id, String, nil?: true + # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute router_settings + # Set of params that you can modify via `router.update_settings()`. + # + # @return [Hanzoai::Models::UserCreateResponse::RouterSettings, nil] + optional :router_settings, -> { Hanzoai::Models::UserCreateResponse::RouterSettings }, nil?: true # @!attribute rpm_limit # # @return [Integer, nil] optional :rpm_limit, Integer, nil?: true + # @!attribute rpm_limit_type + # + # @return [Symbol, Hanzoai::Models::UserCreateResponse::RpmLimitType, nil] + optional :rpm_limit_type, enum: -> { Hanzoai::Models::UserCreateResponse::RpmLimitType }, nil?: true + # @!attribute spend # # @return [Float, nil] @@ -165,6 +213,16 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute tpm_limit_type + # + # @return [Symbol, Hanzoai::Models::UserCreateResponse::TpmLimitType, nil] + optional :tpm_limit_type, enum: -> { Hanzoai::Models::UserCreateResponse::TpmLimitType }, nil?: true + + # @!attribute updated_at + # + # @return [Time, nil] + optional :updated_at, Time, nil?: true + # @!attribute updated_by # # @return [String, nil] @@ -190,87 +248,297 @@ class UserCreateResponse < Hanzoai::Internal::Type::BaseModel # @return [Symbol, Hanzoai::Models::UserCreateResponse::UserRole, nil] optional :user_role, enum: -> { Hanzoai::Models::UserCreateResponse::UserRole }, nil?: true - # @!parse - # # @param expires [Time, nil] - # # @param key [String] - # # @param token [String, nil] - # # @param aliases [Object, nil] - # # @param allowed_cache_controls [Array, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param budget_id [String, nil] - # # @param config [Object, nil] - # # @param created_by [String, nil] - # # @param duration [String, nil] - # # @param enforced_params [Array, nil] - # # @param guardrails [Array, nil] - # # @param key_alias [String, nil] - # # @param key_name [String, nil] - # # @param llm_budget_table [Object] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_rpm_limit [Object, nil] - # # @param model_tpm_limit [Object, nil] - # # @param models [Array, nil] - # # @param permissions [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param tags [Array, nil] - # # @param team_id [String, nil] - # # @param teams [Array, nil] - # # @param token_id [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param updated_by [String, nil] - # # @param user_alias [String, nil] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param user_role [Symbol, Hanzoai::Models::UserCreateResponse::UserRole, nil] - # # - # def initialize( - # expires:, - # key:, - # token: nil, - # aliases: nil, - # allowed_cache_controls: nil, - # blocked: nil, - # budget_duration: nil, - # budget_id: nil, - # config: nil, - # created_by: nil, - # duration: nil, - # enforced_params: nil, - # guardrails: nil, - # key_alias: nil, - # key_name: nil, - # llm_budget_table: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_rpm_limit: nil, - # model_tpm_limit: nil, - # models: nil, - # permissions: nil, - # rpm_limit: nil, - # spend: nil, - # tags: nil, - # team_id: nil, - # teams: nil, - # token_id: nil, - # tpm_limit: nil, - # updated_by: nil, - # user_alias: nil, - # user_email: nil, - # user_id: nil, - # user_role: nil, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(key:, token: nil, aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, created_at: nil, created_by: nil, duration: nil, enforced_params: nil, expires: nil, guardrails: nil, key_alias: nil, key_name: nil, litellm_budget_table: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, permissions: nil, prompts: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, spend: nil, tags: nil, team_id: nil, teams: nil, token_id: nil, tpm_limit: nil, tpm_limit_type: nil, updated_at: nil, updated_by: nil, user_alias: nil, user_email: nil, user_id: nil, user_role: nil) + # @param key [String] + # + # @param token [String, nil] + # + # @param aliases [Hash{Symbol=>Object}, nil] + # + # @param allowed_cache_controls [Array, nil] + # + # @param allowed_passthrough_routes [Array, nil] + # + # @param allowed_routes [Array, nil] + # + # @param allowed_vector_store_indexes [Array, nil] + # + # @param blocked [Boolean, nil] + # + # @param budget_duration [String, nil] + # + # @param budget_id [String, nil] + # + # @param config [Hash{Symbol=>Object}, nil] + # + # @param created_at [Time, nil] + # + # @param created_by [String, nil] + # + # @param duration [String, nil] + # + # @param enforced_params [Array, nil] + # + # @param expires [Time, nil] + # + # @param guardrails [Array, nil] + # + # @param key_alias [String, nil] + # + # @param key_name [String, nil] + # + # @param litellm_budget_table [Object] + # + # @param max_budget [Float, nil] + # + # @param max_parallel_requests [Integer, nil] + # + # @param metadata [Hash{Symbol=>Object}, nil] + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] + # + # @param models [Array, nil] + # + # @param object_permission [Hanzoai::Models::UserCreateResponse::ObjectPermission, nil] + # + # @param organization_id [String, nil] + # + # @param permissions [Hash{Symbol=>Object}, nil] + # + # @param prompts [Array, nil] + # + # @param router_settings [Hanzoai::Models::UserCreateResponse::RouterSettings, nil] Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::UserCreateResponse::RpmLimitType, nil] + # + # @param spend [Float, nil] + # + # @param tags [Array, nil] + # + # @param team_id [String, nil] + # + # @param teams [Array, nil] + # + # @param token_id [String, nil] + # + # @param tpm_limit [Integer, nil] + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::UserCreateResponse::TpmLimitType, nil] + # + # @param updated_at [Time, nil] + # + # @param updated_by [String, nil] + # + # @param user_alias [String, nil] + # + # @param user_email [String, nil] + # + # @param user_id [String, nil] + # + # @param user_role [Symbol, Hanzoai::Models::UserCreateResponse::UserRole, nil] + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + # @!attribute index_name + # + # @return [String] + required :index_name, String + + # @!attribute index_permissions + # + # @return [Array] + required :index_permissions, + -> { Hanzoai::Internal::Type::ArrayOf[enum: Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission] } + + # @!method initialize(index_name:, index_permissions:) + # @param index_name [String] + # @param index_permissions [Array] + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ = :read + WRITE = :write + + # @!method self.values + # @return [Array] + end + end + + # @see Hanzoai::Models::UserCreateResponse#object_permission + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end + + # @see Hanzoai::Models::UserCreateResponse#router_settings + class RouterSettings < Hanzoai::Internal::Type::BaseModel + # @!attribute allowed_fails + # + # @return [Integer, nil] + optional :allowed_fails, Integer, nil?: true + + # @!attribute context_window_fallbacks + # + # @return [ArrayObject}>, nil] + optional :context_window_fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute cooldown_time + # + # @return [Float, nil] + optional :cooldown_time, Float, nil?: true + + # @!attribute fallbacks + # + # @return [ArrayObject}>, nil] + optional :fallbacks, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + + # @!attribute max_retries + # + # @return [Integer, nil] + optional :max_retries, Integer, nil?: true + + # @!attribute model_group_alias + # + # @return [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + optional :model_group_alias, + -> { Hanzoai::Internal::Type::HashOf[union: Hanzoai::Models::UserCreateResponse::RouterSettings::ModelGroupAlias] }, + nil?: true + + # @!attribute model_group_retry_policy + # + # @return [Hash{Symbol=>Object}, nil] + optional :model_group_retry_policy, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute num_retries + # + # @return [Integer, nil] + optional :num_retries, Integer, nil?: true + + # @!attribute retry_after + # + # @return [Float, nil] + optional :retry_after, Float, nil?: true + + # @!attribute routing_strategy + # + # @return [String, nil] + optional :routing_strategy, String, nil?: true + + # @!attribute routing_strategy_args + # + # @return [Hash{Symbol=>Object}, nil] + optional :routing_strategy_args, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute timeout + # + # @return [Float, nil] + optional :timeout, Float, nil?: true + + # @!method initialize(allowed_fails: nil, context_window_fallbacks: nil, cooldown_time: nil, fallbacks: nil, max_retries: nil, model_group_alias: nil, model_group_retry_policy: nil, num_retries: nil, retry_after: nil, routing_strategy: nil, routing_strategy_args: nil, timeout: nil) + # Set of params that you can modify via `router.update_settings()`. + # + # @param allowed_fails [Integer, nil] + # @param context_window_fallbacks [ArrayObject}>, nil] + # @param cooldown_time [Float, nil] + # @param fallbacks [ArrayObject}>, nil] + # @param max_retries [Integer, nil] + # @param model_group_alias [Hash{Symbol=>String, Hash{Symbol=>Object}}, nil] + # @param model_group_retry_policy [Hash{Symbol=>Object}, nil] + # @param num_retries [Integer, nil] + # @param retry_after [Float, nil] + # @param routing_strategy [String, nil] + # @param routing_strategy_args [Hash{Symbol=>Object}, nil] + # @param timeout [Float, nil] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + variant String + + variant -> { Hanzoai::Models::UserCreateResponse::RouterSettings::ModelGroupAlias::UnionMember1Map } + + # @!method self.variants + # @return [Array(String, Hash{Symbol=>Object})] + + # @type [Hanzoai::Internal::Type::Converter] + UnionMember1Map = Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] + end + end + + # @see Hanzoai::Models::UserCreateResponse#rpm_limit_type + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end + + # @see Hanzoai::Models::UserCreateResponse#tpm_limit_type + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT = :guaranteed_throughput + BEST_EFFORT_THROUGHPUT = :best_effort_throughput + DYNAMIC = :dynamic + + # @!method self.values + # @return [Array] + end # @see Hanzoai::Models::UserCreateResponse#user_role module UserRole @@ -281,11 +549,8 @@ module UserRole INTERNAL_USER = :internal_user INTERNAL_USER_VIEWER = :internal_user_viewer - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/user_delete_params.rb b/lib/hanzoai/models/user_delete_params.rb index 08f6915d..e101d1ac 100644 --- a/lib/hanzoai/models/user_delete_params.rb +++ b/lib/hanzoai/models/user_delete_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::User#delete class UserDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute user_ids @@ -13,25 +12,23 @@ class UserDeleteParams < Hanzoai::Internal::Type::BaseModel # @return [Array] required :user_ids, Hanzoai::Internal::Type::ArrayOf[String] - # @!attribute [r] llm_changed_by - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability + # @!attribute litellm_changed_by + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability # # @return [String, nil] - optional :llm_changed_by, String, api_name: :"llm-changed-by" + optional :litellm_changed_by, String - # @!parse - # # @return [String] - # attr_writer :llm_changed_by - - # @!parse - # # @param user_ids [Array] - # # @param llm_changed_by [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(user_ids:, llm_changed_by: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(user_ids:, litellm_changed_by: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::UserDeleteParams} for more details. + # + # @param user_ids [Array] + # + # @param litellm_changed_by [String] The litellm-changed-by header enables tracking of actions performed by authorize + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/user_delete_response.rb b/lib/hanzoai/models/user_delete_response.rb new file mode 100644 index 00000000..10a0d5a0 --- /dev/null +++ b/lib/hanzoai/models/user_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + UserDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/user_list_params.rb b/lib/hanzoai/models/user_list_params.rb deleted file mode 100644 index f2b3e5a9..00000000 --- a/lib/hanzoai/models/user_list_params.rb +++ /dev/null @@ -1,55 +0,0 @@ -# frozen_string_literal: true - -module Hanzoai - module Models - # @see Hanzoai::Resources::User#list - class UserListParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # @!attribute [r] page - # Page number - # - # @return [Integer, nil] - optional :page, Integer - - # @!parse - # # @return [Integer] - # attr_writer :page - - # @!attribute [r] page_size - # Number of items per page - # - # @return [Integer, nil] - optional :page_size, Integer - - # @!parse - # # @return [Integer] - # attr_writer :page_size - - # @!attribute role - # Filter users by role - # - # @return [String, nil] - optional :role, String, nil?: true - - # @!attribute user_ids - # Get list of users by user_ids - # - # @return [String, nil] - optional :user_ids, String, nil?: true - - # @!parse - # # @param page [Integer] - # # @param page_size [Integer] - # # @param role [String, nil] - # # @param user_ids [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(page: nil, page_size: nil, role: nil, user_ids: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void - end - end -end diff --git a/lib/hanzoai/models/user_retrieve_info_params.rb b/lib/hanzoai/models/user_retrieve_info_params.rb index 1d57b98f..15f7dc0a 100644 --- a/lib/hanzoai/models/user_retrieve_info_params.rb +++ b/lib/hanzoai/models/user_retrieve_info_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::User#retrieve_info class UserRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute user_id @@ -14,13 +13,10 @@ class UserRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel # @return [String, nil] optional :user_id, String, nil?: true - # @!parse - # # @param user_id [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(user_id: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(user_id: nil, request_options: {}) + # @param user_id [String, nil] User ID in the request parameters + # + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/user_retrieve_info_response.rb b/lib/hanzoai/models/user_retrieve_info_response.rb new file mode 100644 index 00000000..1226d93d --- /dev/null +++ b/lib/hanzoai/models/user_retrieve_info_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + UserRetrieveInfoResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/user_roles.rb b/lib/hanzoai/models/user_roles.rb new file mode 100644 index 00000000..851f5d21 --- /dev/null +++ b/lib/hanzoai/models/user_roles.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization + # + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend + # + # Team Roles: TEAM: used for JWT auth + # + # Customer Roles: CUSTOMER: External users -> these are customers + module UserRoles + extend Hanzoai::Internal::Type::Enum + + PROXY_ADMIN = :proxy_admin + PROXY_ADMIN_VIEWER = :proxy_admin_viewer + ORG_ADMIN = :org_admin + INTERNAL_USER = :internal_user + INTERNAL_USER_VIEWER = :internal_user_viewer + TEAM = :team + CUSTOMER = :customer + + # @!method self.values + # @return [Array] + end + end +end diff --git a/lib/hanzoai/models/user_update_params.rb b/lib/hanzoai/models/user_update_params.rb index bb353b3c..88b2bb21 100644 --- a/lib/hanzoai/models/user_update_params.rb +++ b/lib/hanzoai/models/user_update_params.rb @@ -4,14 +4,13 @@ module Hanzoai module Models # @see Hanzoai::Resources::User#update class UserUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute aliases # - # @return [Object, nil] - optional :aliases, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :aliases, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute allowed_cache_controls # @@ -23,7 +22,7 @@ class UserUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute blocked # # @return [Boolean, nil] - optional :blocked, Hanzoai::Internal::Type::BooleanModel, nil?: true + optional :blocked, Hanzoai::Internal::Type::Boolean, nil?: true # @!attribute budget_duration # @@ -32,8 +31,8 @@ class UserUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute config # - # @return [Object, nil] - optional :config, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :config, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute duration # @@ -62,29 +61,36 @@ class UserUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute metadata # - # @return [Object, nil] - optional :metadata, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :metadata, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_max_budget # - # @return [Object, nil] - optional :model_max_budget, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_max_budget, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute model_rpm_limit # - # @return [Object, nil] - optional :model_rpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_rpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute model_tpm_limit # - # @return [Object, nil] - optional :model_tpm_limit, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :model_tpm_limit, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true # @!attribute models # # @return [Array, nil] optional :models, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @!attribute object_permission + # + # @return [Hanzoai::Models::UserUpdateParams::ObjectPermission, nil] + optional :object_permission, -> { Hanzoai::UserUpdateParams::ObjectPermission }, nil?: true + # @!attribute password # # @return [String, nil] @@ -92,8 +98,13 @@ class UserUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute permissions # - # @return [Object, nil] - optional :permissions, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :permissions, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], nil?: true + + # @!attribute prompts + # + # @return [Array, nil] + optional :prompts, Hanzoai::Internal::Type::ArrayOf[String], nil?: true # @!attribute rpm_limit # @@ -115,6 +126,11 @@ class UserUpdateParams < Hanzoai::Internal::Type::BaseModel # @return [Integer, nil] optional :tpm_limit, Integer, nil?: true + # @!attribute user_alias + # + # @return [String, nil] + optional :user_alias, String, nil?: true + # @!attribute user_email # # @return [String, nil] @@ -128,67 +144,79 @@ class UserUpdateParams < Hanzoai::Internal::Type::BaseModel # @!attribute user_role # # @return [Symbol, Hanzoai::Models::UserUpdateParams::UserRole, nil] - optional :user_role, enum: -> { Hanzoai::Models::UserUpdateParams::UserRole }, nil?: true - - # @!parse - # # @param aliases [Object, nil] - # # @param allowed_cache_controls [Array, nil] - # # @param blocked [Boolean, nil] - # # @param budget_duration [String, nil] - # # @param config [Object, nil] - # # @param duration [String, nil] - # # @param guardrails [Array, nil] - # # @param key_alias [String, nil] - # # @param max_budget [Float, nil] - # # @param max_parallel_requests [Integer, nil] - # # @param metadata [Object, nil] - # # @param model_max_budget [Object, nil] - # # @param model_rpm_limit [Object, nil] - # # @param model_tpm_limit [Object, nil] - # # @param models [Array, nil] - # # @param password [String, nil] - # # @param permissions [Object, nil] - # # @param rpm_limit [Integer, nil] - # # @param spend [Float, nil] - # # @param team_id [String, nil] - # # @param tpm_limit [Integer, nil] - # # @param user_email [String, nil] - # # @param user_id [String, nil] - # # @param user_role [Symbol, Hanzoai::Models::UserUpdateParams::UserRole, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize( - # aliases: nil, - # allowed_cache_controls: nil, - # blocked: nil, - # budget_duration: nil, - # config: nil, - # duration: nil, - # guardrails: nil, - # key_alias: nil, - # max_budget: nil, - # max_parallel_requests: nil, - # metadata: nil, - # model_max_budget: nil, - # model_rpm_limit: nil, - # model_tpm_limit: nil, - # models: nil, - # password: nil, - # permissions: nil, - # rpm_limit: nil, - # spend: nil, - # team_id: nil, - # tpm_limit: nil, - # user_email: nil, - # user_id: nil, - # user_role: nil, - # request_options: {}, - # ** - # ) - # super - # end - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + optional :user_role, enum: -> { Hanzoai::UserUpdateParams::UserRole }, nil?: true + + # @!method initialize(aliases: nil, allowed_cache_controls: nil, blocked: nil, budget_duration: nil, config: nil, duration: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, password: nil, permissions: nil, prompts: nil, rpm_limit: nil, spend: nil, team_id: nil, tpm_limit: nil, user_alias: nil, user_email: nil, user_id: nil, user_role: nil, request_options: {}) + # @param aliases [Hash{Symbol=>Object}, nil] + # @param allowed_cache_controls [Array, nil] + # @param blocked [Boolean, nil] + # @param budget_duration [String, nil] + # @param config [Hash{Symbol=>Object}, nil] + # @param duration [String, nil] + # @param guardrails [Array, nil] + # @param key_alias [String, nil] + # @param max_budget [Float, nil] + # @param max_parallel_requests [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] + # @param models [Array, nil] + # @param object_permission [Hanzoai::Models::UserUpdateParams::ObjectPermission, nil] + # @param password [String, nil] + # @param permissions [Hash{Symbol=>Object}, nil] + # @param prompts [Array, nil] + # @param rpm_limit [Integer, nil] + # @param spend [Float, nil] + # @param team_id [String, nil] + # @param tpm_limit [Integer, nil] + # @param user_alias [String, nil] + # @param user_email [String, nil] + # @param user_id [String, nil] + # @param user_role [Symbol, Hanzoai::Models::UserUpdateParams::UserRole, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + # @!attribute agent_access_groups + # + # @return [Array, nil] + optional :agent_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute agents + # + # @return [Array, nil] + optional :agents, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_access_groups + # + # @return [Array, nil] + optional :mcp_access_groups, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_servers + # + # @return [Array, nil] + optional :mcp_servers, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!attribute mcp_tool_permissions + # + # @return [Hash{Symbol=>Array}, nil] + optional :mcp_tool_permissions, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]], + nil?: true + + # @!attribute vector_stores + # + # @return [Array, nil] + optional :vector_stores, Hanzoai::Internal::Type::ArrayOf[String], nil?: true + + # @!method initialize(agent_access_groups: nil, agents: nil, mcp_access_groups: nil, mcp_servers: nil, mcp_tool_permissions: nil, vector_stores: nil) + # @param agent_access_groups [Array, nil] + # @param agents [Array, nil] + # @param mcp_access_groups [Array, nil] + # @param mcp_servers [Array, nil] + # @param mcp_tool_permissions [Hash{Symbol=>Array}, nil] + # @param vector_stores [Array, nil] + end module UserRole extend Hanzoai::Internal::Type::Enum @@ -198,11 +226,8 @@ module UserRole INTERNAL_USER = :internal_user INTERNAL_USER_VIEWER = :internal_user_viewer - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/user_update_response.rb b/lib/hanzoai/models/user_update_response.rb new file mode 100644 index 00000000..de280075 --- /dev/null +++ b/lib/hanzoai/models/user_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + UserUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/util_get_supported_openai_params_params.rb b/lib/hanzoai/models/util_get_supported_openai_params_params.rb index 2d23b88d..9b7f1388 100644 --- a/lib/hanzoai/models/util_get_supported_openai_params_params.rb +++ b/lib/hanzoai/models/util_get_supported_openai_params_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Utils#get_supported_openai_params class UtilGetSupportedOpenAIParamsParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute model @@ -13,13 +12,9 @@ class UtilGetSupportedOpenAIParamsParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :model, String - # @!parse - # # @param model [String] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(model:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(model:, request_options: {}) + # @param model [String] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/util_get_supported_openai_params_response.rb b/lib/hanzoai/models/util_get_supported_openai_params_response.rb new file mode 100644 index 00000000..e81963ec --- /dev/null +++ b/lib/hanzoai/models/util_get_supported_openai_params_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + UtilGetSupportedOpenAIParamsResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/util_token_counter_params.rb b/lib/hanzoai/models/util_token_counter_params.rb index 78b78c56..dd6415a1 100644 --- a/lib/hanzoai/models/util_token_counter_params.rb +++ b/lib/hanzoai/models/util_token_counter_params.rb @@ -4,8 +4,7 @@ module Hanzoai module Models # @see Hanzoai::Resources::Utils#token_counter class UtilTokenCounterParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute model @@ -13,25 +12,37 @@ class UtilTokenCounterParams < Hanzoai::Internal::Type::BaseModel # @return [String] required :model, String + # @!attribute call_endpoint + # + # @return [Boolean, nil] + optional :call_endpoint, Hanzoai::Internal::Type::Boolean + + # @!attribute contents + # + # @return [ArrayObject}>, nil] + optional :contents, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true + # @!attribute messages # - # @return [Array, nil] - optional :messages, Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], nil?: true + # @return [ArrayObject}>, nil] + optional :messages, + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]], + nil?: true # @!attribute prompt # # @return [String, nil] optional :prompt, String, nil?: true - # @!parse - # # @param model [String] - # # @param messages [Array, nil] - # # @param prompt [String, nil] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(model:, messages: nil, prompt: nil, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(model:, call_endpoint: nil, contents: nil, messages: nil, prompt: nil, request_options: {}) + # @param model [String] + # @param call_endpoint [Boolean] + # @param contents [ArrayObject}>, nil] + # @param messages [ArrayObject}>, nil] + # @param prompt [String, nil] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/util_token_counter_response.rb b/lib/hanzoai/models/util_token_counter_response.rb index b482f3fe..e5e960b3 100644 --- a/lib/hanzoai/models/util_token_counter_response.rb +++ b/lib/hanzoai/models/util_token_counter_response.rb @@ -24,15 +24,37 @@ class UtilTokenCounterResponse < Hanzoai::Internal::Type::BaseModel # @return [Integer] required :total_tokens, Integer - # @!parse - # # @param model_used [String] - # # @param request_model [String] - # # @param tokenizer_type [String] - # # @param total_tokens [Integer] - # # - # def initialize(model_used:, request_model:, tokenizer_type:, total_tokens:, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!attribute error + # + # @return [Boolean, nil] + optional :error, Hanzoai::Internal::Type::Boolean + + # @!attribute error_message + # + # @return [String, nil] + optional :error_message, String, nil?: true + + # @!attribute original_response + # + # @return [Hash{Symbol=>Object}, nil] + optional :original_response, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true + + # @!attribute status_code + # + # @return [Integer, nil] + optional :status_code, Integer, nil?: true + + # @!method initialize(model_used:, request_model:, tokenizer_type:, total_tokens:, error: nil, error_message: nil, original_response: nil, status_code: nil) + # @param model_used [String] + # @param request_model [String] + # @param tokenizer_type [String] + # @param total_tokens [Integer] + # @param error [Boolean] + # @param error_message [String, nil] + # @param original_response [Hash{Symbol=>Object}, nil] + # @param status_code [Integer, nil] end end end diff --git a/lib/hanzoai/models/util_transform_request_params.rb b/lib/hanzoai/models/util_transform_request_params.rb index 8288b8a6..eab4acef 100644 --- a/lib/hanzoai/models/util_transform_request_params.rb +++ b/lib/hanzoai/models/util_transform_request_params.rb @@ -4,28 +4,23 @@ module Hanzoai module Models # @see Hanzoai::Resources::Utils#transform_request class UtilTransformRequestParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters # @!attribute call_type # # @return [Symbol, Hanzoai::Models::UtilTransformRequestParams::CallType] - required :call_type, enum: -> { Hanzoai::Models::UtilTransformRequestParams::CallType } + required :call_type, enum: -> { Hanzoai::UtilTransformRequestParams::CallType } # @!attribute request_body # - # @return [Object] - required :request_body, Hanzoai::Internal::Type::Unknown + # @return [Hash{Symbol=>Object}] + required :request_body, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] - # @!parse - # # @param call_type [Symbol, Hanzoai::Models::UtilTransformRequestParams::CallType] - # # @param request_body [Object] - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(call_type:, request_body:, request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(call_type:, request_body:, request_options: {}) + # @param call_type [Symbol, Hanzoai::Models::UtilTransformRequestParams::CallType] + # @param request_body [Hash{Symbol=>Object}] + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] module CallType extend Hanzoai::Internal::Type::Enum @@ -38,6 +33,8 @@ module CallType TEXT_COMPLETION = :text_completion IMAGE_GENERATION = :image_generation AIMAGE_GENERATION = :aimage_generation + IMAGE_EDIT = :image_edit + AIMAGE_EDIT = :aimage_edit MODERATION = :moderation AMODERATION = :amoderation ATRANSCRIPTION = :atranscription @@ -46,6 +43,8 @@ module CallType SPEECH = :speech RERANK = :rerank ARERANK = :arerank + SEARCH = :search + ASEARCH = :asearch AREALTIME = :_arealtime CREATE_BATCH = :create_batch ACREATE_BATCH = :acreate_batch @@ -83,6 +82,48 @@ module CallType FILE_CONTENT = :file_content CREATE_FINE_TUNING_JOB = :create_fine_tuning_job ACREATE_FINE_TUNING_JOB = :acreate_fine_tuning_job + CREATE_VIDEO = :create_video + ACREATE_VIDEO = :acreate_video + AVIDEO_RETRIEVE = :avideo_retrieve + VIDEO_RETRIEVE = :video_retrieve + AVIDEO_CONTENT = :avideo_content + VIDEO_CONTENT = :video_content + VIDEO_REMIX = :video_remix + AVIDEO_REMIX = :avideo_remix + VIDEO_LIST = :video_list + AVIDEO_LIST = :avideo_list + VIDEO_RETRIEVE_JOB = :video_retrieve_job + AVIDEO_RETRIEVE_JOB = :avideo_retrieve_job + VIDEO_DELETE = :video_delete + AVIDEO_DELETE = :avideo_delete + VECTOR_STORE_FILE_CREATE = :vector_store_file_create + AVECTOR_STORE_FILE_CREATE = :avector_store_file_create + VECTOR_STORE_FILE_LIST = :vector_store_file_list + AVECTOR_STORE_FILE_LIST = :avector_store_file_list + VECTOR_STORE_FILE_RETRIEVE = :vector_store_file_retrieve + AVECTOR_STORE_FILE_RETRIEVE = :avector_store_file_retrieve + VECTOR_STORE_FILE_CONTENT = :vector_store_file_content + AVECTOR_STORE_FILE_CONTENT = :avector_store_file_content + VECTOR_STORE_FILE_UPDATE = :vector_store_file_update + AVECTOR_STORE_FILE_UPDATE = :avector_store_file_update + VECTOR_STORE_FILE_DELETE = :vector_store_file_delete + AVECTOR_STORE_FILE_DELETE = :avector_store_file_delete + VECTOR_STORE_CREATE = :vector_store_create + AVECTOR_STORE_CREATE = :avector_store_create + VECTOR_STORE_SEARCH = :vector_store_search + AVECTOR_STORE_SEARCH = :avector_store_search + CREATE_CONTAINER = :create_container + ACREATE_CONTAINER = :acreate_container + LIST_CONTAINERS = :list_containers + ALIST_CONTAINERS = :alist_containers + RETRIEVE_CONTAINER = :retrieve_container + ARETRIEVE_CONTAINER = :aretrieve_container + DELETE_CONTAINER = :delete_container + ADELETE_CONTAINER = :adelete_container + LIST_CONTAINER_FILES = :list_container_files + ALIST_CONTAINER_FILES = :alist_container_files + UPLOAD_CONTAINER_FILE = :upload_container_file + AUPLOAD_CONTAINER_FILE = :aupload_container_file ACANCEL_FINE_TUNING_JOB = :acancel_fine_tuning_job CANCEL_FINE_TUNING_JOB = :cancel_fine_tuning_job ALIST_FINE_TUNING_JOBS = :alist_fine_tuning_jobs @@ -91,12 +132,22 @@ module CallType RETRIEVE_FINE_TUNING_JOB = :retrieve_fine_tuning_job RESPONSES = :responses ARESPONSES = :aresponses + ALIST_INPUT_ITEMS = :alist_input_items + LLM_PASSTHROUGH_ROUTE = :llm_passthrough_route + ALLM_PASSTHROUGH_ROUTE = :allm_passthrough_route + GENERATE_CONTENT = :generate_content + AGENERATE_CONTENT = :agenerate_content + GENERATE_CONTENT_STREAM = :generate_content_stream + AGENERATE_CONTENT_STREAM = :agenerate_content_stream + OCR = :ocr + AOCR = :aocr + CALL_MCP_TOOL = :call_mcp_tool + ASEND_MESSAGE = :asend_message + SEND_MESSAGE = :send_message + ACREATE_SKILL = :acreate_skill - finalize! - - # @!parse - # # @return [Array] - # def self.values; end + # @!method self.values + # @return [Array] end end end diff --git a/lib/hanzoai/models/util_transform_request_response.rb b/lib/hanzoai/models/util_transform_request_response.rb index ae8ff93e..a1814144 100644 --- a/lib/hanzoai/models/util_transform_request_response.rb +++ b/lib/hanzoai/models/util_transform_request_response.rb @@ -16,23 +16,23 @@ class UtilTransformRequestResponse < Hanzoai::Internal::Type::BaseModel # @!attribute raw_request_body # - # @return [Object, nil] - optional :raw_request_body, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :raw_request_body, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true # @!attribute raw_request_headers # - # @return [Object, nil] - optional :raw_request_headers, Hanzoai::Internal::Type::Unknown, nil?: true + # @return [Hash{Symbol=>Object}, nil] + optional :raw_request_headers, + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + nil?: true - # @!parse - # # @param error [String, nil] - # # @param raw_request_api_base [String, nil] - # # @param raw_request_body [Object, nil] - # # @param raw_request_headers [Object, nil] - # # - # def initialize(error: nil, raw_request_api_base: nil, raw_request_body: nil, raw_request_headers: nil, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(error: nil, raw_request_api_base: nil, raw_request_body: nil, raw_request_headers: nil) + # @param error [String, nil] + # @param raw_request_api_base [String, nil] + # @param raw_request_body [Hash{Symbol=>Object}, nil] + # @param raw_request_headers [Hash{Symbol=>Object}, nil] end end end diff --git a/lib/hanzoai/models/vertex_ai_create_params.rb b/lib/hanzoai/models/vertex_ai_create_params.rb index 8b288efc..bf8a5eb2 100644 --- a/lib/hanzoai/models/vertex_ai_create_params.rb +++ b/lib/hanzoai/models/vertex_ai_create_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::VertexAI#create class VertexAICreateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/vertex_ai_create_response.rb b/lib/hanzoai/models/vertex_ai_create_response.rb new file mode 100644 index 00000000..3d8a5412 --- /dev/null +++ b/lib/hanzoai/models/vertex_ai_create_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + VertexAICreateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/vertex_ai_delete_params.rb b/lib/hanzoai/models/vertex_ai_delete_params.rb index aecb5af7..798eb3ed 100644 --- a/lib/hanzoai/models/vertex_ai_delete_params.rb +++ b/lib/hanzoai/models/vertex_ai_delete_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::VertexAI#delete class VertexAIDeleteParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/vertex_ai_delete_response.rb b/lib/hanzoai/models/vertex_ai_delete_response.rb new file mode 100644 index 00000000..085c7931 --- /dev/null +++ b/lib/hanzoai/models/vertex_ai_delete_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + VertexAIDeleteResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/vertex_ai_patch_params.rb b/lib/hanzoai/models/vertex_ai_patch_params.rb index 6e062d12..83039070 100644 --- a/lib/hanzoai/models/vertex_ai_patch_params.rb +++ b/lib/hanzoai/models/vertex_ai_patch_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::VertexAI#patch class VertexAIPatchParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/vertex_ai_patch_response.rb b/lib/hanzoai/models/vertex_ai_patch_response.rb new file mode 100644 index 00000000..08a3ca6c --- /dev/null +++ b/lib/hanzoai/models/vertex_ai_patch_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + VertexAIPatchResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/vertex_ai_retrieve_params.rb b/lib/hanzoai/models/vertex_ai_retrieve_params.rb index 74e28086..550e34bc 100644 --- a/lib/hanzoai/models/vertex_ai_retrieve_params.rb +++ b/lib/hanzoai/models/vertex_ai_retrieve_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::VertexAI#retrieve class VertexAIRetrieveParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/vertex_ai_retrieve_response.rb b/lib/hanzoai/models/vertex_ai_retrieve_response.rb new file mode 100644 index 00000000..aed7ec17 --- /dev/null +++ b/lib/hanzoai/models/vertex_ai_retrieve_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + VertexAIRetrieveResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/models/vertex_ai_update_params.rb b/lib/hanzoai/models/vertex_ai_update_params.rb index f3b391b5..3ebd40b0 100644 --- a/lib/hanzoai/models/vertex_ai_update_params.rb +++ b/lib/hanzoai/models/vertex_ai_update_params.rb @@ -4,16 +4,11 @@ module Hanzoai module Models # @see Hanzoai::Resources::VertexAI#update class VertexAIUpdateParams < Hanzoai::Internal::Type::BaseModel - # @!parse - # extend Hanzoai::Internal::Type::RequestParameters::Converter + extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - # @!parse - # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] - # # - # def initialize(request_options: {}, **) = super - - # def initialize: (Hash | Hanzoai::Internal::Type::BaseModel) -> void + # @!method initialize(request_options: {}) + # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}] end end end diff --git a/lib/hanzoai/models/vertex_ai_update_response.rb b/lib/hanzoai/models/vertex_ai_update_response.rb new file mode 100644 index 00000000..2dddee00 --- /dev/null +++ b/lib/hanzoai/models/vertex_ai_update_response.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Hanzoai + module Models + # @type [Hanzoai::Internal::Type::Converter] + VertexAIUpdateResponse = Hanzoai::Internal::Type::Unknown + end +end diff --git a/lib/hanzoai/request_options.rb b/lib/hanzoai/request_options.rb index e3b038bf..73629ae3 100644 --- a/lib/hanzoai/request_options.rb +++ b/lib/hanzoai/request_options.rb @@ -2,10 +2,10 @@ module Hanzoai # Specify HTTP behaviour to use for a specific request. These options supplement - # or override those provided at the client level. + # or override those provided at the client level. # - # When making a request, you can pass an actual {RequestOptions} instance, or - # simply pass a Hash with symbol keys matching the attributes on this class. + # When making a request, you can pass an actual {RequestOptions} instance, or + # simply pass a Hash with symbol keys matching the attributes on this class. class RequestOptions < Hanzoai::Internal::Type::BaseModel # @api private # @@ -27,28 +27,28 @@ def self.validate!(opts) # @!attribute idempotency_key # Idempotency key to send with request and all associated retries. Will only be - # sent for write requests. + # sent for write requests. # # @return [String, nil] optional :idempotency_key, String # @!attribute extra_query # Extra query params to send with the request. These are `.merge`’d into any - # `query` given at the client level. + # `query` given at the client level. # # @return [Hash{String=>Array, String, nil}, nil] optional :extra_query, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::ArrayOf[String]] # @!attribute extra_headers # Extra headers to send with the request. These are `.merged`’d into any - # `extra_headers` given at the client level. + # `extra_headers` given at the client level. # # @return [Hash{String=>String, nil}, nil] optional :extra_headers, Hanzoai::Internal::Type::HashOf[String, nil?: true] # @!attribute extra_body # Extra data to send with the request. These are deep merged into any data - # generated as part of the normal request. + # generated as part of the normal request. # # @return [Object, nil] optional :extra_body, Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown] @@ -65,11 +65,13 @@ def self.validate!(opts) # @return [Float, nil] optional :timeout, Float - # @!parse - # # Returns a new instance of RequestOptions. - # # - # # @param values [Hash{Symbol=>Object}] - # # - # def initialize(values = {}) = super + # @!method initialize(values = {}) + # Returns a new instance of RequestOptions. + # + # @param values [Hash{Symbol=>Object}] + + define_sorbet_constant!(:OrHash) do + T.type_alias { T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) } + end end end diff --git a/lib/hanzoai/resources/active.rb b/lib/hanzoai/resources/active.rb index d4c85081..c15da0b9 100644 --- a/lib/hanzoai/resources/active.rb +++ b/lib/hanzoai/resources/active.rb @@ -3,29 +3,29 @@ module Hanzoai module Resources class Active - # Returns a list of llm level settings - # - # This is useful for debugging and ensuring the proxy server is configured - # correctly. - # - # Response schema: - # - # ``` - # { - # "alerting": _alerting, - # "llm.callbacks": llm_callbacks, - # "llm.input_callback": llm_input_callbacks, - # "llm.failure_callback": llm_failure_callbacks, - # "llm.success_callback": llm_success_callbacks, - # "llm._async_success_callback": llm_async_success_callbacks, - # "llm._async_failure_callback": llm_async_failure_callbacks, - # "llm._async_input_callback": llm_async_input_callbacks, - # "all_llm_callbacks": all_llm_callbacks, - # "num_callbacks": len(all_llm_callbacks), - # "num_alerting": _num_alerting, - # "llm.request_timeout": llm.request_timeout, - # } - # ``` + # Returns a list of litellm level settings + # + # This is useful for debugging and ensuring the proxy server is configured + # correctly. + # + # Response schema: + # + # ``` + # { + # "alerting": _alerting, + # "litellm.callbacks": litellm_callbacks, + # "litellm.input_callback": litellm_input_callbacks, + # "litellm.failure_callback": litellm_failure_callbacks, + # "litellm.success_callback": litellm_success_callbacks, + # "litellm._async_success_callback": litellm_async_success_callbacks, + # "litellm._async_failure_callback": litellm_async_failure_callbacks, + # "litellm._async_input_callback": litellm_async_input_callbacks, + # "all_litellm_callbacks": all_litellm_callbacks, + # "num_callbacks": len(all_litellm_callbacks), + # "num_alerting": _num_alerting, + # "litellm.request_timeout": litellm.request_timeout, + # } + # ``` # # @overload list_callbacks(request_options: {}) # diff --git a/lib/hanzoai/resources/add.rb b/lib/hanzoai/resources/add.rb index a2872d9b..3546ae1d 100644 --- a/lib/hanzoai/resources/add.rb +++ b/lib/hanzoai/resources/add.rb @@ -14,7 +14,7 @@ class Add # # @see Hanzoai::Models::AddAddAllowedIPParams def add_allowed_ip(params) - parsed, options = Hanzoai::Models::AddAddAllowedIPParams.dump_request(params) + parsed, options = Hanzoai::AddAddAllowedIPParams.dump_request(params) @client.request( method: :post, path: "add/allowed_ip", diff --git a/lib/hanzoai/resources/anthropic.rb b/lib/hanzoai/resources/anthropic.rb index 52319211..f7cadf1c 100644 --- a/lib/hanzoai/resources/anthropic.rb +++ b/lib/hanzoai/resources/anthropic.rb @@ -3,7 +3,7 @@ module Hanzoai module Resources class Anthropic - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) # # @overload create(endpoint, request_options: {}) # @@ -22,7 +22,7 @@ def create(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) # # @overload retrieve(endpoint, request_options: {}) # @@ -41,7 +41,7 @@ def retrieve(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) # # @overload update(endpoint, request_options: {}) # @@ -60,7 +60,7 @@ def update(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) # # @overload delete(endpoint, request_options: {}) # @@ -79,7 +79,7 @@ def delete(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) # # @overload modify(endpoint, request_options: {}) # diff --git a/lib/hanzoai/resources/assistants.rb b/lib/hanzoai/resources/assistants.rb index d5591102..4f6499ec 100644 --- a/lib/hanzoai/resources/assistants.rb +++ b/lib/hanzoai/resources/assistants.rb @@ -5,8 +5,8 @@ module Resources class Assistants # Create assistant # - # API Reference docs - - # https://platform.openai.com/docs/api-reference/assistants/createAssistant + # API Reference docs - + # https://platform.openai.com/docs/api-reference/assistants/createAssistant # # @overload create(request_options: {}) # @@ -26,8 +26,8 @@ def create(params = {}) # Returns a list of assistants. # - # API Reference docs - - # https://platform.openai.com/docs/api-reference/assistants/listAssistants + # API Reference docs - + # https://platform.openai.com/docs/api-reference/assistants/listAssistants # # @overload list(request_options: {}) # @@ -47,8 +47,8 @@ def list(params = {}) # Delete assistant # - # API Reference docs - - # https://platform.openai.com/docs/api-reference/assistants/createAssistant + # API Reference docs - + # https://platform.openai.com/docs/api-reference/assistants/createAssistant # # @overload delete(assistant_id, request_options: {}) # diff --git a/lib/hanzoai/resources/audio/speech.rb b/lib/hanzoai/resources/audio/speech.rb index 391ecef5..256d9626 100644 --- a/lib/hanzoai/resources/audio/speech.rb +++ b/lib/hanzoai/resources/audio/speech.rb @@ -6,7 +6,7 @@ class Audio class Speech # Same params as: # - # https://platform.openai.com/docs/api-reference/audio/createSpeech + # https://platform.openai.com/docs/api-reference/audio/createSpeech # # @overload create(request_options: {}) # diff --git a/lib/hanzoai/resources/audio/transcriptions.rb b/lib/hanzoai/resources/audio/transcriptions.rb index de8a8ba8..18bdd097 100644 --- a/lib/hanzoai/resources/audio/transcriptions.rb +++ b/lib/hanzoai/resources/audio/transcriptions.rb @@ -6,18 +6,18 @@ class Audio class Transcriptions # Same params as: # - # https://platform.openai.com/docs/api-reference/audio/createTranscription?lang=curl + # https://platform.openai.com/docs/api-reference/audio/createTranscription?lang=curl # # @overload create(file:, request_options: {}) # - # @param file [IO, StringIO] + # @param file [Pathname, StringIO, IO, String, Hanzoai::FilePart] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Audio::TranscriptionCreateParams def create(params) - parsed, options = Hanzoai::Models::Audio::TranscriptionCreateParams.dump_request(params) + parsed, options = Hanzoai::Audio::TranscriptionCreateParams.dump_request(params) @client.request( method: :post, path: "v1/audio/transcriptions", diff --git a/lib/hanzoai/resources/azure.rb b/lib/hanzoai/resources/azure.rb index a63084cf..ca47708d 100644 --- a/lib/hanzoai/resources/azure.rb +++ b/lib/hanzoai/resources/azure.rb @@ -5,7 +5,10 @@ module Resources class Azure # Call any azure endpoint using the proxy. # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. # # @overload create(endpoint, request_options: {}) # @@ -26,7 +29,10 @@ def create(endpoint, params = {}) # Call any azure endpoint using the proxy. # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. # # @overload update(endpoint, request_options: {}) # @@ -47,7 +53,10 @@ def update(endpoint, params = {}) # Call any azure endpoint using the proxy. # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. # # @overload delete(endpoint, request_options: {}) # @@ -68,7 +77,10 @@ def delete(endpoint, params = {}) # Call any azure endpoint using the proxy. # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. # # @overload call(endpoint, request_options: {}) # @@ -89,7 +101,10 @@ def call(endpoint, params = {}) # Call any azure endpoint using the proxy. # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. # # @overload patch(endpoint, request_options: {}) # diff --git a/lib/hanzoai/resources/batches.rb b/lib/hanzoai/resources/batches.rb index bd5b8e85..845c776d 100644 --- a/lib/hanzoai/resources/batches.rb +++ b/lib/hanzoai/resources/batches.rb @@ -7,18 +7,18 @@ class Batches attr_reader :cancel # Create large batches of API requests for asynchronous processing. This is the - # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch + # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ - # "input_file_id": "file-abc123", - # "endpoint": "/v1/chat/completions", - # "completion_window": "24h" - # }' - # ``` + # ``` + # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ + # "input_file_id": "file-abc123", + # "endpoint": "/v1/chat/completions", + # "completion_window": "24h" + # }' + # ``` # # @overload create(provider: nil, request_options: {}) # @@ -29,7 +29,7 @@ class Batches # # @see Hanzoai::Models::BatchCreateParams def create(params = {}) - parsed, options = Hanzoai::Models::BatchCreateParams.dump_request(params) + parsed, options = Hanzoai::BatchCreateParams.dump_request(params) @client.request( method: :post, path: "v1/batches", @@ -40,26 +40,28 @@ def create(params = {}) end # Retrieves a batch. This is the equivalent of GET - # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/retrieve + # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/retrieve # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` # # @overload retrieve(batch_id, provider: nil, request_options: {}) # - # @param batch_id [String] + # @param batch_id [String] The ID of the batch to retrieve + # # @param provider [String, nil] + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::BatchRetrieveParams def retrieve(batch_id, params = {}) - parsed, options = Hanzoai::Models::BatchRetrieveParams.dump_request(params) + parsed, options = Hanzoai::BatchRetrieveParams.dump_request(params) @client.request( method: :get, path: ["v1/batches/%1$s", batch_id], @@ -70,26 +72,27 @@ def retrieve(batch_id, params = {}) end # Lists This is the equivalent of GET https://api.openai.com/v1/batches/ Supports - # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list + # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` + # ``` + # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` # - # @overload list(after: nil, limit: nil, provider: nil, request_options: {}) + # @overload list(after: nil, limit: nil, provider: nil, target_model_names: nil, request_options: {}) # # @param after [String, nil] # @param limit [Integer, nil] # @param provider [String, nil] + # @param target_model_names [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::BatchListParams def list(params = {}) - parsed, options = Hanzoai::Models::BatchListParams.dump_request(params) + parsed, options = Hanzoai::BatchListParams.dump_request(params) @client.request( method: :get, path: "v1/batches", @@ -100,17 +103,17 @@ def list(params = {}) end # Cancel a batch. This is the equivalent of POST - # https://api.openai.com/v1/batches/{batch_id}/cancel + # https://api.openai.com/v1/batches/{batch_id}/cancel # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/cancel + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/cancel # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST # - # ``` + # ``` # # @overload cancel_with_provider(batch_id, provider:, request_options: {}) # @@ -122,7 +125,7 @@ def list(params = {}) # # @see Hanzoai::Models::BatchCancelWithProviderParams def cancel_with_provider(batch_id, params) - parsed, options = Hanzoai::Models::BatchCancelWithProviderParams.dump_request(params) + parsed, options = Hanzoai::BatchCancelWithProviderParams.dump_request(params) provider = parsed.delete(:provider) do raise ArgumentError.new("missing required path argument #{_1}") @@ -136,18 +139,18 @@ def cancel_with_provider(batch_id, params) end # Create large batches of API requests for asynchronous processing. This is the - # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch + # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ - # "input_file_id": "file-abc123", - # "endpoint": "/v1/chat/completions", - # "completion_window": "24h" - # }' - # ``` + # ``` + # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ + # "input_file_id": "file-abc123", + # "endpoint": "/v1/chat/completions", + # "completion_window": "24h" + # }' + # ``` # # @overload create_with_provider(provider, request_options: {}) # @@ -167,26 +170,27 @@ def create_with_provider(provider, params = {}) end # Lists This is the equivalent of GET https://api.openai.com/v1/batches/ Supports - # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list + # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` + # ``` + # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` # - # @overload list_with_provider(provider, after: nil, limit: nil, request_options: {}) + # @overload list_with_provider(provider, after: nil, limit: nil, target_model_names: nil, request_options: {}) # # @param provider [String] # @param after [String, nil] # @param limit [Integer, nil] + # @param target_model_names [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::BatchListWithProviderParams def list_with_provider(provider, params = {}) - parsed, options = Hanzoai::Models::BatchListWithProviderParams.dump_request(params) + parsed, options = Hanzoai::BatchListWithProviderParams.dump_request(params) @client.request( method: :get, path: ["%1$s/v1/batches", provider], @@ -197,26 +201,28 @@ def list_with_provider(provider, params = {}) end # Retrieves a batch. This is the equivalent of GET - # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/retrieve + # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/retrieve # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` # # @overload retrieve_with_provider(batch_id, provider:, request_options: {}) # - # @param batch_id [String] + # @param batch_id [String] The ID of the batch to retrieve + # # @param provider [String] + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::BatchRetrieveWithProviderParams def retrieve_with_provider(batch_id, params) - parsed, options = Hanzoai::Models::BatchRetrieveWithProviderParams.dump_request(params) + parsed, options = Hanzoai::BatchRetrieveWithProviderParams.dump_request(params) provider = parsed.delete(:provider) do raise ArgumentError.new("missing required path argument #{_1}") diff --git a/lib/hanzoai/resources/batches/cancel.rb b/lib/hanzoai/resources/batches/cancel.rb index ee9143c3..f7776e90 100644 --- a/lib/hanzoai/resources/batches/cancel.rb +++ b/lib/hanzoai/resources/batches/cancel.rb @@ -5,17 +5,17 @@ module Resources class Batches class Cancel # Cancel a batch. This is the equivalent of POST - # https://api.openai.com/v1/batches/{batch_id}/cancel + # https://api.openai.com/v1/batches/{batch_id}/cancel # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/cancel + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/cancel # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST # - # ``` + # ``` # # @overload cancel(batch_id, provider: nil, request_options: {}) # @@ -27,7 +27,7 @@ class Cancel # # @see Hanzoai::Models::Batches::CancelCancelParams def cancel(batch_id, params = {}) - parsed, options = Hanzoai::Models::Batches::CancelCancelParams.dump_request(params) + parsed, options = Hanzoai::Batches::CancelCancelParams.dump_request(params) @client.request( method: :post, path: ["batches/%1$s/cancel", batch_id], diff --git a/lib/hanzoai/resources/bedrock.rb b/lib/hanzoai/resources/bedrock.rb index 1e695efb..e1149cce 100644 --- a/lib/hanzoai/resources/bedrock.rb +++ b/lib/hanzoai/resources/bedrock.rb @@ -3,7 +3,8 @@ module Hanzoai module Resources class Bedrock - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) # # @overload create(endpoint, request_options: {}) # @@ -22,7 +23,8 @@ def create(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) # # @overload retrieve(endpoint, request_options: {}) # @@ -41,7 +43,8 @@ def retrieve(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) # # @overload update(endpoint, request_options: {}) # @@ -60,7 +63,8 @@ def update(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) # # @overload delete(endpoint, request_options: {}) # @@ -79,7 +83,8 @@ def delete(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) # # @overload patch(endpoint, request_options: {}) # diff --git a/lib/hanzoai/resources/budget.rb b/lib/hanzoai/resources/budget.rb index e9d584fa..cadbfd4d 100644 --- a/lib/hanzoai/resources/budget.rb +++ b/lib/hanzoai/resources/budget.rb @@ -3,40 +3,55 @@ module Hanzoai module Resources class Budget + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::BudgetCreateParams} for more details. + # # Create a new budget object. Can apply this to teams, orgs, end-users, keys. # - # Parameters: - # - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - budget_id: Optional[str] - The id of the budget. If not provided, a new id - # will be generated. - # - max_budget: Optional[float] - The max budget for the budget. - # - soft_budget: Optional[float] - The soft budget for the budget. - # - max_parallel_requests: Optional[int] - The max number of parallel requests for - # the budget. - # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. - # - rpm_limit: Optional[int] - The requests per minute limit for the budget. - # - model_max_budget: Optional[dict] - Specify max budget for a given model. - # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", - # "tpm_limit": 100000, "rpm_limit": 100000}} - # - # @overload create(budget_duration: nil, budget_id: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) - # - # @param budget_duration [String, nil] - # @param budget_id [String, nil] - # @param max_budget [Float, nil] - # @param max_parallel_requests [Integer, nil] - # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::BudgetNew::ModelMaxBudget}, nil] - # @param rpm_limit [Integer, nil] - # @param soft_budget [Float, nil] - # @param tpm_limit [Integer, nil] + # Parameters: + # + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - budget_id: Optional[str] - The id of the budget. If not provided, a new id + # will be generated. + # - max_budget: Optional[float] - The max budget for the budget. + # - soft_budget: Optional[float] - The soft budget for the budget. + # - max_parallel_requests: Optional[int] - The max number of parallel requests for + # the budget. + # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. + # - rpm_limit: Optional[int] - The requests per minute limit for the budget. + # - model_max_budget: Optional[dict] - Specify max budget for a given model. + # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", + # "tpm_limit": 100000, "rpm_limit": 100000}} + # - budget_reset_at: Optional[datetime] - Datetime when the initial budget is + # reset. Default is now. + # + # @overload create(budget_duration: nil, budget_id: nil, budget_reset_at: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) + # + # @param budget_duration [String, nil] Max duration budget should be set for (e.g. '1hr', '1d', '28d') + # + # @param budget_id [String, nil] The unique budget id. + # + # @param budget_reset_at [Time, nil] Datetime when the budget is reset + # + # @param max_budget [Float, nil] Requests will fail if this budget (in USD) is exceeded. + # + # @param max_parallel_requests [Integer, nil] Max concurrent requests allowed for this budget id. + # + # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::BudgetNew::ModelMaxBudget}, nil] Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_d + # + # @param rpm_limit [Integer, nil] Max requests per minute, allowed for this budget id. + # + # @param soft_budget [Float, nil] Requests will NOT fail if this is exceeded. Will fire alerting though. + # + # @param tpm_limit [Integer, nil] Max tokens per minute, allowed for this budget id. + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::BudgetCreateParams def create(params = {}) - parsed, options = Hanzoai::Models::BudgetCreateParams.dump_request(params) + parsed, options = Hanzoai::BudgetCreateParams.dump_request(params) @client.request( method: :post, path: "budget/new", @@ -46,40 +61,55 @@ def create(params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::BudgetUpdateParams} for more details. + # # Update an existing budget object. # - # Parameters: - # - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - budget_id: Optional[str] - The id of the budget. If not provided, a new id - # will be generated. - # - max_budget: Optional[float] - The max budget for the budget. - # - soft_budget: Optional[float] - The soft budget for the budget. - # - max_parallel_requests: Optional[int] - The max number of parallel requests for - # the budget. - # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. - # - rpm_limit: Optional[int] - The requests per minute limit for the budget. - # - model_max_budget: Optional[dict] - Specify max budget for a given model. - # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", - # "tpm_limit": 100000, "rpm_limit": 100000}} - # - # @overload update(budget_duration: nil, budget_id: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) - # - # @param budget_duration [String, nil] - # @param budget_id [String, nil] - # @param max_budget [Float, nil] - # @param max_parallel_requests [Integer, nil] - # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::BudgetNew::ModelMaxBudget}, nil] - # @param rpm_limit [Integer, nil] - # @param soft_budget [Float, nil] - # @param tpm_limit [Integer, nil] + # Parameters: + # + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - budget_id: Optional[str] - The id of the budget. If not provided, a new id + # will be generated. + # - max_budget: Optional[float] - The max budget for the budget. + # - soft_budget: Optional[float] - The soft budget for the budget. + # - max_parallel_requests: Optional[int] - The max number of parallel requests for + # the budget. + # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. + # - rpm_limit: Optional[int] - The requests per minute limit for the budget. + # - model_max_budget: Optional[dict] - Specify max budget for a given model. + # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", + # "tpm_limit": 100000, "rpm_limit": 100000}} + # - budget_reset_at: Optional[datetime] - Update the Datetime when the budget was + # last reset. + # + # @overload update(budget_duration: nil, budget_id: nil, budget_reset_at: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) + # + # @param budget_duration [String, nil] Max duration budget should be set for (e.g. '1hr', '1d', '28d') + # + # @param budget_id [String, nil] The unique budget id. + # + # @param budget_reset_at [Time, nil] Datetime when the budget is reset + # + # @param max_budget [Float, nil] Requests will fail if this budget (in USD) is exceeded. + # + # @param max_parallel_requests [Integer, nil] Max concurrent requests allowed for this budget id. + # + # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::BudgetNew::ModelMaxBudget}, nil] Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_d + # + # @param rpm_limit [Integer, nil] Max requests per minute, allowed for this budget id. + # + # @param soft_budget [Float, nil] Requests will NOT fail if this is exceeded. Will fire alerting though. + # + # @param tpm_limit [Integer, nil] Max tokens per minute, allowed for this budget id. + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::BudgetUpdateParams def update(params = {}) - parsed, options = Hanzoai::Models::BudgetUpdateParams.dump_request(params) + parsed, options = Hanzoai::BudgetUpdateParams.dump_request(params) @client.request( method: :post, path: "budget/update", @@ -109,9 +139,9 @@ def list(params = {}) # Delete budget # - # Parameters: + # Parameters: # - # - id: str - The budget id to delete + # - id: str - The budget id to delete # # @overload delete(id:, request_options: {}) # @@ -122,7 +152,7 @@ def list(params = {}) # # @see Hanzoai::Models::BudgetDeleteParams def delete(params) - parsed, options = Hanzoai::Models::BudgetDeleteParams.dump_request(params) + parsed, options = Hanzoai::BudgetDeleteParams.dump_request(params) @client.request( method: :post, path: "budget/delete", @@ -134,9 +164,9 @@ def delete(params) # Get the budget id specific information # - # Parameters: + # Parameters: # - # - budgets: List[str] - The list of budget ids to get information for + # - budgets: List[str] - The list of budget ids to get information for # # @overload info(budgets:, request_options: {}) # @@ -147,7 +177,7 @@ def delete(params) # # @see Hanzoai::Models::BudgetInfoParams def info(params) - parsed, options = Hanzoai::Models::BudgetInfoParams.dump_request(params) + parsed, options = Hanzoai::BudgetInfoParams.dump_request(params) @client.request( method: :post, path: "budget/info", @@ -158,13 +188,13 @@ def info(params) end # Get list of configurable params + current value for a budget item + description - # of each field + # of each field # - # Used on Admin UI. + # Used on Admin UI. # - # Query Parameters: + # Query Parameters: # - # - budget_id: str - The budget id to get information for + # - budget_id: str - The budget id to get information for # # @overload settings(budget_id:, request_options: {}) # @@ -175,7 +205,7 @@ def info(params) # # @see Hanzoai::Models::BudgetSettingsParams def settings(params) - parsed, options = Hanzoai::Models::BudgetSettingsParams.dump_request(params) + parsed, options = Hanzoai::BudgetSettingsParams.dump_request(params) @client.request( method: :get, path: "budget/settings", diff --git a/lib/hanzoai/resources/cache.rb b/lib/hanzoai/resources/cache.rb index 85718783..0137cf95 100644 --- a/lib/hanzoai/resources/cache.rb +++ b/lib/hanzoai/resources/cache.rb @@ -6,17 +6,17 @@ class Cache # @return [Hanzoai::Resources::Cache::Redis] attr_reader :redis - # Endpoint for deleting a key from the cache. All responses from llm proxy have - # `x-llm-cache-key` in the headers + # Endpoint for deleting a key from the cache. All responses from litellm proxy + # have `x-litellm-cache-key` in the headers # - # Parameters: + # Parameters: # - # - **keys**: _Optional[List[str]]_ - A list of keys to delete from the cache. - # Example {"keys": ["key1", "key2"]} + # - **keys**: _Optional[List[str]]_ - A list of keys to delete from the cache. + # Example {"keys": ["key1", "key2"]} # - # ```shell - # curl -X POST "http://0.0.0.0:4000/cache/delete" -H "Authorization: Bearer sk-1234" -d '{"keys": ["key1", "key2"]}' - # ``` + # ```shell + # curl -X POST "http://0.0.0.0:4000/cache/delete" -H "Authorization: Bearer sk-1234" -d '{"keys": ["key1", "key2"]}' + # ``` # # @overload delete(request_options: {}) # @@ -35,15 +35,15 @@ def delete(params = {}) end # A function to flush all items from the cache. (All items will be deleted from - # the cache with this) Raises HTTPException if the cache is not initialized or if - # the cache type does not support flushing. Returns a dictionary with the status - # of the operation. + # the cache with this) Raises HTTPException if the cache is not initialized or if + # the cache type does not support flushing. Returns a dictionary with the status + # of the operation. # - # Usage: + # Usage: # - # ``` - # curl -X POST http://0.0.0.0:4000/cache/flushall -H "Authorization: Bearer sk-1234" - # ``` + # ``` + # curl -X POST http://0.0.0.0:4000/cache/flushall -H "Authorization: Bearer sk-1234" + # ``` # # @overload flush_all(request_options: {}) # diff --git a/lib/hanzoai/resources/chat/completions.rb b/lib/hanzoai/resources/chat/completions.rb index aee472e3..e3c3a6fe 100644 --- a/lib/hanzoai/resources/chat/completions.rb +++ b/lib/hanzoai/resources/chat/completions.rb @@ -5,37 +5,65 @@ module Resources class Chat class Completions # Follows the exact same API spec as - # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` + # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` # - # ```bash - # curl -X POST http://localhost:4000/v1/chat/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-4o", - # "messages": [ - # { - # "role": "user", - # "content": "Hello!" - # } - # ] - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/chat/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-4o", + # "messages": [ + # { + # "role": "user", + # "content": "Hello!" + # } + # ] + # }' + # ``` # - # @overload create(model: nil, request_options: {}) + # @overload create(messages:, model:, caching: nil, context_window_fallback_dict: nil, fallbacks: nil, frequency_penalty: nil, function_call: nil, functions: nil, guardrails: nil, logit_bias: nil, logprobs: nil, max_tokens: nil, metadata: nil, n: nil, num_retries: nil, parallel_tool_calls: nil, presence_penalty: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, stream_options: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, user: nil, request_options: {}) # - # @param model [String, nil] + # @param messages [Array] + # @param model [String] + # @param caching [Boolean, nil] + # @param context_window_fallback_dict [Hash{Symbol=>String}, nil] + # @param fallbacks [Array, nil] + # @param frequency_penalty [Float, nil] + # @param function_call [String, Hash{Symbol=>Object}, nil] + # @param functions [ArrayObject}>, nil] + # @param guardrails [Array, nil] + # @param logit_bias [Hash{Symbol=>Float}, nil] + # @param logprobs [Boolean, nil] + # @param max_tokens [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param n [Integer, nil] + # @param num_retries [Integer, nil] + # @param parallel_tool_calls [Boolean, nil] + # @param presence_penalty [Float, nil] + # @param response_format [Hash{Symbol=>Object}, nil] + # @param seed [Integer, nil] + # @param service_tier [String, nil] + # @param stop [String, Array, nil] + # @param stream [Boolean, nil] + # @param stream_options [Hash{Symbol=>Object}, nil] + # @param temperature [Float, nil] + # @param tool_choice [String, Hash{Symbol=>Object}, nil] + # @param tools [ArrayObject}>, nil] + # @param top_logprobs [Integer, nil] + # @param top_p [Float, nil] + # @param user [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Chat::CompletionCreateParams - def create(params = {}) - parsed, options = Hanzoai::Models::Chat::CompletionCreateParams.dump_request(params) + def create(params) + parsed, options = Hanzoai::Chat::CompletionCreateParams.dump_request(params) @client.request( method: :post, path: "v1/chat/completions", - query: parsed, + body: parsed, model: Hanzoai::Internal::Type::Unknown, options: options ) diff --git a/lib/hanzoai/resources/cohere.rb b/lib/hanzoai/resources/cohere.rb index b57e3bce..886a0988 100644 --- a/lib/hanzoai/resources/cohere.rb +++ b/lib/hanzoai/resources/cohere.rb @@ -3,7 +3,7 @@ module Hanzoai module Resources class Cohere - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) # # @overload create(endpoint, request_options: {}) # @@ -22,7 +22,7 @@ def create(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) # # @overload retrieve(endpoint, request_options: {}) # @@ -41,7 +41,7 @@ def retrieve(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) # # @overload update(endpoint, request_options: {}) # @@ -60,7 +60,7 @@ def update(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) # # @overload delete(endpoint, request_options: {}) # @@ -79,7 +79,7 @@ def delete(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) # # @overload modify(endpoint, request_options: {}) # diff --git a/lib/hanzoai/resources/completions.rb b/lib/hanzoai/resources/completions.rb index c0717722..240d577e 100644 --- a/lib/hanzoai/resources/completions.rb +++ b/lib/hanzoai/resources/completions.rb @@ -4,19 +4,19 @@ module Hanzoai module Resources class Completions # Follows the exact same API spec as - # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` + # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` # - # ```bash - # curl -X POST http://localhost:4000/v1/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-3.5-turbo-instruct", - # "prompt": "Once upon a time", - # "max_tokens": 50, - # "temperature": 0.7 - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-3.5-turbo-instruct", + # "prompt": "Once upon a time", + # "max_tokens": 50, + # "temperature": 0.7 + # }' + # ``` # # @overload create(model: nil, request_options: {}) # @@ -27,7 +27,7 @@ class Completions # # @see Hanzoai::Models::CompletionCreateParams def create(params = {}) - parsed, options = Hanzoai::Models::CompletionCreateParams.dump_request(params) + parsed, options = Hanzoai::CompletionCreateParams.dump_request(params) @client.request( method: :post, path: "completions", diff --git a/lib/hanzoai/resources/config/pass_through_endpoint.rb b/lib/hanzoai/resources/config/pass_through_endpoint.rb index bf9e8f7f..17157122 100644 --- a/lib/hanzoai/resources/config/pass_through_endpoint.rb +++ b/lib/hanzoai/resources/config/pass_through_endpoint.rb @@ -4,20 +4,36 @@ module Hanzoai module Resources class Config class PassThroughEndpoint + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Config::PassThroughEndpointCreateParams} for more details. + # # Create new pass-through endpoint # - # @overload create(headers:, path:, target:, request_options: {}) + # @overload create(path:, target:, id: nil, auth: nil, cost_per_request: nil, guardrails: nil, headers: nil, include_subpath: nil, request_options: {}) + # + # @param path [String] The route to be added to the LiteLLM Proxy Server. + # + # @param target [String] The URL to which requests for this path should be forwarded. + # + # @param id [String, nil] Optional unique identifier for the pass-through endpoint. If not provided, endpo + # + # @param auth [Boolean] Whether authentication is required for the pass-through endpoint. If True, reque + # + # @param cost_per_request [Float] The USD cost per request to the target endpoint. This is used to calculate the c + # + # @param guardrails [Hash{Symbol=>Hanzoai::Models::Config::PassThroughGenericEndpoint::Guardrail, nil}, nil] Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # + # @param headers [Hash{Symbol=>Object}] Key-value pairs of headers to be forwarded with the request. You can set any key + # + # @param include_subpath [Boolean] If True, requests to subpaths of the path will be forwarded to the target endpoi # - # @param headers [Object] - # @param path [String] - # @param target [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Config::PassThroughEndpointCreateParams def create(params) - parsed, options = Hanzoai::Models::Config::PassThroughEndpointCreateParams.dump_request(params) + parsed, options = Hanzoai::Config::PassThroughEndpointCreateParams.dump_request(params) @client.request( method: :post, path: "config/pass_through_endpoint", @@ -27,51 +43,74 @@ def create(params) ) end - # Update a pass-through endpoint + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Config::PassThroughEndpointUpdateParams} for more details. # - # @overload update(endpoint_id, request_options: {}) + # Update a pass-through endpoint by ID. + # + # @overload update(endpoint_id, path:, target:, id: nil, auth: nil, cost_per_request: nil, guardrails: nil, headers: nil, include_subpath: nil, request_options: {}) # # @param endpoint_id [String] + # + # @param path [String] The route to be added to the LiteLLM Proxy Server. + # + # @param target [String] The URL to which requests for this path should be forwarded. + # + # @param id [String, nil] Optional unique identifier for the pass-through endpoint. If not provided, endpo + # + # @param auth [Boolean] Whether authentication is required for the pass-through endpoint. If True, reque + # + # @param cost_per_request [Float] The USD cost per request to the target endpoint. This is used to calculate the c + # + # @param guardrails [Hash{Symbol=>Hanzoai::Models::Config::PassThroughGenericEndpoint::Guardrail, nil}, nil] Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # + # @param headers [Hash{Symbol=>Object}] Key-value pairs of headers to be forwarded with the request. You can set any key + # + # @param include_subpath [Boolean] If True, requests to subpaths of the path will be forwarded to the target endpoi + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Config::PassThroughEndpointUpdateParams - def update(endpoint_id, params = {}) + def update(endpoint_id, params) + parsed, options = Hanzoai::Config::PassThroughEndpointUpdateParams.dump_request(params) @client.request( method: :post, path: ["config/pass_through_endpoint/%1$s", endpoint_id], + body: parsed, model: Hanzoai::Internal::Type::Unknown, - options: params[:request_options] + options: options ) end # GET configured pass through endpoint. # - # If no endpoint_id given, return all configured endpoints. + # If no endpoint_id given, return all configured endpoints. # - # @overload list(endpoint_id: nil, request_options: {}) + # @overload list(endpoint_id: nil, team_id: nil, request_options: {}) # # @param endpoint_id [String, nil] + # @param team_id [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::Config::PassThroughEndpointResponse] # # @see Hanzoai::Models::Config::PassThroughEndpointListParams def list(params = {}) - parsed, options = Hanzoai::Models::Config::PassThroughEndpointListParams.dump_request(params) + parsed, options = Hanzoai::Config::PassThroughEndpointListParams.dump_request(params) @client.request( method: :get, path: "config/pass_through_endpoint", query: parsed, - model: Hanzoai::Models::Config::PassThroughEndpointResponse, + model: Hanzoai::Config::PassThroughEndpointResponse, options: options ) end - # Delete a pass-through endpoint + # Delete a pass-through endpoint by ID. # - # Returns - the deleted endpoint + # Returns - the deleted endpoint # # @overload delete(endpoint_id:, request_options: {}) # @@ -82,12 +121,12 @@ def list(params = {}) # # @see Hanzoai::Models::Config::PassThroughEndpointDeleteParams def delete(params) - parsed, options = Hanzoai::Models::Config::PassThroughEndpointDeleteParams.dump_request(params) + parsed, options = Hanzoai::Config::PassThroughEndpointDeleteParams.dump_request(params) @client.request( method: :delete, path: "config/pass_through_endpoint", query: parsed, - model: Hanzoai::Models::Config::PassThroughEndpointResponse, + model: Hanzoai::Config::PassThroughEndpointResponse, options: options ) end diff --git a/lib/hanzoai/resources/credentials.rb b/lib/hanzoai/resources/credentials.rb index b6bd8ae9..0ea87d16 100644 --- a/lib/hanzoai/resources/credentials.rb +++ b/lib/hanzoai/resources/credentials.rb @@ -4,13 +4,13 @@ module Hanzoai module Resources class Credentials # [BETA] endpoint. This might change unexpectedly. Stores credential in DB. - # Reloads credentials in memory. + # Reloads credentials in memory. # # @overload create(credential_info:, credential_name:, credential_values: nil, model_id: nil, request_options: {}) # - # @param credential_info [Object] + # @param credential_info [Hash{Symbol=>Object}] # @param credential_name [String] - # @param credential_values [Object, nil] + # @param credential_values [Hash{Symbol=>Object}, nil] # @param model_id [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # @@ -18,7 +18,7 @@ class Credentials # # @see Hanzoai::Models::CredentialCreateParams def create(params) - parsed, options = Hanzoai::Models::CredentialCreateParams.dump_request(params) + parsed, options = Hanzoai::CredentialCreateParams.dump_request(params) @client.request( method: :post, path: "credentials", @@ -50,7 +50,8 @@ def list(params = {}) # # @overload delete(credential_name, request_options: {}) # - # @param credential_name [String] + # @param credential_name [String] The credential name, percent-decoded; may contain slashes + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] diff --git a/lib/hanzoai/resources/customer.rb b/lib/hanzoai/resources/customer.rb index 12a532bf..7abd4f55 100644 --- a/lib/hanzoai/resources/customer.rb +++ b/lib/hanzoai/resources/customer.rb @@ -3,80 +3,103 @@ module Hanzoai module Resources class Customer + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::CustomerCreateParams} for more details. + # # Allow creating a new Customer # - # Parameters: - # - # - user_id: str - The unique identifier for the user. - # - alias: Optional[str] - A human-friendly alias for the user. - # - blocked: bool - Flag to allow or disallow requests for this end-user. Default - # is False. - # - max_budget: Optional[float] - The maximum budget allocated to the user. Either - # 'max_budget' or 'budget_id' should be provided, not both. - # - budget_id: Optional[str] - The identifier for an existing budget allocated to - # the user. Either 'max_budget' or 'budget_id' should be provided, not both. - # - allowed_model_region: Optional[Union[Literal["eu"], Literal["us"]]] - Require - # all user requests to use models in this specific region. - # - default_model: Optional[str] - If no equivalent model in the allowed region, - # default all requests to this model. - # - metadata: Optional[dict] = Metadata for customer, store information for - # customer. Example metadata = {"data_training_opt_out": True} - # - budget_duration: Optional[str] - Budget is reset at the end of specified - # duration. If not set, budget is never reset. You can set duration as seconds - # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - # - tpm_limit: Optional[int] - [Not Implemented Yet] Specify tpm limit for a given - # customer (Tokens per minute) - # - rpm_limit: Optional[int] - [Not Implemented Yet] Specify rpm limit for a given - # customer (Requests per minute) - # - model_max_budget: Optional[dict] - [Not Implemented Yet] Specify max budget - # for a given model. Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, - # "budget_duration": "1d"}} - # - max_parallel_requests: Optional[int] - [Not Implemented Yet] Specify max - # parallel requests for a given customer. - # - soft_budget: Optional[float] - [Not Implemented Yet] Get alerts when customer - # crosses given budget, doesn't block requests. - # - # - Allow specifying allowed regions - # - Allow specifying default model - # - # Example curl: + # Parameters: + # + # - user_id: str - The unique identifier for the user. + # - alias: Optional[str] - A human-friendly alias for the user. + # - blocked: bool - Flag to allow or disallow requests for this end-user. Default + # is False. + # - max_budget: Optional[float] - The maximum budget allocated to the user. Either + # 'max_budget' or 'budget_id' should be provided, not both. + # - budget_id: Optional[str] - The identifier for an existing budget allocated to + # the user. Either 'max_budget' or 'budget_id' should be provided, not both. + # - allowed_model_region: Optional[Union[Literal["eu"], Literal["us"]]] - Require + # all user requests to use models in this specific region. + # - default_model: Optional[str] - If no equivalent model in the allowed region, + # default all requests to this model. + # - metadata: Optional[dict] = Metadata for customer, store information for + # customer. Example metadata = {"data_training_opt_out": True} + # - budget_duration: Optional[str] - Budget is reset at the end of specified + # duration. If not set, budget is never reset. You can set duration as seconds + # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). + # - tpm_limit: Optional[int] - [Not Implemented Yet] Specify tpm limit for a given + # customer (Tokens per minute) + # - rpm_limit: Optional[int] - [Not Implemented Yet] Specify rpm limit for a given + # customer (Requests per minute) + # - model_max_budget: Optional[dict] - [Not Implemented Yet] Specify max budget + # for a given model. Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, + # "budget_duration": "1d"}} + # - max_parallel_requests: Optional[int] - [Not Implemented Yet] Specify max + # parallel requests for a given customer. + # - soft_budget: Optional[float] - [Not Implemented Yet] Get alerts when customer + # crosses given budget, doesn't block requests. + # - spend: Optional[float] - Specify initial spend for a given customer. + # - budget_reset_at: Optional[str] - Specify the date and time when the budget + # should be reset. + # + # - Allow specifying allowed regions + # - Allow specifying default model + # + # Example curl: + # + # ``` + # curl --location 'http://0.0.0.0:4000/customer/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_id" : "ishaan-jaff-3", + # "allowed_region": "eu", + # "budget_id": "free_tier", + # "default_model": "azure/gpt-3.5-turbo-eu" <- all calls from this user, use this model? + # }' # - # ``` - # curl --location 'http://0.0.0.0:4000/customer/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_id" : "z-jaff-3", - # "allowed_region": "eu", - # "budget_id": "free_tier", - # "default_model": "azure/gpt-3.5-turbo-eu" <- all calls from this user, use this model? - # }' - # - # # return end-user object - # ``` + # # return end-user object + # ``` # - # NOTE: This used to be called `/end_user/new`, we will still be maintaining - # compatibility for /end_user/XXX for these endpoints + # NOTE: This used to be called `/end_user/new`, we will still be maintaining + # compatibility for /end_user/XXX for these endpoints # - # @overload create(user_id:, alias_: nil, allowed_model_region: nil, blocked: nil, budget_duration: nil, budget_id: nil, default_model: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) + # @overload create(user_id:, alias_: nil, allowed_model_region: nil, blocked: nil, budget_duration: nil, budget_id: nil, budget_reset_at: nil, default_model: nil, max_budget: nil, max_parallel_requests: nil, model_max_budget: nil, rpm_limit: nil, soft_budget: nil, spend: nil, tpm_limit: nil, request_options: {}) # # @param user_id [String] + # # @param alias_ [String, nil] + # # @param allowed_model_region [Symbol, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion, nil] + # # @param blocked [Boolean] - # @param budget_duration [String, nil] + # + # @param budget_duration [String, nil] Max duration budget should be set for (e.g. '1hr', '1d', '28d') + # # @param budget_id [String, nil] + # + # @param budget_reset_at [Time, nil] Datetime when the budget is reset + # # @param default_model [String, nil] - # @param max_budget [Float, nil] - # @param max_parallel_requests [Integer, nil] - # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::CustomerCreateParams::ModelMaxBudget}, nil] - # @param rpm_limit [Integer, nil] - # @param soft_budget [Float, nil] - # @param tpm_limit [Integer, nil] + # + # @param max_budget [Float, nil] Requests will fail if this budget (in USD) is exceeded. + # + # @param max_parallel_requests [Integer, nil] Max concurrent requests allowed for this budget id. + # + # @param model_max_budget [Hash{Symbol=>Hanzoai::Models::CustomerCreateParams::ModelMaxBudget}, nil] Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_d + # + # @param rpm_limit [Integer, nil] Max requests per minute, allowed for this budget id. + # + # @param soft_budget [Float, nil] Requests will NOT fail if this is exceeded. Will fire alerting though. + # + # @param spend [Float, nil] + # + # @param tpm_limit [Integer, nil] Max tokens per minute, allowed for this budget id. + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::CustomerCreateParams def create(params) - parsed, options = Hanzoai::Models::CustomerCreateParams.dump_request(params) + parsed, options = Hanzoai::CustomerCreateParams.dump_request(params) @client.request( method: :post, path: "customer/new", @@ -88,28 +111,28 @@ def create(params) # Example curl # - # Parameters: + # Parameters: # - # - user_id: str - # - alias: Optional[str] = None # human-friendly alias - # - blocked: bool = False # allow/disallow requests for this end-user - # - max_budget: Optional[float] = None - # - budget_id: Optional[str] = None # give either a budget_id or max_budget - # - allowed_model_region: Optional[AllowedModelRegion] = ( None # require all user - # requests to use models in this specific region ) - # - default_model: Optional[str] = ( None # if no equivalent model in allowed - # region - default all requests to this model ) + # - user_id: str + # - alias: Optional[str] = None # human-friendly alias + # - blocked: bool = False # allow/disallow requests for this end-user + # - max_budget: Optional[float] = None + # - budget_id: Optional[str] = None # give either a budget_id or max_budget + # - allowed_model_region: Optional[AllowedModelRegion] = ( None # require all user + # requests to use models in this specific region ) + # - default_model: Optional[str] = ( None # if no equivalent model in allowed + # region - default all requests to this model ) # - # Example curl: + # Example curl: # - # ``` - # curl --location 'http://0.0.0.0:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_id": "test-llm-user-4", - # "budget_id": "paid_tier" - # }' + # ``` + # curl --location 'http://0.0.0.0:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_id": "test-litellm-user-4", + # "budget_id": "paid_tier" + # }' # - # See below for all params - # ``` + # See below for all params + # ``` # # @overload update(user_id:, alias_: nil, allowed_model_region: nil, blocked: nil, budget_id: nil, default_model: nil, max_budget: nil, request_options: {}) # @@ -126,7 +149,7 @@ def create(params) # # @see Hanzoai::Models::CustomerUpdateParams def update(params) - parsed, options = Hanzoai::Models::CustomerUpdateParams.dump_request(params) + parsed, options = Hanzoai::CustomerUpdateParams.dump_request(params) @client.request( method: :post, path: "customer/update", @@ -138,43 +161,43 @@ def update(params) # [Admin-only] List all available customers # - # Example curl: + # Example curl: # - # ``` - # curl --location --request GET 'http://0.0.0.0:4000/customer/list' --header 'Authorization: Bearer sk-1234' - # ``` + # ``` + # curl --location --request GET 'http://0.0.0.0:4000/customer/list' --header 'Authorization: Bearer sk-1234' + # ``` # # @overload list(request_options: {}) # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Array] + # @return [Array] # # @see Hanzoai::Models::CustomerListParams def list(params = {}) @client.request( method: :get, path: "customer/list", - model: Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::CustomerListResponseItem], + model: Hanzoai::Internal::Type::ArrayOf[Hanzoai::LiteLlmEndUserTable], options: params[:request_options] ) end # Delete multiple end-users. # - # Parameters: + # Parameters: # - # - user_ids (List[str], required): The unique `user_id`s for the users to delete + # - user_ids (List[str], required): The unique `user_id`s for the users to delete # - # Example curl: + # Example curl: # - # ``` - # curl --location 'http://0.0.0.0:4000/customer/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_ids" :["z-jaff-5"] - # }' + # ``` + # curl --location 'http://0.0.0.0:4000/customer/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_ids" :["ishaan-jaff-5"] + # }' # - # See below for all params - # ``` + # See below for all params + # ``` # # @overload delete(user_ids:, request_options: {}) # @@ -185,7 +208,7 @@ def list(params = {}) # # @see Hanzoai::Models::CustomerDeleteParams def delete(params) - parsed, options = Hanzoai::Models::CustomerDeleteParams.dump_request(params) + parsed, options = Hanzoai::CustomerDeleteParams.dump_request(params) @client.request( method: :post, path: "customer/delete", @@ -197,20 +220,20 @@ def delete(params) # [BETA] Reject calls with this end-user id # - # Parameters: + # Parameters: # - # - user_ids (List[str], required): The unique `user_id`s for the users to block + # - user_ids (List[str], required): The unique `user_id`s for the users to block # - # (any /chat/completion call with this user={end-user-id} param, will be - # rejected.) + # (any /chat/completion call with this user={end-user-id} param, will be + # rejected.) # - # ``` - # curl -X POST "http://0.0.0.0:8000/user/block" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "user_ids": [, ...] - # }' - # ``` + # ``` + # curl -X POST "http://0.0.0.0:8000/user/block" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "user_ids": [, ...] + # }' + # ``` # # @overload block(user_ids:, request_options: {}) # @@ -221,7 +244,7 @@ def delete(params) # # @see Hanzoai::Models::CustomerBlockParams def block(params) - parsed, options = Hanzoai::Models::CustomerBlockParams.dump_request(params) + parsed, options = Hanzoai::CustomerBlockParams.dump_request(params) @client.request( method: :post, path: "customer/block", @@ -232,48 +255,49 @@ def block(params) end # Get information about an end-user. An `end_user` is a customer (external user) - # of the proxy. + # of the proxy. # - # Parameters: + # Parameters: # - # - end_user_id (str, required): The unique identifier for the end-user + # - end_user_id (str, required): The unique identifier for the end-user # - # Example curl: + # Example curl: # - # ``` - # curl -X GET 'http://localhost:4000/customer/info?end_user_id=test-llm-user-4' -H 'Authorization: Bearer sk-1234' - # ``` + # ``` + # curl -X GET 'http://localhost:4000/customer/info?end_user_id=test-litellm-user-4' -H 'Authorization: Bearer sk-1234' + # ``` # # @overload retrieve_info(end_user_id:, request_options: {}) # - # @param end_user_id [String] + # @param end_user_id [String] End User ID in the request parameters + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Hanzoai::Models::CustomerRetrieveInfoResponse] + # @return [Hanzoai::Models::LiteLlmEndUserTable] # # @see Hanzoai::Models::CustomerRetrieveInfoParams def retrieve_info(params) - parsed, options = Hanzoai::Models::CustomerRetrieveInfoParams.dump_request(params) + parsed, options = Hanzoai::CustomerRetrieveInfoParams.dump_request(params) @client.request( method: :get, path: "customer/info", query: parsed, - model: Hanzoai::Models::CustomerRetrieveInfoResponse, + model: Hanzoai::LiteLlmEndUserTable, options: options ) end # [BETA] Unblock calls with this user id # - # Example + # Example # - # ``` - # curl -X POST "http://0.0.0.0:8000/user/unblock" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "user_ids": [, ...] - # }' - # ``` + # ``` + # curl -X POST "http://0.0.0.0:8000/user/unblock" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "user_ids": [, ...] + # }' + # ``` # # @overload unblock(user_ids:, request_options: {}) # @@ -284,7 +308,7 @@ def retrieve_info(params) # # @see Hanzoai::Models::CustomerUnblockParams def unblock(params) - parsed, options = Hanzoai::Models::CustomerUnblockParams.dump_request(params) + parsed, options = Hanzoai::CustomerUnblockParams.dump_request(params) @client.request( method: :post, path: "customer/unblock", diff --git a/lib/hanzoai/resources/delete.rb b/lib/hanzoai/resources/delete.rb index 79830ead..5fdcc179 100644 --- a/lib/hanzoai/resources/delete.rb +++ b/lib/hanzoai/resources/delete.rb @@ -14,7 +14,7 @@ class Delete # # @see Hanzoai::Models::DeleteCreateAllowedIPParams def create_allowed_ip(params) - parsed, options = Hanzoai::Models::DeleteCreateAllowedIPParams.dump_request(params) + parsed, options = Hanzoai::DeleteCreateAllowedIPParams.dump_request(params) @client.request( method: :post, path: "delete/allowed_ip", diff --git a/lib/hanzoai/resources/embeddings.rb b/lib/hanzoai/resources/embeddings.rb index 052fdcd6..be9969ed 100644 --- a/lib/hanzoai/resources/embeddings.rb +++ b/lib/hanzoai/resources/embeddings.rb @@ -4,32 +4,44 @@ module Hanzoai module Resources class Embeddings # Follows the exact same API spec as - # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` + # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` # - # ```bash - # curl -X POST http://localhost:4000/v1/embeddings - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "text-embedding-ada-002", - # "input": "The quick brown fox jumps over the lazy dog" - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/embeddings + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "text-embedding-ada-002", + # "input": "The quick brown fox jumps over the lazy dog" + # }' + # ``` # - # @overload create(model: nil, request_options: {}) + # @overload create(model:, api_base: nil, api_key: nil, api_type: nil, api_version: nil, caching: nil, custom_llm_provider: nil, input: nil, litellm_call_id: nil, litellm_logging_obj: nil, logger_fn: nil, timeout: nil, user: nil, request_options: {}) # - # @param model [String, nil] + # @param model [String] + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_type [String, nil] + # @param api_version [String, nil] + # @param caching [Boolean] + # @param custom_llm_provider [String, Hash{Symbol=>Object}, nil] + # @param input [Array] + # @param litellm_call_id [String, nil] + # @param litellm_logging_obj [Hash{Symbol=>Object}, nil] + # @param logger_fn [String, nil] + # @param timeout [Integer] + # @param user [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::EmbeddingCreateParams - def create(params = {}) - parsed, options = Hanzoai::Models::EmbeddingCreateParams.dump_request(params) + def create(params) + parsed, options = Hanzoai::EmbeddingCreateParams.dump_request(params) @client.request( method: :post, path: "embeddings", - query: parsed, + body: parsed, model: Hanzoai::Internal::Type::Unknown, options: options ) diff --git a/lib/hanzoai/resources/engines.rb b/lib/hanzoai/resources/engines.rb index 07e5d30d..78cf5d1e 100644 --- a/lib/hanzoai/resources/engines.rb +++ b/lib/hanzoai/resources/engines.rb @@ -7,19 +7,19 @@ class Engines attr_reader :chat # Follows the exact same API spec as - # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` + # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` # - # ```bash - # curl -X POST http://localhost:4000/v1/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-3.5-turbo-instruct", - # "prompt": "Once upon a time", - # "max_tokens": 50, - # "temperature": 0.7 - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-3.5-turbo-instruct", + # "prompt": "Once upon a time", + # "max_tokens": 50, + # "temperature": 0.7 + # }' + # ``` # # @overload complete(model, request_options: {}) # @@ -39,32 +39,47 @@ def complete(model, params = {}) end # Follows the exact same API spec as - # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` + # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` # - # ```bash - # curl -X POST http://localhost:4000/v1/embeddings - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "text-embedding-ada-002", - # "input": "The quick brown fox jumps over the lazy dog" - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/embeddings + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "text-embedding-ada-002", + # "input": "The quick brown fox jumps over the lazy dog" + # }' + # ``` # - # @overload embed(model, request_options: {}) + # @overload embed(path_model, body_model:, api_base: nil, api_key: nil, api_type: nil, api_version: nil, caching: nil, custom_llm_provider: nil, input: nil, litellm_call_id: nil, litellm_logging_obj: nil, logger_fn: nil, timeout: nil, user: nil, request_options: {}) # - # @param model [String] + # @param path_model [String] + # @param body_model [String] + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_type [String, nil] + # @param api_version [String, nil] + # @param caching [Boolean] + # @param custom_llm_provider [String, Hash{Symbol=>Object}, nil] + # @param input [Array] + # @param litellm_call_id [String, nil] + # @param litellm_logging_obj [Hash{Symbol=>Object}, nil] + # @param logger_fn [String, nil] + # @param timeout [Integer] + # @param user [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::EngineEmbedParams - def embed(model, params = {}) + def embed(path_model, params) + parsed, options = Hanzoai::EngineEmbedParams.dump_request(params) @client.request( method: :post, - path: ["engines/%1$s/embeddings", model], + path: ["engines/%1$s/embeddings", path_model], + body: parsed, model: Hanzoai::Internal::Type::Unknown, - options: params[:request_options] + options: options ) end diff --git a/lib/hanzoai/resources/engines/chat.rb b/lib/hanzoai/resources/engines/chat.rb index 5f3b5c62..503a2e51 100644 --- a/lib/hanzoai/resources/engines/chat.rb +++ b/lib/hanzoai/resources/engines/chat.rb @@ -5,37 +5,68 @@ module Resources class Engines class Chat # Follows the exact same API spec as - # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` + # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` # - # ```bash - # curl -X POST http://localhost:4000/v1/chat/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-4o", - # "messages": [ - # { - # "role": "user", - # "content": "Hello!" - # } - # ] - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/chat/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-4o", + # "messages": [ + # { + # "role": "user", + # "content": "Hello!" + # } + # ] + # }' + # ``` # - # @overload complete(model, request_options: {}) + # @overload complete(path_model, messages:, body_model:, caching: nil, context_window_fallback_dict: nil, fallbacks: nil, frequency_penalty: nil, function_call: nil, functions: nil, guardrails: nil, logit_bias: nil, logprobs: nil, max_tokens: nil, metadata: nil, n: nil, num_retries: nil, parallel_tool_calls: nil, presence_penalty: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, stream_options: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, user: nil, request_options: {}) # - # @param model [String] + # @param path_model [String] + # @param messages [Array] + # @param body_model [String] + # @param caching [Boolean, nil] + # @param context_window_fallback_dict [Hash{Symbol=>String}, nil] + # @param fallbacks [Array, nil] + # @param frequency_penalty [Float, nil] + # @param function_call [String, Hash{Symbol=>Object}, nil] + # @param functions [ArrayObject}>, nil] + # @param guardrails [Array, nil] + # @param logit_bias [Hash{Symbol=>Float}, nil] + # @param logprobs [Boolean, nil] + # @param max_tokens [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param n [Integer, nil] + # @param num_retries [Integer, nil] + # @param parallel_tool_calls [Boolean, nil] + # @param presence_penalty [Float, nil] + # @param response_format [Hash{Symbol=>Object}, nil] + # @param seed [Integer, nil] + # @param service_tier [String, nil] + # @param stop [String, Array, nil] + # @param stream [Boolean, nil] + # @param stream_options [Hash{Symbol=>Object}, nil] + # @param temperature [Float, nil] + # @param tool_choice [String, Hash{Symbol=>Object}, nil] + # @param tools [ArrayObject}>, nil] + # @param top_logprobs [Integer, nil] + # @param top_p [Float, nil] + # @param user [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Engines::ChatCompleteParams - def complete(model, params = {}) + def complete(path_model, params) + parsed, options = Hanzoai::Engines::ChatCompleteParams.dump_request(params) @client.request( method: :post, - path: ["engines/%1$s/chat/completions", model], + path: ["engines/%1$s/chat/completions", path_model], + body: parsed, model: Hanzoai::Internal::Type::Unknown, - options: params[:request_options] + options: options ) end diff --git a/lib/hanzoai/resources/files.rb b/lib/hanzoai/resources/files.rb index 7c8ac4ea..3872d1a5 100644 --- a/lib/hanzoai/resources/files.rb +++ b/lib/hanzoai/resources/files.rb @@ -7,31 +7,34 @@ class Files attr_reader :content # Upload a file that can be used across - Assistants API, Batch API This is the - # equivalent of POST https://api.openai.com/v1/files + # equivalent of POST https://api.openai.com/v1/files # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/create + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/create # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" -F purpose="batch" -F file="@mydata.jsonl" + # ``` + # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" -F purpose="batch" -F file="@mydata.jsonl" + # -F expires_after[anchor]="created_at" -F expires_after[seconds]=2592000 + # ``` # - # ``` - # - # @overload create(provider, file:, purpose:, custom_llm_provider: nil, request_options: {}) + # @overload create(provider, file:, purpose:, custom_llm_provider: nil, litellm_metadata: nil, target_model_names: nil, target_storage: nil, request_options: {}) # # @param provider [String] - # @param file [IO, StringIO] + # @param file [Pathname, StringIO, IO, String, Hanzoai::FilePart] # @param purpose [String] # @param custom_llm_provider [String] + # @param litellm_metadata [String, nil] + # @param target_model_names [String] + # @param target_storage [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::FileCreateParams def create(provider, params) - parsed, options = Hanzoai::Models::FileCreateParams.dump_request(params) + parsed, options = Hanzoai::FileCreateParams.dump_request(params) @client.request( method: :post, path: ["%1$s/v1/files", provider], @@ -43,18 +46,18 @@ def create(provider, params) end # Returns information about a specific file. that can be used across - Assistants - # API, Batch API This is the equivalent of GET - # https://api.openai.com/v1/files/{file_id} + # API, Batch API This is the equivalent of GET + # https://api.openai.com/v1/files/{file_id} # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/retrieve + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/retrieve # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/files/file-abc123 -H "Authorization: Bearer sk-1234" + # ``` + # curl http://localhost:4000/v1/files/file-abc123 -H "Authorization: Bearer sk-1234" # - # ``` + # ``` # # @overload retrieve(file_id, provider:, request_options: {}) # @@ -66,7 +69,7 @@ def create(provider, params) # # @see Hanzoai::Models::FileRetrieveParams def retrieve(file_id, params) - parsed, options = Hanzoai::Models::FileRetrieveParams.dump_request(params) + parsed, options = Hanzoai::FileRetrieveParams.dump_request(params) provider = parsed.delete(:provider) do raise ArgumentError.new("missing required path argument #{_1}") @@ -80,29 +83,30 @@ def retrieve(file_id, params) end # Returns information about a specific file. that can be used across - Assistants - # API, Batch API This is the equivalent of GET https://api.openai.com/v1/files/ + # API, Batch API This is the equivalent of GET https://api.openai.com/v1/files/ # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/list + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/list # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" + # ``` + # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" # - # ``` + # ``` # - # @overload list(provider, purpose: nil, request_options: {}) + # @overload list(provider, purpose: nil, target_model_names: nil, request_options: {}) # # @param provider [String] # @param purpose [String, nil] + # @param target_model_names [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::FileListParams def list(provider, params = {}) - parsed, options = Hanzoai::Models::FileListParams.dump_request(params) + parsed, options = Hanzoai::FileListParams.dump_request(params) @client.request( method: :get, path: ["%1$s/v1/files", provider], @@ -113,17 +117,17 @@ def list(provider, params = {}) end # Deletes a specified file. that can be used across - Assistants API, Batch API - # This is the equivalent of DELETE https://api.openai.com/v1/files/{file_id} + # This is the equivalent of DELETE https://api.openai.com/v1/files/{file_id} # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/delete + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/delete # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/files/file-abc123 -X DELETE -H "Authorization: Bearer $OPENAI_API_KEY" + # ``` + # curl http://localhost:4000/v1/files/file-abc123 -X DELETE -H "Authorization: Bearer $OPENAI_API_KEY" # - # ``` + # ``` # # @overload delete(file_id, provider:, request_options: {}) # @@ -135,7 +139,7 @@ def list(provider, params = {}) # # @see Hanzoai::Models::FileDeleteParams def delete(file_id, params) - parsed, options = Hanzoai::Models::FileDeleteParams.dump_request(params) + parsed, options = Hanzoai::FileDeleteParams.dump_request(params) provider = parsed.delete(:provider) do raise ArgumentError.new("missing required path argument #{_1}") diff --git a/lib/hanzoai/resources/files/content.rb b/lib/hanzoai/resources/files/content.rb index f2ed3f24..2532afc3 100644 --- a/lib/hanzoai/resources/files/content.rb +++ b/lib/hanzoai/resources/files/content.rb @@ -5,18 +5,18 @@ module Resources class Files class Content # Returns information about a specific file. that can be used across - Assistants - # API, Batch API This is the equivalent of GET - # https://api.openai.com/v1/files/{file_id}/content + # API, Batch API This is the equivalent of GET + # https://api.openai.com/v1/files/{file_id}/content # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/retrieve-contents + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/retrieve-contents # - # Example Curl + # Example Curl # - # ``` - # curl http://localhost:4000/v1/files/file-abc123/content -H "Authorization: Bearer sk-1234" + # ``` + # curl http://localhost:4000/v1/files/file-abc123/content -H "Authorization: Bearer sk-1234" # - # ``` + # ``` # # @overload retrieve(file_id, provider:, request_options: {}) # @@ -28,7 +28,7 @@ class Content # # @see Hanzoai::Models::Files::ContentRetrieveParams def retrieve(file_id, params) - parsed, options = Hanzoai::Models::Files::ContentRetrieveParams.dump_request(params) + parsed, options = Hanzoai::Files::ContentRetrieveParams.dump_request(params) provider = parsed.delete(:provider) do raise ArgumentError.new("missing required path argument #{_1}") diff --git a/lib/hanzoai/resources/fine_tuning/jobs.rb b/lib/hanzoai/resources/fine_tuning/jobs.rb index 79c57526..c516dbbf 100644 --- a/lib/hanzoai/resources/fine_tuning/jobs.rb +++ b/lib/hanzoai/resources/fine_tuning/jobs.rb @@ -8,30 +8,30 @@ class Jobs attr_reader :cancel # Creates a fine-tuning job which begins the process of creating a new model from - # a given dataset. This is the equivalent of POST - # https://api.openai.com/v1/fine_tuning/jobs + # a given dataset. This is the equivalent of POST + # https://api.openai.com/v1/fine_tuning/jobs # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/fine-tuning/create + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/fine-tuning/create # - # Example Curl: + # Example Curl: # - # ``` - # curl http://localhost:4000/v1/fine_tuning/jobs -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ - # "model": "gpt-3.5-turbo", - # "training_file": "file-abc123", - # "hyperparameters": { - # "n_epochs": 4 - # } - # }' - # ``` + # ``` + # curl http://localhost:4000/v1/fine_tuning/jobs -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "model": "gpt-3.5-turbo", + # "training_file": "file-abc123", + # "hyperparameters": { + # "n_epochs": 4 + # } + # }' + # ``` # - # @overload create(custom_llm_provider:, model:, training_file:, hyperparameters: nil, integrations: nil, seed: nil, suffix: nil, validation_file: nil, request_options: {}) + # @overload create(model:, training_file:, custom_llm_provider: nil, hyperparameters: nil, integrations: nil, seed: nil, suffix: nil, validation_file: nil, request_options: {}) # - # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider] # @param model [String] # @param training_file [String] - # @param hyperparameters [Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters, nil] + # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider, nil] + # @param hyperparameters [Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters, nil] # @param integrations [Array, nil] # @param seed [Integer, nil] # @param suffix [String, nil] @@ -42,7 +42,7 @@ class Jobs # # @see Hanzoai::Models::FineTuning::JobCreateParams def create(params) - parsed, options = Hanzoai::Models::FineTuning::JobCreateParams.dump_request(params) + parsed, options = Hanzoai::FineTuning::JobCreateParams.dump_request(params) @client.request( method: :post, path: "v1/fine_tuning/jobs", @@ -53,24 +53,24 @@ def create(params) end # Retrieves a fine-tuning job. This is the equivalent of GET - # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id} + # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id} # - # Supported Query Params: + # Supported Query Params: # - # - `custom_llm_provider`: Name of the LLM provider - # - `fine_tuning_job_id`: The ID of the fine-tuning job to retrieve. + # - `custom_llm_provider`: Name of the LiteLLM provider + # - `fine_tuning_job_id`: The ID of the fine-tuning job to retrieve. # - # @overload retrieve(fine_tuning_job_id, custom_llm_provider:, request_options: {}) + # @overload retrieve(fine_tuning_job_id, custom_llm_provider: nil, request_options: {}) # # @param fine_tuning_job_id [String] - # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider] + # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::FineTuning::JobRetrieveParams - def retrieve(fine_tuning_job_id, params) - parsed, options = Hanzoai::Models::FineTuning::JobRetrieveParams.dump_request(params) + def retrieve(fine_tuning_job_id, params = {}) + parsed, options = Hanzoai::FineTuning::JobRetrieveParams.dump_request(params) @client.request( method: :get, path: ["v1/fine_tuning/jobs/%1$s", fine_tuning_job_id], @@ -81,26 +81,31 @@ def retrieve(fine_tuning_job_id, params) end # Lists fine-tuning jobs for the organization. This is the equivalent of GET - # https://api.openai.com/v1/fine_tuning/jobs + # https://api.openai.com/v1/fine_tuning/jobs # - # Supported Query Params: + # Supported Query Params: # - # - `custom_llm_provider`: Name of the LLM provider - # - `after`: Identifier for the last job from the previous pagination request. - # - `limit`: Number of fine-tuning jobs to retrieve (default is 20). + # - `custom_llm_provider`: Name of the LiteLLM provider + # - `after`: Identifier for the last job from the previous pagination request. + # - `limit`: Number of fine-tuning jobs to retrieve (default is 20). # - # @overload list(custom_llm_provider:, after: nil, limit: nil, request_options: {}) + # @overload list(after: nil, custom_llm_provider: nil, limit: nil, target_model_names: nil, request_options: {}) # - # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider] # @param after [String, nil] + # + # @param custom_llm_provider [Symbol, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider, nil] + # # @param limit [Integer, nil] + # + # @param target_model_names [String, nil] Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini' + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::FineTuning::JobListParams - def list(params) - parsed, options = Hanzoai::Models::FineTuning::JobListParams.dump_request(params) + def list(params = {}) + parsed, options = Hanzoai::FineTuning::JobListParams.dump_request(params) @client.request( method: :get, path: "v1/fine_tuning/jobs", diff --git a/lib/hanzoai/resources/fine_tuning/jobs/cancel.rb b/lib/hanzoai/resources/fine_tuning/jobs/cancel.rb index 0d1c7e58..93614c6f 100644 --- a/lib/hanzoai/resources/fine_tuning/jobs/cancel.rb +++ b/lib/hanzoai/resources/fine_tuning/jobs/cancel.rb @@ -7,13 +7,13 @@ class Jobs class Cancel # Cancel a fine-tuning job. # - # This is the equivalent of POST - # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel + # This is the equivalent of POST + # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel # - # Supported Query Params: + # Supported Query Params: # - # - `custom_llm_provider`: Name of the LLM provider - # - `fine_tuning_job_id`: The ID of the fine-tuning job to cancel. + # - `custom_llm_provider`: Name of the LiteLLM provider + # - `fine_tuning_job_id`: The ID of the fine-tuning job to cancel. # # @overload create(fine_tuning_job_id, request_options: {}) # diff --git a/lib/hanzoai/resources/gemini.rb b/lib/hanzoai/resources/gemini.rb index 12d6e0b9..e3432c79 100644 --- a/lib/hanzoai/resources/gemini.rb +++ b/lib/hanzoai/resources/gemini.rb @@ -3,7 +3,7 @@ module Hanzoai module Resources class Gemini - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) # # @overload create(endpoint, request_options: {}) # @@ -22,7 +22,7 @@ def create(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) # # @overload retrieve(endpoint, request_options: {}) # @@ -41,7 +41,7 @@ def retrieve(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) # # @overload update(endpoint, request_options: {}) # @@ -60,7 +60,7 @@ def update(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) # # @overload delete(endpoint, request_options: {}) # @@ -79,7 +79,7 @@ def delete(endpoint, params = {}) ) end - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) # # @overload patch(endpoint, request_options: {}) # diff --git a/lib/hanzoai/resources/global/spend.rb b/lib/hanzoai/resources/global/spend.rb index 65e0bdde..3969787d 100644 --- a/lib/hanzoai/resources/global/spend.rb +++ b/lib/hanzoai/resources/global/spend.rb @@ -4,32 +4,35 @@ module Hanzoai module Resources class Global class Spend - # LLM Enterprise - View Spend Per Request Tag. Used by LLM UI + # LiteLLM Enterprise - View Spend Per Request Tag. Used by LiteLLM UI # - # Example Request: + # Example Request: # - # ``` - # curl -X GET "http://0.0.0.0:4000/spend/tags" -H "Authorization: Bearer sk-1234" - # ``` + # ``` + # curl -X GET "http://0.0.0.0:4000/spend/tags" -H "Authorization: Bearer sk-1234" + # ``` # - # Spend with Start Date and End Date + # Spend with Start Date and End Date # - # ``` - # curl -X GET "http://0.0.0.0:4000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" - # ``` + # ``` + # curl -X GET "http://0.0.0.0:4000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" + # ``` # # @overload list_tags(end_date: nil, start_date: nil, tags: nil, request_options: {}) # - # @param end_date [String, nil] - # @param start_date [String, nil] - # @param tags [String, nil] + # @param end_date [String, nil] Time till which to view key spend + # + # @param start_date [String, nil] Time from which to start viewing key spend + # + # @param tags [String, nil] comman separated tags to filter on + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Array] # # @see Hanzoai::Models::Global::SpendListTagsParams def list_tags(params = {}) - parsed, options = Hanzoai::Models::Global::SpendListTagsParams.dump_request(params) + parsed, options = Hanzoai::Global::SpendListTagsParams.dump_request(params) @client.request( method: :get, path: "global/spend/tags", @@ -41,12 +44,12 @@ def list_tags(params = {}) # ADMIN ONLY / MASTER KEY Only Endpoint # - # Globally reset spend for All API Keys and Teams, maintain LLM_SpendLogs + # Globally reset spend for All API Keys and Teams, maintain LiteLLM_SpendLogs # - # 1. LLM_SpendLogs will maintain the logs on spend, no data gets deleted from - # there - # 2. LLM_VerificationTokens spend will be set = 0 - # 3. LLM_TeamTable spend will be set = 0 + # 1. LiteLLM_SpendLogs will maintain the logs on spend, no data gets deleted from + # there + # 2. LiteLLM_VerificationTokens spend will be set = 0 + # 3. LiteLLM_TeamTable spend will be set = 0 # # @overload reset(request_options: {}) # @@ -64,29 +67,39 @@ def reset(params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Global::SpendRetrieveReportParams} for more details. + # # Get Daily Spend per Team, based on specific startTime and endTime. Per team, - # view usage by each key, model [ { "group-by-day": "2024-05-10", "teams": [ { - # "team_name": "team-1" "spend": 10, "keys": [ "key": "1213", "usage": { - # "model-1": { "cost": 12.50, "input_tokens": 1000, "output_tokens": 5000, - # "requests": 100 }, "audio-modelname1": { "cost": 25.50, "seconds": 25, - # "requests": 50 }, } } ] ] } + # view usage by each key, model [ { "group-by-day": "2024-05-10", "teams": [ { + # "team_name": "team-1" "spend": 10, "keys": [ "key": "1213", "usage": { + # "model-1": { "cost": 12.50, "input_tokens": 1000, "output_tokens": 5000, + # "requests": 100 }, "audio-modelname1": { "cost": 25.50, "seconds": 25, + # "requests": 50 }, } } ] ] } # # @overload retrieve_report(api_key: nil, customer_id: nil, end_date: nil, group_by: nil, internal_user_id: nil, start_date: nil, team_id: nil, request_options: {}) # - # @param api_key [String, nil] - # @param customer_id [String, nil] - # @param end_date [String, nil] - # @param group_by [Symbol, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy, nil] - # @param internal_user_id [String, nil] - # @param start_date [String, nil] - # @param team_id [String, nil] + # @param api_key [String, nil] View spend for a specific api_key. Example api_key='sk-1234 + # + # @param customer_id [String, nil] View spend for a specific customer_id. Example customer_id='1234. Can be used in + # + # @param end_date [String, nil] Time till which to view spend + # + # @param group_by [Symbol, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy, nil] Group spend by internal team or customer or api_key + # + # @param internal_user_id [String, nil] View spend for a specific internal_user_id. Example internal_user_id='1234 + # + # @param start_date [String, nil] Time from which to start viewing spend + # + # @param team_id [String, nil] View spend for a specific team_id. Example team_id='1234 + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Array] # # @see Hanzoai::Models::Global::SpendRetrieveReportParams def retrieve_report(params = {}) - parsed, options = Hanzoai::Models::Global::SpendRetrieveReportParams.dump_request(params) + parsed, options = Hanzoai::Global::SpendRetrieveReportParams.dump_request(params) @client.request( method: :get, path: "global/spend/report", diff --git a/lib/hanzoai/resources/guardrails.rb b/lib/hanzoai/resources/guardrails.rb index 69e6af18..054535f5 100644 --- a/lib/hanzoai/resources/guardrails.rb +++ b/lib/hanzoai/resources/guardrails.rb @@ -5,38 +5,38 @@ module Resources class Guardrails # List the guardrails that are available on the proxy server # - # 👉 [Guardrail docs](https://docs.hanzo.ai/docs/proxy/guardrails/quick_start) + # 👉 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start) # - # Example Request: + # Example Request: # - # ```bash - # curl -X GET "http://localhost:4000/guardrails/list" -H "Authorization: Bearer " - # ``` + # ```bash + # curl -X GET "http://localhost:4000/guardrails/list" -H "Authorization: Bearer " + # ``` # - # Example Response: + # Example Response: # - # ```json - # { - # "guardrails": [ - # { - # "guardrail_name": "bedrock-pre-guard", - # "guardrail_info": { - # "params": [ - # { - # "name": "toxicity_score", - # "type": "float", - # "description": "Score between 0-1 indicating content toxicity level" - # }, - # { - # "name": "pii_detection", - # "type": "boolean" - # } - # ] - # } + # ```json + # { + # "guardrails": [ + # { + # "guardrail_name": "bedrock-pre-guard", + # "guardrail_info": { + # "params": [ + # { + # "name": "toxicity_score", + # "type": "float", + # "description": "Score between 0-1 indicating content toxicity level" + # }, + # { + # "name": "pii_detection", + # "type": "boolean" + # } + # ] # } - # ] - # } - # ``` + # } + # ] + # } + # ``` # # @overload list(request_options: {}) # diff --git a/lib/hanzoai/resources/health.rb b/lib/hanzoai/resources/health.rb index 8eb8a455..d0b8e411 100644 --- a/lib/hanzoai/resources/health.rb +++ b/lib/hanzoai/resources/health.rb @@ -5,30 +5,33 @@ module Resources class Health # 🚨 USE `/health/liveliness` to health check the proxy 🚨 # - # See more 👉 https://docs.hanzo.ai/docs/proxy/health + # See more 👉 https://docs.litellm.ai/docs/proxy/health # - # Check the health of all the endpoints in config.yaml + # Check the health of all the endpoints in config.yaml # - # To run health checks in the background, add this to config.yaml: + # To run health checks in the background, add this to config.yaml: # - # ``` - # general_settings: - # # ... other settings - # background_health_checks: True - # ``` + # ``` + # general_settings: + # # ... other settings + # background_health_checks: True + # ``` # - # else, the health checks will be run on models when /health is called. + # else, the health checks will be run on models when /health is called. # - # @overload check_all(model: nil, request_options: {}) + # @overload check_all(model: nil, model_id: nil, request_options: {}) + # + # @param model [String, nil] Specify the model name (optional) + # + # @param model_id [String, nil] Specify the model ID (optional) # - # @param model [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::HealthCheckAllParams def check_all(params = {}) - parsed, options = Hanzoai::Models::HealthCheckAllParams.dump_request(params) + parsed, options = Hanzoai::HealthCheckAllParams.dump_request(params) @client.request( method: :get, path: "health", @@ -94,22 +97,23 @@ def check_readiness(params = {}) # Use this admin-only endpoint to check if the service is healthy. # - # Example: + # Example: # - # ``` - # curl -L -X GET 'http://0.0.0.0:4000/health/services?service=datadog' -H 'Authorization: Bearer sk-1234' - # ``` + # ``` + # curl -L -X GET 'http://0.0.0.0:4000/health/services?service=datadog' -H 'Authorization: Bearer sk-1234' + # ``` # # @overload check_services(service:, request_options: {}) # - # @param service [Symbol, String, Hanzoai::Models::HealthCheckServicesParams::Service] + # @param service [Symbol, String, Hanzoai::Models::HealthCheckServicesParams::Service] Specify the service being hit. + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::HealthCheckServicesParams def check_services(params) - parsed, options = Hanzoai::Models::HealthCheckServicesParams.dump_request(params) + parsed, options = Hanzoai::HealthCheckServicesParams.dump_request(params) @client.request( method: :get, path: "health/services", diff --git a/lib/hanzoai/resources/images/generations.rb b/lib/hanzoai/resources/images/generations.rb index 02ea8ff9..97e8392a 100644 --- a/lib/hanzoai/resources/images/generations.rb +++ b/lib/hanzoai/resources/images/generations.rb @@ -6,19 +6,22 @@ class Images class Generations # Image Generation # - # @overload create(request_options: {}) + # @overload create(model: nil, request_options: {}) # + # @param model [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Images::GenerationCreateParams def create(params = {}) + parsed, options = Hanzoai::Images::GenerationCreateParams.dump_request(params) @client.request( method: :post, path: "v1/images/generations", + query: parsed, model: Hanzoai::Internal::Type::Unknown, - options: params[:request_options] + options: options ) end diff --git a/lib/hanzoai/resources/key.rb b/lib/hanzoai/resources/key.rb index e8a02ae5..1de59d6b 100644 --- a/lib/hanzoai/resources/key.rb +++ b/lib/hanzoai/resources/key.rb @@ -6,107 +6,193 @@ class Key # @return [Hanzoai::Resources::Key::Regenerate] attr_reader :regenerate + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyUpdateParams} for more details. + # # Update an existing API key's parameters. # - # Parameters: + # Parameters: + # + # - key: str - The key to update + # - key_alias: Optional[str] - User-friendly key alias + # - user_id: Optional[str] - User ID associated with key + # - team_id: Optional[str] - Team ID associated with key + # - budget_id: Optional[str] - The budget id associated with the key. Created by + # calling `/budget/new`. + # - models: Optional[list] - Model_name's a user is allowed to call + # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - enforced_params: Optional[List[str]] - List of enforced params for the key + # (Enterprise only). + # [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) + # - spend: Optional[float] - Amount spent by key + # - max_budget: Optional[float] - Max budget for key + # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets + # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard + # stop). Will trigger a slack alert when this soft budget is reached. + # - max_parallel_requests: Optional[int] - Rate limit for parallel requests + # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", + # "app": "app2"} + # - tpm_limit: Optional[int] - Tokens per minute limit + # - rpm_limit: Optional[int] - Requests per minute limit + # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, + # "claude-v1": 200} + # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, + # "claude-v1": 200000} + # - tpm_limit_type: Optional[str] - TPM rate limit type - + # "best_effort_throughput", "guaranteed_throughput", or "dynamic" + # - rpm_limit_type: Optional[str] - RPM rate limit type - + # "best_effort_throughput", "guaranteed_throughput", or "dynamic" + # - allowed_cache_controls: Optional[list] - List of allowed cache control values + # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) or "-1" to + # never expire + # - permissions: Optional[dict] - Key-specific permissions + # - send_invite_email: Optional[bool] - Send invite email to user_id + # - guardrails: Optional[List[str]] - List of active guardrails for the key + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - blocked: Optional[bool] - Whether the key is blocked + # - aliases: Optional[dict] - Model aliases for the key - + # [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) + # - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. + # - temp_budget_increase: Optional[float] - Temporary budget increase for the key + # (Enterprise only). + # - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget + # increase (Enterprise only). + # - allowed_routes: Optional[list] - List of allowed routes for the key. Store the + # actual route or store a wildcard pattern for a set of routes. Example - + # ["/chat/completions", "/embeddings", "/keys/*"] + # - allowed_passthrough_routes: Optional[list] - List of allowed pass through + # routes for the key. Store the actual route or store a wildcard pattern for a + # set of routes. Example - ["/my-custom-endpoint"]. Use this instead of + # allowed_routes, if you just want to specify which pass through routes the key + # can access, without specifying the routes. If allowed_routes is specified, + # allowed_passthrough_routes is ignored. + # - prompts: Optional[List[str]] - List of allowed prompts for the key. If + # specified, the key will only be able to use these specific prompts. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - auto_rotate: Optional[bool] - Whether this key should be automatically rotated + # - rotation_interval: Optional[str] - How often to rotate this key (e.g., '30d', + # '90d'). Required if auto_rotate=True + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # Example: + # + # ```bash + # curl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "key": "sk-1234", + # "key_alias": "my-key", + # "user_id": "user-1234", + # "team_id": "team-1234", + # "max_budget": 100, + # "metadata": {"any_key": "any-val"}, + # }' + # ``` + # + # @overload update(key:, aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, permissions: nil, prompts: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, spend: nil, tags: nil, team_id: nil, temp_budget_expiry: nil, temp_budget_increase: nil, tpm_limit: nil, tpm_limit_type: nil, user_id: nil, litellm_changed_by: nil, request_options: {}) + # + # @param key [String] Body param + # + # @param aliases [Hash{Symbol=>Object}, nil] Body param + # + # @param allowed_cache_controls [Array, nil] Body param + # + # @param allowed_passthrough_routes [Array, nil] Body param + # + # @param allowed_routes [Array, nil] Body param + # + # @param allowed_vector_store_indexes [Array, nil] Body param + # + # @param auto_rotate [Boolean, nil] Body param + # + # @param blocked [Boolean, nil] Body param + # + # @param budget_duration [String, nil] Body param + # + # @param budget_id [String, nil] Body param + # + # @param config [Hash{Symbol=>Object}, nil] Body param + # + # @param duration [String, nil] Body param + # + # @param enforced_params [Array, nil] Body param + # + # @param guardrails [Array, nil] Body param + # + # @param key_alias [String, nil] Body param + # + # @param max_budget [Float, nil] Body param + # + # @param max_parallel_requests [Integer, nil] Body param + # + # @param metadata [Hash{Symbol=>Object}, nil] Body param + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] Body param + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] Body param + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] Body param + # + # @param models [Array, nil] Body param + # + # @param object_permission [Hanzoai::Models::KeyUpdateParams::ObjectPermission, nil] Body param + # + # @param permissions [Hash{Symbol=>Object}, nil] Body param + # + # @param prompts [Array, nil] Body param + # + # @param rotation_interval [String, nil] Body param + # + # @param router_settings [Hanzoai::Models::KeyUpdateParams::RouterSettings, nil] Body param: Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] Body param + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::KeyUpdateParams::RpmLimitType, nil] Body param + # + # @param spend [Float, nil] Body param + # + # @param tags [Array, nil] Body param + # + # @param team_id [String, nil] Body param + # + # @param temp_budget_expiry [Time, nil] Body param + # + # @param temp_budget_increase [Float, nil] Body param + # + # @param tpm_limit [Integer, nil] Body param + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::KeyUpdateParams::TpmLimitType, nil] Body param + # + # @param user_id [String, nil] Body param + # + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # - key: str - The key to update - # - key_alias: Optional[str] - User-friendly key alias - # - user_id: Optional[str] - User ID associated with key - # - team_id: Optional[str] - Team ID associated with key - # - budget_id: Optional[str] - The budget id associated with the key. Created by - # calling `/budget/new`. - # - models: Optional[list] - Model_name's a user is allowed to call - # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - # - enforced_params: Optional[List[str]] - List of enforced params for the key - # (Enterprise only). - # [Docs](https://docs.hanzo.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - # - spend: Optional[float] - Amount spent by key - # - max_budget: Optional[float] - Max budget for key - # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets - # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard - # stop). Will trigger a slack alert when this soft budget is reached. - # - max_parallel_requests: Optional[int] - Rate limit for parallel requests - # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", - # "app": "app2"} - # - tpm_limit: Optional[int] - Tokens per minute limit - # - rpm_limit: Optional[int] - Requests per minute limit - # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, - # "claude-v1": 200} - # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, - # "claude-v1": 200000} - # - allowed_cache_controls: Optional[list] - List of allowed cache control values - # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) - # - permissions: Optional[dict] - Key-specific permissions - # - send_invite_email: Optional[bool] - Send invite email to user_id - # - guardrails: Optional[List[str]] - List of active guardrails for the key - # - blocked: Optional[bool] - Whether the key is blocked - # - aliases: Optional[dict] - Model aliases for the key - - # [Docs](https://llm.vercel.app/docs/proxy/virtual_keys#model-aliases) - # - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. - # - temp_budget_increase: Optional[float] - Temporary budget increase for the key - # (Enterprise only). - # - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget - # increase (Enterprise only). - # - # Example: - # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "key": "sk-1234", - # "key_alias": "my-key", - # "user_id": "user-1234", - # "team_id": "team-1234", - # "max_budget": 100, - # "metadata": {"any_key": "any-val"}, - # }' - # ``` - # - # @overload update(key:, aliases: nil, allowed_cache_controls: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, permissions: nil, rpm_limit: nil, spend: nil, tags: nil, team_id: nil, temp_budget_expiry: nil, temp_budget_increase: nil, tpm_limit: nil, user_id: nil, llm_changed_by: nil, request_options: {}) - # - # @param key [String] - # @param aliases [Object, nil] - # @param allowed_cache_controls [Array, nil] - # @param blocked [Boolean, nil] - # @param budget_duration [String, nil] - # @param budget_id [String, nil] - # @param config [Object, nil] - # @param duration [String, nil] - # @param enforced_params [Array, nil] - # @param guardrails [Array, nil] - # @param key_alias [String, nil] - # @param max_budget [Float, nil] - # @param max_parallel_requests [Integer, nil] - # @param metadata [Object, nil] - # @param model_max_budget [Object, nil] - # @param model_rpm_limit [Object, nil] - # @param model_tpm_limit [Object, nil] - # @param models [Array, nil] - # @param permissions [Object, nil] - # @param rpm_limit [Integer, nil] - # @param spend [Float, nil] - # @param tags [Array, nil] - # @param team_id [String, nil] - # @param temp_budget_expiry [Time, nil] - # @param temp_budget_increase [Float, nil] - # @param tpm_limit [Integer, nil] - # @param user_id [String, nil] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::KeyUpdateParams def update(params) - parsed, options = Hanzoai::Models::KeyUpdateParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::KeyUpdateParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "key/update", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Internal::Type::Unknown, options: options ) @@ -114,26 +200,54 @@ def update(params) # List all keys for a given user / team / organization. # - # Returns: { "keys": List[str] or List[UserAPIKeyAuth], "total_count": int, - # "current_page": int, "total_pages": int, } + # Parameters: expand: Optional[List[str]] - Expand related objects (e.g. 'user' to + # include user information) status: Optional[str] - Filter by status. Currently + # supports "deleted" to query deleted keys. + # + # Returns: { "keys": List[str] or List[UserAPIKeyAuth], "total_count": int, + # "current_page": int, "total_pages": int, } + # + # When expand includes "user", each key object will include a "user" field with + # the associated user object. Note: When expand=user is specified, full key + # objects are returned regardless of the return_full_object parameter. + # + # @overload list(expand: nil, include_created_by_keys: nil, include_team_keys: nil, key_alias: nil, key_hash: nil, organization_id: nil, page: nil, return_full_object: nil, size: nil, sort_by: nil, sort_order: nil, status: nil, team_id: nil, user_id: nil, request_options: {}) + # + # @param expand [Array, nil] Expand related objects (e.g. 'user') + # + # @param include_created_by_keys [Boolean] Include keys created by the user + # + # @param include_team_keys [Boolean] Include all keys for teams that user is an admin of. + # + # @param key_alias [String, nil] Filter keys by key alias + # + # @param key_hash [String, nil] Filter keys by key hash + # + # @param organization_id [String, nil] Filter keys by organization ID + # + # @param page [Integer] Page number + # + # @param return_full_object [Boolean] Return full key object + # + # @param size [Integer] Page size + # + # @param sort_by [String, nil] Column to sort by (e.g. 'user_id', 'created_at', 'spend') + # + # @param sort_order [String] Sort order ('asc' or 'desc') + # + # @param status [String, nil] Filter by status (e.g. 'deleted') + # + # @param team_id [String, nil] Filter keys by team ID # - # @overload list(include_team_keys: nil, key_alias: nil, organization_id: nil, page: nil, return_full_object: nil, size: nil, team_id: nil, user_id: nil, request_options: {}) + # @param user_id [String, nil] Filter keys by user ID # - # @param include_team_keys [Boolean] - # @param key_alias [String, nil] - # @param organization_id [String, nil] - # @param page [Integer] - # @param return_full_object [Boolean] - # @param size [Integer] - # @param team_id [String, nil] - # @param user_id [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::KeyListResponse] # # @see Hanzoai::Models::KeyListParams def list(params = {}) - parsed, options = Hanzoai::Models::KeyListParams.dump_request(params) + parsed, options = Hanzoai::KeyListParams.dump_request(params) @client.request( method: :get, path: "key/list", @@ -143,89 +257,100 @@ def list(params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyDeleteParams} for more details. + # # Delete a key from the key management system. # - # Parameters:: + # Parameters:: + # + # - keys (List[str]): A list of keys or hashed keys to delete. Example {"keys": + # ["sk-QWrxEynunsNpV1zT48HIrw", + # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} + # - key_aliases (List[str]): A list of key aliases to delete. Can be passed + # instead of `keys`.Example {"key_aliases": ["alias1", "alias2"]} + # + # Returns: + # + # - deleted_keys (List[str]): A list of deleted keys. Example {"deleted_keys": + # ["sk-QWrxEynunsNpV1zT48HIrw", + # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} # - # - keys (List[str]): A list of keys or hashed keys to delete. Example {"keys": - # ["sk-QWrxEynunsNpV1zT48HIrw", - # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} - # - key_aliases (List[str]): A list of key aliases to delete. Can be passed - # instead of `keys`.Example {"key_aliases": ["alias1", "alias2"]} + # Example: # - # Returns: + # ```bash + # curl --location 'http://0.0.0.0:4000/key/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "keys": ["sk-QWrxEynunsNpV1zT48HIrw"] + # }' + # ``` # - # - deleted_keys (List[str]): A list of deleted keys. Example {"deleted_keys": - # ["sk-QWrxEynunsNpV1zT48HIrw", - # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} + # Raises: HTTPException: If an error occurs during key deletion. # - # Example: + # @overload delete(key_aliases: nil, keys: nil, litellm_changed_by: nil, request_options: {}) # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "keys": ["sk-QWrxEynunsNpV1zT48HIrw"] - # }' - # ``` + # @param key_aliases [Array, nil] Body param # - # Raises: HTTPException: If an error occurs during key deletion. + # @param keys [Array, nil] Body param # - # @overload delete(key_aliases: nil, keys: nil, llm_changed_by: nil, request_options: {}) + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # @param key_aliases [Array, nil] - # @param keys [Array, nil] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::KeyDeleteParams def delete(params = {}) - parsed, options = Hanzoai::Models::KeyDeleteParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::KeyDeleteParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "key/delete", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Internal::Type::Unknown, options: options ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyBlockParams} for more details. + # # Block an Virtual key from making any requests. # - # Parameters: + # Parameters: + # + # - key: str - The key to block. Can be either the unhashed key (sk-...) or the + # hashed key value + # + # Example: # - # - key: str - The key to block. Can be either the unhashed key (sk-...) or the - # hashed key value + # ```bash + # curl --location 'http://0.0.0.0:4000/key/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" + # }' + # ``` # - # Example: + # Note: This is an admin-only endpoint. Only proxy admins can block keys. # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" - # }' - # ``` + # @overload block(key:, litellm_changed_by: nil, request_options: {}) # - # Note: This is an admin-only endpoint. Only proxy admins can block keys. + # @param key [String] Body param # - # @overload block(key:, llm_changed_by: nil, request_options: {}) + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # @param key [String] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::KeyBlockResponse, nil] # # @see Hanzoai::Models::KeyBlockParams def block(params) - parsed, options = Hanzoai::Models::KeyBlockParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::KeyBlockParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "key/block", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Models::KeyBlockResponse, options: options ) @@ -233,43 +358,43 @@ def block(params) # Check the health of the key # - # Checks: + # Checks: # - # - If key based logging is configured correctly - sends a test log + # - If key based logging is configured correctly - sends a test log # - # Usage + # Usage # - # Pass the key in the request header + # Pass the key in the request header # - # ```bash - # curl -X POST "http://localhost:4000/key/health" -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` + # ```bash + # curl -X POST "http://localhost:4000/key/health" -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` # - # Response when logging callbacks are setup correctly: + # Response when logging callbacks are setup correctly: # - # ```json - # { - # "key": "healthy", - # "logging_callbacks": { - # "callbacks": ["gcs_bucket"], - # "status": "healthy", - # "details": "No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']" - # } + # ```json + # { + # "key": "healthy", + # "logging_callbacks": { + # "callbacks": ["gcs_bucket"], + # "status": "healthy", + # "details": "No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']" # } - # ``` - # - # Response when logging callbacks are not setup correctly: - # - # ```json - # { - # "key": "unhealthy", - # "logging_callbacks": { - # "callbacks": ["gcs_bucket"], - # "status": "unhealthy", - # "details": "Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information." - # } + # } + # ``` + # + # Response when logging callbacks are not setup correctly: + # + # ```json + # { + # "key": "unhealthy", + # "logging_callbacks": { + # "callbacks": ["gcs_bucket"], + # "status": "unhealthy", + # "details": "Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information." # } - # ``` + # } + # ``` # # @overload check_health(request_options: {}) # @@ -287,267 +412,437 @@ def check_health(params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyGenerateParams} for more details. + # # Generate an API key based on the provided data. # - # Docs: https://docs.hanzo.ai/docs/proxy/virtual_keys - # - # Parameters: - # - # - duration: Optional[str] - Specify the length of time the token is valid for. - # You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days - # ("30d"). - # - key_alias: Optional[str] - User defined key alias - # - key: Optional[str] - User defined key value. If not set, a 16-digit unique - # sk-key is created for you. - # - team_id: Optional[str] - The team id of the key - # - user_id: Optional[str] - The user id of the key - # - budget_id: Optional[str] - The budget id associated with the key. Created by - # calling `/budget/new`. - # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, - # key is allowed to call all models) - # - aliases: Optional[dict] - Any alias mappings, on top of anything in the - # config.yaml model list. - - # https://docs.hanzo.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - # - config: Optional[dict] - any key-specific configs, overrides config in - # config.yaml - # - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by - # proxy whenever key is used. - # https://docs.hanzo.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - # - send_invite_email: Optional[bool] - Whether to send an invite email to the - # user_id, with the generate key - # - max_budget: Optional[float] - Specify max budget for a given key. - # - budget_duration: Optional[str] - Budget is reset at the end of specified - # duration. If not set, budget is never reset. You can set duration as seconds - # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - # - max_parallel_requests: Optional[int] - Rate limit a user based on the number - # of parallel requests. Raises 429 error, if user's parallel requests > x. - # - metadata: Optional[dict] - Metadata for key, store information for key. - # Example metadata = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" - # } - # - guardrails: Optional[List[str]] - List of active guardrails for the key - # - permissions: Optional[dict] - key-specific permissions. Currently just used - # for turning off pii masking (if connected). Example - {"pii": false} - # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets - # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then - # no model specific budget. - # - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - - # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model - # specific rpm limit. - # - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - - # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model - # specific tpm limit. - # - allowed_cache_controls: Optional[list] - List of allowed cache control values. - # Example - ["no-cache", "no-store"]. See all values - - # https://docs.hanzo.ai/docs/proxy/caching#turn-on--off-caching-per-request - # - blocked: Optional[bool] - Whether the key is blocked. - # - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per - # minute) - # - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per - # minute) - # - soft_budget: Optional[float] - Specify soft budget for a given key. Will - # trigger a slack alert when this soft budget is reached. - # - tags: Optional[List[str]] - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - enforced_params: Optional[List[str]] - List of enforced params for the key - # (Enterprise only). - # [Docs](https://docs.hanzo.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - # - # Examples: - # - # 1. Allow users to turn on/off pii masking - # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "permissions": {"allow_pii_controls": true} - # }' - # ``` - # - # Returns: - # - # - key: (str) The generated api key - # - expires: (datetime) Datetime object for when key expires. - # - user_id: (str) Unique user id - used for tracking spend across multiple keys - # for same user id. - # - # @overload generate(aliases: nil, allowed_cache_controls: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, key: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, permissions: nil, rpm_limit: nil, send_invite_email: nil, soft_budget: nil, spend: nil, tags: nil, team_id: nil, tpm_limit: nil, user_id: nil, llm_changed_by: nil, request_options: {}) - # - # @param aliases [Object, nil] - # @param allowed_cache_controls [Array, nil] - # @param blocked [Boolean, nil] - # @param budget_duration [String, nil] - # @param budget_id [String, nil] - # @param config [Object, nil] - # @param duration [String, nil] - # @param enforced_params [Array, nil] - # @param guardrails [Array, nil] - # @param key [String, nil] - # @param key_alias [String, nil] - # @param max_budget [Float, nil] - # @param max_parallel_requests [Integer, nil] - # @param metadata [Object, nil] - # @param model_max_budget [Object, nil] - # @param model_rpm_limit [Object, nil] - # @param model_tpm_limit [Object, nil] - # @param models [Array, nil] - # @param permissions [Object, nil] - # @param rpm_limit [Integer, nil] - # @param send_invite_email [Boolean, nil] - # @param soft_budget [Float, nil] - # @param spend [Float, nil] - # @param tags [Array, nil] - # @param team_id [String, nil] - # @param tpm_limit [Integer, nil] - # @param user_id [String, nil] - # @param llm_changed_by [String] + # Docs: https://docs.litellm.ai/docs/proxy/virtual_keys + # + # Parameters: + # + # - duration: Optional[str] - Specify the length of time the token is valid for. + # You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days + # ("30d"). + # - key_alias: Optional[str] - User defined key alias + # - key: Optional[str] - User defined key value. If not set, a 16-digit unique + # sk-key is created for you. + # - team_id: Optional[str] - The team id of the key + # - user_id: Optional[str] - The user id of the key + # - organization_id: Optional[str] - The organization id of the key. If not set, + # and team_id is set, the organization id will be the same as the team id. If + # conflict, an error will be raised. + # - budget_id: Optional[str] - The budget id associated with the key. Created by + # calling `/budget/new`. + # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, + # key is allowed to call all models) + # - aliases: Optional[dict] - Any alias mappings, on top of anything in the + # config.yaml model list. - + # https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models + # - config: Optional[dict] - any key-specific configs, overrides config in + # config.yaml + # - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by + # proxy whenever key is used. + # https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend + # - send_invite_email: Optional[bool] - Whether to send an invite email to the + # user_id, with the generate key + # - max_budget: Optional[float] - Specify max budget for a given key. + # - budget_duration: Optional[str] - Budget is reset at the end of specified + # duration. If not set, budget is never reset. You can set duration as seconds + # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). + # - max_parallel_requests: Optional[int] - Rate limit a user based on the number + # of parallel requests. Raises 429 error, if user's parallel requests > x. + # - metadata: Optional[dict] - Metadata for key, store information for key. + # Example metadata = {"team": "core-infra", "app": "app2", "email": + # "ishaan@berri.ai" } + # - guardrails: Optional[List[str]] - List of active guardrails for the key + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - permissions: Optional[dict] - key-specific permissions. Currently just used + # for turning off pii masking (if connected). Example - {"pii": false} + # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets + # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then + # no model specific budget. + # - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - + # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model + # specific rpm limit. + # - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - + # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model + # specific tpm limit. + # - tpm_limit_type: Optional[str] - Type of tpm limit. Options: + # "best_effort_throughput" (no error if we're overallocating tpm), + # "guaranteed_throughput" (raise an error if we're overallocating tpm), + # "dynamic" (dynamically exceed limit when no 429 errors). Defaults to + # "best_effort_throughput". + # - rpm_limit_type: Optional[str] - Type of rpm limit. Options: + # "best_effort_throughput" (no error if we're overallocating rpm), + # "guaranteed_throughput" (raise an error if we're overallocating rpm), + # "dynamic" (dynamically exceed limit when no 429 errors). Defaults to + # "best_effort_throughput". + # - allowed_cache_controls: Optional[list] - List of allowed cache control values. + # Example - ["no-cache", "no-store"]. See all values - + # https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request + # - blocked: Optional[bool] - Whether the key is blocked. + # - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per + # minute) + # - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per + # minute) + # - soft_budget: Optional[float] - Specify soft budget for a given key. Will + # trigger a slack alert when this soft budget is reached. + # - tags: Optional[List[str]] - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - enforced_params: Optional[List[str]] - List of enforced params for the key + # (Enterprise only). + # [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - allowed_routes: Optional[list] - List of allowed routes for the key. Store the + # actual route or store a wildcard pattern for a set of routes. Example - + # ["/chat/completions", "/embeddings", "/keys/*"] + # - allowed_passthrough_routes: Optional[list] - List of allowed pass through + # endpoints for the key. Store the actual endpoint or store a wildcard pattern + # for a set of endpoints. Example - ["/my-custom-endpoint"]. Use this instead of + # allowed_routes, if you just want to specify which pass through endpoints the + # key can access, without specifying the routes. If allowed_routes is specified, + # allowed_pass_through_endpoints is ignored. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - key_type: Optional[str] - Type of key that determines default allowed routes. + # Options: "llm_api" (can call LLM API routes), "management" (can call + # management routes), "read_only" (can only call info/read routes), "default" + # (uses default allowed routes). Defaults to "default". + # - prompts: Optional[List[str]] - List of allowed prompts for the key. If + # specified, the key will only be able to use these specific prompts. + # - auto_rotate: Optional[bool] - Whether this key should be automatically rotated + # (regenerated) + # - rotation_interval: Optional[str] - How often to auto-rotate this key (e.g., + # '30s', '30m', '30h', '30d'). Required if auto_rotate=True. + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # Examples: + # + # 1. Allow users to turn on/off pii masking + # + # ```bash + # curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "permissions": {"allow_pii_controls": true} + # }' + # ``` + # + # Returns: + # + # - key: (str) The generated api key + # - expires: (datetime) Datetime object for when key expires. + # - user_id: (str) Unique user id - used for tracking spend across multiple keys + # for same user id. + # + # @overload generate(aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, key: nil, key_alias: nil, key_type: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, permissions: nil, prompts: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, send_invite_email: nil, soft_budget: nil, spend: nil, tags: nil, team_id: nil, tpm_limit: nil, tpm_limit_type: nil, user_id: nil, litellm_changed_by: nil, request_options: {}) + # + # @param aliases [Hash{Symbol=>Object}, nil] Body param + # + # @param allowed_cache_controls [Array, nil] Body param + # + # @param allowed_passthrough_routes [Array, nil] Body param + # + # @param allowed_routes [Array, nil] Body param + # + # @param allowed_vector_store_indexes [Array, nil] Body param + # + # @param auto_rotate [Boolean, nil] Body param: Whether this key should be automatically rotated + # + # @param blocked [Boolean, nil] Body param + # + # @param budget_duration [String, nil] Body param + # + # @param budget_id [String, nil] Body param + # + # @param config [Hash{Symbol=>Object}, nil] Body param + # + # @param duration [String, nil] Body param + # + # @param enforced_params [Array, nil] Body param + # + # @param guardrails [Array, nil] Body param + # + # @param key [String, nil] Body param + # + # @param key_alias [String, nil] Body param + # + # @param key_type [Symbol, Hanzoai::Models::KeyGenerateParams::KeyType, nil] Body param: Enum for key types that determine what routes a key can access + # + # @param max_budget [Float, nil] Body param + # + # @param max_parallel_requests [Integer, nil] Body param + # + # @param metadata [Hash{Symbol=>Object}, nil] Body param + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] Body param + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] Body param + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] Body param + # + # @param models [Array, nil] Body param + # + # @param object_permission [Hanzoai::Models::KeyGenerateParams::ObjectPermission, nil] Body param + # + # @param organization_id [String, nil] Body param + # + # @param permissions [Hash{Symbol=>Object}, nil] Body param + # + # @param prompts [Array, nil] Body param + # + # @param rotation_interval [String, nil] Body param: How often to rotate this key (e.g., '30d', '90d'). Required if + # auto\_ + # + # @param router_settings [Hanzoai::Models::KeyGenerateParams::RouterSettings, nil] Body param: Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] Body param + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::KeyGenerateParams::RpmLimitType, nil] Body param + # + # @param send_invite_email [Boolean, nil] Body param + # + # @param soft_budget [Float, nil] Body param + # + # @param spend [Float, nil] Body param + # + # @param tags [Array, nil] Body param + # + # @param team_id [String, nil] Body param + # + # @param tpm_limit [Integer, nil] Body param + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::KeyGenerateParams::TpmLimitType, nil] Body param + # + # @param user_id [String, nil] Body param + # + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::GenerateKeyResponse] # # @see Hanzoai::Models::KeyGenerateParams def generate(params = {}) - parsed, options = Hanzoai::Models::KeyGenerateParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::KeyGenerateParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "key/generate", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), - model: Hanzoai::Models::GenerateKeyResponse, + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), + model: Hanzoai::GenerateKeyResponse, options: options ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyRegenerateByKeyParams} for more details. + # # Regenerate an existing API key while optionally updating its parameters. # - # Parameters: - # - # - key: str (path parameter) - The key to regenerate - # - data: Optional[RegenerateKeyRequest] - Request body containing optional - # parameters to update - # - key_alias: Optional[str] - User-friendly key alias - # - user_id: Optional[str] - User ID associated with key - # - team_id: Optional[str] - Team ID associated with key - # - models: Optional[list] - Model_name's a user is allowed to call - # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - # - spend: Optional[float] - Amount spent by key - # - max_budget: Optional[float] - Max budget for key - # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets - # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). - # Will trigger a slack alert when this soft budget is reached. - # - max_parallel_requests: Optional[int] - Rate limit for parallel requests - # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", - # "app": "app2"} - # - tpm_limit: Optional[int] - Tokens per minute limit - # - rpm_limit: Optional[int] - Requests per minute limit - # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, - # "claude-v1": 200} - # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": - # 100000, "claude-v1": 200000} - # - allowed_cache_controls: Optional[list] - List of allowed cache control - # values - # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) - # - permissions: Optional[dict] - Key-specific permissions - # - guardrails: Optional[List[str]] - List of active guardrails for the key - # - blocked: Optional[bool] - Whether the key is blocked - # - # Returns: - # - # - GenerateKeyResponse containing the new key and its updated parameters - # - # Example: - # - # ```bash - # curl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "max_budget": 100, - # "metadata": {"team": "core-infra"}, - # "models": ["gpt-4", "gpt-3.5-turbo"] - # }' - # ``` - # - # Note: This is an Enterprise feature. It requires a premium license to use. - # - # @overload regenerate_by_key(path_key, aliases: nil, allowed_cache_controls: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, body_key: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, new_master_key: nil, permissions: nil, rpm_limit: nil, send_invite_email: nil, soft_budget: nil, spend: nil, tags: nil, team_id: nil, tpm_limit: nil, user_id: nil, llm_changed_by: nil, request_options: {}) - # - # @param path_key [String] - # @param aliases [Object, nil] - # @param allowed_cache_controls [Array, nil] - # @param blocked [Boolean, nil] - # @param budget_duration [String, nil] - # @param budget_id [String, nil] - # @param config [Object, nil] - # @param duration [String, nil] - # @param enforced_params [Array, nil] - # @param guardrails [Array, nil] - # @param body_key [String, nil] - # @param key_alias [String, nil] - # @param max_budget [Float, nil] - # @param max_parallel_requests [Integer, nil] - # @param metadata [Object, nil] - # @param model_max_budget [Object, nil] - # @param model_rpm_limit [Object, nil] - # @param model_tpm_limit [Object, nil] - # @param models [Array, nil] - # @param new_master_key [String, nil] - # @param permissions [Object, nil] - # @param rpm_limit [Integer, nil] - # @param send_invite_email [Boolean, nil] - # @param soft_budget [Float, nil] - # @param spend [Float, nil] - # @param tags [Array, nil] - # @param team_id [String, nil] - # @param tpm_limit [Integer, nil] - # @param user_id [String, nil] - # @param llm_changed_by [String] + # Parameters: + # + # - key: str (path parameter) - The key to regenerate + # - data: Optional[RegenerateKeyRequest] - Request body containing optional + # parameters to update + # - key: Optional[str] - The key to regenerate. + # - new_master_key: Optional[str] - The new master key to use, if key is the + # master key. + # - new_key: Optional[str] - The new key to use, if key is not the master key. + # If both set, new_master_key will be used. + # - key_alias: Optional[str] - User-friendly key alias + # - user_id: Optional[str] - User ID associated with key + # - team_id: Optional[str] - Team ID associated with key + # - models: Optional[list] - Model_name's a user is allowed to call + # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) + # - spend: Optional[float] - Amount spent by key + # - max_budget: Optional[float] - Max budget for key + # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets + # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). + # Will trigger a slack alert when this soft budget is reached. + # - max_parallel_requests: Optional[int] - Rate limit for parallel requests + # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", + # "app": "app2"} + # - tpm_limit: Optional[int] - Tokens per minute limit + # - rpm_limit: Optional[int] - Requests per minute limit + # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, + # "claude-v1": 200} + # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": + # 100000, "claude-v1": 200000} + # - allowed_cache_controls: Optional[list] - List of allowed cache control + # values + # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) + # - permissions: Optional[dict] - Key-specific permissions + # - guardrails: Optional[List[str]] - List of active guardrails for the key + # - blocked: Optional[bool] - Whether the key is blocked + # + # Returns: + # + # - GenerateKeyResponse containing the new key and its updated parameters + # + # Example: + # + # ```bash + # curl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "max_budget": 100, + # "metadata": {"team": "core-infra"}, + # "models": ["gpt-4", "gpt-3.5-turbo"] + # }' + # ``` + # + # Note: This is an Enterprise feature. It requires a premium license to use. + # + # @overload regenerate_by_key(path_key, aliases: nil, allowed_cache_controls: nil, allowed_passthrough_routes: nil, allowed_routes: nil, allowed_vector_store_indexes: nil, auto_rotate: nil, blocked: nil, budget_duration: nil, budget_id: nil, config: nil, duration: nil, enforced_params: nil, guardrails: nil, body_key: nil, key_alias: nil, key_type: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, new_key: nil, new_master_key: nil, object_permission: nil, organization_id: nil, permissions: nil, prompts: nil, rotation_interval: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, send_invite_email: nil, soft_budget: nil, spend: nil, tags: nil, team_id: nil, tpm_limit: nil, tpm_limit_type: nil, user_id: nil, litellm_changed_by: nil, request_options: {}) + # + # @param path_key [String] Path param + # + # @param aliases [Hash{Symbol=>Object}, nil] Body param + # + # @param allowed_cache_controls [Array, nil] Body param + # + # @param allowed_passthrough_routes [Array, nil] Body param + # + # @param allowed_routes [Array, nil] Body param + # + # @param allowed_vector_store_indexes [Array, nil] Body param + # + # @param auto_rotate [Boolean, nil] Body param: Whether this key should be automatically rotated + # + # @param blocked [Boolean, nil] Body param + # + # @param budget_duration [String, nil] Body param + # + # @param budget_id [String, nil] Body param + # + # @param config [Hash{Symbol=>Object}, nil] Body param + # + # @param duration [String, nil] Body param + # + # @param enforced_params [Array, nil] Body param + # + # @param guardrails [Array, nil] Body param + # + # @param body_key [String, nil] Body param + # + # @param key_alias [String, nil] Body param + # + # @param key_type [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::KeyType, nil] Body param: Enum for key types that determine what routes a key can access + # + # @param max_budget [Float, nil] Body param + # + # @param max_parallel_requests [Integer, nil] Body param + # + # @param metadata [Hash{Symbol=>Object}, nil] Body param + # + # @param model_max_budget [Hash{Symbol=>Object}, nil] Body param + # + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] Body param + # + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] Body param + # + # @param models [Array, nil] Body param + # + # @param new_key [String, nil] Body param + # + # @param new_master_key [String, nil] Body param + # + # @param object_permission [Hanzoai::Models::Key::RegenerateKeyRequest::ObjectPermission, nil] Body param + # + # @param organization_id [String, nil] Body param + # + # @param permissions [Hash{Symbol=>Object}, nil] Body param + # + # @param prompts [Array, nil] Body param + # + # @param rotation_interval [String, nil] Body param: How often to rotate this key (e.g., '30d', '90d'). Required if + # auto\_ + # + # @param router_settings [Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings, nil] Body param: Set of params that you can modify via `router.update_settings()`. + # + # @param rpm_limit [Integer, nil] Body param + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::RpmLimitType, nil] Body param + # + # @param send_invite_email [Boolean, nil] Body param + # + # @param soft_budget [Float, nil] Body param + # + # @param spend [Float, nil] Body param + # + # @param tags [Array, nil] Body param + # + # @param team_id [String, nil] Body param + # + # @param tpm_limit [Integer, nil] Body param + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::TpmLimitType, nil] Body param + # + # @param user_id [String, nil] Body param + # + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::GenerateKeyResponse, nil] # # @see Hanzoai::Models::KeyRegenerateByKeyParams def regenerate_by_key(path_key, params = {}) - parsed, options = Hanzoai::Models::KeyRegenerateByKeyParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::KeyRegenerateByKeyParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: ["key/%1$s/regenerate", path_key], - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), - model: Hanzoai::Models::GenerateKeyResponse, + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), + model: Hanzoai::GenerateKeyResponse, options: options ) end # Retrieve information about a key. Parameters: key: Optional[str] = Query - # parameter representing the key in the request user_api_key_dict: UserAPIKeyAuth - # = Dependency representing the user's API key Returns: Dict containing the key - # and its associated information + # parameter representing the key in the request user_api_key_dict: UserAPIKeyAuth + # = Dependency representing the user's API key Returns: Dict containing the key + # and its associated information # - # Example Curl: + # Example Curl: # - # ``` - # curl -X GET "http://0.0.0.0:4000/key/info?key=sk-02Wr4IAlN3NvPXvL5JVvDA" -H "Authorization: Bearer sk-1234" - # ``` + # ``` + # curl -X GET "http://0.0.0.0:4000/key/info?key=sk-test-example-key-123" -H "Authorization: Bearer sk-1234" + # ``` # - # Example Curl - if no key is passed, it will use the Key Passed in Authorization - # Header + # Example Curl - if no key is passed, it will use the Key Passed in Authorization + # Header # - # ``` - # curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-02Wr4IAlN3NvPXvL5JVvDA" - # ``` + # ``` + # curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-test-example-key-123" + # ``` # # @overload retrieve_info(key: nil, request_options: {}) # - # @param key [String, nil] + # @param key [String, nil] Key in the request parameters + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::KeyRetrieveInfoParams def retrieve_info(params = {}) - parsed, options = Hanzoai::Models::KeyRetrieveInfoParams.dump_request(params) + parsed, options = Hanzoai::KeyRetrieveInfoParams.dump_request(params) @client.request( method: :get, path: "key/info", @@ -557,40 +852,45 @@ def retrieve_info(params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::KeyUnblockParams} for more details. + # # Unblock a Virtual key to allow it to make requests again. # - # Parameters: + # Parameters: + # + # - key: str - The key to unblock. Can be either the unhashed key (sk-...) or the + # hashed key value + # + # Example: # - # - key: str - The key to unblock. Can be either the unhashed key (sk-...) or the - # hashed key value + # ```bash + # curl --location 'http://0.0.0.0:4000/key/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" + # }' + # ``` # - # Example: + # Note: This is an admin-only endpoint. Only proxy admins can unblock keys. # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" - # }' - # ``` + # @overload unblock(key:, litellm_changed_by: nil, request_options: {}) # - # Note: This is an admin-only endpoint. Only proxy admins can unblock keys. + # @param key [String] Body param # - # @overload unblock(key:, llm_changed_by: nil, request_options: {}) + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # @param key [String] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::KeyUnblockParams def unblock(params) - parsed, options = Hanzoai::Models::KeyUnblockParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::KeyUnblockParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "key/unblock", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Internal::Type::Unknown, options: options ) diff --git a/lib/hanzoai/resources/langfuse.rb b/lib/hanzoai/resources/langfuse.rb index 9fbfbd02..a390f3cf 100644 --- a/lib/hanzoai/resources/langfuse.rb +++ b/lib/hanzoai/resources/langfuse.rb @@ -3,9 +3,9 @@ module Hanzoai module Resources class Langfuse - # Call Langfuse via LLM proxy. Works with Langfuse SDK. + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) # # @overload create(endpoint, request_options: {}) # @@ -24,9 +24,9 @@ def create(endpoint, params = {}) ) end - # Call Langfuse via LLM proxy. Works with Langfuse SDK. + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) # # @overload retrieve(endpoint, request_options: {}) # @@ -45,9 +45,9 @@ def retrieve(endpoint, params = {}) ) end - # Call Langfuse via LLM proxy. Works with Langfuse SDK. + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) # # @overload update(endpoint, request_options: {}) # @@ -66,9 +66,9 @@ def update(endpoint, params = {}) ) end - # Call Langfuse via LLM proxy. Works with Langfuse SDK. + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) # # @overload delete(endpoint, request_options: {}) # @@ -87,9 +87,9 @@ def delete(endpoint, params = {}) ) end - # Call Langfuse via LLM proxy. Works with Langfuse SDK. + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) # # @overload patch(endpoint, request_options: {}) # diff --git a/lib/hanzoai/resources/model.rb b/lib/hanzoai/resources/model.rb index 18c15c48..29f8659a 100644 --- a/lib/hanzoai/resources/model.rb +++ b/lib/hanzoai/resources/model.rb @@ -11,18 +11,21 @@ class Model # Allows adding new models to the model list in the config.yaml # - # @overload create(llm_params:, model_info:, model_name:, request_options: {}) + # @overload create(litellm_params:, model_info:, model_name:, request_options: {}) + # + # @param litellm_params [Hanzoai::Models::ModelCreateParams::LitellmParams] LiteLLM Params with 'model' requirement - used for completions # - # @param llm_params [Hanzoai::Models::ModelCreateParams::LlmParams] # @param model_info [Hanzoai::Models::ModelInfo] + # # @param model_name [String] + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::ModelCreateParams def create(params) - parsed, options = Hanzoai::Models::ModelCreateParams.dump_request(params) + parsed, options = Hanzoai::ModelCreateParams.dump_request(params) @client.request( method: :post, path: "model/new", @@ -43,7 +46,7 @@ def create(params) # # @see Hanzoai::Models::ModelDeleteParams def delete(params) - parsed, options = Hanzoai::Models::ModelDeleteParams.dump_request(params) + parsed, options = Hanzoai::ModelDeleteParams.dump_request(params) @client.request( method: :post, path: "model/delete", diff --git a/lib/hanzoai/resources/model/info.rb b/lib/hanzoai/resources/model/info.rb index 489a17e0..c515ecc7 100644 --- a/lib/hanzoai/resources/model/info.rb +++ b/lib/hanzoai/resources/model/info.rb @@ -5,46 +5,46 @@ module Resources class Model class Info # Provides more info about each model in /models, including config.yaml - # descriptions (except api key and api base) + # descriptions (except api key and api base) # - # Parameters: llm_model_id: Optional[str] = None (this is the value of - # `x-llm-model-id` returned in response headers) + # Parameters: litellm_model_id: Optional[str] = None (this is the value of + # `x-litellm-model-id` returned in response headers) # - # - When llm_model_id is passed, it will return the info for that specific model - # - When llm_model_id is not passed, it will return the info for all models + # - When litellm_model_id is passed, it will return the info for that specific model + # - When litellm_model_id is not passed, it will return the info for all models # - # Returns: Returns a dictionary containing information about each model. + # Returns: Returns a dictionary containing information about each model. # - # Example Response: + # Example Response: # - # ```json - # { - # "data": [ - # { - # "model_name": "fake-openai-endpoint", - # "llm_params": { - # "api_base": "https://exampleopenaiendpoint-production.up.railway.app/", - # "model": "openai/fake" - # }, - # "model_info": { - # "id": "112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af", - # "db_model": false - # } + # ```json + # { + # "data": [ + # { + # "model_name": "fake-openai-endpoint", + # "litellm_params": { + # "api_base": "https://exampleopenaiendpoint-production.up.railway.app/", + # "model": "openai/fake" + # }, + # "model_info": { + # "id": "112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af", + # "db_model": false # } - # ] - # } - # ``` + # } + # ] + # } + # ``` # - # @overload list(llm_model_id: nil, request_options: {}) + # @overload list(litellm_model_id: nil, request_options: {}) # - # @param llm_model_id [String, nil] + # @param litellm_model_id [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Model::InfoListParams def list(params = {}) - parsed, options = Hanzoai::Models::Model::InfoListParams.dump_request(params) + parsed, options = Hanzoai::Model::InfoListParams.dump_request(params) @client.request( method: :get, path: "model/info", diff --git a/lib/hanzoai/resources/model/update.rb b/lib/hanzoai/resources/model/update.rb index 16dc679d..43304906 100644 --- a/lib/hanzoai/resources/model/update.rb +++ b/lib/hanzoai/resources/model/update.rb @@ -6,9 +6,9 @@ class Model class Update # Edit existing model params # - # @overload full(llm_params: nil, model_info: nil, model_name: nil, request_options: {}) + # @overload full(litellm_params: nil, model_info: nil, model_name: nil, request_options: {}) # - # @param llm_params [Hanzoai::Models::Model::UpdateDeployment::LlmParams, nil] + # @param litellm_params [Hanzoai::Models::Model::UpdateDeployment::LitellmParams, nil] # @param model_info [Hanzoai::Models::ModelInfo, nil] # @param model_name [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] @@ -17,7 +17,7 @@ class Update # # @see Hanzoai::Models::Model::UpdateFullParams def full(params = {}) - parsed, options = Hanzoai::Models::Model::UpdateFullParams.dump_request(params) + parsed, options = Hanzoai::Model::UpdateFullParams.dump_request(params) @client.request( method: :post, path: "model/update", @@ -29,21 +29,21 @@ def full(params = {}) # PATCH Endpoint for partial model updates. # - # Only updates the fields specified in the request while preserving other existing - # values. Follows proper PATCH semantics by only modifying provided fields. + # Only updates the fields specified in the request while preserving other existing + # values. Follows proper PATCH semantics by only modifying provided fields. # - # Args: model_id: The ID of the model to update patch_data: The fields to update - # and their new values user_api_key_dict: User authentication information + # Args: model_id: The ID of the model to update patch_data: The fields to update + # and their new values user_api_key_dict: User authentication information # - # Returns: Updated model information + # Returns: Updated model information # - # Raises: ProxyException: For various error conditions including authentication - # and database errors + # Raises: ProxyException: For various error conditions including authentication + # and database errors # - # @overload partial(model_id, llm_params: nil, model_info: nil, model_name: nil, request_options: {}) + # @overload partial(model_id, litellm_params: nil, model_info: nil, model_name: nil, request_options: {}) # # @param model_id [String] - # @param llm_params [Hanzoai::Models::Model::UpdateDeployment::LlmParams, nil] + # @param litellm_params [Hanzoai::Models::Model::UpdateDeployment::LitellmParams, nil] # @param model_info [Hanzoai::Models::ModelInfo, nil] # @param model_name [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] @@ -52,7 +52,7 @@ def full(params = {}) # # @see Hanzoai::Models::Model::UpdatePartialParams def partial(model_id, params = {}) - parsed, options = Hanzoai::Models::Model::UpdatePartialParams.dump_request(params) + parsed, options = Hanzoai::Model::UpdatePartialParams.dump_request(params) @client.request( method: :patch, path: ["model/%1$s/update", model_id], diff --git a/lib/hanzoai/resources/model_group.rb b/lib/hanzoai/resources/model_group.rb index 0e625daa..1101ae2d 100644 --- a/lib/hanzoai/resources/model_group.rb +++ b/lib/hanzoai/resources/model_group.rb @@ -3,148 +3,148 @@ module Hanzoai module Resources class ModelGroup - # Get information about all the deployments on llm proxy, including config.yaml - # descriptions (except api key and api base) + # Get information about all the deployments on litellm proxy, including + # config.yaml descriptions (except api key and api base) # - # - /model_group/info returns all model groups. End users of proxy should use - # /model_group/info since those models will be used for /chat/completions, - # /embeddings, etc. - # - /model_group/info?model_group=rerank-english-v3.0 returns all model groups for - # a specific model group (`model_name` in config.yaml) + # - /model_group/info returns all model groups. End users of proxy should use + # /model_group/info since those models will be used for /chat/completions, + # /embeddings, etc. + # - /model_group/info?model_group=rerank-english-v3.0 returns all model groups for + # a specific model group (`model_name` in config.yaml) # - # Example Request (All Models): + # Example Request (All Models): # - # ```shell - # curl -X 'GET' 'http://localhost:4000/model_group/info' -H 'accept: application/json' -H 'x-api-key: sk-1234' - # ``` + # ```shell + # curl -X 'GET' 'http://localhost:4000/model_group/info' -H 'accept: application/json' -H 'x-api-key: sk-1234' + # ``` # - # Example Request (Specific Model Group): + # Example Request (Specific Model Group): # - # ```shell - # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=rerank-english-v3.0' -H 'accept: application/json' -H 'Authorization: Bearer sk-1234' - # ``` + # ```shell + # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=rerank-english-v3.0' -H 'accept: application/json' -H 'Authorization: Bearer sk-1234' + # ``` # - # Example Request (Specific Wildcard Model Group): (e.g. `model_name: openai/*` on - # config.yaml) + # Example Request (Specific Wildcard Model Group): (e.g. `model_name: openai/*` on + # config.yaml) # - # ```shell - # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=openai/tts-1' - # -H 'accept: application/json' -H 'Authorization: Bearersk-1234' - # ``` + # ```shell + # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=openai/tts-1' + # -H 'accept: application/json' -H 'Authorization: Bearersk-1234' + # ``` # - # Learn how to use and set wildcard models - # [here](https://docs.hanzo.ai/docs/wildcard_routing) + # Learn how to use and set wildcard models + # [here](https://docs.litellm.ai/docs/wildcard_routing) # - # Example Response: + # Example Response: # - # ```json - # { - # "data": [ - # { - # "model_group": "rerank-english-v3.0", - # "providers": ["cohere"], - # "max_input_tokens": null, - # "max_output_tokens": null, - # "input_cost_per_token": 0.0, - # "output_cost_per_token": 0.0, - # "mode": null, - # "tpm": null, - # "rpm": null, - # "supports_parallel_function_calling": false, - # "supports_vision": false, - # "supports_function_calling": false, - # "supported_openai_params": [ - # "stream", - # "temperature", - # "max_tokens", - # "logit_bias", - # "top_p", - # "frequency_penalty", - # "presence_penalty", - # "stop", - # "n", - # "extra_headers" - # ] - # }, - # { - # "model_group": "gpt-3.5-turbo", - # "providers": ["openai"], - # "max_input_tokens": 16385.0, - # "max_output_tokens": 4096.0, - # "input_cost_per_token": 1.5e-6, - # "output_cost_per_token": 2e-6, - # "mode": "chat", - # "tpm": null, - # "rpm": null, - # "supports_parallel_function_calling": false, - # "supports_vision": false, - # "supports_function_calling": true, - # "supported_openai_params": [ - # "frequency_penalty", - # "logit_bias", - # "logprobs", - # "top_logprobs", - # "max_tokens", - # "max_completion_tokens", - # "n", - # "presence_penalty", - # "seed", - # "stop", - # "stream", - # "stream_options", - # "temperature", - # "top_p", - # "tools", - # "tool_choice", - # "function_call", - # "functions", - # "max_retries", - # "extra_headers", - # "parallel_tool_calls", - # "response_format" - # ] - # }, - # { - # "model_group": "llava-hf", - # "providers": ["openai"], - # "max_input_tokens": null, - # "max_output_tokens": null, - # "input_cost_per_token": 0.0, - # "output_cost_per_token": 0.0, - # "mode": null, - # "tpm": null, - # "rpm": null, - # "supports_parallel_function_calling": false, - # "supports_vision": true, - # "supports_function_calling": false, - # "supported_openai_params": [ - # "frequency_penalty", - # "logit_bias", - # "logprobs", - # "top_logprobs", - # "max_tokens", - # "max_completion_tokens", - # "n", - # "presence_penalty", - # "seed", - # "stop", - # "stream", - # "stream_options", - # "temperature", - # "top_p", - # "tools", - # "tool_choice", - # "function_call", - # "functions", - # "max_retries", - # "extra_headers", - # "parallel_tool_calls", - # "response_format" - # ] - # } - # ] - # } - # ``` + # ```json + # { + # "data": [ + # { + # "model_group": "rerank-english-v3.0", + # "providers": ["cohere"], + # "max_input_tokens": null, + # "max_output_tokens": null, + # "input_cost_per_token": 0.0, + # "output_cost_per_token": 0.0, + # "mode": null, + # "tpm": null, + # "rpm": null, + # "supports_parallel_function_calling": false, + # "supports_vision": false, + # "supports_function_calling": false, + # "supported_openai_params": [ + # "stream", + # "temperature", + # "max_tokens", + # "logit_bias", + # "top_p", + # "frequency_penalty", + # "presence_penalty", + # "stop", + # "n", + # "extra_headers" + # ] + # }, + # { + # "model_group": "gpt-3.5-turbo", + # "providers": ["openai"], + # "max_input_tokens": 16385.0, + # "max_output_tokens": 4096.0, + # "input_cost_per_token": 1.5e-6, + # "output_cost_per_token": 2e-6, + # "mode": "chat", + # "tpm": null, + # "rpm": null, + # "supports_parallel_function_calling": false, + # "supports_vision": false, + # "supports_function_calling": true, + # "supported_openai_params": [ + # "frequency_penalty", + # "logit_bias", + # "logprobs", + # "top_logprobs", + # "max_tokens", + # "max_completion_tokens", + # "n", + # "presence_penalty", + # "seed", + # "stop", + # "stream", + # "stream_options", + # "temperature", + # "top_p", + # "tools", + # "tool_choice", + # "function_call", + # "functions", + # "max_retries", + # "extra_headers", + # "parallel_tool_calls", + # "response_format" + # ] + # }, + # { + # "model_group": "llava-hf", + # "providers": ["openai"], + # "max_input_tokens": null, + # "max_output_tokens": null, + # "input_cost_per_token": 0.0, + # "output_cost_per_token": 0.0, + # "mode": null, + # "tpm": null, + # "rpm": null, + # "supports_parallel_function_calling": false, + # "supports_vision": true, + # "supports_function_calling": false, + # "supported_openai_params": [ + # "frequency_penalty", + # "logit_bias", + # "logprobs", + # "top_logprobs", + # "max_tokens", + # "max_completion_tokens", + # "n", + # "presence_penalty", + # "seed", + # "stop", + # "stream", + # "stream_options", + # "temperature", + # "top_p", + # "tools", + # "tool_choice", + # "function_call", + # "functions", + # "max_retries", + # "extra_headers", + # "parallel_tool_calls", + # "response_format" + # ] + # } + # ] + # } + # ``` # # @overload retrieve_info(model_group: nil, request_options: {}) # @@ -155,7 +155,7 @@ class ModelGroup # # @see Hanzoai::Models::ModelGroupRetrieveInfoParams def retrieve_info(params = {}) - parsed, options = Hanzoai::Models::ModelGroupRetrieveInfoParams.dump_request(params) + parsed, options = Hanzoai::ModelGroupRetrieveInfoParams.dump_request(params) @client.request( method: :get, path: "model_group/info", diff --git a/lib/hanzoai/resources/models.rb b/lib/hanzoai/resources/models.rb index 87dc7390..549056e2 100644 --- a/lib/hanzoai/resources/models.rb +++ b/lib/hanzoai/resources/models.rb @@ -4,12 +4,23 @@ module Hanzoai module Resources class Models # Use `/model/info` - to get detailed model information, example - pricing, mode, - # etc. + # etc. # - # This is just for compatibility with openai projects like aider. + # This is just for compatibility with openai projects like aider. # - # @overload list(return_wildcard_routes: nil, team_id: nil, request_options: {}) + # Query Parameters: # + # - include_metadata: Include additional metadata in the response with fallback + # information + # - fallback_type: Type of fallbacks to include ("general", "context_window", + # "content_policy") Defaults to "general" when include_metadata=true + # + # @overload list(fallback_type: nil, include_metadata: nil, include_model_access_groups: nil, only_model_access_groups: nil, return_wildcard_routes: nil, team_id: nil, request_options: {}) + # + # @param fallback_type [String, nil] + # @param include_metadata [Boolean, nil] + # @param include_model_access_groups [Boolean, nil] + # @param only_model_access_groups [Boolean, nil] # @param return_wildcard_routes [Boolean, nil] # @param team_id [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] @@ -18,7 +29,7 @@ class Models # # @see Hanzoai::Models::ModelListParams def list(params = {}) - parsed, options = Hanzoai::Models::ModelListParams.dump_request(params) + parsed, options = Hanzoai::ModelListParams.dump_request(params) @client.request( method: :get, path: "v1/models", diff --git a/lib/hanzoai/resources/moderations.rb b/lib/hanzoai/resources/moderations.rb index 80765c4c..08f3600a 100644 --- a/lib/hanzoai/resources/moderations.rb +++ b/lib/hanzoai/resources/moderations.rb @@ -4,13 +4,11 @@ module Hanzoai module Resources class Moderations # The moderations endpoint is a tool you can use to check whether content complies - # with an LLM Providers policies. + # with an LLM Providers policies. Quick Start # - # Quick Start - # - # ``` - # curl --location 'http://0.0.0.0:4000/moderations' --header 'Content-Type: application/json' --header 'Authorization: Bearer sk-1234' --data '{"input": "Sample text goes here", "model": "text-moderation-stable"}' - # ``` + # ``` + # curl --location 'http://0.0.0.0:4000/moderations' --header 'Content-Type: application/json' --header 'Authorization: Bearer sk-1234' --data '{"input": "Sample text goes here", "model": "text-moderation-stable"}' + # ``` # # @overload create(request_options: {}) # diff --git a/lib/hanzoai/resources/openai.rb b/lib/hanzoai/resources/openai.rb index a5f63905..667d7a2f 100644 --- a/lib/hanzoai/resources/openai.rb +++ b/lib/hanzoai/resources/openai.rb @@ -7,7 +7,7 @@ class OpenAI attr_reader :deployments # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. + # to OpenAI. # # @overload create(endpoint, request_options: {}) # @@ -27,7 +27,7 @@ def create(endpoint, params = {}) end # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. + # to OpenAI. # # @overload retrieve(endpoint, request_options: {}) # @@ -47,7 +47,7 @@ def retrieve(endpoint, params = {}) end # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. + # to OpenAI. # # @overload update(endpoint, request_options: {}) # @@ -67,7 +67,7 @@ def update(endpoint, params = {}) end # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. + # to OpenAI. # # @overload delete(endpoint, request_options: {}) # @@ -87,7 +87,7 @@ def delete(endpoint, params = {}) end # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. + # to OpenAI. # # @overload patch(endpoint, request_options: {}) # diff --git a/lib/hanzoai/resources/openai/deployments.rb b/lib/hanzoai/resources/openai/deployments.rb index b0a83c46..1ebcb0a1 100644 --- a/lib/hanzoai/resources/openai/deployments.rb +++ b/lib/hanzoai/resources/openai/deployments.rb @@ -8,19 +8,19 @@ class Deployments attr_reader :chat # Follows the exact same API spec as - # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` + # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` # - # ```bash - # curl -X POST http://localhost:4000/v1/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-3.5-turbo-instruct", - # "prompt": "Once upon a time", - # "max_tokens": 50, - # "temperature": 0.7 - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-3.5-turbo-instruct", + # "prompt": "Once upon a time", + # "max_tokens": 50, + # "temperature": 0.7 + # }' + # ``` # # @overload complete(model, request_options: {}) # @@ -40,32 +40,47 @@ def complete(model, params = {}) end # Follows the exact same API spec as - # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` + # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` # - # ```bash - # curl -X POST http://localhost:4000/v1/embeddings - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "text-embedding-ada-002", - # "input": "The quick brown fox jumps over the lazy dog" - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/embeddings + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "text-embedding-ada-002", + # "input": "The quick brown fox jumps over the lazy dog" + # }' + # ``` # - # @overload embed(model, request_options: {}) + # @overload embed(path_model, body_model:, api_base: nil, api_key: nil, api_type: nil, api_version: nil, caching: nil, custom_llm_provider: nil, input: nil, litellm_call_id: nil, litellm_logging_obj: nil, logger_fn: nil, timeout: nil, user: nil, request_options: {}) # - # @param model [String] + # @param path_model [String] + # @param body_model [String] + # @param api_base [String, nil] + # @param api_key [String, nil] + # @param api_type [String, nil] + # @param api_version [String, nil] + # @param caching [Boolean] + # @param custom_llm_provider [String, Hash{Symbol=>Object}, nil] + # @param input [Array] + # @param litellm_call_id [String, nil] + # @param litellm_logging_obj [Hash{Symbol=>Object}, nil] + # @param logger_fn [String, nil] + # @param timeout [Integer] + # @param user [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::OpenAI::DeploymentEmbedParams - def embed(model, params = {}) + def embed(path_model, params) + parsed, options = Hanzoai::OpenAI::DeploymentEmbedParams.dump_request(params) @client.request( method: :post, - path: ["openai/deployments/%1$s/embeddings", model], + path: ["openai/deployments/%1$s/embeddings", path_model], + body: parsed, model: Hanzoai::Internal::Type::Unknown, - options: params[:request_options] + options: options ) end diff --git a/lib/hanzoai/resources/openai/deployments/chat.rb b/lib/hanzoai/resources/openai/deployments/chat.rb index 68589f63..3f7ac1a8 100644 --- a/lib/hanzoai/resources/openai/deployments/chat.rb +++ b/lib/hanzoai/resources/openai/deployments/chat.rb @@ -6,37 +6,68 @@ class OpenAI class Deployments class Chat # Follows the exact same API spec as - # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` + # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` # - # ```bash - # curl -X POST http://localhost:4000/v1/chat/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-4o", - # "messages": [ - # { - # "role": "user", - # "content": "Hello!" - # } - # ] - # }' - # ``` + # ```bash + # curl -X POST http://localhost:4000/v1/chat/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-4o", + # "messages": [ + # { + # "role": "user", + # "content": "Hello!" + # } + # ] + # }' + # ``` # - # @overload complete(model, request_options: {}) + # @overload complete(path_model, messages:, body_model:, caching: nil, context_window_fallback_dict: nil, fallbacks: nil, frequency_penalty: nil, function_call: nil, functions: nil, guardrails: nil, logit_bias: nil, logprobs: nil, max_tokens: nil, metadata: nil, n: nil, num_retries: nil, parallel_tool_calls: nil, presence_penalty: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, stream_options: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, user: nil, request_options: {}) # - # @param model [String] + # @param path_model [String] + # @param messages [Array] + # @param body_model [String] + # @param caching [Boolean, nil] + # @param context_window_fallback_dict [Hash{Symbol=>String}, nil] + # @param fallbacks [Array, nil] + # @param frequency_penalty [Float, nil] + # @param function_call [String, Hash{Symbol=>Object}, nil] + # @param functions [ArrayObject}>, nil] + # @param guardrails [Array, nil] + # @param logit_bias [Hash{Symbol=>Float}, nil] + # @param logprobs [Boolean, nil] + # @param max_tokens [Integer, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param n [Integer, nil] + # @param num_retries [Integer, nil] + # @param parallel_tool_calls [Boolean, nil] + # @param presence_penalty [Float, nil] + # @param response_format [Hash{Symbol=>Object}, nil] + # @param seed [Integer, nil] + # @param service_tier [String, nil] + # @param stop [String, Array, nil] + # @param stream [Boolean, nil] + # @param stream_options [Hash{Symbol=>Object}, nil] + # @param temperature [Float, nil] + # @param tool_choice [String, Hash{Symbol=>Object}, nil] + # @param tools [ArrayObject}>, nil] + # @param top_logprobs [Integer, nil] + # @param top_p [Float, nil] + # @param user [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams - def complete(model, params = {}) + def complete(path_model, params) + parsed, options = Hanzoai::OpenAI::Deployments::ChatCompleteParams.dump_request(params) @client.request( method: :post, - path: ["openai/deployments/%1$s/chat/completions", model], + path: ["openai/deployments/%1$s/chat/completions", path_model], + body: parsed, model: Hanzoai::Internal::Type::Unknown, - options: params[:request_options] + options: options ) end diff --git a/lib/hanzoai/resources/organization.rb b/lib/hanzoai/resources/organization.rb index 2489cb96..df1e4416 100644 --- a/lib/hanzoai/resources/organization.rb +++ b/lib/hanzoai/resources/organization.rb @@ -8,79 +8,88 @@ class Organization # Allow orgs to own teams # - # Set org level budgets + model access. - # - # Only admins can create orgs. - # - # # Parameters - # - # - organization_alias: _str_ - The name of the organization. - # - models: _List_ - The models the organization has access to. - # - budget_id: _Optional[str]_ - The id for a budget (tpm/rpm/max budget) for the - # organization. - # - # ### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS - # - # - max_budget: _Optional[float]_ - Max budget for org - # - tpm_limit: _Optional[int]_ - Max tpm limit for org - # - rpm_limit: _Optional[int]_ - Max rpm limit for org - # - max_parallel_requests: _Optional[int]_ - [Not Implemented Yet] Max parallel - # requests for org - # - soft_budget: _Optional[float]_ - [Not Implemented Yet] Get a slack alert when - # this soft budget is reached. Don't block requests. - # - model_max_budget: _Optional[dict]_ - Max budget for a specific model - # - budget_duration: _Optional[str]_ - Frequency of reseting org budget - # - metadata: _Optional[dict]_ - Metadata for organization, store information for - # organization. Example metadata - {"extra_info": "some info"} - # - blocked: _bool_ - Flag indicating if the org is blocked or not - will stop all - # calls from keys with this org_id. - # - tags: _Optional[List[str]]_ - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - organization_id: _Optional[str]_ - The organization id of the team. Default is - # None. Create via `/organization/new`. - # - model_aliases: Optional[dict] - Model aliases for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - # - # Case 1: Create new org **without** a budget_id - # - # ```bash - # curl --location 'http://0.0.0.0:4000/organization/new' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "organization_alias": "my-secret-org", - # "models": ["model1", "model2"], - # "max_budget": 100 - # }' - # - # - # ``` - # - # Case 2: Create new org **with** a budget_id - # - # ```bash - # curl --location 'http://0.0.0.0:4000/organization/new' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "organization_alias": "my-secret-org", - # "models": ["model1", "model2"], - # "budget_id": "428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689" - # }' - # ``` - # - # @overload create(organization_alias:, budget_duration: nil, budget_id: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, models: nil, organization_id: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) + # Set org level budgets + model access. + # + # Only admins can create orgs. + # + # # Parameters + # + # - organization_alias: _str_ - The name of the organization. + # - models: _List_ - The models the organization has access to. + # - budget_id: _Optional[str]_ - The id for a budget (tpm/rpm/max budget) for the + # organization. + # + # ### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS + # + # - max_budget: _Optional[float]_ - Max budget for org + # - tpm_limit: _Optional[int]_ - Max tpm limit for org + # - rpm_limit: _Optional[int]_ - Max rpm limit for org + # - model_rpm_limit: _Optional[Dict[str, int]]_ - The RPM (Requests Per Minute) + # limit per model for this organization. + # - model_tpm_limit: _Optional[Dict[str, int]]_ - The TPM (Tokens Per Minute) + # limit per model for this organization. + # - max_parallel_requests: _Optional[int]_ - [Not Implemented Yet] Max parallel + # requests for org + # - soft_budget: _Optional[float]_ - [Not Implemented Yet] Get a slack alert when + # this soft budget is reached. Don't block requests. + # - model_max_budget: _Optional[dict]_ - Max budget for a specific model + # - budget_duration: _Optional[str]_ - Frequency of reseting org budget + # - metadata: _Optional[dict]_ - Metadata for organization, store information for + # organization. Example metadata - {"extra_info": "some info"} + # - blocked: _bool_ - Flag indicating if the org is blocked or not - will stop all + # calls from keys with this org_id. + # - tags: _Optional[List[str]]_ - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - organization_id: _Optional[str]_ - The organization id of the team. Default is + # None. Create via `/organization/new`. + # - model_aliases: Optional[dict] - Model aliases for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - + # organization-specific object permission. Example - {"vector_stores": + # ["vector_store_1", "vector_store_2"]}. IF null or {} then no object + # permission. Case 1: Create new org **without** a budget_id + # + # ```bash + # curl --location 'http://0.0.0.0:4000/organization/new' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "organization_alias": "my-secret-org", + # "models": ["model1", "model2"], + # "max_budget": 100 + # }' + # + # + # ``` + # + # Case 2: Create new org **with** a budget_id + # + # ```bash + # curl --location 'http://0.0.0.0:4000/organization/new' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "organization_alias": "my-secret-org", + # "models": ["model1", "model2"], + # "budget_id": "428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689" + # }' + # ``` + # + # @overload create(organization_alias:, budget_duration: nil, budget_id: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, rpm_limit: nil, soft_budget: nil, tpm_limit: nil, request_options: {}) # # @param organization_alias [String] # @param budget_duration [String, nil] # @param budget_id [String, nil] # @param max_budget [Float, nil] # @param max_parallel_requests [Integer, nil] - # @param metadata [Object, nil] - # @param model_max_budget [Object, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # @param model_rpm_limit [Hash{Symbol=>Integer}, nil] + # @param model_tpm_limit [Hash{Symbol=>Integer}, nil] # @param models [Array] + # @param object_permission [Hanzoai::Models::OrganizationCreateParams::ObjectPermission, nil] # @param organization_id [String, nil] # @param rpm_limit [Integer, nil] # @param soft_budget [Float, nil] @@ -91,7 +100,7 @@ class Organization # # @see Hanzoai::Models::OrganizationCreateParams def create(params) - parsed, options = Hanzoai::Models::OrganizationCreateParams.dump_request(params) + parsed, options = Hanzoai::OrganizationCreateParams.dump_request(params) @client.request( method: :post, path: "organization/new", @@ -103,113 +112,127 @@ def create(params) # Update an organization # - # @overload update(budget_id: nil, metadata: nil, models: nil, organization_alias: nil, organization_id: nil, spend: nil, updated_by: nil, request_options: {}) + # @overload update(request_options: {}) # - # @param budget_id [String, nil] - # @param metadata [Object, nil] - # @param models [Array, nil] - # @param organization_alias [String, nil] - # @param organization_id [String, nil] - # @param spend [Float, nil] - # @param updated_by [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Hanzoai::Models::OrganizationUpdateResponse] + # @return [Hanzoai::Models::OrganizationTableWithMembers] # # @see Hanzoai::Models::OrganizationUpdateParams def update(params = {}) - parsed, options = Hanzoai::Models::OrganizationUpdateParams.dump_request(params) @client.request( method: :patch, path: "organization/update", - body: parsed, - model: Hanzoai::Models::OrganizationUpdateResponse, - options: options + model: Hanzoai::OrganizationTableWithMembers, + options: params[:request_options] ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::OrganizationListParams} for more details. + # + # Get a list of organizations with optional filtering. + # + # Parameters: org_id: Optional[str] Filter organizations by exact organization_id + # match org_alias: Optional[str] Filter organizations by partial + # organization_alias match (case-insensitive) + # + # Example: + # + # ``` + # curl --location --request GET 'http://0.0.0.0:4000/organization/list?org_alias=my-org' --header 'Authorization: Bearer sk-1234' # ``` - # curl --location --request GET 'http://0.0.0.0:4000/organization/list' --header 'Authorization: Bearer sk-1234' - # ``` # - # @overload list(request_options: {}) + # Example with org_id: + # + # ``` + # curl --location --request GET 'http://0.0.0.0:4000/organization/list?org_id=123e4567-e89b-12d3-a456-426614174000' --header 'Authorization: Bearer sk-1234' + # ``` + # + # @overload list(org_alias: nil, org_id: nil, request_options: {}) + # + # @param org_alias [String, nil] Filter organizations by partial organization_alias match. Supports case-insensit + # + # @param org_id [String, nil] Filter organizations by exact organization_id match # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Array] + # @return [Array] # # @see Hanzoai::Models::OrganizationListParams def list(params = {}) + parsed, options = Hanzoai::OrganizationListParams.dump_request(params) @client.request( method: :get, path: "organization/list", - model: Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationListResponseItem], - options: params[:request_options] + query: parsed, + model: Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers], + options: options ) end # Delete an organization # - # # Parameters: + # # Parameters: # - # - organization_ids: List[str] - The organization ids to delete. + # - organization_ids: List[str] - The organization ids to delete. # # @overload delete(organization_ids:, request_options: {}) # # @param organization_ids [Array] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Array] + # @return [Array] # # @see Hanzoai::Models::OrganizationDeleteParams def delete(params) - parsed, options = Hanzoai::Models::OrganizationDeleteParams.dump_request(params) + parsed, options = Hanzoai::OrganizationDeleteParams.dump_request(params) @client.request( method: :delete, path: "organization/delete", body: parsed, - model: Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationDeleteResponseItem], + model: Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers], options: options ) end # [BETA] # - # Add new members (either via user_email or user_id) to an organization + # Add new members (either via user_email or user_id) to an organization # - # If user doesn't exist, new user row will also be added to User Table + # If user doesn't exist, new user row will also be added to User Table # - # Only proxy_admin or org_admin of organization, allowed to access this endpoint. + # Only proxy_admin or org_admin of organization, allowed to access this endpoint. # - # # Parameters: + # # Parameters: # - # - organization_id: str (required) - # - member: Union[List[Member], Member] (required) - # - role: Literal[LLMUserRoles] (required) - # - user_id: Optional[str] - # - user_email: Optional[str] + # - organization_id: str (required) + # - member: Union[List[Member], Member] (required) + # - role: Literal[LitellmUserRoles] (required) + # - user_id: Optional[str] + # - user_email: Optional[str] # - # Note: Either user_id or user_email must be provided for each member. + # Note: Either user_id or user_email must be provided for each member. # - # Example: + # Example: # - # ``` - # curl -X POST 'http://0.0.0.0:4000/organization/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{ - # "organization_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", - # "member": { - # "role": "internal_user", - # "user_id": "dev247652@hanzo.ai" - # }, - # "max_budget_in_organization": 100.0 - # }' - # ``` + # ``` + # curl -X POST 'http://0.0.0.0:4000/organization/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{ + # "organization_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", + # "member": { + # "role": "internal_user", + # "user_id": "krrish247652@berri.ai" + # }, + # "max_budget_in_organization": 100.0 + # }' + # ``` # - # The following is executed in this function: + # The following is executed in this function: # - # 1. Check if organization exists - # 2. Creates a new Internal User if the user_id or user_email is not found in - # LLM_UserTable - # 3. Add Internal User to the `LLM_OrganizationMembership` table + # 1. Check if organization exists + # 2. Creates a new Internal User if the user_id or user_email is not found in + # LiteLLM_UserTable + # 3. Add Internal User to the `LiteLLM_OrganizationMembership` table # # @overload add_member(member:, organization_id:, max_budget_in_organization: nil, request_options: {}) # @@ -222,7 +245,7 @@ def delete(params) # # @see Hanzoai::Models::OrganizationAddMemberParams def add_member(params) - parsed, options = Hanzoai::Models::OrganizationAddMemberParams.dump_request(params) + parsed, options = Hanzoai::OrganizationAddMemberParams.dump_request(params) @client.request( method: :post, path: "organization/member_add", @@ -245,7 +268,7 @@ def add_member(params) # # @see Hanzoai::Models::OrganizationDeleteMemberParams def delete_member(params) - parsed, options = Hanzoai::Models::OrganizationDeleteMemberParams.dump_request(params) + parsed, options = Hanzoai::OrganizationDeleteMemberParams.dump_request(params) @client.request( method: :delete, path: "organization/member_delete", @@ -255,27 +278,35 @@ def delete_member(params) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::OrganizationUpdateMemberParams} for more details. + # # Update a member's role in an organization # # @overload update_member(organization_id:, max_budget_in_organization: nil, role: nil, user_email: nil, user_id: nil, request_options: {}) # # @param organization_id [String] + # # @param max_budget_in_organization [Float, nil] - # @param role [Symbol, Hanzoai::Models::OrganizationUpdateMemberParams::Role, nil] + # + # @param role [Symbol, Hanzoai::Models::UserRoles, nil] Admin Roles: + # # @param user_email [String, nil] + # # @param user_id [String, nil] + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Hanzoai::Models::OrganizationUpdateMemberResponse] + # @return [Hanzoai::Models::OrganizationMembershipTable] # # @see Hanzoai::Models::OrganizationUpdateMemberParams def update_member(params) - parsed, options = Hanzoai::Models::OrganizationUpdateMemberParams.dump_request(params) + parsed, options = Hanzoai::OrganizationUpdateMemberParams.dump_request(params) @client.request( method: :patch, path: "organization/member_update", body: parsed, - model: Hanzoai::Models::OrganizationUpdateMemberResponse, + model: Hanzoai::OrganizationMembershipTable, options: options ) end diff --git a/lib/hanzoai/resources/organization/info.rb b/lib/hanzoai/resources/organization/info.rb index a90fadb7..94d132a1 100644 --- a/lib/hanzoai/resources/organization/info.rb +++ b/lib/hanzoai/resources/organization/info.rb @@ -11,16 +11,16 @@ class Info # @param organization_id [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # - # @return [Hanzoai::Models::Organization::InfoRetrieveResponse] + # @return [Hanzoai::Models::OrganizationTableWithMembers] # # @see Hanzoai::Models::Organization::InfoRetrieveParams def retrieve(params) - parsed, options = Hanzoai::Models::Organization::InfoRetrieveParams.dump_request(params) + parsed, options = Hanzoai::Organization::InfoRetrieveParams.dump_request(params) @client.request( method: :get, path: "organization/info", query: parsed, - model: Hanzoai::Models::Organization::InfoRetrieveResponse, + model: Hanzoai::OrganizationTableWithMembers, options: options ) end @@ -36,7 +36,7 @@ def retrieve(params) # # @see Hanzoai::Models::Organization::InfoDeprecatedParams def deprecated(params) - parsed, options = Hanzoai::Models::Organization::InfoDeprecatedParams.dump_request(params) + parsed, options = Hanzoai::Organization::InfoDeprecatedParams.dump_request(params) @client.request( method: :post, path: "organization/info", diff --git a/lib/hanzoai/resources/provider.rb b/lib/hanzoai/resources/provider.rb index a8b6d7eb..7ea0ae33 100644 --- a/lib/hanzoai/resources/provider.rb +++ b/lib/hanzoai/resources/provider.rb @@ -4,49 +4,49 @@ module Hanzoai module Resources class Provider # Provider Budget Routing - Get Budget, Spend Details - # https://docs.hanzo.ai/docs/proxy/provider_budget_routing + # https://docs.litellm.ai/docs/proxy/provider_budget_routing # - # Use this endpoint to check current budget, spend and budget reset time for a - # provider + # Use this endpoint to check current budget, spend and budget reset time for a + # provider # - # Example Request + # Example Request # - # ```bash - # curl -X GET http://localhost:4000/provider/budgets -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" - # ``` + # ```bash + # curl -X GET http://localhost:4000/provider/budgets -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" + # ``` # - # Example Response + # Example Response # - # ```json - # { - # "providers": { - # "openai": { - # "budget_limit": 1e-12, - # "time_period": "1d", - # "spend": 0.0, - # "budget_reset_at": null - # }, - # "azure": { - # "budget_limit": 100.0, - # "time_period": "1d", - # "spend": 0.0, - # "budget_reset_at": null - # }, - # "anthropic": { - # "budget_limit": 100.0, - # "time_period": "10d", - # "spend": 0.0, - # "budget_reset_at": null - # }, - # "vertex_ai": { - # "budget_limit": 100.0, - # "time_period": "12d", - # "spend": 0.0, - # "budget_reset_at": null - # } + # ```json + # { + # "providers": { + # "openai": { + # "budget_limit": 1e-12, + # "time_period": "1d", + # "spend": 0.0, + # "budget_reset_at": null + # }, + # "azure": { + # "budget_limit": 100.0, + # "time_period": "1d", + # "spend": 0.0, + # "budget_reset_at": null + # }, + # "anthropic": { + # "budget_limit": 100.0, + # "time_period": "10d", + # "spend": 0.0, + # "budget_reset_at": null + # }, + # "vertex_ai": { + # "budget_limit": 100.0, + # "time_period": "12d", + # "spend": 0.0, + # "budget_reset_at": null # } # } - # ``` + # } + # ``` # # @overload list_budgets(request_options: {}) # diff --git a/lib/hanzoai/resources/responses.rb b/lib/hanzoai/resources/responses.rb index 596eb0b5..5eef40cf 100644 --- a/lib/hanzoai/resources/responses.rb +++ b/lib/hanzoai/resources/responses.rb @@ -7,14 +7,26 @@ class Responses attr_reader :input_items # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses - # - # ```bash - # curl -X POST http://localhost:4000/v1/responses -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ - # "model": "gpt-4o", - # "input": "Tell me about AI" - # }' - # ``` + # https://platform.openai.com/docs/api-reference/responses + # + # Supports background mode with polling_via_cache for partial response retrieval. + # When background=true and polling_via_cache is enabled, returns a polling_id + # immediately and streams the response in the background, updating Redis cache. + # + # ```bash + # # Normal request + # curl -X POST http://localhost:4000/v1/responses -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "model": "gpt-4o", + # "input": "Tell me about AI" + # }' + # + # # Background request with polling + # curl -X POST http://localhost:4000/v1/responses -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "model": "gpt-4o", + # "input": "Tell me about AI", + # "background": true + # }' + # ``` # # @overload create(request_options: {}) # @@ -34,12 +46,22 @@ def create(params = {}) # Get a response by ID. # - # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses/get + # Supports both: + # + # - Polling IDs (litellm*poll*\*): Returns cumulative cached content from + # background responses + # - Provider response IDs: Passes through to provider API + # + # Follows the OpenAI Responses API spec: + # https://platform.openai.com/docs/api-reference/responses/get + # + # ```bash + # # Get polling response + # curl -X GET http://localhost:4000/v1/responses/litellm_poll_abc123 -H "Authorization: Bearer sk-1234" # - # ```bash - # curl -X GET http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" - # ``` + # # Get provider response + # curl -X GET http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" + # ``` # # @overload retrieve(response_id, request_options: {}) # @@ -60,12 +82,17 @@ def retrieve(response_id, params = {}) # Delete a response by ID. # - # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses/delete + # Supports both: + # + # - Polling IDs (litellm*poll*\*): Deletes from Redis cache + # - Provider response IDs: Passes through to provider API + # + # Follows the OpenAI Responses API spec: + # https://platform.openai.com/docs/api-reference/responses/delete # - # ```bash - # curl -X DELETE http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" - # ``` + # ```bash + # curl -X DELETE http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" + # ``` # # @overload delete(response_id, request_options: {}) # diff --git a/lib/hanzoai/resources/responses/input_items.rb b/lib/hanzoai/resources/responses/input_items.rb index 0c0f5c76..7d7a234a 100644 --- a/lib/hanzoai/resources/responses/input_items.rb +++ b/lib/hanzoai/resources/responses/input_items.rb @@ -4,14 +4,7 @@ module Hanzoai module Resources class Responses class InputItems - # Get input items for a response. - # - # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses/input-items - # - # ```bash - # curl -X GET http://localhost:4000/v1/responses/resp_abc123/input_items -H "Authorization: Bearer sk-1234" - # ``` + # List input items for a response. # # @overload list(response_id, request_options: {}) # diff --git a/lib/hanzoai/resources/settings.rb b/lib/hanzoai/resources/settings.rb index fdd4ee19..55f91a92 100644 --- a/lib/hanzoai/resources/settings.rb +++ b/lib/hanzoai/resources/settings.rb @@ -3,29 +3,29 @@ module Hanzoai module Resources class Settings - # Returns a list of llm level settings - # - # This is useful for debugging and ensuring the proxy server is configured - # correctly. - # - # Response schema: - # - # ``` - # { - # "alerting": _alerting, - # "llm.callbacks": llm_callbacks, - # "llm.input_callback": llm_input_callbacks, - # "llm.failure_callback": llm_failure_callbacks, - # "llm.success_callback": llm_success_callbacks, - # "llm._async_success_callback": llm_async_success_callbacks, - # "llm._async_failure_callback": llm_async_failure_callbacks, - # "llm._async_input_callback": llm_async_input_callbacks, - # "all_llm_callbacks": all_llm_callbacks, - # "num_callbacks": len(all_llm_callbacks), - # "num_alerting": _num_alerting, - # "llm.request_timeout": llm.request_timeout, - # } - # ``` + # Returns a list of litellm level settings + # + # This is useful for debugging and ensuring the proxy server is configured + # correctly. + # + # Response schema: + # + # ``` + # { + # "alerting": _alerting, + # "litellm.callbacks": litellm_callbacks, + # "litellm.input_callback": litellm_input_callbacks, + # "litellm.failure_callback": litellm_failure_callbacks, + # "litellm.success_callback": litellm_success_callbacks, + # "litellm._async_success_callback": litellm_async_success_callbacks, + # "litellm._async_failure_callback": litellm_async_failure_callbacks, + # "litellm._async_input_callback": litellm_async_input_callbacks, + # "all_litellm_callbacks": all_litellm_callbacks, + # "num_callbacks": len(all_litellm_callbacks), + # "num_alerting": _num_alerting, + # "litellm.request_timeout": litellm.request_timeout, + # } + # ``` # # @overload retrieve(request_options: {}) # diff --git a/lib/hanzoai/resources/spend.rb b/lib/hanzoai/resources/spend.rb index 04c7c735..4711cacc 100644 --- a/lib/hanzoai/resources/spend.rb +++ b/lib/hanzoai/resources/spend.rb @@ -5,55 +5,55 @@ module Resources class Spend # Accepts all the params of completion_cost. # - # Calculate spend **before** making call: - # - # Note: If you see a spend of $0.0 you need to set custom_pricing for your model: - # https://docs.hanzo.ai/docs/proxy/custom_pricing - # - # ``` - # curl --location 'http://localhost:4000/spend/calculate' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "model": "anthropic.claude-v2", - # "messages": [{"role": "user", "content": "Hey, how'''s it going?"}] - # }' - # ``` - # - # Calculate spend **after** making call: - # - # ``` - # curl --location 'http://localhost:4000/spend/calculate' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "completion_response": { - # "id": "chatcmpl-123", - # "object": "chat.completion", - # "created": 1677652288, - # "model": "gpt-3.5-turbo-0125", - # "system_fingerprint": "fp_44709d6fcb", - # "choices": [{ - # "index": 0, - # "message": { - # "role": "assistant", - # "content": "Hello there, how may I assist you today?" - # }, - # "logprobs": null, - # "finish_reason": "stop" - # }] - # "usage": { - # "prompt_tokens": 9, - # "completion_tokens": 12, - # "total_tokens": 21 - # } - # } - # }' - # ``` + # Calculate spend **before** making call: + # + # Note: If you see a spend of $0.0 you need to set custom_pricing for your model: + # https://docs.litellm.ai/docs/proxy/custom_pricing + # + # ``` + # curl --location 'http://localhost:4000/spend/calculate' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "model": "anthropic.claude-v2", + # "messages": [{"role": "user", "content": "Hey, how'''s it going?"}] + # }' + # ``` + # + # Calculate spend **after** making call: + # + # ``` + # curl --location 'http://localhost:4000/spend/calculate' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "completion_response": { + # "id": "chatcmpl-123", + # "object": "chat.completion", + # "created": 1677652288, + # "model": "gpt-3.5-turbo-0125", + # "system_fingerprint": "fp_44709d6fcb", + # "choices": [{ + # "index": 0, + # "message": { + # "role": "assistant", + # "content": "Hello there, how may I assist you today?" + # }, + # "logprobs": null, + # "finish_reason": "stop" + # }] + # "usage": { + # "prompt_tokens": 9, + # "completion_tokens": 12, + # "total_tokens": 21 + # } + # } + # }' + # ``` # # @overload calculate_spend(completion_response: nil, messages: nil, model: nil, request_options: {}) # - # @param completion_response [Object, nil] + # @param completion_response [Hash{Symbol=>Object}, nil] # @param messages [Array, nil] # @param model [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] @@ -62,7 +62,7 @@ class Spend # # @see Hanzoai::Models::SpendCalculateSpendParams def calculate_spend(params = {}) - parsed, options = Hanzoai::Models::SpendCalculateSpendParams.dump_request(params) + parsed, options = Hanzoai::SpendCalculateSpendParams.dump_request(params) @client.request( method: :post, path: "spend/calculate", @@ -72,47 +72,72 @@ def calculate_spend(params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::SpendListLogsParams} for more details. + # + # [DEPRECATED] This endpoint is not paginated and can cause performance issues. + # Please use `/spend/logs/v2` instead for paginated access to spend logs. + # # View all spend logs, if request_id is provided, only logs for that request_id - # will be returned + # will be returned + # + # When start_date and end_date are provided: + # + # - summarize=true (default): Returns aggregated spend data grouped by date + # (maintains backward compatibility) + # - summarize=false: Returns filtered individual log entries within the date range + # + # Example Request for all logs + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs" -H "Authorization: Bearer sk-1234" + # ``` + # + # Example Request for specific request_id # - # Example Request for all logs + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?request_id=chatcmpl-6dcb2540-d3d7-4e49-bb27-291f863f112e" -H "Authorization: Bearer sk-1234" + # ``` # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs" -H "Authorization: Bearer sk-1234" - # ``` + # Example Request for specific api_key # - # Example Request for specific request_id + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?api_key=sk-test-example-key-123" -H "Authorization: Bearer sk-1234" + # ``` # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs?request_id=chatcmpl-6dcb2540-d3d7-4e49-bb27-291f863f112e" -H "Authorization: Bearer sk-1234" - # ``` + # Example Request for specific user_id # - # Example Request for specific api_key + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?user_id=ishaan@berri.ai" -H "Authorization: Bearer sk-1234" + # ``` # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs?api_key=sk-Fn8Ej39NkBQmUagFEoUWPQ" -H "Authorization: Bearer sk-1234" - # ``` + # Example Request for date range with individual logs (unsummarized) # - # Example Request for specific user_id + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?start_date=2024-01-01&end_date=2024-01-02&summarize=false" -H "Authorization: Bearer sk-1234" + # ``` # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs?user_id=z@hanzo.ai" -H "Authorization: Bearer sk-1234" - # ``` + # @overload list_logs(api_key: nil, end_date: nil, request_id: nil, start_date: nil, summarize: nil, user_id: nil, request_options: {}) # - # @overload list_logs(api_key: nil, end_date: nil, request_id: nil, start_date: nil, user_id: nil, request_options: {}) + # @param api_key [String, nil] Get spend logs based on api key + # + # @param end_date [String, nil] Time till which to view key spend + # + # @param request_id [String, nil] request_id to get spend logs for specific request_id. If none passed then pass s + # + # @param start_date [String, nil] Time from which to start viewing key spend + # + # @param summarize [Boolean] When start_date and end_date are provided, summarize=true returns aggregated dat + # + # @param user_id [String, nil] Get spend logs based on user_id # - # @param api_key [String, nil] - # @param end_date [String, nil] - # @param request_id [String, nil] - # @param start_date [String, nil] - # @param user_id [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Array] # # @see Hanzoai::Models::SpendListLogsParams def list_logs(params = {}) - parsed, options = Hanzoai::Models::SpendListLogsParams.dump_request(params) + parsed, options = Hanzoai::SpendListLogsParams.dump_request(params) @client.request( method: :get, path: "spend/logs", @@ -122,31 +147,33 @@ def list_logs(params = {}) ) end - # LLM Enterprise - View Spend Per Request Tag + # LiteLLM Enterprise - View Spend Per Request Tag # - # Example Request: + # Example Request: # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/tags" -H "Authorization: Bearer sk-1234" - # ``` + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/tags" -H "Authorization: Bearer sk-1234" + # ``` # - # Spend with Start Date and End Date + # Spend with Start Date and End Date # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" - # ``` + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" + # ``` # # @overload list_tags(end_date: nil, start_date: nil, request_options: {}) # - # @param end_date [String, nil] - # @param start_date [String, nil] + # @param end_date [String, nil] Time till which to view key spend + # + # @param start_date [String, nil] Time from which to start viewing key spend + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Array] # # @see Hanzoai::Models::SpendListTagsParams def list_tags(params = {}) - parsed, options = Hanzoai::Models::SpendListTagsParams.dump_request(params) + parsed, options = Hanzoai::SpendListTagsParams.dump_request(params) @client.request( method: :get, path: "spend/tags", diff --git a/lib/hanzoai/resources/team.rb b/lib/hanzoai/resources/team.rb index ae15c60d..e2037bf4 100644 --- a/lib/hanzoai/resources/team.rb +++ b/lib/hanzoai/resources/team.rb @@ -9,219 +9,397 @@ class Team # @return [Hanzoai::Resources::Team::Callback] attr_reader :callback + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamCreateParams} for more details. + # # Allow users to create a new team. Apply user permissions to their team. # - # 👉 - # [Detailed Doc on setting team budgets](https://docs.hanzo.ai/docs/proxy/team_budgets) - # - # Parameters: - # - # - team_alias: Optional[str] - User defined team alias - # - team_id: Optional[str] - The team id of the user. If none passed, we'll - # generate it. - # - members_with_roles: List[{"role": "admin" or "user", "user_id": - # ""}] - A list of users and their roles in the team. Get user_id when - # making a new user via `/user/new`. - # - metadata: Optional[dict] - Metadata for team, store information for team. - # Example metadata = {"extra_info": "some info"} - # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - - # all keys with this team_id will have at max this TPM limit - # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - - # all keys associated with this team_id will have at max this RPM limit - # - max_budget: Optional[float] - The maximum budget allocated to the team - all - # keys for this team_id will have at max this max_budget - # - budget_duration: Optional[str] - The duration of the budget for the team. Doc - # [here](https://docs.hanzo.ai/docs/proxy/team_budgets) - # - models: Optional[list] - A list of models associated with the team - all keys - # for this team_id will have at most, these models. If empty, assumes all models - # are allowed. - # - blocked: bool - Flag indicating if the team is blocked or not - will stop all - # calls from keys with this team_id. - # - members: Optional[List] - Control team members via `/team/member/add` and - # `/team/member/delete`. - # - tags: Optional[List[str]] - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - organization_id: Optional[str] - The organization id of the team. Default is - # None. Create via `/organization/new`. - # - model_aliases: Optional[dict] - Model aliases for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - # - guardrails: Optional[List[str]] - Guardrails for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/guardrails) Returns: - # - team_id: (str) Unique team id - used for tracking spend across multiple keys - # for same team id. - # - # \_deprecated_params: - # - # - admins: list - A list of user_id's for the admin role - # - users: list - A list of user_id's for the user role - # - # Example Request: - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_alias": "my-new-team_2", - # "members_with_roles": [{"role": "admin", "user_id": "user-1234"}, - # {"role": "user", "user_id": "user-2434"}] - # }' - # - # ``` - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_alias": "QA Prod Bot", - # "max_budget": 0.000000001, - # "budget_duration": "1d" - # }' - # ``` - # - # @overload create(admins: nil, blocked: nil, budget_duration: nil, guardrails: nil, max_budget: nil, members: nil, members_with_roles: nil, metadata: nil, model_aliases: nil, models: nil, organization_id: nil, rpm_limit: nil, tags: nil, team_alias: nil, team_id: nil, tpm_limit: nil, llm_changed_by: nil, request_options: {}) - # - # @param admins [Array] - # @param blocked [Boolean] - # @param budget_duration [String, nil] - # @param guardrails [Array, nil] - # @param max_budget [Float, nil] - # @param members [Array] - # @param members_with_roles [Array] - # @param metadata [Object, nil] - # @param model_aliases [Object, nil] - # @param models [Array] - # @param organization_id [String, nil] - # @param rpm_limit [Integer, nil] - # @param tags [Array, nil] - # @param team_alias [String, nil] - # @param team_id [String, nil] - # @param tpm_limit [Integer, nil] - # @param llm_changed_by [String] + # 👉 + # [Detailed Doc on setting team budgets](https://docs.litellm.ai/docs/proxy/team_budgets) + # + # Parameters: + # + # - team_alias: Optional[str] - User defined team alias + # - team_id: Optional[str] - The team id of the user. If none passed, we'll + # generate it. + # - members_with_roles: List[{"role": "admin" or "user", "user_id": + # ""}] - A list of users and their roles in the team. Get user_id when + # making a new user via `/user/new`. + # - team_member_permissions: Optional[List[str]] - A list of routes that non-admin + # team members can access. example: ["/key/generate", "/key/update", + # "/key/delete"] + # - metadata: Optional[dict] - Metadata for team, store information for team. + # Example metadata = {"extra_info": "some info"} + # - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) + # limit for this team - applied across all keys for this team. + # - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit + # for this team - applied across all keys for this team. + # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - + # all keys with this team_id will have at max this TPM limit + # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - + # all keys associated with this team_id will have at max this RPM limit + # - rpm_limit_type: Optional[Literal["guaranteed_throughput", + # "best_effort_throughput"]] - The type of RPM limit enforcement. Use + # "guaranteed_throughput" to raise an error if overallocating RPM, or + # "best_effort_throughput" for best effort enforcement. + # - tpm_limit_type: Optional[Literal["guaranteed_throughput", + # "best_effort_throughput"]] - The type of TPM limit enforcement. Use + # "guaranteed_throughput" to raise an error if overallocating TPM, or + # "best_effort_throughput" for best effort enforcement. + # - max_budget: Optional[float] - The maximum budget allocated to the team - all + # keys for this team_id will have at max this max_budget + # - budget_duration: Optional[str] - The duration of the budget for the team. Doc + # [here](https://docs.litellm.ai/docs/proxy/team_budgets) + # - models: Optional[list] - A list of models associated with the team - all keys + # for this team_id will have at most, these models. If empty, assumes all models + # are allowed. + # - blocked: bool - Flag indicating if the team is blocked or not - will stop all + # calls from keys with this team_id. + # - members: Optional[List] - Control team members via `/team/member/add` and + # `/team/member/delete`. + # - tags: Optional[List[str]] - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - prompts: Optional[List[str]] - List of prompts that the team is allowed to + # use. + # - organization_id: Optional[str] - The organization id of the team. Default is + # None. Create via `/organization/new`. + # - model_aliases: Optional[dict] - Model aliases for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) + # - guardrails: Optional[List[str]] - Guardrails for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/guardrails) + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - team_member_budget: Optional[float] - The maximum budget allocated to an + # individual team member. + # - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for + # individual team members. + # - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for + # individual team members. + # - team_member_key_duration: Optional[str] - The duration for a team member's + # key. e.g. "1d", "1w", "1mo" + # - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through + # routes for the team. + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - secret_manager_settings: Optional[dict] - Secret manager settings for the + # team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) + # - router_settings: Optional[UpdateRouterConfig] - team-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # Returns: + # + # - team_id: (str) Unique team id - used for tracking spend across multiple keys + # for same team id. + # + # \_deprecated_params: + # + # - admins: list - A list of user_id's for the admin role + # - users: list - A list of user_id's for the user role + # + # Example Request: + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_alias": "my-new-team_2", + # "members_with_roles": [{"role": "admin", "user_id": "user-1234"}, + # {"role": "user", "user_id": "user-2434"}] + # }' + # + # ``` + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_alias": "QA Prod Bot", + # "max_budget": 0.000000001, + # "budget_duration": "1d" + # }' + # ``` + # + # @overload create(admins: nil, allowed_passthrough_routes: nil, allowed_vector_store_indexes: nil, blocked: nil, budget_duration: nil, guardrails: nil, max_budget: nil, members: nil, members_with_roles: nil, metadata: nil, model_aliases: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, prompts: nil, router_settings: nil, rpm_limit: nil, rpm_limit_type: nil, secret_manager_settings: nil, tags: nil, team_alias: nil, team_id: nil, team_member_budget: nil, team_member_key_duration: nil, team_member_permissions: nil, team_member_rpm_limit: nil, team_member_tpm_limit: nil, tpm_limit: nil, tpm_limit_type: nil, litellm_changed_by: nil, request_options: {}) + # + # @param admins [Array] Body param + # + # @param allowed_passthrough_routes [Array, nil] Body param + # + # @param allowed_vector_store_indexes [Array, nil] Body param + # + # @param blocked [Boolean] Body param + # + # @param budget_duration [String, nil] Body param + # + # @param guardrails [Array, nil] Body param + # + # @param max_budget [Float, nil] Body param + # + # @param members [Array] Body param + # + # @param members_with_roles [Array] Body param + # + # @param metadata [Hash{Symbol=>Object}, nil] Body param + # + # @param model_aliases [Hash{Symbol=>Object}, nil] Body param + # + # @param model_rpm_limit [Hash{Symbol=>Integer}, nil] Body param + # + # @param model_tpm_limit [Hash{Symbol=>Integer}, nil] Body param + # + # @param models [Array] Body param + # + # @param object_permission [Hanzoai::Models::TeamCreateParams::ObjectPermission, nil] Body param + # + # @param organization_id [String, nil] Body param + # + # @param prompts [Array, nil] Body param + # + # @param router_settings [Hash{Symbol=>Object}, nil] Body param + # + # @param rpm_limit [Integer, nil] Body param + # + # @param rpm_limit_type [Symbol, Hanzoai::Models::TeamCreateParams::RpmLimitType, nil] Body param + # + # @param secret_manager_settings [Hash{Symbol=>Object}, nil] Body param + # + # @param tags [Array, nil] Body param + # + # @param team_alias [String, nil] Body param + # + # @param team_id [String, nil] Body param + # + # @param team_member_budget [Float, nil] Body param + # + # @param team_member_key_duration [String, nil] Body param + # + # @param team_member_permissions [Array, nil] Body param + # + # @param team_member_rpm_limit [Integer, nil] Body param + # + # @param team_member_tpm_limit [Integer, nil] Body param + # + # @param tpm_limit [Integer, nil] Body param + # + # @param tpm_limit_type [Symbol, Hanzoai::Models::TeamCreateParams::TpmLimitType, nil] Body param + # + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::TeamCreateResponse] # # @see Hanzoai::Models::TeamCreateParams def create(params = {}) - parsed, options = Hanzoai::Models::TeamCreateParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::TeamCreateParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "team/new", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Models::TeamCreateResponse, options: options ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamUpdateParams} for more details. + # # Use `/team/member_add` AND `/team/member/delete` to add/remove new team members # - # You can now update team budget / rate limits via /team/update - # - # Parameters: - # - # - team_id: str - The team id of the user. Required param. - # - team_alias: Optional[str] - User defined team alias - # - metadata: Optional[dict] - Metadata for team, store information for team. - # Example metadata = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" - # } - # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - - # all keys with this team_id will have at max this TPM limit - # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - - # all keys associated with this team_id will have at max this RPM limit - # - max_budget: Optional[float] - The maximum budget allocated to the team - all - # keys for this team_id will have at max this max_budget - # - budget_duration: Optional[str] - The duration of the budget for the team. Doc - # [here](https://docs.hanzo.ai/docs/proxy/team_budgets) - # - models: Optional[list] - A list of models associated with the team - all keys - # for this team_id will have at most, these models. If empty, assumes all models - # are allowed. - # - blocked: bool - Flag indicating if the team is blocked or not - will stop all - # calls from keys with this team_id. - # - tags: Optional[List[str]] - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - organization_id: Optional[str] - The organization id of the team. Default is - # None. Create via `/organization/new`. - # - model_aliases: Optional[dict] - Model aliases for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - # - guardrails: Optional[List[str]] - Guardrails for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/guardrails) Example - update team TPM - # Limit - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", - # "tpm_limit": 100 - # }' - # ``` - # - # Example - Update Team `max_budget` budget - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", - # "max_budget": 10 - # }' - # ``` - # - # @overload update(team_id:, blocked: nil, budget_duration: nil, guardrails: nil, max_budget: nil, metadata: nil, model_aliases: nil, models: nil, organization_id: nil, rpm_limit: nil, tags: nil, team_alias: nil, tpm_limit: nil, llm_changed_by: nil, request_options: {}) + # You can now update team budget / rate limits via /team/update + # + # Parameters: + # + # - team_id: str - The team id of the user. Required param. + # - team_alias: Optional[str] - User defined team alias + # - team_member_permissions: Optional[List[str]] - A list of routes that non-admin + # team members can access. example: ["/key/generate", "/key/update", + # "/key/delete"] + # - metadata: Optional[dict] - Metadata for team, store information for team. + # Example metadata = {"team": "core-infra", "app": "app2", "email": + # "ishaan@berri.ai" } + # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - + # all keys with this team_id will have at max this TPM limit + # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - + # all keys associated with this team_id will have at max this RPM limit + # - max_budget: Optional[float] - The maximum budget allocated to the team - all + # keys for this team_id will have at max this max_budget + # - budget_duration: Optional[str] - The duration of the budget for the team. Doc + # [here](https://docs.litellm.ai/docs/proxy/team_budgets) + # - models: Optional[list] - A list of models associated with the team - all keys + # for this team_id will have at most, these models. If empty, assumes all models + # are allowed. + # - prompts: Optional[List[str]] - List of prompts that the team is allowed to + # use. + # - blocked: bool - Flag indicating if the team is blocked or not - will stop all + # calls from keys with this team_id. + # - tags: Optional[List[str]] - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - organization_id: Optional[str] - The organization id of the team. Default is + # None. Create via `/organization/new`. + # - model_aliases: Optional[dict] - Model aliases for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) + # - guardrails: Optional[List[str]] - Guardrails for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/guardrails) + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - team_member_budget: Optional[float] - The maximum budget allocated to an + # individual team member. + # - team_member_budget_duration: Optional[str] - The duration of the budget for + # the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) + # - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for + # individual team members. + # - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for + # individual team members. + # - team_member_key_duration: Optional[str] - The duration for a team member's + # key. e.g. "1d", "1w", "1mo" + # - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through + # routes for the team. + # - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) + # limit per model for this team. Example: {"gpt-4": 100, "gpt-3.5-turbo": 200} + # - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit + # per model for this team. Example: {"gpt-4": 10000, "gpt-3.5-turbo": 20000} + # Example - update team TPM Limit + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - secret_manager_settings: Optional[dict] - Secret manager settings for the + # team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) + # - router_settings: Optional[UpdateRouterConfig] - team-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", + # "tpm_limit": 100 + # }' + # ``` + # + # Example - Update Team `max_budget` budget + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", + # "max_budget": 10 + # }' + # ``` + # + # @overload update(team_id:, allowed_passthrough_routes: nil, allowed_vector_store_indexes: nil, blocked: nil, budget_duration: nil, guardrails: nil, max_budget: nil, metadata: nil, model_aliases: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organization_id: nil, prompts: nil, router_settings: nil, rpm_limit: nil, secret_manager_settings: nil, tags: nil, team_alias: nil, team_member_budget: nil, team_member_budget_duration: nil, team_member_key_duration: nil, team_member_rpm_limit: nil, team_member_tpm_limit: nil, tpm_limit: nil, litellm_changed_by: nil, request_options: {}) + # + # @param team_id [String] Body param + # + # @param allowed_passthrough_routes [Array, nil] Body param + # + # @param allowed_vector_store_indexes [Array, nil] Body param + # + # @param blocked [Boolean, nil] Body param + # + # @param budget_duration [String, nil] Body param + # + # @param guardrails [Array, nil] Body param + # + # @param max_budget [Float, nil] Body param + # + # @param metadata [Hash{Symbol=>Object}, nil] Body param + # + # @param model_aliases [Hash{Symbol=>Object}, nil] Body param + # + # @param model_rpm_limit [Hash{Symbol=>Integer}, nil] Body param + # + # @param model_tpm_limit [Hash{Symbol=>Integer}, nil] Body param + # + # @param models [Array, nil] Body param + # + # @param object_permission [Hanzoai::Models::TeamUpdateParams::ObjectPermission, nil] Body param + # + # @param organization_id [String, nil] Body param + # + # @param prompts [Array, nil] Body param + # + # @param router_settings [Hash{Symbol=>Object}, nil] Body param + # + # @param rpm_limit [Integer, nil] Body param + # + # @param secret_manager_settings [Hash{Symbol=>Object}, nil] Body param + # + # @param tags [Array, nil] Body param + # + # @param team_alias [String, nil] Body param + # + # @param team_member_budget [Float, nil] Body param + # + # @param team_member_budget_duration [String, nil] Body param + # + # @param team_member_key_duration [String, nil] Body param + # + # @param team_member_rpm_limit [Integer, nil] Body param + # + # @param team_member_tpm_limit [Integer, nil] Body param + # + # @param tpm_limit [Integer, nil] Body param + # + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # @param team_id [String] - # @param blocked [Boolean, nil] - # @param budget_duration [String, nil] - # @param guardrails [Array, nil] - # @param max_budget [Float, nil] - # @param metadata [Object, nil] - # @param model_aliases [Object, nil] - # @param models [Array, nil] - # @param organization_id [String, nil] - # @param rpm_limit [Integer, nil] - # @param tags [Array, nil] - # @param team_alias [String, nil] - # @param tpm_limit [Integer, nil] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::TeamUpdateParams def update(params) - parsed, options = Hanzoai::Models::TeamUpdateParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::TeamUpdateParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "team/update", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Internal::Type::Unknown, options: options ) end # ``` - # curl --location --request GET 'http://0.0.0.0:4000/team/list' --header 'Authorization: Bearer sk-1234' - # ``` + # curl --location --request GET 'http://0.0.0.0:4000/team/list' --header 'Authorization: Bearer sk-1234' + # ``` # - # Parameters: + # Parameters: # - # - user_id: str - Optional. If passed will only return teams that the user_id is - # a member of. - # - organization_id: str - Optional. If passed will only return teams that belong - # to the organization_id. Pass 'default_organization' to get all teams without - # organization_id. + # - user_id: str - Optional. If passed will only return teams that the user_id is + # a member of. + # - organization_id: str - Optional. If passed will only return teams that belong + # to the organization_id. Pass 'default_organization' to get all teams without + # organization_id. # # @overload list(organization_id: nil, user_id: nil, request_options: {}) # # @param organization_id [String, nil] - # @param user_id [String, nil] + # + # @param user_id [String, nil] Only return teams which this 'user_id' belongs to + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::TeamListParams def list(params = {}) - parsed, options = Hanzoai::Models::TeamListParams.dump_request(params) + parsed, options = Hanzoai::TeamListParams.dump_request(params) @client.request( method: :get, path: "team/list", @@ -231,67 +409,76 @@ def list(params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamDeleteParams} for more details. + # # delete team and associated team keys # - # Parameters: + # Parameters: + # + # - team_ids: List[str] - Required. List of team IDs to delete. Example: + # ["team-1234", "team-5678"] + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "team_ids": ["8d916b1c-510d-4894-a334-1c16a93344f5"] + # }' + # ``` # - # - team_ids: List[str] - Required. List of team IDs to delete. Example: - # ["team-1234", "team-5678"] + # @overload delete(team_ids:, litellm_changed_by: nil, request_options: {}) # - # ``` - # curl --location 'http://0.0.0.0:4000/team/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "team_ids": ["8d916b1c-510d-4894-a334-1c16a93344f5"] - # }' - # ``` + # @param team_ids [Array] Body param # - # @overload delete(team_ids:, llm_changed_by: nil, request_options: {}) + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # @param team_ids [Array] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::TeamDeleteParams def delete(params) - parsed, options = Hanzoai::Models::TeamDeleteParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::TeamDeleteParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "team/delete", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Internal::Type::Unknown, options: options ) end - # [BETA] + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::TeamAddMemberParams} for more details. # - # Add new members (either via user_email or user_id) to a team + # Add new members (either via user_email or user_id) to a team # - # If user doesn't exist, new user row will also be added to User Table + # If user doesn't exist, new user row will also be added to User Table # - # Only proxy_admin or admin of team, allowed to access this endpoint. + # Only proxy_admin or admin of team, allowed to access this endpoint. # - # ``` + # ``` # - # curl -X POST 'http://0.0.0.0:4000/team/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{"team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", "member": {"role": "user", "user_id": "dev247652@hanzo.ai"}}' + # curl -X POST 'http://0.0.0.0:4000/team/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{"team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", "member": {"role": "user", "user_id": "krrish247652@berri.ai"}}' # - # ``` + # ``` # # @overload add_member(member:, team_id:, max_budget_in_team: nil, request_options: {}) # - # @param member [Array, Hanzoai::Models::Member] - # @param team_id [String] - # @param max_budget_in_team [Float, nil] + # @param member [Array, Hanzoai::Models::Member] Member object or list of member objects to add. Each member must include either + # + # @param team_id [String] The ID of the team to add the member to + # + # @param max_budget_in_team [Float, nil] Maximum budget allocated to this user within the team. If not set, user has unli + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::TeamAddMemberResponse] # # @see Hanzoai::Models::TeamAddMemberParams def add_member(params) - parsed, options = Hanzoai::Models::TeamAddMemberParams.dump_request(params) + parsed, options = Hanzoai::TeamAddMemberParams.dump_request(params) @client.request( method: :post, path: "team/member_add", @@ -303,21 +490,21 @@ def add_member(params) # Blocks all calls from keys with this team id. # - # Parameters: + # Parameters: # - # - team_id: str - Required. The unique identifier of the team to block. + # - team_id: str - Required. The unique identifier of the team to block. # - # Example: + # Example: # - # ``` - # curl --location 'http://0.0.0.0:4000/team/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234" - # }' - # ``` + # ``` + # curl --location 'http://0.0.0.0:4000/team/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234" + # }' + # ``` # - # Returns: + # Returns: # - # - The updated team record with blocked=True + # - The updated team record with blocked=True # # @overload block(team_id:, request_options: {}) # @@ -328,7 +515,7 @@ def add_member(params) # # @see Hanzoai::Models::TeamBlockParams def block(params) - parsed, options = Hanzoai::Models::TeamBlockParams.dump_request(params) + parsed, options = Hanzoai::TeamBlockParams.dump_request(params) @client.request( method: :post, path: "team/block", @@ -340,15 +527,15 @@ def block(params) # Disable all logging callbacks for a team # - # Parameters: + # Parameters: # - # - team_id (str, required): The unique identifier for the team + # - team_id (str, required): The unique identifier for the team # - # Example curl: + # Example curl: # - # ``` - # curl -X POST 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/disable_logging' -H 'Authorization: Bearer sk-1234' - # ``` + # ``` + # curl -X POST 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/disable_logging' -H 'Authorization: Bearer sk-1234' + # ``` # # @overload disable_logging(team_id, request_options: {}) # @@ -378,7 +565,7 @@ def disable_logging(team_id, params = {}) # # @see Hanzoai::Models::TeamListAvailableParams def list_available(params = {}) - parsed, options = Hanzoai::Models::TeamListAvailableParams.dump_request(params) + parsed, options = Hanzoai::TeamListAvailableParams.dump_request(params) @client.request( method: :get, path: "team/available", @@ -390,19 +577,19 @@ def list_available(params = {}) # [BETA] # - # delete members (either via user_email or user_id) from a team + # delete members (either via user_email or user_id) from a team # - # If user doesn't exist, an exception will be raised + # If user doesn't exist, an exception will be raised # - # ``` - # curl -X POST 'http://0.0.0.0:8000/team/member_delete' - # -H 'Authorization: Bearer sk-1234' - # -H 'Content-Type: application/json' - # -d '{ - # "team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", - # "user_id": "dev247652@hanzo.ai" - # }' - # ``` + # ``` + # curl -X POST 'http://0.0.0.0:8000/team/member_delete' + # -H 'Authorization: Bearer sk-1234' + # -H 'Content-Type: application/json' + # -d '{ + # "team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", + # "user_id": "krrish247652@berri.ai" + # }' + # ``` # # @overload remove_member(team_id:, user_email: nil, user_id: nil, request_options: {}) # @@ -415,7 +602,7 @@ def list_available(params = {}) # # @see Hanzoai::Models::TeamRemoveMemberParams def remove_member(params) - parsed, options = Hanzoai::Models::TeamRemoveMemberParams.dump_request(params) + parsed, options = Hanzoai::TeamRemoveMemberParams.dump_request(params) @client.request( method: :post, path: "team/member_delete", @@ -427,24 +614,25 @@ def remove_member(params) # get info on team + related keys # - # Parameters: + # Parameters: # - # - team_id: str - Required. The unique identifier of the team to get info on. + # - team_id: str - Required. The unique identifier of the team to get info on. # - # ``` - # curl --location 'http://localhost:4000/team/info?team_id=your_team_id_here' --header 'Authorization: Bearer your_api_key_here' - # ``` + # ``` + # curl --location 'http://localhost:4000/team/info?team_id=your_team_id_here' --header 'Authorization: Bearer your_api_key_here' + # ``` # # @overload retrieve_info(team_id: nil, request_options: {}) # - # @param team_id [String] + # @param team_id [String] Team ID in the request parameters + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::TeamRetrieveInfoParams def retrieve_info(params = {}) - parsed, options = Hanzoai::Models::TeamRetrieveInfoParams.dump_request(params) + parsed, options = Hanzoai::TeamRetrieveInfoParams.dump_request(params) @client.request( method: :get, path: "team/info", @@ -456,17 +644,17 @@ def retrieve_info(params = {}) # Blocks all calls from keys with this team id. # - # Parameters: + # Parameters: # - # - team_id: str - Required. The unique identifier of the team to unblock. + # - team_id: str - Required. The unique identifier of the team to unblock. # - # Example: + # Example: # - # ``` - # curl --location 'http://0.0.0.0:4000/team/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234" - # }' - # ``` + # ``` + # curl --location 'http://0.0.0.0:4000/team/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234" + # }' + # ``` # # @overload unblock(team_id:, request_options: {}) # @@ -477,7 +665,7 @@ def retrieve_info(params = {}) # # @see Hanzoai::Models::TeamUnblockParams def unblock(params) - parsed, options = Hanzoai::Models::TeamUnblockParams.dump_request(params) + parsed, options = Hanzoai::TeamUnblockParams.dump_request(params) @client.request( method: :post, path: "team/unblock", @@ -489,22 +677,31 @@ def unblock(params) # [BETA] # - # Update team member budgets and team member role + # Update team member budgets and team member role # - # @overload update_member(team_id:, max_budget_in_team: nil, role: nil, user_email: nil, user_id: nil, request_options: {}) + # @overload update_member(team_id:, max_budget_in_team: nil, role: nil, rpm_limit: nil, tpm_limit: nil, user_email: nil, user_id: nil, request_options: {}) # # @param team_id [String] + # # @param max_budget_in_team [Float, nil] + # # @param role [Symbol, Hanzoai::Models::TeamUpdateMemberParams::Role, nil] + # + # @param rpm_limit [Integer, nil] Requests per minute limit for this team member + # + # @param tpm_limit [Integer, nil] Tokens per minute limit for this team member + # # @param user_email [String, nil] + # # @param user_id [String, nil] + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::TeamUpdateMemberResponse] # # @see Hanzoai::Models::TeamUpdateMemberParams def update_member(params) - parsed, options = Hanzoai::Models::TeamUpdateMemberParams.dump_request(params) + parsed, options = Hanzoai::TeamUpdateMemberParams.dump_request(params) @client.request( method: :post, path: "team/member_update", diff --git a/lib/hanzoai/resources/team/callback.rb b/lib/hanzoai/resources/team/callback.rb index e1c8acc3..9db395ea 100644 --- a/lib/hanzoai/resources/team/callback.rb +++ b/lib/hanzoai/resources/team/callback.rb @@ -6,23 +6,23 @@ class Team class Callback # Get the success/failure callbacks and variables for a team # - # Parameters: + # Parameters: # - # - team_id (str, required): The unique identifier for the team + # - team_id (str, required): The unique identifier for the team # - # Example curl: + # Example curl: # - # ``` - # curl -X GET 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Authorization: Bearer sk-1234' - # ``` + # ``` + # curl -X GET 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Authorization: Bearer sk-1234' + # ``` # - # This will return the callback settings for the team with id - # dbe2f686-a686-4896-864a-4c3924458709 + # This will return the callback settings for the team with id + # dbe2f686-a686-4896-864a-4c3924458709 # - # Returns { "status": "success", "data": { "team_id": team_id, - # "success_callbacks": team_callback_settings_obj.success_callback, - # "failure_callbacks": team_callback_settings_obj.failure_callback, - # "callback_vars": team_callback_settings_obj.callback_vars, }, } + # Returns { "status": "success", "data": { "team_id": team_id, + # "success_callbacks": team_callback_settings_obj.success_callback, + # "failure_callbacks": team_callback_settings_obj.failure_callback, + # "callback_vars": team_callback_settings_obj.callback_vars, }, } # # @overload retrieve(team_id, request_options: {}) # @@ -41,67 +41,75 @@ def retrieve(team_id, params = {}) ) end + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::Team::CallbackAddParams} for more details. + # # Add a success/failure callback to a team # - # Use this if if you want different teams to have different success/failure - # callbacks - # - # Parameters: - # - # - callback_name (Literal["langfuse", "langsmith", "gcs"], required): The name of - # the callback to add - # - callback_type (Literal["success", "failure", "success_and_failure"], - # required): The type of callback to add. One of: - # - "success": Callback for successful LLM calls - # - "failure": Callback for failed LLM calls - # - "success_and_failure": Callback for both successful and failed LLM calls - # - callback_vars (StandardCallbackDynamicParams, required): A dictionary of - # variables to pass to the callback - # - langfuse_public_key: The public key for the Langfuse callback - # - langfuse_secret_key: The secret key for the Langfuse callback - # - langfuse_secret: The secret for the Langfuse callback - # - langfuse_host: The host for the Langfuse callback - # - gcs_bucket_name: The name of the GCS bucket - # - gcs_path_service_account: The path to the GCS service account - # - langsmith_api_key: The API key for the Langsmith callback - # - langsmith_project: The project for the Langsmith callback - # - langsmith_base_url: The base URL for the Langsmith callback - # - # Example curl: - # - # ``` - # curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{ - # "callback_name": "langfuse", - # "callback_type": "success", - # "callback_vars": {"langfuse_public_key": "pk-lf-xxxx1", "langfuse_secret_key": "sk-xxxxx"} - # - # }' - # ``` - # - # This means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, - # all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and - # the secret key sk-xxxxx - # - # @overload add(team_id, callback_name:, callback_vars:, callback_type: nil, llm_changed_by: nil, request_options: {}) + # Use this if if you want different teams to have different success/failure + # callbacks + # + # Parameters: + # + # - callback_name (Literal["langfuse", "langsmith", "gcs"], required): The name of + # the callback to add + # - callback_type (Literal["success", "failure", "success_and_failure"], + # required): The type of callback to add. One of: + # - "success": Callback for successful LLM calls + # - "failure": Callback for failed LLM calls + # - "success_and_failure": Callback for both successful and failed LLM calls + # - callback_vars (StandardCallbackDynamicParams, required): A dictionary of + # variables to pass to the callback + # - langfuse_public_key: The public key for the Langfuse callback + # - langfuse_secret_key: The secret key for the Langfuse callback + # - langfuse_secret: The secret for the Langfuse callback + # - langfuse_host: The host for the Langfuse callback + # - gcs_bucket_name: The name of the GCS bucket + # - gcs_path_service_account: The path to the GCS service account + # - langsmith_api_key: The API key for the Langsmith callback + # - langsmith_project: The project for the Langsmith callback + # - langsmith_base_url: The base URL for the Langsmith callback + # + # Example curl: + # + # ``` + # curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{ + # "callback_name": "langfuse", + # "callback_type": "success", + # "callback_vars": {"langfuse_public_key": "pk-lf-xxxx1", "langfuse_secret_key": "sk-xxxxx"} + # + # }' + # ``` + # + # This means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, + # all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and + # the secret key sk-xxxxx + # + # @overload add(team_id, callback_name:, callback_vars:, callback_type: nil, litellm_changed_by: nil, request_options: {}) + # + # @param team_id [String] Path param + # + # @param callback_name [String] Body param + # + # @param callback_vars [Hash{Symbol=>String}] Body param + # + # @param callback_type [Symbol, Hanzoai::Models::Team::CallbackAddParams::CallbackType, nil] Body param + # + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # @param team_id [String] - # @param callback_name [String] - # @param callback_vars [Hash{Symbol=>String}] - # @param callback_type [Symbol, Hanzoai::Models::Team::CallbackAddParams::CallbackType, nil] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::Team::CallbackAddParams def add(team_id, params) - parsed, options = Hanzoai::Models::Team::CallbackAddParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::Team::CallbackAddParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: ["team/%1$s/callback", team_id], - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Internal::Type::Unknown, options: options ) diff --git a/lib/hanzoai/resources/team/model.rb b/lib/hanzoai/resources/team/model.rb index f1cd0c06..0ddb0ac0 100644 --- a/lib/hanzoai/resources/team/model.rb +++ b/lib/hanzoai/resources/team/model.rb @@ -5,21 +5,21 @@ module Resources class Team class Model # Add models to a team's allowed model list. Only proxy admin or team admin can - # add models. + # add models. # - # Parameters: + # Parameters: # - # - team_id: str - Required. The team to add models to - # - models: List[str] - Required. List of models to add to the team + # - team_id: str - Required. The team to add models to + # - models: List[str] - Required. List of models to add to the team # - # Example Request: + # Example Request: # - # ``` - # curl --location 'http://0.0.0.0:4000/team/model/add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234", - # "models": ["gpt-4", "claude-2"] - # }' - # ``` + # ``` + # curl --location 'http://0.0.0.0:4000/team/model/add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234", + # "models": ["gpt-4", "claude-2"] + # }' + # ``` # # @overload add(models:, team_id:, request_options: {}) # @@ -31,7 +31,7 @@ class Model # # @see Hanzoai::Models::Team::ModelAddParams def add(params) - parsed, options = Hanzoai::Models::Team::ModelAddParams.dump_request(params) + parsed, options = Hanzoai::Team::ModelAddParams.dump_request(params) @client.request( method: :post, path: "team/model/add", @@ -42,21 +42,21 @@ def add(params) end # Remove models from a team's allowed model list. Only proxy admin or team admin - # can remove models. + # can remove models. # - # Parameters: + # Parameters: # - # - team_id: str - Required. The team to remove models from - # - models: List[str] - Required. List of models to remove from the team + # - team_id: str - Required. The team to remove models from + # - models: List[str] - Required. List of models to remove from the team # - # Example Request: + # Example Request: # - # ``` - # curl --location 'http://0.0.0.0:4000/team/model/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234", - # "models": ["gpt-4"] - # }' - # ``` + # ``` + # curl --location 'http://0.0.0.0:4000/team/model/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234", + # "models": ["gpt-4"] + # }' + # ``` # # @overload remove(models:, team_id:, request_options: {}) # @@ -68,7 +68,7 @@ def add(params) # # @see Hanzoai::Models::Team::ModelRemoveParams def remove(params) - parsed, options = Hanzoai::Models::Team::ModelRemoveParams.dump_request(params) + parsed, options = Hanzoai::Team::ModelRemoveParams.dump_request(params) @client.request( method: :post, path: "team/model/delete", diff --git a/lib/hanzoai/resources/test.rb b/lib/hanzoai/resources/test.rb index 90723be2..77cdafcd 100644 --- a/lib/hanzoai/resources/test.rb +++ b/lib/hanzoai/resources/test.rb @@ -5,11 +5,11 @@ module Resources class Test # [DEPRECATED] use `/health/liveliness` instead. # - # A test endpoint that pings the proxy server to check if it's healthy. + # A test endpoint that pings the proxy server to check if it's healthy. # - # Parameters: request (Request): The incoming request. + # Parameters: request (Request): The incoming request. # - # Returns: dict: A dictionary containing the route of the request URL. + # Returns: dict: A dictionary containing the route of the request URL. # # @overload ping(request_options: {}) # diff --git a/lib/hanzoai/resources/threads.rb b/lib/hanzoai/resources/threads.rb index 5f1b8ba5..e8b5a912 100644 --- a/lib/hanzoai/resources/threads.rb +++ b/lib/hanzoai/resources/threads.rb @@ -11,8 +11,8 @@ class Threads # Create a thread. # - # API Reference - - # https://platform.openai.com/docs/api-reference/threads/createThread + # API Reference - + # https://platform.openai.com/docs/api-reference/threads/createThread # # @overload create(request_options: {}) # @@ -32,7 +32,7 @@ def create(params = {}) # Retrieves a thread. # - # API Reference - https://platform.openai.com/docs/api-reference/threads/getThread + # API Reference - https://platform.openai.com/docs/api-reference/threads/getThread # # @overload retrieve(thread_id, request_options: {}) # diff --git a/lib/hanzoai/resources/threads/messages.rb b/lib/hanzoai/resources/threads/messages.rb index 540c7c06..a51bb2dc 100644 --- a/lib/hanzoai/resources/threads/messages.rb +++ b/lib/hanzoai/resources/threads/messages.rb @@ -6,8 +6,8 @@ class Threads class Messages # Create a message. # - # API Reference - - # https://platform.openai.com/docs/api-reference/messages/createMessage + # API Reference - + # https://platform.openai.com/docs/api-reference/messages/createMessage # # @overload create(thread_id, request_options: {}) # @@ -28,8 +28,8 @@ def create(thread_id, params = {}) # Returns a list of messages for a given thread. # - # API Reference - - # https://platform.openai.com/docs/api-reference/messages/listMessages + # API Reference - + # https://platform.openai.com/docs/api-reference/messages/listMessages # # @overload list(thread_id, request_options: {}) # diff --git a/lib/hanzoai/resources/threads/runs.rb b/lib/hanzoai/resources/threads/runs.rb index 56bbaaad..9e1aecce 100644 --- a/lib/hanzoai/resources/threads/runs.rb +++ b/lib/hanzoai/resources/threads/runs.rb @@ -6,7 +6,7 @@ class Threads class Runs # Create a run. # - # API Reference: https://platform.openai.com/docs/api-reference/runs/createRun + # API Reference: https://platform.openai.com/docs/api-reference/runs/createRun # # @overload create(thread_id, request_options: {}) # diff --git a/lib/hanzoai/resources/user.rb b/lib/hanzoai/resources/user.rb index c87dbd5f..2dd4a2ef 100644 --- a/lib/hanzoai/resources/user.rb +++ b/lib/hanzoai/resources/user.rb @@ -4,112 +4,122 @@ module Hanzoai module Resources class User # Use this to create a new INTERNAL user with a budget. Internal Users can access - # LLM Admin UI to make keys, request access to models. This creates a new user and - # generates a new api key for the new user. The new api key is returned. - # - # Returns user id, budget + new key. - # - # Parameters: - # - # - user_id: Optional[str] - Specify a user id. If not set, a unique id will be - # generated. - # - user_alias: Optional[str] - A descriptive name for you to know who this user - # id refers to. - # - teams: Optional[list] - specify a list of team id's a user belongs to. - # - user_email: Optional[str] - Specify a user email. - # - send_invite_email: Optional[bool] - Specify if an invite email should be sent. - # - user_role: Optional[str] - Specify a user role - "proxy_admin", - # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", - # "customer". Info about each role here: - # `https://github.com/hanzoai/llm/llm/proxy/_types.py#L20` - # - max_budget: Optional[float] - Specify max budget for a given user. - # - budget_duration: Optional[str] - Budget is reset at the end of specified - # duration. If not set, budget is never reset. You can set duration as seconds - # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, - # key is allowed to call all models). Set to ['no-default-models'] to block all - # model access. Restricting user to only team-based model access. - # - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per - # minute) - # - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per - # minute) - # - auto_create_key: bool - Default=True. Flag used for returning a key as part of - # the /user/new response - # - aliases: Optional[dict] - Model aliases for the user - - # [Docs](https://llm.vercel.app/docs/proxy/virtual_keys#model-aliases) - # - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - # - allowed_cache_controls: Optional[list] - List of allowed cache control values. - # Example - ["no-cache", "no-store"]. See all values - - # https://docs.hanzo.ai/docs/proxy/caching#turn-on--off-caching-per-request- - # - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - # - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active - # guardrails for the user - # - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, - # eg. turning off pii masking. - # - metadata: Optional[dict] - Metadata for user, store information for user. - # Example metadata = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" - # } - # - max_parallel_requests: Optional[int] - Rate limit a user based on the number - # of parallel requests. Raises 429 error, if user's parallel requests > x. - # - soft_budget: Optional[float] - Get alerts when user crosses given budget, - # doesn't block requests. - # - model_max_budget: Optional[dict] - Model-specific max budget for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - # - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - # - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - # - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated - # by proxy whenever user is used. You can set duration as seconds ("30s"), - # minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - # - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default - # is None. - # - duration: Optional[str] - Duration for the key auto-created on `/user/new`. - # Default is None. - # - key_alias: Optional[str] - Alias for the key auto-created on `/user/new`. - # Default is None. + # LiteLLM Admin UI to make keys, request access to models. This creates a new user + # and generates a new api key for the new user. The new api key is returned. # - # Returns: + # Returns user id, budget + new key. + # + # Parameters: # - # - key: (str) The generated api key for the user - # - expires: (datetime) Datetime object for when key expires. - # - user_id: (str) Unique user id - used for tracking spend across multiple keys - # for same user id. - # - max_budget: (float|None) Max budget for given user. + # - user_id: Optional[str] - Specify a user id. If not set, a unique id will be + # generated. + # - user_alias: Optional[str] - A descriptive name for you to know who this user + # id refers to. + # - teams: Optional[list] - specify a list of team id's a user belongs to. + # - user_email: Optional[str] - Specify a user email. + # - send_invite_email: Optional[bool] - Specify if an invite email should be sent. + # - user_role: Optional[str] - Specify a user role - "proxy_admin", + # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", + # "customer". Info about each role here: + # `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` + # - max_budget: Optional[float] - Specify max budget for a given user. + # - budget_duration: Optional[str] - Budget is reset at the end of specified + # duration. If not set, budget is never reset. You can set duration as seconds + # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). + # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, + # key is allowed to call all models). Set to ['no-default-models'] to block all + # model access. Restricting user to only team-based model access. + # - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per + # minute) + # - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per + # minute) + # - auto_create_key: bool - Default=True. Flag used for returning a key as part of + # the /user/new response + # - aliases: Optional[dict] - Model aliases for the user - + # [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) + # - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. + # - allowed_cache_controls: Optional[list] - List of allowed cache control values. + # Example - ["no-cache", "no-store"]. See all values - + # https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- + # - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. + # - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active + # guardrails for the user + # - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, + # eg. turning off pii masking. + # - metadata: Optional[dict] - Metadata for user, store information for user. + # Example metadata = {"team": "core-infra", "app": "app2", "email": + # "ishaan@berri.ai" } + # - max_parallel_requests: Optional[int] - Rate limit a user based on the number + # of parallel requests. Raises 429 error, if user's parallel requests > x. + # - soft_budget: Optional[float] - Get alerts when user crosses given budget, + # doesn't block requests. + # - model_max_budget: Optional[dict] - Model-specific max budget for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) + # - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) + # - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) + # - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated + # by proxy whenever user is used. You can set duration as seconds ("30s"), + # minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). + # - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default + # is None. + # - duration: Optional[str] - Duration for the key auto-created on `/user/new`. + # Default is None. + # - key_alias: Optional[str] - Alias for the key auto-created on `/user/new`. + # Default is None. + # - sso_user_id: Optional[str] - The id of the user in the SSO provider. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal + # user-specific object permission. Example - {"vector_stores": + # ["vector_store_1", "vector_store_2"]}. IF null or {} then no object + # permission. + # - prompts: Optional[List[str]] - List of allowed prompts for the user. If + # specified, the user will only be able to use these specific prompts. + # - organizations: List[str] - List of organization id's the user is a member of + # Returns: + # - key: (str) The generated api key for the user + # - expires: (datetime) Datetime object for when key expires. + # - user_id: (str) Unique user id - used for tracking spend across multiple keys + # for same user id. + # - max_budget: (float|None) Max budget for given user. # - # Usage Example + # Usage Example # - # ```shell - # curl -X POST "http://localhost:4000/user/new" -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ - # "username": "new_user", - # "email": "new_user@example.com" - # }' - # ``` + # ```shell + # curl -X POST "http://localhost:4000/user/new" -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "username": "new_user", + # "email": "new_user@example.com" + # }' + # ``` # - # @overload create(aliases: nil, allowed_cache_controls: nil, auto_create_key: nil, blocked: nil, budget_duration: nil, config: nil, duration: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, permissions: nil, rpm_limit: nil, send_invite_email: nil, spend: nil, team_id: nil, teams: nil, tpm_limit: nil, user_alias: nil, user_email: nil, user_id: nil, user_role: nil, request_options: {}) + # @overload create(aliases: nil, allowed_cache_controls: nil, auto_create_key: nil, blocked: nil, budget_duration: nil, config: nil, duration: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, organizations: nil, permissions: nil, prompts: nil, rpm_limit: nil, send_invite_email: nil, spend: nil, sso_user_id: nil, team_id: nil, teams: nil, tpm_limit: nil, user_alias: nil, user_email: nil, user_id: nil, user_role: nil, request_options: {}) # - # @param aliases [Object, nil] + # @param aliases [Hash{Symbol=>Object}, nil] # @param allowed_cache_controls [Array, nil] # @param auto_create_key [Boolean] # @param blocked [Boolean, nil] # @param budget_duration [String, nil] - # @param config [Object, nil] + # @param config [Hash{Symbol=>Object}, nil] # @param duration [String, nil] # @param guardrails [Array, nil] # @param key_alias [String, nil] # @param max_budget [Float, nil] # @param max_parallel_requests [Integer, nil] - # @param metadata [Object, nil] - # @param model_max_budget [Object, nil] - # @param model_rpm_limit [Object, nil] - # @param model_tpm_limit [Object, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] # @param models [Array, nil] - # @param permissions [Object, nil] + # @param object_permission [Hanzoai::Models::UserCreateParams::ObjectPermission, nil] + # @param organizations [Array, nil] + # @param permissions [Hash{Symbol=>Object}, nil] + # @param prompts [Array, nil] # @param rpm_limit [Integer, nil] # @param send_invite_email [Boolean, nil] # @param spend [Float, nil] + # @param sso_user_id [String, nil] # @param team_id [String, nil] - # @param teams [Array, nil] + # @param teams [Array, Array, nil] # @param tpm_limit [Integer, nil] # @param user_alias [String, nil] # @param user_email [String, nil] @@ -121,7 +131,7 @@ class User # # @see Hanzoai::Models::UserCreateParams def create(params = {}) - parsed, options = Hanzoai::Models::UserCreateParams.dump_request(params) + parsed, options = Hanzoai::UserCreateParams.dump_request(params) @client.request( method: :post, path: "user/new", @@ -133,84 +143,91 @@ def create(params = {}) # Example curl # - # ``` - # curl --location 'http://0.0.0.0:4000/user/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_id": "test-llm-user-4", - # "user_role": "proxy_admin_viewer" - # }' - # ``` - # - # Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique - # id will be generated. - user_email: Optional[str] - Specify a user email. - - # password: Optional[str] - Specify a user password. - user_alias: Optional[str] - - # A descriptive name for you to know who this user id refers to. - teams: - # Optional[list] - specify a list of team id's a user belongs to. - - # send_invite_email: Optional[bool] - Specify if an invite email should be sent. - - # user_role: Optional[str] - Specify a user role - "proxy_admin", - # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", - # "customer". Info about each role here: - # `https://github.com/hanzoai/llm/llm/proxy/_types.py#L20` - max_budget: - # Optional[float] - Specify max budget for a given user. - budget_duration: - # Optional[str] - Budget is reset at the end of specified duration. If not set, - # budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), - # hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - - # Model_name's a user is allowed to call. (if empty, key is allowed to call all - # models) - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens - # per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user - # (Requests per minute) - auto_create_key: bool - Default=True. Flag used for - # returning a key as part of the /user/new response - aliases: Optional[dict] - - # Model aliases for the user - - # [Docs](https://llm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: - # Optional[dict] - [DEPRECATED PARAM] User-specific config. - - # allowed_cache_controls: Optional[list] - List of allowed cache control values. - # Example - ["no-cache", "no-store"]. See all values - - # https://docs.hanzo.ai/docs/proxy/caching#turn-on--off-caching-per-request- - - # blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - - # guardrails: Optional[List[str]] - [Not Implemented Yet] List of active - # guardrails for the user - permissions: Optional[dict] - [Not Implemented Yet] - # User-specific permissions, eg. turning off pii masking. - metadata: - # Optional[dict] - Metadata for user, store information for user. Example metadata - # = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" } - - # max_parallel_requests: Optional[int] - Rate limit a user based on the number of - # parallel requests. Raises 429 error, if user's parallel requests > x. - - # soft_budget: Optional[float] - Get alerts when user crosses given budget, - # doesn't block requests. - model_max_budget: Optional[dict] - Model-specific max - # budget for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - - # model_rpm_limit: Optional[float] - Model-specific rpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - - # model_tpm_limit: Optional[float] - Model-specific tpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - - # spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by - # proxy whenever user is used. You can set duration as seconds ("30s"), minutes - # ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - team_id: Optional[str] - - # [DEPRECATED PARAM] The team id of the user. Default is None. - duration: - # Optional[str] - [NOT IMPLEMENTED]. - key_alias: Optional[str] - [NOT - # IMPLEMENTED]. - # - # @overload update(aliases: nil, allowed_cache_controls: nil, blocked: nil, budget_duration: nil, config: nil, duration: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, password: nil, permissions: nil, rpm_limit: nil, spend: nil, team_id: nil, tpm_limit: nil, user_email: nil, user_id: nil, user_role: nil, request_options: {}) - # - # @param aliases [Object, nil] + # ``` + # curl --location 'http://0.0.0.0:4000/user/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_id": "test-litellm-user-4", + # "user_role": "proxy_admin_viewer" + # }' + # ``` + # + # Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique + # id will be generated. - user_email: Optional[str] - Specify a user email. - + # password: Optional[str] - Specify a user password. - user_alias: Optional[str] - + # A descriptive name for you to know who this user id refers to. - teams: + # Optional[list] - specify a list of team id's a user belongs to. - + # send_invite_email: Optional[bool] - Specify if an invite email should be sent. - + # user_role: Optional[str] - Specify a user role - "proxy_admin", + # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", + # "customer". Info about each role here: + # `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` - max_budget: + # Optional[float] - Specify max budget for a given user. - budget_duration: + # Optional[str] - Budget is reset at the end of specified duration. If not set, + # budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), + # hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - + # Model_name's a user is allowed to call. (if empty, key is allowed to call all + # models) - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens + # per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user + # (Requests per minute) - auto_create_key: bool - Default=True. Flag used for + # returning a key as part of the /user/new response - aliases: Optional[dict] - + # Model aliases for the user - + # [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - + # config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - + # allowed_cache_controls: Optional[list] - List of allowed cache control values. + # Example - ["no-cache", "no-store"]. See all values - + # https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- - + # blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - + # guardrails: Optional[List[str]] - [Not Implemented Yet] List of active + # guardrails for the user - permissions: Optional[dict] - [Not Implemented Yet] + # User-specific permissions, eg. turning off pii masking. - metadata: + # Optional[dict] - Metadata for user, store information for user. Example metadata + # = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - + # max_parallel_requests: Optional[int] - Rate limit a user based on the number of + # parallel requests. Raises 429 error, if user's parallel requests > x. - + # soft_budget: Optional[float] - Get alerts when user crosses given budget, + # doesn't block requests. - model_max_budget: Optional[dict] - Model-specific max + # budget for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - + # model_rpm_limit: Optional[float] - Model-specific rpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - + # model_tpm_limit: Optional[float] - Model-specific tpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - + # spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by + # proxy whenever user is used. You can set duration as seconds ("30s"), minutes + # ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - team_id: Optional[str] - + # [DEPRECATED PARAM] The team id of the user. Default is None. - duration: + # Optional[str] - [NOT IMPLEMENTED]. - key_alias: Optional[str] - [NOT + # IMPLEMENTED]. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - + # internal user-specific object permission. Example - {"vector_stores": + # ["vector_store_1", "vector_store_2"]}. IF null or {} then no object + # permission. - prompts: Optional[List[str]] - List of allowed prompts for the + # user. If specified, the user will only be able to use these specific prompts. + # + # @overload update(aliases: nil, allowed_cache_controls: nil, blocked: nil, budget_duration: nil, config: nil, duration: nil, guardrails: nil, key_alias: nil, max_budget: nil, max_parallel_requests: nil, metadata: nil, model_max_budget: nil, model_rpm_limit: nil, model_tpm_limit: nil, models: nil, object_permission: nil, password: nil, permissions: nil, prompts: nil, rpm_limit: nil, spend: nil, team_id: nil, tpm_limit: nil, user_alias: nil, user_email: nil, user_id: nil, user_role: nil, request_options: {}) + # + # @param aliases [Hash{Symbol=>Object}, nil] # @param allowed_cache_controls [Array, nil] # @param blocked [Boolean, nil] # @param budget_duration [String, nil] - # @param config [Object, nil] + # @param config [Hash{Symbol=>Object}, nil] # @param duration [String, nil] # @param guardrails [Array, nil] # @param key_alias [String, nil] # @param max_budget [Float, nil] # @param max_parallel_requests [Integer, nil] - # @param metadata [Object, nil] - # @param model_max_budget [Object, nil] - # @param model_rpm_limit [Object, nil] - # @param model_tpm_limit [Object, nil] + # @param metadata [Hash{Symbol=>Object}, nil] + # @param model_max_budget [Hash{Symbol=>Object}, nil] + # @param model_rpm_limit [Hash{Symbol=>Object}, nil] + # @param model_tpm_limit [Hash{Symbol=>Object}, nil] # @param models [Array, nil] + # @param object_permission [Hanzoai::Models::UserUpdateParams::ObjectPermission, nil] # @param password [String, nil] - # @param permissions [Object, nil] + # @param permissions [Hash{Symbol=>Object}, nil] + # @param prompts [Array, nil] # @param rpm_limit [Integer, nil] # @param spend [Float, nil] # @param team_id [String, nil] # @param tpm_limit [Integer, nil] + # @param user_alias [String, nil] # @param user_email [String, nil] # @param user_id [String, nil] # @param user_role [Symbol, Hanzoai::Models::UserUpdateParams::UserRole, nil] @@ -220,7 +237,7 @@ def create(params = {}) # # @see Hanzoai::Models::UserUpdateParams def update(params = {}) - parsed, options = Hanzoai::Models::UserUpdateParams.dump_request(params) + parsed, options = Hanzoai::UserUpdateParams.dump_request(params) @client.request( method: :post, path: "user/update", @@ -230,78 +247,43 @@ def update(params = {}) ) end - # Get a paginated list of users, optionally filtered by role. - # - # Used by the UI to populate the user lists. - # - # Parameters: role: Optional[str] Filter users by role. Can be one of: - - # proxy_admin - proxy_admin_viewer - internal_user - internal_user_viewer - # user_ids: Optional[str] Get list of users by user_ids. Comma separated list of - # user_ids. page: int The page number to return page_size: int The number of items - # per page - # - # Currently - admin-only endpoint. - # - # Example curl: - # - # ``` - # http://0.0.0.0:4000/user/list?user_ids=default_user_id,693c1a4a-1cc0-4c7c-afe8-b5d2c8d52e17 - # ``` + # Some parameter documentations has been truncated, see + # {Hanzoai::Models::UserDeleteParams} for more details. # - # @overload list(page: nil, page_size: nil, role: nil, user_ids: nil, request_options: {}) + # delete user and associated user keys # - # @param page [Integer] - # @param page_size [Integer] - # @param role [String, nil] - # @param user_ids [String, nil] - # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] + # ``` + # curl --location 'http://0.0.0.0:4000/user/delete' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data-raw '{ + # "user_ids": ["45e3e396-ee08-4a61-a88e-16b3ce7e0849"] + # }' + # ``` # - # @return [Object] + # Parameters: # - # @see Hanzoai::Models::UserListParams - def list(params = {}) - parsed, options = Hanzoai::Models::UserListParams.dump_request(params) - @client.request( - method: :get, - path: "user/get_users", - query: parsed, - model: Hanzoai::Internal::Type::Unknown, - options: options - ) - end - - # delete user and associated user keys + # - user_ids: List[str] - The list of user id's to be deleted. # - # ``` - # curl --location 'http://0.0.0.0:4000/user/delete' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data-raw '{ - # "user_ids": ["45e3e396-ee08-4a61-a88e-16b3ce7e0849"] - # }' - # ``` + # @overload delete(user_ids:, litellm_changed_by: nil, request_options: {}) # - # Parameters: + # @param user_ids [Array] Body param # - # - user_ids: List[str] - The list of user id's to be deleted. + # @param litellm_changed_by [String] Header param: The litellm-changed-by header enables tracking of actions performe # - # @overload delete(user_ids:, llm_changed_by: nil, request_options: {}) - # - # @param user_ids [Array] - # @param llm_changed_by [String] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::UserDeleteParams def delete(params) - parsed, options = Hanzoai::Models::UserDeleteParams.dump_request(params) - header_params = [:"llm-changed-by"] + parsed, options = Hanzoai::UserDeleteParams.dump_request(params) + header_params = {litellm_changed_by: "litellm-changed-by"} @client.request( method: :post, path: "user/delete", - headers: parsed.slice(*header_params), - body: parsed.except(*header_params), + headers: parsed.slice(*header_params.keys).transform_keys(header_params), + body: parsed.except(*header_params.keys), model: Hanzoai::Internal::Type::Unknown, options: options ) @@ -309,24 +291,25 @@ def delete(params) # [10/07/2024] Note: To get all users (+pagination), use `/user/list` endpoint. # - # Use this to get user information. (user row + all user key info) + # Use this to get user information. (user row + all user key info) # - # Example request + # Example request # - # ``` - # curl -X GET 'http://localhost:4000/user/info?user_id=dev7%40hanzo.ai' --header 'Authorization: Bearer sk-1234' - # ``` + # ``` + # curl -X GET 'http://localhost:4000/user/info?user_id=krrish7%40berri.ai' --header 'Authorization: Bearer sk-1234' + # ``` # # @overload retrieve_info(user_id: nil, request_options: {}) # - # @param user_id [String, nil] + # @param user_id [String, nil] User ID in the request parameters + # # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Object] # # @see Hanzoai::Models::UserRetrieveInfoParams def retrieve_info(params = {}) - parsed, options = Hanzoai::Models::UserRetrieveInfoParams.dump_request(params) + parsed, options = Hanzoai::UserRetrieveInfoParams.dump_request(params) @client.request( method: :get, path: "user/info", diff --git a/lib/hanzoai/resources/utils.rb b/lib/hanzoai/resources/utils.rb index 7ab7de15..4cfaa4f3 100644 --- a/lib/hanzoai/resources/utils.rb +++ b/lib/hanzoai/resources/utils.rb @@ -3,15 +3,15 @@ module Hanzoai module Resources class Utils - # Returns supported openai params for a given llm model name + # Returns supported openai params for a given litellm model name # - # e.g. `gpt-4` vs `gpt-3.5-turbo` + # e.g. `gpt-4` vs `gpt-3.5-turbo` # - # Example curl: + # Example curl: # - # ``` - # curl -X GET --location 'http://localhost:4000/utils/supported_openai_params?model=gpt-3.5-turbo-16k' --header 'Authorization: Bearer sk-1234' - # ``` + # ``` + # curl -X GET --location 'http://localhost:4000/utils/supported_openai_params?model=gpt-3.5-turbo-16k' --header 'Authorization: Bearer sk-1234' + # ``` # # @overload get_supported_openai_params(model:, request_options: {}) # @@ -22,7 +22,7 @@ class Utils # # @see Hanzoai::Models::UtilGetSupportedOpenAIParamsParams def get_supported_openai_params(params) - parsed, options = Hanzoai::Models::UtilGetSupportedOpenAIParamsParams.dump_request(params) + parsed, options = Hanzoai::UtilGetSupportedOpenAIParamsParams.dump_request(params) @client.request( method: :get, path: "utils/supported_openai_params", @@ -32,24 +32,37 @@ def get_supported_openai_params(params) ) end - # Token Counter + # Args: request: TokenCountRequest call_endpoint: bool - When set to "True" it + # will call the token counting endpoint - e.g Anthropic or Google AI Studio Token + # Counting APIs. # - # @overload token_counter(model:, messages: nil, prompt: nil, request_options: {}) + # Returns: TokenCountResponse + # + # @overload token_counter(model:, call_endpoint: nil, contents: nil, messages: nil, prompt: nil, request_options: {}) + # + # @param model [String] Body param + # + # @param call_endpoint [Boolean] Query param + # + # @param contents [ArrayObject}>, nil] Body param + # + # @param messages [ArrayObject}>, nil] Body param + # + # @param prompt [String, nil] Body param # - # @param model [String] - # @param messages [Array, nil] - # @param prompt [String, nil] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::UtilTokenCounterResponse] # # @see Hanzoai::Models::UtilTokenCounterParams def token_counter(params) - parsed, options = Hanzoai::Models::UtilTokenCounterParams.dump_request(params) + parsed, options = Hanzoai::UtilTokenCounterParams.dump_request(params) + query_params = [:call_endpoint] @client.request( method: :post, path: "utils/token_counter", - body: parsed, + query: parsed.slice(*query_params), + body: parsed.except(*query_params), model: Hanzoai::Models::UtilTokenCounterResponse, options: options ) @@ -60,14 +73,14 @@ def token_counter(params) # @overload transform_request(call_type:, request_body:, request_options: {}) # # @param call_type [Symbol, Hanzoai::Models::UtilTransformRequestParams::CallType] - # @param request_body [Object] + # @param request_body [Hash{Symbol=>Object}] # @param request_options [Hanzoai::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [Hanzoai::Models::UtilTransformRequestResponse] # # @see Hanzoai::Models::UtilTransformRequestParams def transform_request(params) - parsed, options = Hanzoai::Models::UtilTransformRequestParams.dump_request(params) + parsed, options = Hanzoai::UtilTransformRequestParams.dump_request(params) @client.request( method: :post, path: "utils/transform_request", diff --git a/lib/hanzoai/resources/vertex_ai.rb b/lib/hanzoai/resources/vertex_ai.rb index ea8bf3c9..75da9489 100644 --- a/lib/hanzoai/resources/vertex_ai.rb +++ b/lib/hanzoai/resources/vertex_ai.rb @@ -3,9 +3,9 @@ module Hanzoai module Resources class VertexAI - # Call LLM proxy via Vertex AI SDK. + # Call LiteLLM proxy via Vertex AI SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) # # @overload create(endpoint, request_options: {}) # @@ -24,9 +24,9 @@ def create(endpoint, params = {}) ) end - # Call LLM proxy via Vertex AI SDK. + # Call LiteLLM proxy via Vertex AI SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) # # @overload retrieve(endpoint, request_options: {}) # @@ -45,9 +45,9 @@ def retrieve(endpoint, params = {}) ) end - # Call LLM proxy via Vertex AI SDK. + # Call LiteLLM proxy via Vertex AI SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) # # @overload update(endpoint, request_options: {}) # @@ -66,9 +66,9 @@ def update(endpoint, params = {}) ) end - # Call LLM proxy via Vertex AI SDK. + # Call LiteLLM proxy via Vertex AI SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) # # @overload delete(endpoint, request_options: {}) # @@ -87,9 +87,9 @@ def delete(endpoint, params = {}) ) end - # Call LLM proxy via Vertex AI SDK. + # Call LiteLLM proxy via Vertex AI SDK. # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) # # @overload patch(endpoint, request_options: {}) # diff --git a/lib/hanzoai/version.rb b/lib/hanzoai/version.rb index 51228b1c..bcce49db 100644 --- a/lib/hanzoai/version.rb +++ b/lib/hanzoai/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module Hanzoai - VERSION = "0.1.0.pre.alpha.4" + VERSION = "0.1.0.pre.alpha.5" end diff --git a/manifest.yaml b/manifest.yaml index 556686f5..a1fd74a9 100644 --- a/manifest.yaml +++ b/manifest.yaml @@ -1,11 +1,13 @@ dependencies: - English + - base64 - cgi - date - erb - etc - json - net/http + - openssl - pathname - rbconfig - securerandom diff --git a/rbi/lib/hanzoai/client.rbi b/rbi/hanzoai/client.rbi similarity index 83% rename from rbi/lib/hanzoai/client.rbi rename to rbi/hanzoai/client.rbi index 5578478e..0ec049c6 100644 --- a/rbi/lib/hanzoai/client.rbi +++ b/rbi/hanzoai/client.rbi @@ -12,7 +12,10 @@ module Hanzoai ENVIRONMENTS = T.let( - {production: "https://api.hanzo.ai", sandbox: "https://api.sandbox.hanzo.ai"}, + { + production: "https://api.hanzo.ai", + sandbox: "https://api.sandbox.hanzo.ai" + }, T::Hash[Symbol, String] ) @@ -166,8 +169,9 @@ module Hanzoai # Home sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) end def get_home(request_options: {}) end @@ -181,33 +185,33 @@ module Hanzoai sig do params( api_key: T.nilable(String), - environment: NilClass, + environment: T.nilable(T.any(Symbol, String)), base_url: T.nilable(String), max_retries: Integer, timeout: Float, initial_retry_delay: Float, max_retry_delay: Float - ) - .returns(T.attached_class) + ).returns(T.attached_class) end def self.new( # The default name of the subscription key header of Azure Defaults to - # `ENV["HANZO_API_KEY"]` + # `ENV["HANZO_API_KEY"]` api_key: ENV["HANZO_API_KEY"], # Specifies the environment to use for the API. # - # Each environment maps to a different base URL: + # Each environment maps to a different base URL: # - # - `production` corresponds to `https://api.hanzo.ai` - # - `sandbox` corresponds to `https://api.sandbox.hanzo.ai` + # - `production` corresponds to `https://api.hanzo.ai` + # - `sandbox` corresponds to `https://api.sandbox.hanzo.ai` environment: nil, - # Override the default base URL for the API, e.g., `"https://api.example.com/v2/"` - base_url: nil, + # Override the default base URL for the API, e.g., + # `"https://api.example.com/v2/"`. Defaults to `ENV["HANZO_BASE_URL"]` + base_url: ENV["HANZO_BASE_URL"], # Max number of retries to attempt after a failed retryable request. - max_retries: DEFAULT_MAX_RETRIES, - timeout: DEFAULT_TIMEOUT_IN_SECONDS, - initial_retry_delay: DEFAULT_INITIAL_RETRY_DELAY, - max_retry_delay: DEFAULT_MAX_RETRY_DELAY + max_retries: Hanzoai::Client::DEFAULT_MAX_RETRIES, + timeout: Hanzoai::Client::DEFAULT_TIMEOUT_IN_SECONDS, + initial_retry_delay: Hanzoai::Client::DEFAULT_INITIAL_RETRY_DELAY, + max_retry_delay: Hanzoai::Client::DEFAULT_MAX_RETRY_DELAY ) end end diff --git a/rbi/hanzoai/errors.rbi b/rbi/hanzoai/errors.rbi new file mode 100644 index 00000000..ca64c612 --- /dev/null +++ b/rbi/hanzoai/errors.rbi @@ -0,0 +1,205 @@ +# typed: strong + +module Hanzoai + module Errors + class Error < StandardError + sig { returns(T.nilable(StandardError)) } + attr_accessor :cause + end + + class ConversionError < Hanzoai::Errors::Error + sig { returns(T.nilable(StandardError)) } + def cause + end + + # @api private + sig do + params( + on: T::Class[StandardError], + method: Symbol, + target: T.anything, + value: T.anything, + cause: T.nilable(StandardError) + ).returns(T.attached_class) + end + def self.new(on:, method:, target:, value:, cause: nil) + end + end + + class APIError < Hanzoai::Errors::Error + sig { returns(URI::Generic) } + attr_accessor :url + + 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 + + # @api private + sig do + params( + url: URI::Generic, + status: T.nilable(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: nil, + headers: nil, + body: nil, + request: nil, + response: nil, + message: nil + ) + end + end + + class APIConnectionError < Hanzoai::Errors::APIError + sig { returns(NilClass) } + attr_accessor :status + + sig { returns(NilClass) } + attr_accessor :body + + # @api private + sig do + params( + url: URI::Generic, + status: NilClass, + headers: T.nilable(T::Hash[String, String]), + body: NilClass, + request: NilClass, + response: NilClass, + message: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + url:, + status: nil, + headers: nil, + body: nil, + request: nil, + response: nil, + message: "Connection error." + ) + end + end + + class APITimeoutError < Hanzoai::Errors::APIConnectionError + # @api private + sig do + params( + url: URI::Generic, + status: NilClass, + headers: T.nilable(T::Hash[String, String]), + body: NilClass, + request: NilClass, + response: NilClass, + message: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + url:, + status: nil, + headers: nil, + body: nil, + request: nil, + response: nil, + message: "Request timed out." + ) + end + end + + class APIStatusError < Hanzoai::Errors::APIError + # @api private + sig do + 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:, + headers:, + body:, + request:, + response:, + message: nil + ) + end + + sig { returns(Integer) } + attr_accessor :status + + # @api private + sig do + 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:, + headers:, + body:, + request:, + response:, + message: nil + ) + end + end + + class BadRequestError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = 400 + end + + class AuthenticationError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = 401 + end + + class PermissionDeniedError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = 403 + end + + class NotFoundError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = 404 + end + + class ConflictError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = 409 + end + + class UnprocessableEntityError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = 422 + end + + class RateLimitError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = 429 + end + + class InternalServerError < Hanzoai::Errors::APIStatusError + HTTP_STATUS = T.let((500..), T::Range[Integer]) + end + end +end diff --git a/rbi/hanzoai/file_part.rbi b/rbi/hanzoai/file_part.rbi new file mode 100644 index 00000000..755a5da3 --- /dev/null +++ b/rbi/hanzoai/file_part.rbi @@ -0,0 +1,37 @@ +# typed: strong + +module Hanzoai + class FilePart + sig { returns(T.any(Pathname, StringIO, IO, String)) } + attr_reader :content + + sig { returns(T.nilable(String)) } + attr_reader :content_type + + sig { returns(T.nilable(String)) } + attr_reader :filename + + # @api private + sig { returns(String) } + private def read + end + + sig { params(a: T.anything).returns(String) } + def to_json(*a) + end + + sig { params(a: T.anything).returns(String) } + def to_yaml(*a) + end + + sig do + params( + content: T.any(Pathname, StringIO, IO, String), + filename: T.nilable(T.any(Pathname, String)), + content_type: T.nilable(String) + ).returns(T.attached_class) + end + def self.new(content, filename: nil, content_type: nil) + end + end +end diff --git a/rbi/hanzoai/internal.rbi b/rbi/hanzoai/internal.rbi new file mode 100644 index 00000000..408293cc --- /dev/null +++ b/rbi/hanzoai/internal.rbi @@ -0,0 +1,16 @@ +# typed: strong + +module Hanzoai + module Internal + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + # Due to the current WIP status of Shapes support in Sorbet, types referencing + # this alias might be refined in the future. + AnyHash = T.type_alias { T::Hash[Symbol, T.anything] } + + FileInput = + T.type_alias { T.any(Pathname, StringIO, IO, String, Hanzoai::FilePart) } + + OMIT = T.let(Object.new.freeze, T.anything) + end +end diff --git a/rbi/hanzoai/internal/transport/base_client.rbi b/rbi/hanzoai/internal/transport/base_client.rbi new file mode 100644 index 00000000..18ab6fa2 --- /dev/null +++ b/rbi/hanzoai/internal/transport/base_client.rbi @@ -0,0 +1,297 @@ +# typed: strong + +module Hanzoai + module Internal + module Transport + # @api private + class BaseClient + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + abstract! + + RequestComponents = + T.type_alias do + { + method: Symbol, + path: T.any(String, T::Array[String]), + query: + T.nilable( + T::Hash[String, T.nilable(T.any(T::Array[String], String))] + ), + headers: + T.nilable( + T::Hash[ + String, + T.nilable( + T.any( + String, + Integer, + T::Array[T.nilable(T.any(String, Integer))] + ) + ) + ] + ), + body: T.nilable(T.anything), + unwrap: + T.nilable( + T.any( + Symbol, + Integer, + T::Array[T.any(Symbol, Integer)], + T.proc.params(arg0: T.anything).returns(T.anything) + ) + ), + page: + T.nilable( + T::Class[ + Hanzoai::Internal::Type::BasePage[ + Hanzoai::Internal::Type::BaseModel + ] + ] + ), + stream: T.nilable(T::Class[T.anything]), + model: T.nilable(Hanzoai::Internal::Type::Converter::Input), + options: T.nilable(Hanzoai::RequestOptions::OrHash) + } + end + + RequestInput = + T.type_alias do + { + method: Symbol, + url: URI::Generic, + headers: T::Hash[String, String], + body: T.anything, + max_retries: Integer, + timeout: Float + } + end + + # from whatwg fetch spec + MAX_REDIRECTS = 20 + + PLATFORM_HEADERS = T::Hash[String, String] + + class << self + # @api private + sig do + params( + req: Hanzoai::Internal::Transport::BaseClient::RequestComponents + ).void + end + def validate!(req) + end + + # @api private + sig do + params(status: Integer, headers: T::Hash[String, String]).returns( + T::Boolean + ) + end + def should_retry?(status, headers:) + end + + # @api private + sig do + params( + request: Hanzoai::Internal::Transport::BaseClient::RequestInput, + status: Integer, + response_headers: T::Hash[String, String] + ).returns(Hanzoai::Internal::Transport::BaseClient::RequestInput) + end + def follow_redirect(request, status:, response_headers:) + end + + # @api private + sig do + params( + status: T.any(Integer, Hanzoai::Errors::APIConnectionError), + stream: T.nilable(T::Enumerable[String]) + ).void + end + def reap_connection!(status, stream:) + end + end + + sig { returns(URI::Generic) } + attr_reader :base_url + + sig { returns(Float) } + attr_reader :timeout + + sig { returns(Integer) } + attr_reader :max_retries + + sig { returns(Float) } + attr_reader :initial_retry_delay + + sig { returns(Float) } + attr_reader :max_retry_delay + + sig { returns(T::Hash[String, String]) } + attr_reader :headers + + sig { returns(T.nilable(String)) } + attr_reader :idempotency_header + + # @api private + sig { returns(Hanzoai::Internal::Transport::PooledNetRequester) } + attr_reader :requester + + # @api private + sig do + params( + base_url: String, + timeout: Float, + max_retries: Integer, + initial_retry_delay: Float, + max_retry_delay: Float, + headers: + T::Hash[ + String, + T.nilable( + T.any( + String, + Integer, + T::Array[T.nilable(T.any(String, Integer))] + ) + ) + ], + idempotency_header: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + base_url:, + timeout: 0.0, + max_retries: 0, + initial_retry_delay: 0.0, + max_retry_delay: 0.0, + headers: {}, + idempotency_header: nil + ) + end + + # @api private + sig { overridable.returns(T::Hash[String, String]) } + 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 + end + + # @api private + sig do + overridable + .params( + req: Hanzoai::Internal::Transport::BaseClient::RequestComponents, + opts: Hanzoai::Internal::AnyHash + ) + .returns(Hanzoai::Internal::Transport::BaseClient::RequestInput) + end + private def build_request(req, opts) + end + + # @api private + sig do + params( + headers: T::Hash[String, String], + retry_count: Integer + ).returns(Float) + end + private def retry_delay(headers, retry_count:) + end + + # @api private + sig do + params( + request: Hanzoai::Internal::Transport::BaseClient::RequestInput, + redirect_count: Integer, + retry_count: Integer, + send_retry_header: T::Boolean + ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]]) + end + def send_request( + request, + redirect_count:, + retry_count:, + send_retry_header: + ) + end + + # Execute the request specified by `req`. This is the method that all resource + # methods call into. + # + # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: Hanzoai::Internal::Type::Unknown, options: {}) + sig do + params( + method: Symbol, + path: T.any(String, T::Array[String]), + query: + T.nilable( + T::Hash[String, T.nilable(T.any(T::Array[String], String))] + ), + headers: + T.nilable( + T::Hash[ + String, + T.nilable( + T.any( + String, + Integer, + T::Array[T.nilable(T.any(String, Integer))] + ) + ) + ] + ), + body: T.nilable(T.anything), + unwrap: + T.nilable( + T.any( + Symbol, + Integer, + T::Array[T.any(Symbol, Integer)], + T.proc.params(arg0: T.anything).returns(T.anything) + ) + ), + page: + T.nilable( + T::Class[ + Hanzoai::Internal::Type::BasePage[ + Hanzoai::Internal::Type::BaseModel + ] + ] + ), + stream: T.nilable(T::Class[T.anything]), + model: T.nilable(Hanzoai::Internal::Type::Converter::Input), + options: T.nilable(Hanzoai::RequestOptions::OrHash) + ).returns(T.anything) + end + def request( + method, + path, + query: {}, + headers: {}, + body: nil, + unwrap: nil, + page: nil, + stream: nil, + model: Hanzoai::Internal::Type::Unknown, + options: {} + ) + end + + # @api private + sig { returns(String) } + def inspect + end + end + end + end +end diff --git a/rbi/hanzoai/internal/transport/pooled_net_requester.rbi b/rbi/hanzoai/internal/transport/pooled_net_requester.rbi new file mode 100644 index 00000000..0803ceec --- /dev/null +++ b/rbi/hanzoai/internal/transport/pooled_net_requester.rbi @@ -0,0 +1,83 @@ +# typed: strong + +module Hanzoai + module Internal + module Transport + # @api private + class PooledNetRequester + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + Request = + T.type_alias do + { + method: Symbol, + url: URI::Generic, + headers: T::Hash[String, String], + body: T.anything, + deadline: Float + } + end + + # from the golang stdlib + # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49 + KEEP_ALIVE_TIMEOUT = 30 + + DEFAULT_MAX_CONNECTIONS = T.let(T.unsafe(nil), Integer) + + class << self + # @api private + sig do + params(cert_store: OpenSSL::X509::Store, url: URI::Generic).returns( + Net::HTTP + ) + end + def connect(cert_store:, url:) + end + + # @api private + sig { params(conn: Net::HTTP, deadline: Float).void } + def calibrate_socket_timeout(conn, deadline) + end + + # @api private + sig do + params( + request: + Hanzoai::Internal::Transport::PooledNetRequester::Request, + blk: T.proc.params(arg0: String).void + ).returns([Net::HTTPGenericRequest, T.proc.void]) + end + def build_request(request, &blk) + end + end + + # @api private + sig do + params( + url: URI::Generic, + deadline: Float, + blk: T.proc.params(arg0: Net::HTTP).void + ).void + end + private def with_pool(url, deadline:, &blk) + end + + # @api private + sig do + params( + request: Hanzoai::Internal::Transport::PooledNetRequester::Request + ).returns([Integer, Net::HTTPResponse, T::Enumerable[String]]) + end + def execute(request) + end + + # @api private + sig { params(size: Integer).returns(T.attached_class) } + def self.new( + size: Hanzoai::Internal::Transport::PooledNetRequester::DEFAULT_MAX_CONNECTIONS + ) + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/array_of.rbi b/rbi/hanzoai/internal/type/array_of.rbi new file mode 100644 index 00000000..71a78bf8 --- /dev/null +++ b/rbi/hanzoai/internal/type/array_of.rbi @@ -0,0 +1,104 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + # + # Array of items of a given type. + class ArrayOf + include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport + + abstract! + + Elem = type_member(:out) + + sig do + params( + type_info: + T.any( + Hanzoai::Internal::AnyHash, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: Hanzoai::Internal::AnyHash + ).returns(T.attached_class) + end + def self.[](type_info, spec = {}) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ===(other) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ==(other) + end + + sig { returns(Integer) } + def hash + end + + # @api private + sig do + override + .params( + value: T.any(T::Array[T.anything], T.anything), + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.any(T::Array[T.anything], T.anything)) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.any(T::Array[T.anything], T.anything), + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.any(T::Array[T.anything], T.anything)) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + + # @api private + sig { returns(Elem) } + protected def item_type + end + + # @api private + sig { returns(T::Boolean) } + protected def nilable? + end + + # @api private + sig do + params( + type_info: + T.any( + Hanzoai::Internal::AnyHash, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: Hanzoai::Internal::AnyHash + ).void + end + def initialize(type_info, spec = {}) + end + + # @api private + sig { params(depth: Integer).returns(String) } + def inspect(depth: 0) + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/base_model.rbi b/rbi/hanzoai/internal/type/base_model.rbi new file mode 100644 index 00000000..1c121537 --- /dev/null +++ b/rbi/hanzoai/internal/type/base_model.rbi @@ -0,0 +1,306 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + class BaseModel + extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + abstract! + + KnownField = + T.type_alias do + { + mode: T.nilable(Symbol), + required: T::Boolean, + nilable: T::Boolean + } + end + + OrHash = + T.type_alias do + T.any( + Hanzoai::Internal::Type::BaseModel, + Hanzoai::Internal::AnyHash + ) + end + + class << self + # @api private + # + # Assumes superclass fields are totally defined before fields are accessed / + # defined on subclasses. + sig { params(child: Hanzoai::Internal::Type::BaseModel).void } + def inherited(child) + end + + # @api private + sig do + returns( + T::Hash[ + Symbol, + T.all( + Hanzoai::Internal::Type::BaseModel::KnownField, + { + type_fn: + T.proc.returns(Hanzoai::Internal::Type::Converter::Input) + } + ) + ] + ) + end + def known_fields + end + + # @api private + sig do + returns( + T::Hash[ + Symbol, + T.all( + Hanzoai::Internal::Type::BaseModel::KnownField, + { type: Hanzoai::Internal::Type::Converter::Input } + ) + ] + ) + end + def fields + end + + # @api private + sig do + params( + name_sym: Symbol, + required: T::Boolean, + type_info: + T.any( + { + const: + T.nilable( + T.any(NilClass, T::Boolean, Integer, Float, Symbol) + ), + enum: + T.nilable( + T.proc.returns( + Hanzoai::Internal::Type::Converter::Input + ) + ), + union: + T.nilable( + T.proc.returns( + Hanzoai::Internal::Type::Converter::Input + ) + ), + api_name: Symbol, + nil?: T::Boolean + }, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: Hanzoai::Internal::AnyHash + ).void + end + private def add_field(name_sym, required:, type_info:, spec:) + end + + # @api private + sig do + params( + name_sym: Symbol, + type_info: + T.any( + Hanzoai::Internal::AnyHash, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: Hanzoai::Internal::AnyHash + ).void + end + def required(name_sym, type_info, spec = {}) + end + + # @api private + sig do + params( + name_sym: Symbol, + type_info: + T.any( + Hanzoai::Internal::AnyHash, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: Hanzoai::Internal::AnyHash + ).void + end + def optional(name_sym, type_info, spec = {}) + end + + # @api private + # + # `request_only` attributes not excluded from `.#coerce` when receiving responses + # even if well behaved servers should not send them + sig { params(blk: T.proc.void).void } + private def request_only(&blk) + end + + # @api private + # + # `response_only` attributes are omitted from `.#dump` when making requests + sig { params(blk: T.proc.void).void } + private def response_only(&blk) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ==(other) + end + + sig { returns(Integer) } + def hash + end + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ==(other) + end + + sig { returns(Integer) } + def hash + end + + class << self + # @api private + sig do + override + .params( + value: + T.any( + Hanzoai::Internal::Type::BaseModel, + T::Hash[T.anything, T.anything], + T.anything + ), + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.any(T.attached_class, T.anything)) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.any(T.attached_class, T.anything), + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.any(T::Hash[T.anything, T.anything], T.anything)) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + end + + class << self + # @api private + sig do + params( + model: Hanzoai::Internal::Type::BaseModel, + convert: T::Boolean + ).returns(Hanzoai::Internal::AnyHash) + end + def recursively_to_h(model, convert:) + end + end + + # Returns the raw value associated with the given key, if found. Otherwise, nil is + # returned. + # + # It is valid to lookup keys that are not in the API spec, for example to access + # undocumented features. This method does not parse response data into + # higher-level types. Lookup by anything other than a Symbol is an ArgumentError. + sig { params(key: Symbol).returns(T.nilable(T.anything)) } + def [](key) + end + + # Returns a Hash of the data underlying this object. O(1) + # + # Keys are Symbols and values are the raw values from the response. The return + # value indicates which values were ever set on the object. i.e. there will be a + # key in this hash if they ever were, even if the set value was nil. + # + # This method is not recursive. The returned value is shared by the object, so it + # should not be mutated. + sig { overridable.returns(Hanzoai::Internal::AnyHash) } + def to_h + end + + # Returns a Hash of the data underlying this object. O(1) + # + # Keys are Symbols and values are the raw values from the response. The return + # value indicates which values were ever set on the object. i.e. there will be a + # key in this hash if they ever were, even if the set value was nil. + # + # This method is not recursive. The returned value is shared by the object, so it + # should not be mutated. + sig { overridable.returns(Hanzoai::Internal::AnyHash) } + def to_hash + end + + # In addition to the behaviour of `#to_h`, this method will recursively call + # `#to_h` on nested models. + sig { overridable.returns(Hanzoai::Internal::AnyHash) } + def deep_to_h + end + + sig do + params(keys: T.nilable(T::Array[Symbol])).returns( + Hanzoai::Internal::AnyHash + ) + end + def deconstruct_keys(keys) + end + + sig { params(a: T.anything).returns(String) } + def to_json(*a) + end + + sig { params(a: T.anything).returns(String) } + def to_yaml(*a) + end + + # Create a new instance of a model. + sig do + params( + data: + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Internal::Type::BaseModel + ) + ).returns(T.attached_class) + end + def self.new(data = {}) + end + + class << self + # @api private + sig { params(depth: Integer).returns(String) } + def inspect(depth: 0) + end + end + + sig { returns(String) } + def to_s + end + + # @api private + sig { returns(String) } + def inspect + end + end + end + end +end diff --git a/rbi/lib/hanzoai/internal/type/base_page.rbi b/rbi/hanzoai/internal/type/base_page.rbi similarity index 88% rename from rbi/lib/hanzoai/internal/type/base_page.rbi rename to rbi/hanzoai/internal/type/base_page.rbi index f4d87678..bc03cff1 100644 --- a/rbi/lib/hanzoai/internal/type/base_page.rbi +++ b/rbi/hanzoai/internal/type/base_page.rbi @@ -3,6 +3,8 @@ module Hanzoai module Internal module Type + # @api private + # # This module provides a base implementation for paginated responses in the SDK. module BasePage Elem = type_member(:out) @@ -27,11 +29,10 @@ module Hanzoai sig do params( client: Hanzoai::Internal::Transport::BaseClient, - req: Hanzoai::Internal::Transport::BaseClient::RequestComponentsShape, - headers: T.any(T::Hash[String, String], Net::HTTPHeader), + req: Hanzoai::Internal::Transport::BaseClient::RequestComponents, + headers: T::Hash[String, String], page_data: T.anything - ) - .void + ).void end def initialize(client:, req:, headers:, page_data:) end diff --git a/rbi/hanzoai/internal/type/boolean.rbi b/rbi/hanzoai/internal/type/boolean.rbi new file mode 100644 index 00000000..515a312d --- /dev/null +++ b/rbi/hanzoai/internal/type/boolean.rbi @@ -0,0 +1,58 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + # + # Ruby has no Boolean class; this is something for models to refer to. + class Boolean + extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + abstract! + + sig { params(other: T.anything).returns(T::Boolean) } + def self.===(other) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def self.==(other) + end + + class << self + # @api private + # + # Coerce value to Boolean if possible, otherwise return the original value. + sig do + override + .params( + value: T.any(T::Boolean, T.anything), + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.any(T::Boolean, T.anything)) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.any(T::Boolean, T.anything), + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.any(T::Boolean, T.anything)) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/converter.rbi b/rbi/hanzoai/internal/type/converter.rbi new file mode 100644 index 00000000..80e742b2 --- /dev/null +++ b/rbi/hanzoai/internal/type/converter.rbi @@ -0,0 +1,216 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + module Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + Input = + T.type_alias do + T.any(Hanzoai::Internal::Type::Converter, T::Class[T.anything]) + end + + CoerceState = + T.type_alias do + { + translate_names: T::Boolean, + strictness: T::Boolean, + exactness: { + yes: Integer, + no: Integer, + maybe: Integer + }, + error: T::Class[StandardError], + branched: Integer + } + end + + DumpState = T.type_alias { { can_retry: T::Boolean } } + + # @api private + sig do + overridable + .params( + value: T.anything, + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.anything) + end + def coerce(value, state:) + end + + # @api private + sig do + overridable + .params( + value: T.anything, + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.anything) + end + def dump(value, state:) + end + + # @api private + sig { params(depth: Integer).returns(String) } + def inspect(depth: 0) + end + + class << self + # @api private + sig do + params( + spec: + T.any( + { + const: + T.nilable( + T.any(NilClass, T::Boolean, Integer, Float, Symbol) + ), + enum: + T.nilable( + T.proc.returns( + Hanzoai::Internal::Type::Converter::Input + ) + ), + union: + T.nilable( + T.proc.returns( + Hanzoai::Internal::Type::Converter::Input + ) + ) + }, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ) + ).returns(T.proc.returns(T.anything)) + end + 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( + Hanzoai::Internal::Type::Converter::Input + ) + ), + union: + T.nilable( + T.proc.returns( + Hanzoai::Internal::Type::Converter::Input + ) + ) + }, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: + T.any( + { + const: + T.nilable( + T.any(NilClass, T::Boolean, Integer, Float, Symbol) + ), + enum: + T.nilable( + T.proc.returns( + Hanzoai::Internal::Type::Converter::Input + ) + ), + union: + T.nilable( + T.proc.returns( + Hanzoai::Internal::Type::Converter::Input + ) + ) + }, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ) + ).returns(Hanzoai::Internal::AnyHash) + end + def self.meta_info(type_info, spec) + end + + # @api private + sig do + params(translate_names: T::Boolean).returns( + Hanzoai::Internal::Type::Converter::CoerceState + ) + end + def self.new_coerce_state(translate_names: true) + end + + # @api private + # + # Based on `target`, transform `value` into `target`, to the extent possible: + # + # 1. if the given `value` conforms to `target` already, return the given `value` + # 2. if it's possible and safe to convert the given `value` to `target`, then the + # converted value + # 3. otherwise, the given `value` unaltered + # + # The coercion process is subject to improvement between minor release versions. + # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode + sig do + params( + target: Hanzoai::Internal::Type::Converter::Input, + value: T.anything, + state: Hanzoai::Internal::Type::Converter::CoerceState + ).returns(T.anything) + end + def self.coerce( + target, + value, + # The `strictness` is one of `true`, `false`. This informs the coercion strategy + # when we have to decide between multiple possible conversion targets: + # + # - `true`: the conversion must be exact, with minimum coercion. + # - `false`: the conversion can be approximate, with some coercion. + # + # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For + # any given conversion attempt, the exactness will be updated based on how closely + # the value recursively matches the target type: + # + # - `yes`: the value can be converted to the target type with minimum coercion. + # - `maybe`: the value can be converted to the target type with some reasonable + # coercion. + # - `no`: the value cannot be converted to the target type. + # + # See implementation below for more details. + state: Hanzoai::Internal::Type::Converter.new_coerce_state + ) + end + + # @api private + sig do + params( + target: Hanzoai::Internal::Type::Converter::Input, + value: T.anything, + state: Hanzoai::Internal::Type::Converter::DumpState + ).returns(T.anything) + end + def self.dump(target, value, state: { can_retry: true }) + end + + # @api private + sig { params(target: T.anything, depth: Integer).returns(String) } + def self.inspect(target, depth:) + end + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/enum.rbi b/rbi/hanzoai/internal/type/enum.rbi new file mode 100644 index 00000000..7969bdab --- /dev/null +++ b/rbi/hanzoai/internal/type/enum.rbi @@ -0,0 +1,82 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + # + # A value from among a specified list of options. OpenAPI enum values map to Ruby + # values in the SDK as follows: + # + # 1. boolean => true | false + # 2. integer => Integer + # 3. float => Float + # 4. string => Symbol + # + # We can therefore convert string values to Symbols, but can't convert other + # values safely. + module Enum + include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport + + # All of the valid Symbol values for this enum. + sig do + overridable.returns( + T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)] + ) + end + def values + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ===(other) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ==(other) + end + + sig { returns(Integer) } + def hash + end + + # @api private + # + # Unlike with primitives, `Enum` additionally validates that the value is a member + # of the enum. + sig do + override + .params( + value: T.any(String, Symbol, T.anything), + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.any(Symbol, T.anything)) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.any(Symbol, T.anything), + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.any(Symbol, T.anything)) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + + # @api private + sig { params(depth: Integer).returns(String) } + def inspect(depth: 0) + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/file_input.rbi b/rbi/hanzoai/internal/type/file_input.rbi new file mode 100644 index 00000000..cf384c4f --- /dev/null +++ b/rbi/hanzoai/internal/type/file_input.rbi @@ -0,0 +1,59 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + # + # Either `Pathname` or `StringIO`, or `IO`, or + # `Hanzoai::Internal::Type::FileInput`. + # + # Note: when `IO` is used, all retries are disabled, since many IO` streams are + # not rewindable. + class FileInput + extend Hanzoai::Internal::Type::Converter + + abstract! + + sig { params(other: T.anything).returns(T::Boolean) } + def self.===(other) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def self.==(other) + end + + class << self + # @api private + sig do + override + .params( + value: T.any(StringIO, String, T.anything), + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.any(StringIO, T.anything)) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.any(Pathname, StringIO, IO, String, T.anything), + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.any(Pathname, StringIO, IO, String, T.anything)) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/hash_of.rbi b/rbi/hanzoai/internal/type/hash_of.rbi new file mode 100644 index 00000000..6108215a --- /dev/null +++ b/rbi/hanzoai/internal/type/hash_of.rbi @@ -0,0 +1,104 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + # + # Hash of items of a given type. + class HashOf + include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport + + abstract! + + Elem = type_member(:out) + + sig do + params( + type_info: + T.any( + Hanzoai::Internal::AnyHash, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: Hanzoai::Internal::AnyHash + ).returns(T.attached_class) + end + def self.[](type_info, spec = {}) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ===(other) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ==(other) + end + + sig { returns(Integer) } + def hash + end + + # @api private + sig do + override + .params( + value: T.any(T::Hash[T.anything, T.anything], T.anything), + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.any(Hanzoai::Internal::AnyHash, T.anything)) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.any(T::Hash[T.anything, T.anything], T.anything), + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.any(Hanzoai::Internal::AnyHash, T.anything)) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + + # @api private + sig { returns(Elem) } + protected def item_type + end + + # @api private + sig { returns(T::Boolean) } + protected def nilable? + end + + # @api private + sig do + params( + type_info: + T.any( + Hanzoai::Internal::AnyHash, + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::Type::Converter::Input + ), + spec: Hanzoai::Internal::AnyHash + ).void + end + def initialize(type_info, spec = {}) + end + + # @api private + sig { params(depth: Integer).returns(String) } + def inspect(depth: 0) + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/request_parameters.rbi b/rbi/hanzoai/internal/type/request_parameters.rbi new file mode 100644 index 00000000..8d10fd14 --- /dev/null +++ b/rbi/hanzoai/internal/type/request_parameters.rbi @@ -0,0 +1,29 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + module RequestParameters + # Options to specify HTTP behaviour for this request. + sig { returns(Hanzoai::RequestOptions) } + attr_reader :request_options + + sig { params(request_options: Hanzoai::RequestOptions::OrHash).void } + attr_writer :request_options + + # @api private + module Converter + # @api private + sig do + params(params: T.anything).returns( + [T.anything, Hanzoai::Internal::AnyHash] + ) + end + def dump_request(params) + end + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/union.rbi b/rbi/hanzoai/internal/type/union.rbi new file mode 100644 index 00000000..b79d27f1 --- /dev/null +++ b/rbi/hanzoai/internal/type/union.rbi @@ -0,0 +1,128 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + module Union + include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport + + # @api private + # + # All of the specified variant info for this union. + sig do + returns( + T::Array[ + [ + T.nilable(Symbol), + T.proc.returns(Hanzoai::Internal::Type::Converter::Input), + Hanzoai::Internal::AnyHash + ] + ] + ) + end + private def known_variants + end + + # @api private + sig do + returns( + T::Array[ + [T.nilable(Symbol), T.anything, Hanzoai::Internal::AnyHash] + ] + ) + end + protected def derefed_variants + end + + # All of the specified variants for this union. + sig { overridable.returns(T::Array[T.anything]) } + def variants + end + + # @api private + sig { params(property: Symbol).void } + private def discriminator(property) + end + + # @api private + sig do + params( + key: + T.any( + Symbol, + Hanzoai::Internal::AnyHash, + T.proc.returns(T.anything), + T.anything + ), + spec: + T.any( + Hanzoai::Internal::AnyHash, + T.proc.returns(T.anything), + T.anything + ) + ).void + end + private def variant(key, spec = nil) + end + + # @api private + sig { params(value: T.anything).returns(T.nilable(T.anything)) } + private def resolve_variant(value) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ===(other) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def ==(other) + end + + sig { returns(Integer) } + def hash + end + + # @api private + # + # Tries to efficiently coerce the given value to one of the known variants. + # + # If the value cannot match any of the known variants, the coercion is considered + # non-viable and returns the original value. + sig do + override + .params( + value: T.anything, + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.anything) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.anything, + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.anything) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + + # @api private + sig { params(depth: Integer).returns(String) } + def inspect(depth: 0) + end + end + end + end +end diff --git a/rbi/hanzoai/internal/type/unknown.rbi b/rbi/hanzoai/internal/type/unknown.rbi new file mode 100644 index 00000000..e319544c --- /dev/null +++ b/rbi/hanzoai/internal/type/unknown.rbi @@ -0,0 +1,58 @@ +# typed: strong + +module Hanzoai + module Internal + module Type + # @api private + # + # When we don't know what to expect for the value. + class Unknown + extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + abstract! + + sig { params(other: T.anything).returns(T::Boolean) } + def self.===(other) + end + + sig { params(other: T.anything).returns(T::Boolean) } + def self.==(other) + end + + class << self + # @api private + # + # No coercion needed for Unknown type. + sig do + override + .params( + value: T.anything, + state: Hanzoai::Internal::Type::Converter::CoerceState + ) + .returns(T.anything) + end + def coerce(value, state:) + end + + # @api private + sig do + override + .params( + value: T.anything, + state: Hanzoai::Internal::Type::Converter::DumpState + ) + .returns(T.anything) + end + def dump(value, state:) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + end + end + end + end +end diff --git a/rbi/hanzoai/internal/util.rbi b/rbi/hanzoai/internal/util.rbi new file mode 100644 index 00000000..b8f13ef9 --- /dev/null +++ b/rbi/hanzoai/internal/util.rbi @@ -0,0 +1,484 @@ +# typed: strong + +module Hanzoai + module Internal + # @api private + module Util + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + # @api private + sig { returns(Float) } + def self.monotonic_secs + end + + # @api private + sig do + params(ns: T.any(Module, T::Class[T.anything])).returns( + T::Enumerable[T.any(Module, T::Class[T.anything])] + ) + end + def self.walk_namespaces(ns) + end + + class << self + # @api private + sig { returns(String) } + def arch + end + + # @api private + sig { returns(String) } + def os + end + end + + class << self + # @api private + sig { params(input: T.anything).returns(T::Boolean) } + def primitive?(input) + end + + # @api private + sig do + params(input: T.any(String, T::Boolean)).returns( + T.any(T::Boolean, T.anything) + ) + end + def coerce_boolean(input) + end + + # @api private + sig do + params(input: T.any(String, T::Boolean)).returns( + T.nilable(T::Boolean) + ) + end + def coerce_boolean!(input) + end + + # @api private + sig do + params(input: T.any(String, Integer)).returns( + T.any(Integer, T.anything) + ) + end + def coerce_integer(input) + end + + # @api private + sig do + params(input: T.any(String, Integer, Float)).returns( + T.any(Float, T.anything) + ) + end + def coerce_float(input) + end + + # @api private + sig do + params(input: T.anything).returns( + T.any(T::Hash[T.anything, T.anything], T.anything) + ) + end + def coerce_hash(input) + end + + # @api private + sig do + params(input: T.anything).returns( + T.nilable(T::Hash[T.anything, T.anything]) + ) + end + def coerce_hash!(input) + end + end + + class << self + # @api private + sig do + params(lhs: T.anything, rhs: T.anything, concat: T::Boolean).returns( + T.anything + ) + end + private def deep_merge_lr(lhs, rhs, concat: false) + end + + # @api private + # + # Recursively merge one hash with another. If the values at a given key are not + # both hashes, just take the new value. + sig do + params( + values: T::Array[T.anything], + sentinel: T.nilable(T.anything), + concat: T::Boolean + ).returns(T.anything) + end + def deep_merge( + *values, + # the value to return if no values are provided. + sentinel: nil, + # whether to merge sequences by concatenation. + concat: false + ) + end + + # @api private + sig do + params( + data: + T.any( + Hanzoai::Internal::AnyHash, + T::Array[T.anything], + T.anything + ), + pick: + T.nilable( + T.any( + Symbol, + Integer, + T::Array[T.any(Symbol, Integer)], + T.proc.params(arg0: T.anything).returns(T.anything) + ) + ), + blk: T.nilable(T.proc.returns(T.anything)) + ).returns(T.nilable(T.anything)) + end + def dig(data, pick, &blk) + end + end + + class << self + # @api private + sig { params(uri: URI::Generic).returns(String) } + def uri_origin(uri) + end + + # @api private + sig { params(path: T.any(String, T::Array[String])).returns(String) } + def interpolate_path(path) + end + end + + class << self + # @api private + sig do + params(query: T.nilable(String)).returns( + T::Hash[String, T::Array[String]] + ) + end + def decode_query(query) + end + + # @api private + sig do + params( + query: + T.nilable( + T::Hash[String, T.nilable(T.any(T::Array[String], String))] + ) + ).returns(T.nilable(String)) + end + def encode_query(query) + end + end + + ParsedUri = + T.type_alias do + { + scheme: T.nilable(String), + host: T.nilable(String), + port: T.nilable(Integer), + path: T.nilable(String), + query: T::Hash[String, T::Array[String]] + } + end + + class << self + # @api private + sig do + params(url: T.any(URI::Generic, String)).returns( + Hanzoai::Internal::Util::ParsedUri + ) + end + def parse_uri(url) + end + + # @api private + sig do + params(parsed: Hanzoai::Internal::Util::ParsedUri).returns( + URI::Generic + ) + end + def unparse_uri(parsed) + end + + # @api private + sig do + params( + lhs: Hanzoai::Internal::Util::ParsedUri, + rhs: Hanzoai::Internal::Util::ParsedUri + ).returns(URI::Generic) + end + def join_parsed_uri(lhs, rhs) + end + end + + class << self + # @api private + sig do + params( + headers: + T::Hash[ + String, + T.nilable( + T.any( + String, + Integer, + T::Array[T.nilable(T.any(String, Integer))] + ) + ) + ] + ).returns(T::Hash[String, String]) + end + def normalized_headers(*headers) + end + end + + # @api private + # + # An adapter that satisfies the IO interface required by `::IO.copy_stream` + class ReadIOAdapter + # @api private + sig { returns(T.nilable(T::Boolean)) } + def close? + end + + # @api private + sig { void } + def close + end + + # @api private + sig { params(max_len: T.nilable(Integer)).returns(String) } + private def read_enum(max_len) + end + + # @api private + sig do + params( + max_len: T.nilable(Integer), + out_string: T.nilable(String) + ).returns(T.nilable(String)) + end + def read(max_len = nil, out_string = nil) + end + + # @api private + sig do + params( + src: T.any(String, Pathname, StringIO, T::Enumerable[String]), + blk: T.proc.params(arg0: String).void + ).returns(T.attached_class) + end + def self.new(src, &blk) + end + end + + class << self + sig do + params(blk: T.proc.params(y: Enumerator::Yielder).void).returns( + T::Enumerable[String] + ) + end + def writable_enum(&blk) + end + end + + JSON_CONTENT = + T.let(%r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}, Regexp) + JSONL_CONTENT = + T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp) + + class << self + # @api private + sig do + params( + y: Enumerator::Yielder, + val: T.anything, + closing: T::Array[T.proc.void], + content_type: T.nilable(String) + ).void + end + private def write_multipart_content( + y, + val:, + closing:, + content_type: nil + ) + end + + # @api private + sig do + params( + y: Enumerator::Yielder, + boundary: String, + key: T.any(Symbol, String), + val: T.anything, + closing: T::Array[T.proc.void] + ).void + end + private def write_multipart_chunk(y, boundary:, key:, val:, closing:) + end + + # @api private + # + # https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content + sig do + params(body: T.anything).returns([String, T::Enumerable[String]]) + end + private def encode_multipart_streaming(body) + end + + # @api private + sig do + params(headers: T::Hash[String, String], body: T.anything).returns( + T.anything + ) + end + def encode_content(headers, body) + end + + # @api private + # + # https://www.iana.org/assignments/character-sets/character-sets.xhtml + sig { params(content_type: String, text: String).void } + def force_charset!(content_type, text:) + end + + # @api private + # + # Assumes each chunk in stream has `Encoding::BINARY`. + sig do + params( + headers: T::Hash[String, String], + stream: T::Enumerable[String], + suppress_error: T::Boolean + ).returns(T.anything) + end + def decode_content(headers, stream:, suppress_error: false) + end + end + + class << self + # @api private + # + # https://doc.rust-lang.org/std/iter/trait.FusedIterator.html + sig do + params( + enum: T::Enumerable[T.anything], + external: T::Boolean, + close: T.proc.void + ).returns(T::Enumerable[T.anything]) + end + def fused_enum(enum, external: false, &close) + end + + # @api private + sig { params(enum: T.nilable(T::Enumerable[T.anything])).void } + def close_fused!(enum) + end + + # @api private + sig do + params( + enum: T.nilable(T::Enumerable[T.anything]), + blk: T.proc.params(arg0: Enumerator::Yielder).void + ).returns(T::Enumerable[T.anything]) + end + def chain_fused(enum, &blk) + end + end + + ServerSentEvent = + T.type_alias do + { + event: T.nilable(String), + data: T.nilable(String), + id: T.nilable(String), + retry: T.nilable(Integer) + } + end + + class << self + # @api private + # + # Assumes Strings have been forced into having `Encoding::BINARY`. + # + # This decoder is responsible for reassembling lines split across multiple + # fragments. + sig do + params(enum: T::Enumerable[String]).returns(T::Enumerable[String]) + end + def decode_lines(enum) + end + + # @api private + # + # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream + # + # Assumes that `lines` has been decoded with `#decode_lines`. + sig do + params(lines: T::Enumerable[String]).returns( + T::Enumerable[Hanzoai::Internal::Util::ServerSentEvent] + ) + end + def decode_sse(lines) + end + end + + # @api private + module SorbetRuntimeSupport + class MissingSorbetRuntimeError < ::RuntimeError + end + + # @api private + sig { returns(T::Hash[Symbol, T.anything]) } + private def sorbet_runtime_constants + end + + # @api private + sig { params(name: Symbol).void } + def const_missing(name) + end + + # @api private + sig { params(name: Symbol).returns(T::Boolean) } + def sorbet_constant_defined?(name) + end + + # @api private + sig { params(name: Symbol, blk: T.proc.returns(T.anything)).void } + def define_sorbet_constant!(name, &blk) + end + + # @api private + sig { returns(T.anything) } + def to_sorbet_type + end + + class << self + # @api private + sig do + params( + type: + T.any(Hanzoai::Internal::Util::SorbetRuntimeSupport, T.anything) + ).returns(T.anything) + end + def to_sorbet_type(type) + end + end + end + end + end +end diff --git a/rbi/hanzoai/models.rbi b/rbi/hanzoai/models.rbi new file mode 100644 index 00000000..18667320 --- /dev/null +++ b/rbi/hanzoai/models.rbi @@ -0,0 +1,375 @@ +# typed: strong + +module Hanzoai + ActiveListCallbacksParams = Hanzoai::Models::ActiveListCallbacksParams + + AddAddAllowedIPParams = Hanzoai::Models::AddAddAllowedIPParams + + AnthropicCreateParams = Hanzoai::Models::AnthropicCreateParams + + AnthropicDeleteParams = Hanzoai::Models::AnthropicDeleteParams + + AnthropicModifyParams = Hanzoai::Models::AnthropicModifyParams + + AnthropicRetrieveParams = Hanzoai::Models::AnthropicRetrieveParams + + AnthropicUpdateParams = Hanzoai::Models::AnthropicUpdateParams + + AssemblyaiCreateParams = Hanzoai::Models::AssemblyaiCreateParams + + AssemblyaiDeleteParams = Hanzoai::Models::AssemblyaiDeleteParams + + AssemblyaiPatchParams = Hanzoai::Models::AssemblyaiPatchParams + + AssemblyaiRetrieveParams = Hanzoai::Models::AssemblyaiRetrieveParams + + AssemblyaiUpdateParams = Hanzoai::Models::AssemblyaiUpdateParams + + AssistantCreateParams = Hanzoai::Models::AssistantCreateParams + + AssistantDeleteParams = Hanzoai::Models::AssistantDeleteParams + + AssistantListParams = Hanzoai::Models::AssistantListParams + + Audio = Hanzoai::Models::Audio + + AzureCallParams = Hanzoai::Models::AzureCallParams + + AzureCreateParams = Hanzoai::Models::AzureCreateParams + + AzureDeleteParams = Hanzoai::Models::AzureDeleteParams + + AzurePatchParams = Hanzoai::Models::AzurePatchParams + + AzureUpdateParams = Hanzoai::Models::AzureUpdateParams + + BatchCancelWithProviderParams = Hanzoai::Models::BatchCancelWithProviderParams + + BatchCreateParams = Hanzoai::Models::BatchCreateParams + + BatchCreateWithProviderParams = Hanzoai::Models::BatchCreateWithProviderParams + + Batches = Hanzoai::Models::Batches + + BatchListParams = Hanzoai::Models::BatchListParams + + BatchListWithProviderParams = Hanzoai::Models::BatchListWithProviderParams + + BatchRetrieveParams = Hanzoai::Models::BatchRetrieveParams + + BatchRetrieveWithProviderParams = + Hanzoai::Models::BatchRetrieveWithProviderParams + + BedrockCreateParams = Hanzoai::Models::BedrockCreateParams + + BedrockDeleteParams = Hanzoai::Models::BedrockDeleteParams + + BedrockPatchParams = Hanzoai::Models::BedrockPatchParams + + BedrockRetrieveParams = Hanzoai::Models::BedrockRetrieveParams + + BedrockUpdateParams = Hanzoai::Models::BedrockUpdateParams + + BlockKeyRequest = Hanzoai::Models::BlockKeyRequest + + BlockTeamRequest = Hanzoai::Models::BlockTeamRequest + + BlockUsers = Hanzoai::Models::BlockUsers + + BudgetCreateParams = Hanzoai::Models::BudgetCreateParams + + BudgetDeleteParams = Hanzoai::Models::BudgetDeleteParams + + BudgetInfoParams = Hanzoai::Models::BudgetInfoParams + + BudgetListParams = Hanzoai::Models::BudgetListParams + + BudgetNew = Hanzoai::Models::BudgetNew + + BudgetSettingsParams = Hanzoai::Models::BudgetSettingsParams + + BudgetTable = Hanzoai::Models::BudgetTable + + BudgetUpdateParams = Hanzoai::Models::BudgetUpdateParams + + Cache = Hanzoai::Models::Cache + + CacheDeleteParams = Hanzoai::Models::CacheDeleteParams + + CacheFlushAllParams = Hanzoai::Models::CacheFlushAllParams + + CachePingParams = Hanzoai::Models::CachePingParams + + Chat = Hanzoai::Models::Chat + + ClientGetHomeParams = Hanzoai::Models::ClientGetHomeParams + + CohereCreateParams = Hanzoai::Models::CohereCreateParams + + CohereDeleteParams = Hanzoai::Models::CohereDeleteParams + + CohereModifyParams = Hanzoai::Models::CohereModifyParams + + CohereRetrieveParams = Hanzoai::Models::CohereRetrieveParams + + CohereUpdateParams = Hanzoai::Models::CohereUpdateParams + + CompletionCreateParams = Hanzoai::Models::CompletionCreateParams + + Config = Hanzoai::Models::Config + + CredentialCreateParams = Hanzoai::Models::CredentialCreateParams + + CredentialDeleteParams = Hanzoai::Models::CredentialDeleteParams + + CredentialItem = Hanzoai::Models::CredentialItem + + CredentialListParams = Hanzoai::Models::CredentialListParams + + CustomerBlockParams = Hanzoai::Models::CustomerBlockParams + + CustomerCreateParams = Hanzoai::Models::CustomerCreateParams + + CustomerDeleteParams = Hanzoai::Models::CustomerDeleteParams + + CustomerListParams = Hanzoai::Models::CustomerListParams + + CustomerRetrieveInfoParams = Hanzoai::Models::CustomerRetrieveInfoParams + + CustomerUnblockParams = Hanzoai::Models::CustomerUnblockParams + + CustomerUpdateParams = Hanzoai::Models::CustomerUpdateParams + + DeleteCreateAllowedIPParams = Hanzoai::Models::DeleteCreateAllowedIPParams + + EmbeddingCreateParams = Hanzoai::Models::EmbeddingCreateParams + + EngineCompleteParams = Hanzoai::Models::EngineCompleteParams + + EngineEmbedParams = Hanzoai::Models::EngineEmbedParams + + Engines = Hanzoai::Models::Engines + + EuAssemblyaiCreateParams = Hanzoai::Models::EuAssemblyaiCreateParams + + EuAssemblyaiDeleteParams = Hanzoai::Models::EuAssemblyaiDeleteParams + + EuAssemblyaiPatchParams = Hanzoai::Models::EuAssemblyaiPatchParams + + EuAssemblyaiRetrieveParams = Hanzoai::Models::EuAssemblyaiRetrieveParams + + EuAssemblyaiUpdateParams = Hanzoai::Models::EuAssemblyaiUpdateParams + + FileCreateParams = Hanzoai::Models::FileCreateParams + + FileDeleteParams = Hanzoai::Models::FileDeleteParams + + FileListParams = Hanzoai::Models::FileListParams + + FileRetrieveParams = Hanzoai::Models::FileRetrieveParams + + Files = Hanzoai::Models::Files + + FineTuning = Hanzoai::Models::FineTuning + + GeminiCreateParams = Hanzoai::Models::GeminiCreateParams + + GeminiDeleteParams = Hanzoai::Models::GeminiDeleteParams + + GeminiPatchParams = Hanzoai::Models::GeminiPatchParams + + GeminiRetrieveParams = Hanzoai::Models::GeminiRetrieveParams + + GeminiUpdateParams = Hanzoai::Models::GeminiUpdateParams + + GenerateKeyResponse = Hanzoai::Models::GenerateKeyResponse + + Global = Hanzoai::Models::Global + + GuardrailListParams = Hanzoai::Models::GuardrailListParams + + HealthCheckAllParams = Hanzoai::Models::HealthCheckAllParams + + HealthCheckLivelinessParams = Hanzoai::Models::HealthCheckLivelinessParams + + HealthCheckLivenessParams = Hanzoai::Models::HealthCheckLivenessParams + + HealthCheckReadinessParams = Hanzoai::Models::HealthCheckReadinessParams + + HealthCheckServicesParams = Hanzoai::Models::HealthCheckServicesParams + + Images = Hanzoai::Models::Images + + IPAddress = Hanzoai::Models::IPAddress + + Key = Hanzoai::Models::Key + + KeyBlockParams = Hanzoai::Models::KeyBlockParams + + KeyCheckHealthParams = Hanzoai::Models::KeyCheckHealthParams + + KeyDeleteParams = Hanzoai::Models::KeyDeleteParams + + KeyGenerateParams = Hanzoai::Models::KeyGenerateParams + + KeyListParams = Hanzoai::Models::KeyListParams + + KeyRegenerateByKeyParams = Hanzoai::Models::KeyRegenerateByKeyParams + + KeyRetrieveInfoParams = Hanzoai::Models::KeyRetrieveInfoParams + + KeyUnblockParams = Hanzoai::Models::KeyUnblockParams + + KeyUpdateParams = Hanzoai::Models::KeyUpdateParams + + LangfuseCreateParams = Hanzoai::Models::LangfuseCreateParams + + LangfuseDeleteParams = Hanzoai::Models::LangfuseDeleteParams + + LangfusePatchParams = Hanzoai::Models::LangfusePatchParams + + LangfuseRetrieveParams = Hanzoai::Models::LangfuseRetrieveParams + + LangfuseUpdateParams = Hanzoai::Models::LangfuseUpdateParams + + LiteLlmEndUserTable = Hanzoai::Models::LiteLlmEndUserTable + + Member = Hanzoai::Models::Member + + Model = Hanzoai::Models::Model + + ModelCreateParams = Hanzoai::Models::ModelCreateParams + + ModelDeleteParams = Hanzoai::Models::ModelDeleteParams + + ModelGroupRetrieveInfoParams = Hanzoai::Models::ModelGroupRetrieveInfoParams + + ModelInfo = Hanzoai::Models::ModelInfo + + ModelListParams = Hanzoai::Models::ModelListParams + + ModerationCreateParams = Hanzoai::Models::ModerationCreateParams + + OpenAI = Hanzoai::Models::OpenAI + + OpenAICreateParams = Hanzoai::Models::OpenAICreateParams + + OpenAIDeleteParams = Hanzoai::Models::OpenAIDeleteParams + + OpenAIPatchParams = Hanzoai::Models::OpenAIPatchParams + + OpenAIRetrieveParams = Hanzoai::Models::OpenAIRetrieveParams + + OpenAIUpdateParams = Hanzoai::Models::OpenAIUpdateParams + + Organization = Hanzoai::Models::Organization + + OrganizationAddMemberParams = Hanzoai::Models::OrganizationAddMemberParams + + OrganizationCreateParams = Hanzoai::Models::OrganizationCreateParams + + OrganizationDeleteMemberParams = + Hanzoai::Models::OrganizationDeleteMemberParams + + OrganizationDeleteParams = Hanzoai::Models::OrganizationDeleteParams + + OrganizationListParams = Hanzoai::Models::OrganizationListParams + + OrganizationMembershipTable = Hanzoai::Models::OrganizationMembershipTable + + OrganizationTableWithMembers = Hanzoai::Models::OrganizationTableWithMembers + + OrganizationUpdateMemberParams = + Hanzoai::Models::OrganizationUpdateMemberParams + + OrganizationUpdateParams = Hanzoai::Models::OrganizationUpdateParams + + OrgMember = Hanzoai::Models::OrgMember + + ProviderListBudgetsParams = Hanzoai::Models::ProviderListBudgetsParams + + RerankCreateParams = Hanzoai::Models::RerankCreateParams + + RerankCreateV1Params = Hanzoai::Models::RerankCreateV1Params + + RerankCreateV2Params = Hanzoai::Models::RerankCreateV2Params + + ResponseCreateParams = Hanzoai::Models::ResponseCreateParams + + ResponseDeleteParams = Hanzoai::Models::ResponseDeleteParams + + ResponseRetrieveParams = Hanzoai::Models::ResponseRetrieveParams + + Responses = Hanzoai::Models::Responses + + RouteListParams = Hanzoai::Models::RouteListParams + + SettingRetrieveParams = Hanzoai::Models::SettingRetrieveParams + + SpendCalculateSpendParams = Hanzoai::Models::SpendCalculateSpendParams + + SpendListLogsParams = Hanzoai::Models::SpendListLogsParams + + SpendListTagsParams = Hanzoai::Models::SpendListTagsParams + + Team = Hanzoai::Models::Team + + TeamAddMemberParams = Hanzoai::Models::TeamAddMemberParams + + TeamBlockParams = Hanzoai::Models::TeamBlockParams + + TeamCreateParams = Hanzoai::Models::TeamCreateParams + + TeamDeleteParams = Hanzoai::Models::TeamDeleteParams + + TeamDisableLoggingParams = Hanzoai::Models::TeamDisableLoggingParams + + TeamListAvailableParams = Hanzoai::Models::TeamListAvailableParams + + TeamListParams = Hanzoai::Models::TeamListParams + + TeamRemoveMemberParams = Hanzoai::Models::TeamRemoveMemberParams + + TeamRetrieveInfoParams = Hanzoai::Models::TeamRetrieveInfoParams + + TeamUnblockParams = Hanzoai::Models::TeamUnblockParams + + TeamUpdateMemberParams = Hanzoai::Models::TeamUpdateMemberParams + + TeamUpdateParams = Hanzoai::Models::TeamUpdateParams + + TestPingParams = Hanzoai::Models::TestPingParams + + ThreadCreateParams = Hanzoai::Models::ThreadCreateParams + + ThreadRetrieveParams = Hanzoai::Models::ThreadRetrieveParams + + Threads = Hanzoai::Models::Threads + + UserCreateParams = Hanzoai::Models::UserCreateParams + + UserDeleteParams = Hanzoai::Models::UserDeleteParams + + UserRetrieveInfoParams = Hanzoai::Models::UserRetrieveInfoParams + + UserRoles = Hanzoai::Models::UserRoles + + UserUpdateParams = Hanzoai::Models::UserUpdateParams + + UtilGetSupportedOpenAIParamsParams = + Hanzoai::Models::UtilGetSupportedOpenAIParamsParams + + UtilTokenCounterParams = Hanzoai::Models::UtilTokenCounterParams + + UtilTransformRequestParams = Hanzoai::Models::UtilTransformRequestParams + + VertexAICreateParams = Hanzoai::Models::VertexAICreateParams + + VertexAIDeleteParams = Hanzoai::Models::VertexAIDeleteParams + + VertexAIPatchParams = Hanzoai::Models::VertexAIPatchParams + + VertexAIRetrieveParams = Hanzoai::Models::VertexAIRetrieveParams + + VertexAIUpdateParams = Hanzoai::Models::VertexAIUpdateParams +end diff --git a/rbi/hanzoai/models/active_list_callbacks_params.rbi b/rbi/hanzoai/models/active_list_callbacks_params.rbi new file mode 100644 index 00000000..314660bb --- /dev/null +++ b/rbi/hanzoai/models/active_list_callbacks_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ActiveListCallbacksParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ActiveListCallbacksParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/active_list_callbacks_response.rbi b/rbi/hanzoai/models/active_list_callbacks_response.rbi new file mode 100644 index 00000000..98c3a42c --- /dev/null +++ b/rbi/hanzoai/models/active_list_callbacks_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + ActiveListCallbacksResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/add_add_allowed_ip_params.rbi b/rbi/hanzoai/models/add_add_allowed_ip_params.rbi new file mode 100644 index 00000000..f87b7e46 --- /dev/null +++ b/rbi/hanzoai/models/add_add_allowed_ip_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AddAddAllowedIPParams < Hanzoai::Models::IPAddress + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AddAddAllowedIPParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/add_add_allowed_ip_response.rbi b/rbi/hanzoai/models/add_add_allowed_ip_response.rbi new file mode 100644 index 00000000..b34d925f --- /dev/null +++ b/rbi/hanzoai/models/add_add_allowed_ip_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AddAddAllowedIPResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/anthropic_create_params.rbi b/rbi/hanzoai/models/anthropic_create_params.rbi new file mode 100644 index 00000000..b27844d2 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AnthropicCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AnthropicCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/anthropic_create_response.rbi b/rbi/hanzoai/models/anthropic_create_response.rbi new file mode 100644 index 00000000..1e9aa55f --- /dev/null +++ b/rbi/hanzoai/models/anthropic_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AnthropicCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/anthropic_delete_params.rbi b/rbi/hanzoai/models/anthropic_delete_params.rbi new file mode 100644 index 00000000..f1958df5 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AnthropicDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AnthropicDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/anthropic_delete_response.rbi b/rbi/hanzoai/models/anthropic_delete_response.rbi new file mode 100644 index 00000000..fb3a2f6a --- /dev/null +++ b/rbi/hanzoai/models/anthropic_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AnthropicDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/anthropic_modify_params.rbi b/rbi/hanzoai/models/anthropic_modify_params.rbi new file mode 100644 index 00000000..5c531b92 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_modify_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AnthropicModifyParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AnthropicModifyParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/anthropic_modify_response.rbi b/rbi/hanzoai/models/anthropic_modify_response.rbi new file mode 100644 index 00000000..49b83a02 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_modify_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AnthropicModifyResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/anthropic_retrieve_params.rbi b/rbi/hanzoai/models/anthropic_retrieve_params.rbi new file mode 100644 index 00000000..05316586 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AnthropicRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AnthropicRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/anthropic_retrieve_response.rbi b/rbi/hanzoai/models/anthropic_retrieve_response.rbi new file mode 100644 index 00000000..a2ab9a51 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AnthropicRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/anthropic_update_params.rbi b/rbi/hanzoai/models/anthropic_update_params.rbi new file mode 100644 index 00000000..cb85b832 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AnthropicUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AnthropicUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/anthropic_update_response.rbi b/rbi/hanzoai/models/anthropic_update_response.rbi new file mode 100644 index 00000000..3d4bdeb6 --- /dev/null +++ b/rbi/hanzoai/models/anthropic_update_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AnthropicUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assemblyai_create_params.rbi b/rbi/hanzoai/models/assemblyai_create_params.rbi new file mode 100644 index 00000000..82c1c48a --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssemblyaiCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssemblyaiCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assemblyai_create_response.rbi b/rbi/hanzoai/models/assemblyai_create_response.rbi new file mode 100644 index 00000000..249f3d39 --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssemblyaiCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assemblyai_delete_params.rbi b/rbi/hanzoai/models/assemblyai_delete_params.rbi new file mode 100644 index 00000000..431ac782 --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssemblyaiDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssemblyaiDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assemblyai_delete_response.rbi b/rbi/hanzoai/models/assemblyai_delete_response.rbi new file mode 100644 index 00000000..5d685f14 --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssemblyaiDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assemblyai_patch_params.rbi b/rbi/hanzoai/models/assemblyai_patch_params.rbi new file mode 100644 index 00000000..fc5906fb --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssemblyaiPatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssemblyaiPatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assemblyai_patch_response.rbi b/rbi/hanzoai/models/assemblyai_patch_response.rbi new file mode 100644 index 00000000..74aa79df --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_patch_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssemblyaiPatchResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assemblyai_retrieve_params.rbi b/rbi/hanzoai/models/assemblyai_retrieve_params.rbi new file mode 100644 index 00000000..168874e7 --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssemblyaiRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssemblyaiRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assemblyai_retrieve_response.rbi b/rbi/hanzoai/models/assemblyai_retrieve_response.rbi new file mode 100644 index 00000000..3eb7fc5c --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssemblyaiRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assemblyai_update_params.rbi b/rbi/hanzoai/models/assemblyai_update_params.rbi new file mode 100644 index 00000000..0d7bbc72 --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssemblyaiUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssemblyaiUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assemblyai_update_response.rbi b/rbi/hanzoai/models/assemblyai_update_response.rbi new file mode 100644 index 00000000..c03528c1 --- /dev/null +++ b/rbi/hanzoai/models/assemblyai_update_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssemblyaiUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assistant_create_params.rbi b/rbi/hanzoai/models/assistant_create_params.rbi new file mode 100644 index 00000000..241f98fb --- /dev/null +++ b/rbi/hanzoai/models/assistant_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssistantCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssistantCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assistant_create_response.rbi b/rbi/hanzoai/models/assistant_create_response.rbi new file mode 100644 index 00000000..3312bf22 --- /dev/null +++ b/rbi/hanzoai/models/assistant_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssistantCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assistant_delete_params.rbi b/rbi/hanzoai/models/assistant_delete_params.rbi new file mode 100644 index 00000000..ccd74a8e --- /dev/null +++ b/rbi/hanzoai/models/assistant_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssistantDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssistantDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assistant_delete_response.rbi b/rbi/hanzoai/models/assistant_delete_response.rbi new file mode 100644 index 00000000..07e305fc --- /dev/null +++ b/rbi/hanzoai/models/assistant_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssistantDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/assistant_list_params.rbi b/rbi/hanzoai/models/assistant_list_params.rbi new file mode 100644 index 00000000..9bcf84a9 --- /dev/null +++ b/rbi/hanzoai/models/assistant_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AssistantListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AssistantListParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/assistant_list_response.rbi b/rbi/hanzoai/models/assistant_list_response.rbi new file mode 100644 index 00000000..61be2ee1 --- /dev/null +++ b/rbi/hanzoai/models/assistant_list_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + AssistantListResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/audio/speech_create_params.rbi b/rbi/hanzoai/models/audio/speech_create_params.rbi new file mode 100644 index 00000000..dfb2a73b --- /dev/null +++ b/rbi/hanzoai/models/audio/speech_create_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Audio + class SpeechCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Audio::SpeechCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/audio/speech_create_response.rbi b/rbi/hanzoai/models/audio/speech_create_response.rbi new file mode 100644 index 00000000..45619ddd --- /dev/null +++ b/rbi/hanzoai/models/audio/speech_create_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Audio + SpeechCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/audio/transcription_create_params.rbi b/rbi/hanzoai/models/audio/transcription_create_params.rbi new file mode 100644 index 00000000..009720f4 --- /dev/null +++ b/rbi/hanzoai/models/audio/transcription_create_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + module Audio + class TranscriptionCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Audio::TranscriptionCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Hanzoai::Internal::FileInput) } + attr_accessor :file + + sig do + params( + file: Hanzoai::Internal::FileInput, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(file:, request_options: {}) + end + + sig do + override.returns( + { + file: Hanzoai::Internal::FileInput, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/audio/transcription_create_response.rbi b/rbi/hanzoai/models/audio/transcription_create_response.rbi new file mode 100644 index 00000000..00d2a18b --- /dev/null +++ b/rbi/hanzoai/models/audio/transcription_create_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Audio + TranscriptionCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/azure_call_params.rbi b/rbi/hanzoai/models/azure_call_params.rbi new file mode 100644 index 00000000..5809c61c --- /dev/null +++ b/rbi/hanzoai/models/azure_call_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AzureCallParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AzureCallParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/azure_call_response.rbi b/rbi/hanzoai/models/azure_call_response.rbi new file mode 100644 index 00000000..3436bdcd --- /dev/null +++ b/rbi/hanzoai/models/azure_call_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + AzureCallResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/azure_create_params.rbi b/rbi/hanzoai/models/azure_create_params.rbi new file mode 100644 index 00000000..b87ed43e --- /dev/null +++ b/rbi/hanzoai/models/azure_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AzureCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AzureCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/azure_create_response.rbi b/rbi/hanzoai/models/azure_create_response.rbi new file mode 100644 index 00000000..4320f38d --- /dev/null +++ b/rbi/hanzoai/models/azure_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + AzureCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/azure_delete_params.rbi b/rbi/hanzoai/models/azure_delete_params.rbi new file mode 100644 index 00000000..632ca5e3 --- /dev/null +++ b/rbi/hanzoai/models/azure_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AzureDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AzureDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/azure_delete_response.rbi b/rbi/hanzoai/models/azure_delete_response.rbi new file mode 100644 index 00000000..f3e8d352 --- /dev/null +++ b/rbi/hanzoai/models/azure_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + AzureDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/azure_patch_params.rbi b/rbi/hanzoai/models/azure_patch_params.rbi new file mode 100644 index 00000000..d5a39c29 --- /dev/null +++ b/rbi/hanzoai/models/azure_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AzurePatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AzurePatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/azure_patch_response.rbi b/rbi/hanzoai/models/azure_patch_response.rbi new file mode 100644 index 00000000..f9957cd0 --- /dev/null +++ b/rbi/hanzoai/models/azure_patch_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + AzurePatchResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/azure_update_params.rbi b/rbi/hanzoai/models/azure_update_params.rbi new file mode 100644 index 00000000..e9184887 --- /dev/null +++ b/rbi/hanzoai/models/azure_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class AzureUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::AzureUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/azure_update_response.rbi b/rbi/hanzoai/models/azure_update_response.rbi new file mode 100644 index 00000000..1bb0e9d6 --- /dev/null +++ b/rbi/hanzoai/models/azure_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + AzureUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batch_cancel_with_provider_params.rbi b/rbi/hanzoai/models/batch_cancel_with_provider_params.rbi new file mode 100644 index 00000000..08be94a4 --- /dev/null +++ b/rbi/hanzoai/models/batch_cancel_with_provider_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class BatchCancelWithProviderParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::BatchCancelWithProviderParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :provider + + sig do + params( + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider:, request_options: {}) + end + + sig do + override.returns( + { provider: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/batch_cancel_with_provider_response.rbi b/rbi/hanzoai/models/batch_cancel_with_provider_response.rbi new file mode 100644 index 00000000..9cec8556 --- /dev/null +++ b/rbi/hanzoai/models/batch_cancel_with_provider_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BatchCancelWithProviderResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batch_create_params.rbi b/rbi/hanzoai/models/batch_create_params.rbi new file mode 100644 index 00000000..b7142b3b --- /dev/null +++ b/rbi/hanzoai/models/batch_create_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class BatchCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BatchCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :provider + + sig do + params( + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider: nil, request_options: {}) + end + + sig do + override.returns( + { + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/batch_create_response.rbi b/rbi/hanzoai/models/batch_create_response.rbi new file mode 100644 index 00000000..0fffe839 --- /dev/null +++ b/rbi/hanzoai/models/batch_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BatchCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batch_create_with_provider_params.rbi b/rbi/hanzoai/models/batch_create_with_provider_params.rbi new file mode 100644 index 00000000..5f9ff215 --- /dev/null +++ b/rbi/hanzoai/models/batch_create_with_provider_params.rbi @@ -0,0 +1,30 @@ +# typed: strong + +module Hanzoai + module Models + class BatchCreateWithProviderParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::BatchCreateWithProviderParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/batch_create_with_provider_response.rbi b/rbi/hanzoai/models/batch_create_with_provider_response.rbi new file mode 100644 index 00000000..c069e414 --- /dev/null +++ b/rbi/hanzoai/models/batch_create_with_provider_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BatchCreateWithProviderResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batch_list_params.rbi b/rbi/hanzoai/models/batch_list_params.rbi new file mode 100644 index 00000000..7824ba2a --- /dev/null +++ b/rbi/hanzoai/models/batch_list_params.rbi @@ -0,0 +1,59 @@ +# typed: strong + +module Hanzoai + module Models + class BatchListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BatchListParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :after + + sig { returns(T.nilable(Integer)) } + attr_accessor :limit + + sig { returns(T.nilable(String)) } + attr_accessor :provider + + sig { returns(T.nilable(String)) } + attr_accessor :target_model_names + + sig do + params( + after: T.nilable(String), + limit: T.nilable(Integer), + provider: T.nilable(String), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + after: nil, + limit: nil, + provider: nil, + target_model_names: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + after: T.nilable(String), + limit: T.nilable(Integer), + provider: T.nilable(String), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/batch_list_response.rbi b/rbi/hanzoai/models/batch_list_response.rbi new file mode 100644 index 00000000..602818a8 --- /dev/null +++ b/rbi/hanzoai/models/batch_list_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BatchListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batch_list_with_provider_params.rbi b/rbi/hanzoai/models/batch_list_with_provider_params.rbi new file mode 100644 index 00000000..989cebe8 --- /dev/null +++ b/rbi/hanzoai/models/batch_list_with_provider_params.rbi @@ -0,0 +1,56 @@ +# typed: strong + +module Hanzoai + module Models + class BatchListWithProviderParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::BatchListWithProviderParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :after + + sig { returns(T.nilable(Integer)) } + attr_accessor :limit + + sig { returns(T.nilable(String)) } + attr_accessor :target_model_names + + sig do + params( + after: T.nilable(String), + limit: T.nilable(Integer), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + after: nil, + limit: nil, + target_model_names: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + after: T.nilable(String), + limit: T.nilable(Integer), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/batch_list_with_provider_response.rbi b/rbi/hanzoai/models/batch_list_with_provider_response.rbi new file mode 100644 index 00000000..39dae559 --- /dev/null +++ b/rbi/hanzoai/models/batch_list_with_provider_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BatchListWithProviderResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batch_retrieve_params.rbi b/rbi/hanzoai/models/batch_retrieve_params.rbi new file mode 100644 index 00000000..9c449473 --- /dev/null +++ b/rbi/hanzoai/models/batch_retrieve_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class BatchRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BatchRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :provider + + sig do + params( + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider: nil, request_options: {}) + end + + sig do + override.returns( + { + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/batch_retrieve_response.rbi b/rbi/hanzoai/models/batch_retrieve_response.rbi new file mode 100644 index 00000000..7332fe55 --- /dev/null +++ b/rbi/hanzoai/models/batch_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BatchRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batch_retrieve_with_provider_params.rbi b/rbi/hanzoai/models/batch_retrieve_with_provider_params.rbi new file mode 100644 index 00000000..82e4d02b --- /dev/null +++ b/rbi/hanzoai/models/batch_retrieve_with_provider_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class BatchRetrieveWithProviderParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::BatchRetrieveWithProviderParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :provider + + sig do + params( + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider:, request_options: {}) + end + + sig do + override.returns( + { provider: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/batch_retrieve_with_provider_response.rbi b/rbi/hanzoai/models/batch_retrieve_with_provider_response.rbi new file mode 100644 index 00000000..b4d8f3b8 --- /dev/null +++ b/rbi/hanzoai/models/batch_retrieve_with_provider_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BatchRetrieveWithProviderResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/batches/cancel_cancel_params.rbi b/rbi/hanzoai/models/batches/cancel_cancel_params.rbi new file mode 100644 index 00000000..cf876eff --- /dev/null +++ b/rbi/hanzoai/models/batches/cancel_cancel_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + module Batches + class CancelCancelParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Batches::CancelCancelParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :provider + + sig do + params( + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider: nil, request_options: {}) + end + + sig do + override.returns( + { + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/batches/cancel_cancel_response.rbi b/rbi/hanzoai/models/batches/cancel_cancel_response.rbi new file mode 100644 index 00000000..5a60c641 --- /dev/null +++ b/rbi/hanzoai/models/batches/cancel_cancel_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Batches + CancelCancelResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/bedrock_create_params.rbi b/rbi/hanzoai/models/bedrock_create_params.rbi new file mode 100644 index 00000000..207068f7 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BedrockCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BedrockCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/bedrock_create_response.rbi b/rbi/hanzoai/models/bedrock_create_response.rbi new file mode 100644 index 00000000..a75d6ac3 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BedrockCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/bedrock_delete_params.rbi b/rbi/hanzoai/models/bedrock_delete_params.rbi new file mode 100644 index 00000000..1e977511 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BedrockDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BedrockDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/bedrock_delete_response.rbi b/rbi/hanzoai/models/bedrock_delete_response.rbi new file mode 100644 index 00000000..b71b3616 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BedrockDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/bedrock_patch_params.rbi b/rbi/hanzoai/models/bedrock_patch_params.rbi new file mode 100644 index 00000000..bfacefd8 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BedrockPatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BedrockPatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/bedrock_patch_response.rbi b/rbi/hanzoai/models/bedrock_patch_response.rbi new file mode 100644 index 00000000..2ac01fc4 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_patch_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BedrockPatchResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/bedrock_retrieve_params.rbi b/rbi/hanzoai/models/bedrock_retrieve_params.rbi new file mode 100644 index 00000000..393895c7 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BedrockRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BedrockRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/bedrock_retrieve_response.rbi b/rbi/hanzoai/models/bedrock_retrieve_response.rbi new file mode 100644 index 00000000..0a1c0555 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BedrockRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/bedrock_update_params.rbi b/rbi/hanzoai/models/bedrock_update_params.rbi new file mode 100644 index 00000000..7cd93be0 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BedrockUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BedrockUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/bedrock_update_response.rbi b/rbi/hanzoai/models/bedrock_update_response.rbi new file mode 100644 index 00000000..d1db09f6 --- /dev/null +++ b/rbi/hanzoai/models/bedrock_update_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BedrockUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/block_key_request.rbi b/rbi/hanzoai/models/block_key_request.rbi new file mode 100644 index 00000000..1b19f14a --- /dev/null +++ b/rbi/hanzoai/models/block_key_request.rbi @@ -0,0 +1,23 @@ +# typed: strong + +module Hanzoai + module Models + class BlockKeyRequest < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::BlockKeyRequest, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :key + + sig { params(key: String).returns(T.attached_class) } + def self.new(key:) + end + + sig { override.returns({ key: String }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/block_team_request.rbi b/rbi/hanzoai/models/block_team_request.rbi new file mode 100644 index 00000000..7f976e31 --- /dev/null +++ b/rbi/hanzoai/models/block_team_request.rbi @@ -0,0 +1,23 @@ +# typed: strong + +module Hanzoai + module Models + class BlockTeamRequest < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::BlockTeamRequest, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { params(team_id: String).returns(T.attached_class) } + def self.new(team_id:) + end + + sig { override.returns({ team_id: String }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/block_users.rbi b/rbi/hanzoai/models/block_users.rbi new file mode 100644 index 00000000..2716d899 --- /dev/null +++ b/rbi/hanzoai/models/block_users.rbi @@ -0,0 +1,21 @@ +# typed: strong + +module Hanzoai + module Models + class BlockUsers < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Hanzoai::BlockUsers, Hanzoai::Internal::AnyHash) } + + sig { returns(T::Array[String]) } + attr_accessor :user_ids + + sig { params(user_ids: T::Array[String]).returns(T.attached_class) } + def self.new(user_ids:) + end + + sig { override.returns({ user_ids: T::Array[String] }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_create_params.rbi b/rbi/hanzoai/models/budget_create_params.rbi new file mode 100644 index 00000000..d1130966 --- /dev/null +++ b/rbi/hanzoai/models/budget_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetCreateParams < Hanzoai::Models::BudgetNew + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BudgetCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_create_response.rbi b/rbi/hanzoai/models/budget_create_response.rbi new file mode 100644 index 00000000..25a09ef7 --- /dev/null +++ b/rbi/hanzoai/models/budget_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BudgetCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/budget_delete_params.rbi b/rbi/hanzoai/models/budget_delete_params.rbi new file mode 100644 index 00000000..2b17547c --- /dev/null +++ b/rbi/hanzoai/models/budget_delete_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BudgetDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :id + + sig do + params( + id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(id:, request_options: {}) + end + + sig do + override.returns( + { id: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_delete_response.rbi b/rbi/hanzoai/models/budget_delete_response.rbi new file mode 100644 index 00000000..ca17d8ec --- /dev/null +++ b/rbi/hanzoai/models/budget_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BudgetDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/budget_info_params.rbi b/rbi/hanzoai/models/budget_info_params.rbi new file mode 100644 index 00000000..b04015cf --- /dev/null +++ b/rbi/hanzoai/models/budget_info_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetInfoParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BudgetInfoParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Array[String]) } + attr_accessor :budgets + + sig do + params( + budgets: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(budgets:, request_options: {}) + end + + sig do + override.returns( + { + budgets: T::Array[String], + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_info_response.rbi b/rbi/hanzoai/models/budget_info_response.rbi new file mode 100644 index 00000000..20f80baa --- /dev/null +++ b/rbi/hanzoai/models/budget_info_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BudgetInfoResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/budget_list_params.rbi b/rbi/hanzoai/models/budget_list_params.rbi new file mode 100644 index 00000000..4d44b3bc --- /dev/null +++ b/rbi/hanzoai/models/budget_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BudgetListParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_list_response.rbi b/rbi/hanzoai/models/budget_list_response.rbi new file mode 100644 index 00000000..ab9aa566 --- /dev/null +++ b/rbi/hanzoai/models/budget_list_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BudgetListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/budget_new.rbi b/rbi/hanzoai/models/budget_new.rbi new file mode 100644 index 00000000..fc008be9 --- /dev/null +++ b/rbi/hanzoai/models/budget_new.rbi @@ -0,0 +1,158 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetNew < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Hanzoai::BudgetNew, Hanzoai::Internal::AnyHash) } + + # Max duration budget should be set for (e.g. '1hr', '1d', '28d') + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + # The unique budget id. + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + # Datetime when the budget is reset + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + # Requests will fail if this budget (in USD) is exceeded. + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + # Max concurrent requests allowed for this budget id. + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + sig do + returns(T.nilable(T::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget])) + end + attr_accessor :model_max_budget + + # Max requests per minute, allowed for this budget id. + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + # Requests will NOT fail if this is exceeded. Will fire alerting though. + sig { returns(T.nilable(Float)) } + attr_accessor :soft_budget + + # Max tokens per minute, allowed for this budget id. + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + params( + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + budget_reset_at: T.nilable(Time), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: + T.nilable( + T::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget::OrHash] + ), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + # Max duration budget should be set for (e.g. '1hr', '1d', '28d') + budget_duration: nil, + # The unique budget id. + budget_id: nil, + # Datetime when the budget is reset + budget_reset_at: nil, + # Requests will fail if this budget (in USD) is exceeded. + max_budget: nil, + # Max concurrent requests allowed for this budget id. + max_parallel_requests: nil, + # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + model_max_budget: nil, + # Max requests per minute, allowed for this budget id. + rpm_limit: nil, + # Requests will NOT fail if this is exceeded. Will fire alerting though. + soft_budget: nil, + # Max tokens per minute, allowed for this budget id. + tpm_limit: nil + ) + end + + sig do + override.returns( + { + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + budget_reset_at: T.nilable(Time), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: + T.nilable(T::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget]), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer) + } + ) + end + def to_hash + end + + class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::BudgetNew::ModelMaxBudget, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + params( + budget_duration: T.nilable(String), + max_budget: T.nilable(Float), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + budget_duration: nil, + max_budget: nil, + rpm_limit: nil, + tpm_limit: nil + ) + end + + sig do + override.returns( + { + budget_duration: T.nilable(String), + max_budget: T.nilable(Float), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/budget_settings_params.rbi b/rbi/hanzoai/models/budget_settings_params.rbi new file mode 100644 index 00000000..ee9e3d10 --- /dev/null +++ b/rbi/hanzoai/models/budget_settings_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetSettingsParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BudgetSettingsParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :budget_id + + sig do + params( + budget_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(budget_id:, request_options: {}) + end + + sig do + override.returns( + { budget_id: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_settings_response.rbi b/rbi/hanzoai/models/budget_settings_response.rbi new file mode 100644 index 00000000..baf829ea --- /dev/null +++ b/rbi/hanzoai/models/budget_settings_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + BudgetSettingsResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/budget_table.rbi b/rbi/hanzoai/models/budget_table.rbi new file mode 100644 index 00000000..30b17549 --- /dev/null +++ b/rbi/hanzoai/models/budget_table.rbi @@ -0,0 +1,76 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetTable < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Hanzoai::BudgetTable, Hanzoai::Internal::AnyHash) } + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :soft_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + # Represents user-controllable params for a LiteLLM_BudgetTable record + sig do + params( + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + budget_duration: nil, + budget_id: nil, + max_budget: nil, + max_parallel_requests: nil, + model_max_budget: nil, + rpm_limit: nil, + soft_budget: nil, + tpm_limit: nil + ) + end + + sig do + override.returns( + { + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_update_params.rbi b/rbi/hanzoai/models/budget_update_params.rbi new file mode 100644 index 00000000..146e7517 --- /dev/null +++ b/rbi/hanzoai/models/budget_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class BudgetUpdateParams < Hanzoai::Models::BudgetNew + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::BudgetUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/budget_update_response.rbi b/rbi/hanzoai/models/budget_update_response.rbi new file mode 100644 index 00000000..3ef46c3c --- /dev/null +++ b/rbi/hanzoai/models/budget_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + BudgetUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/cache/redi_retrieve_info_params.rbi b/rbi/hanzoai/models/cache/redi_retrieve_info_params.rbi new file mode 100644 index 00000000..a48eef58 --- /dev/null +++ b/rbi/hanzoai/models/cache/redi_retrieve_info_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Cache + class RediRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Cache::RediRetrieveInfoParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/cache/redi_retrieve_info_response.rbi b/rbi/hanzoai/models/cache/redi_retrieve_info_response.rbi new file mode 100644 index 00000000..6362b7e7 --- /dev/null +++ b/rbi/hanzoai/models/cache/redi_retrieve_info_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Cache + RediRetrieveInfoResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/cache_delete_params.rbi b/rbi/hanzoai/models/cache_delete_params.rbi new file mode 100644 index 00000000..5cb4a764 --- /dev/null +++ b/rbi/hanzoai/models/cache_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CacheDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CacheDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cache_delete_response.rbi b/rbi/hanzoai/models/cache_delete_response.rbi new file mode 100644 index 00000000..13655b23 --- /dev/null +++ b/rbi/hanzoai/models/cache_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + CacheDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/cache_flush_all_params.rbi b/rbi/hanzoai/models/cache_flush_all_params.rbi new file mode 100644 index 00000000..e39a258c --- /dev/null +++ b/rbi/hanzoai/models/cache_flush_all_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CacheFlushAllParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CacheFlushAllParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cache_flush_all_response.rbi b/rbi/hanzoai/models/cache_flush_all_response.rbi new file mode 100644 index 00000000..e9d31cc2 --- /dev/null +++ b/rbi/hanzoai/models/cache_flush_all_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CacheFlushAllResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/cache_ping_params.rbi b/rbi/hanzoai/models/cache_ping_params.rbi new file mode 100644 index 00000000..279ddfb5 --- /dev/null +++ b/rbi/hanzoai/models/cache_ping_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CachePingParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CachePingParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cache_ping_response.rbi b/rbi/hanzoai/models/cache_ping_response.rbi new file mode 100644 index 00000000..8fc2742d --- /dev/null +++ b/rbi/hanzoai/models/cache_ping_response.rbi @@ -0,0 +1,65 @@ +# typed: strong + +module Hanzoai + module Models + class CachePingResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::Models::CachePingResponse, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :cache_type + + sig { returns(String) } + attr_accessor :status + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :health_check_cache_params + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_cache_params + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :ping_response + + sig { returns(T.nilable(String)) } + attr_accessor :set_cache_response + + sig do + params( + cache_type: String, + status: String, + health_check_cache_params: T.nilable(T::Hash[Symbol, T.anything]), + litellm_cache_params: T.nilable(String), + ping_response: T.nilable(T::Boolean), + set_cache_response: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + cache_type:, + status:, + health_check_cache_params: nil, + litellm_cache_params: nil, + ping_response: nil, + set_cache_response: nil + ) + end + + sig do + override.returns( + { + cache_type: String, + status: String, + health_check_cache_params: T.nilable(T::Hash[Symbol, T.anything]), + litellm_cache_params: T.nilable(String), + ping_response: T.nilable(T::Boolean), + set_cache_response: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/chat/completion_create_params.rbi b/rbi/hanzoai/models/chat/completion_create_params.rbi new file mode 100644 index 00000000..ffa38d27 --- /dev/null +++ b/rbi/hanzoai/models/chat/completion_create_params.rbi @@ -0,0 +1,2641 @@ +# typed: strong + +module Hanzoai + module Models + module Chat + class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T::Array[ + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage + ) + ] + ) + end + attr_accessor :messages + + sig { returns(String) } + attr_accessor :model + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :caching + + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_accessor :context_window_fallback_dict + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :frequency_penalty + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::FunctionCall::Variants + ) + ) + end + attr_accessor :function_call + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :functions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(T::Hash[Symbol, Float])) } + attr_accessor :logit_bias + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :logprobs + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_tokens + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(Integer)) } + attr_accessor :n + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :parallel_tool_calls + + sig { returns(T.nilable(Float)) } + attr_accessor :presence_penalty + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :response_format + + sig { returns(T.nilable(Integer)) } + attr_accessor :seed + + sig { returns(T.nilable(String)) } + attr_accessor :service_tier + + sig do + returns( + T.nilable(Hanzoai::Chat::CompletionCreateParams::Stop::Variants) + ) + end + attr_accessor :stop + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :stream + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :stream_options + + sig { returns(T.nilable(Float)) } + attr_accessor :temperature + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::ToolChoice::Variants + ) + ) + end + attr_accessor :tool_choice + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :tools + + sig { returns(T.nilable(Integer)) } + attr_accessor :top_logprobs + + sig { returns(T.nilable(Float)) } + attr_accessor :top_p + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + messages: + T::Array[ + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::OrHash + ) + ], + model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable(Hanzoai::Chat::CompletionCreateParams::Stop::Variants), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + messages:, + model:, + caching: nil, + context_window_fallback_dict: nil, + fallbacks: nil, + frequency_penalty: nil, + function_call: nil, + functions: nil, + guardrails: nil, + logit_bias: nil, + logprobs: nil, + max_tokens: nil, + metadata: nil, + n: nil, + num_retries: nil, + parallel_tool_calls: nil, + presence_penalty: nil, + response_format: nil, + seed: nil, + service_tier: nil, + stop: nil, + stream: nil, + stream_options: nil, + temperature: nil, + tool_choice: nil, + tools: nil, + top_logprobs: nil, + top_p: nil, + user: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + messages: + T::Array[ + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage + ) + ], + model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Stop::Variants + ), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module Message + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage + ) + end + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::Variants, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl::OrHash, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, cache_control: nil, role: :user) + end + + sig do + override.returns( + { + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::Variants + ] + ) + end + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject + ) + end + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ) + ) + end + attr_accessor :image_url + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + image_url: + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject::OrHash + ), + type: Symbol + ).returns(T.attached_class) + end + def self.new(image_url:, type: :image_url) + end + + sig do + override.returns( + { + image_url: + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ), + type: Symbol + } + ) + end + def to_hash + end + + module ImageURL + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ) + end + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_reader :detail + + sig { params(detail: String).void } + attr_writer :detail + + sig { returns(T.nilable(String)) } + attr_reader :format_ + + sig { params(format_: String).void } + attr_writer :format_ + + sig do + params( + url: String, + detail: String, + format_: String + ).returns(T.attached_class) + end + def self.new(url:, detail: nil, format_: nil) + end + + sig do + override.returns( + { url: String, detail: String, format_: String } + ) + end + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::Variants + ] + ) + end + def self.variants + end + end + end + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio + ) + end + attr_reader :input_audio + + sig do + params( + input_audio: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::OrHash + ).void + end + attr_writer :input_audio + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + input_audio: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(input_audio:, type: :input_audio) + end + + sig do + override.returns( + { + input_audio: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: Symbol + } + ) + end + def to_hash + end + + class InputAudio < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :data + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + ) + end + attr_accessor :format_ + + sig do + params( + data: String, + format_: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + ).returns(T.attached_class) + end + def self.new(data:, format_:) + end + + sig do + override.returns( + { + data: String, + format_: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + } + ) + end + def to_hash + end + + module Format + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + WAV = + T.let( + :wav, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ) + MP3 = + T.let( + :mp3, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + ) + ) + end + attr_reader :citations + + sig do + params( + citations: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations::OrHash + ) + ).void + end + attr_writer :citations + + sig { returns(String) } + attr_accessor :context + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source + ) + end + attr_reader :source + + sig do + params( + source: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source::OrHash + ).void + end + attr_writer :source + + sig { returns(String) } + attr_accessor :title + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + citations: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations::OrHash + ), + context: String, + source: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source::OrHash, + title: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + citations:, + context:, + source:, + title:, + type: :document + ) + end + + sig do + override.returns( + { + citations: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + ), + context: String, + source: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: Symbol + } + ) + end + def to_hash + end + + class Citations < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T::Boolean) } + attr_accessor :enabled + + sig do + params(enabled: T::Boolean).returns(T.attached_class) + end + def self.new(enabled:) + end + + sig { override.returns({ enabled: T::Boolean }) } + def to_hash + end + end + + class Source < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :data + + sig { returns(String) } + attr_accessor :media_type + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + data: String, + media_type: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new(data:, media_type:, type: :text) + end + + sig do + override.returns( + { data: String, media_type: String, type: Symbol } + ) + end + def to_hash + end + end + end + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + ) + end + attr_accessor :video_url + + sig do + params( + video_url: + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject::OrHash + ), + type: Symbol + ).returns(T.attached_class) + end + def self.new(video_url:, type: :video_url) + end + + sig do + override.returns( + { + type: Symbol, + video_url: + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + } + ) + end + def to_hash + end + + module VideoURL + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + end + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_reader :detail + + sig { params(detail: String).void } + attr_writer :detail + + sig do + params(url: String, detail: String).returns( + T.attached_class + ) + end + def self.new(url:, detail: nil) + end + + sig { override.returns({ url: String, detail: String }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::Variants + ] + ) + end + def self.variants + end + end + end + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File + ) + end + attr_reader :file + + sig do + params( + file: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File::OrHash + ).void + end + attr_writer :file + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + file: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(file:, type: :file) + end + + sig do + override.returns( + { + file: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: Symbol + } + ) + end + def to_hash + end + + class File < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :file_data + + sig { params(file_data: String).void } + attr_writer :file_data + + sig { returns(T.nilable(String)) } + attr_reader :file_id + + sig { params(file_id: String).void } + attr_writer :file_id + + sig { returns(T.nilable(String)) } + attr_reader :filename + + sig { params(filename: String).void } + attr_writer :filename + + sig { returns(T.nilable(String)) } + attr_reader :format_ + + sig { params(format_: String).void } + attr_writer :format_ + + sig do + params( + file_data: String, + file_id: String, + filename: String, + format_: String + ).returns(T.attached_class) + end + def self.new( + file_data: nil, + file_id: nil, + filename: nil, + format_: nil + ) + end + + sig do + override.returns( + { + file_data: String, + file_id: String, + filename: String, + format_: String + } + ) + end + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + union: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::Variants + ) + ) + end + attr_accessor :content + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall + ) + ) + end + attr_reader :function_call + + sig do + params( + function_call: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall::OrHash + ) + ).void + end + attr_writer :function_call + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(String)) } + attr_accessor :reasoning_content + + sig do + returns( + T.nilable( + T::Array[ + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ) + ) + end + attr_accessor :thinking_blocks + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall + ] + ) + ) + end + attr_accessor :tool_calls + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl::OrHash, + content: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::Variants + ), + function_call: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall::OrHash + ), + name: T.nilable(String), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::OrHash + ) + ] + ), + tool_calls: + T.nilable( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::OrHash + ] + ), + role: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + content: nil, + function_call: nil, + name: nil, + reasoning_content: nil, + thinking_blocks: nil, + tool_calls: nil, + role: :assistant + ) + end + + sig do + override.returns( + { + role: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::Variants + ), + function_call: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall + ), + name: T.nilable(String), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ), + tool_calls: + T.nilable( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall + ] + ) + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::Variants + ] + ) + end + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock + ) + end + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + union: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :arguments + + sig { params(arguments: String).void } + attr_writer :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + arguments: nil, + name: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :data + + sig { params(data: String).void } + attr_writer :data + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + data: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + data: nil, + type: :redacted_thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + data: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::Variants + ] + ) + end + def self.variants + end + end + + class ToolCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :id + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function + ) + end + attr_reader :function + + sig do + params( + function: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function::OrHash + ).void + end + attr_writer :function + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + id: T.nilable(String), + function: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(id:, function:, type: :function) + end + + sig do + override.returns( + { + id: T.nilable(String), + function: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: Symbol + } + ) + end + def to_hash + end + + class Function < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :arguments + + sig { params(arguments: String).void } + attr_writer :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + arguments: nil, + name: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + end + end + end + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig { returns(String) } + attr_accessor :tool_call_id + + sig do + params( + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::Variants, + tool_call_id: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, tool_call_id:, role: :tool) + end + + sig do + override.returns( + { + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::Variants, + role: Symbol, + tool_call_id: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + ] + ) + end + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig do + params( + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::Content::Variants, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl::OrHash, + name: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, cache_control: nil, name: nil, role: :system) + end + + sig do + override.returns( + { + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::Variants + ) + ) + end + attr_accessor :content + + sig { returns(String) } + attr_accessor :name + + sig { returns(Symbol) } + attr_accessor :role + + sig { returns(T.nilable(String)) } + attr_accessor :tool_call_id + + sig do + params( + content: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::Variants + ), + name: String, + tool_call_id: T.nilable(String), + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, name:, tool_call_id:, role: :function) + end + + sig do + override.returns( + { + content: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::Variants + ), + name: String, + role: Symbol, + tool_call_id: T.nilable(String) + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 + ] + ) + end + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig do + params( + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::Content::Variants, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl::OrHash, + name: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new( + content:, + cache_control: nil, + name: nil, + role: :developer + ) + end + + sig do + override.returns( + { + content: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[Hanzoai::Chat::CompletionCreateParams::Message::Variants] + ) + end + def self.variants + end + end + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::FunctionCall::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module Stop + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[String]) } + + sig do + override.returns( + T::Array[Hanzoai::Chat::CompletionCreateParams::Stop::Variants] + ) + end + def self.variants + end + + StringArray = + T.let( + Hanzoai::Internal::Type::ArrayOf[String], + Hanzoai::Internal::Type::Converter + ) + end + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Chat::CompletionCreateParams::ToolChoice::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + end + end +end diff --git a/rbi/hanzoai/models/chat/completion_create_response.rbi b/rbi/hanzoai/models/chat/completion_create_response.rbi new file mode 100644 index 00000000..0e45cb80 --- /dev/null +++ b/rbi/hanzoai/models/chat/completion_create_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Chat + CompletionCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/client_get_home_params.rbi b/rbi/hanzoai/models/client_get_home_params.rbi new file mode 100644 index 00000000..c9fcc83c --- /dev/null +++ b/rbi/hanzoai/models/client_get_home_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ClientGetHomeParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ClientGetHomeParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cohere_create_params.rbi b/rbi/hanzoai/models/cohere_create_params.rbi new file mode 100644 index 00000000..259b4cd3 --- /dev/null +++ b/rbi/hanzoai/models/cohere_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CohereCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CohereCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cohere_create_response.rbi b/rbi/hanzoai/models/cohere_create_response.rbi new file mode 100644 index 00000000..317c6027 --- /dev/null +++ b/rbi/hanzoai/models/cohere_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + CohereCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/cohere_delete_params.rbi b/rbi/hanzoai/models/cohere_delete_params.rbi new file mode 100644 index 00000000..82af12bf --- /dev/null +++ b/rbi/hanzoai/models/cohere_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CohereDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CohereDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cohere_delete_response.rbi b/rbi/hanzoai/models/cohere_delete_response.rbi new file mode 100644 index 00000000..7194d1f1 --- /dev/null +++ b/rbi/hanzoai/models/cohere_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + CohereDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/cohere_modify_params.rbi b/rbi/hanzoai/models/cohere_modify_params.rbi new file mode 100644 index 00000000..05de9be8 --- /dev/null +++ b/rbi/hanzoai/models/cohere_modify_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CohereModifyParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CohereModifyParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cohere_modify_response.rbi b/rbi/hanzoai/models/cohere_modify_response.rbi new file mode 100644 index 00000000..7c513733 --- /dev/null +++ b/rbi/hanzoai/models/cohere_modify_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + CohereModifyResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/cohere_retrieve_params.rbi b/rbi/hanzoai/models/cohere_retrieve_params.rbi new file mode 100644 index 00000000..1ec11d82 --- /dev/null +++ b/rbi/hanzoai/models/cohere_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CohereRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CohereRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cohere_retrieve_response.rbi b/rbi/hanzoai/models/cohere_retrieve_response.rbi new file mode 100644 index 00000000..f7d2d4ea --- /dev/null +++ b/rbi/hanzoai/models/cohere_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CohereRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/cohere_update_params.rbi b/rbi/hanzoai/models/cohere_update_params.rbi new file mode 100644 index 00000000..eb7bcf69 --- /dev/null +++ b/rbi/hanzoai/models/cohere_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CohereUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CohereUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/cohere_update_response.rbi b/rbi/hanzoai/models/cohere_update_response.rbi new file mode 100644 index 00000000..7b327e1c --- /dev/null +++ b/rbi/hanzoai/models/cohere_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + CohereUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/completion_create_params.rbi b/rbi/hanzoai/models/completion_create_params.rbi new file mode 100644 index 00000000..e22d96e8 --- /dev/null +++ b/rbi/hanzoai/models/completion_create_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Hanzoai + module Models + class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CompletionCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig do + params( + model: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(model: nil, request_options: {}) + end + + sig do + override.returns( + { model: T.nilable(String), request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/completion_create_response.rbi b/rbi/hanzoai/models/completion_create_response.rbi new file mode 100644 index 00000000..7c96a785 --- /dev/null +++ b/rbi/hanzoai/models/completion_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CompletionCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/config/pass_through_endpoint_create_params.rbi b/rbi/hanzoai/models/config/pass_through_endpoint_create_params.rbi new file mode 100644 index 00000000..275b3303 --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_endpoint_create_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Config + class PassThroughEndpointCreateParams < Hanzoai::Models::Config::PassThroughGenericEndpoint + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Config::PassThroughEndpointCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/config/pass_through_endpoint_create_response.rbi b/rbi/hanzoai/models/config/pass_through_endpoint_create_response.rbi new file mode 100644 index 00000000..1a4da98d --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_endpoint_create_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Config + PassThroughEndpointCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/config/pass_through_endpoint_delete_params.rbi b/rbi/hanzoai/models/config/pass_through_endpoint_delete_params.rbi new file mode 100644 index 00000000..607685f8 --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_endpoint_delete_params.rbi @@ -0,0 +1,40 @@ +# typed: strong + +module Hanzoai + module Models + module Config + class PassThroughEndpointDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Config::PassThroughEndpointDeleteParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :endpoint_id + + sig do + params( + endpoint_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(endpoint_id:, request_options: {}) + end + + sig do + override.returns( + { endpoint_id: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/config/pass_through_endpoint_list_params.rbi b/rbi/hanzoai/models/config/pass_through_endpoint_list_params.rbi new file mode 100644 index 00000000..37bc8281 --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_endpoint_list_params.rbi @@ -0,0 +1,48 @@ +# typed: strong + +module Hanzoai + module Models + module Config + class PassThroughEndpointListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Config::PassThroughEndpointListParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :endpoint_id + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig do + params( + endpoint_id: T.nilable(String), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(endpoint_id: nil, team_id: nil, request_options: {}) + end + + sig do + override.returns( + { + endpoint_id: T.nilable(String), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/config/pass_through_endpoint_response.rbi b/rbi/hanzoai/models/config/pass_through_endpoint_response.rbi new file mode 100644 index 00000000..c486ba3b --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_endpoint_response.rbi @@ -0,0 +1,37 @@ +# typed: strong + +module Hanzoai + module Models + module Config + class PassThroughEndpointResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Config::PassThroughEndpointResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T::Array[Hanzoai::Config::PassThroughGenericEndpoint]) } + attr_accessor :endpoints + + sig do + params( + endpoints: + T::Array[Hanzoai::Config::PassThroughGenericEndpoint::OrHash] + ).returns(T.attached_class) + end + def self.new(endpoints:) + end + + sig do + override.returns( + { endpoints: T::Array[Hanzoai::Config::PassThroughGenericEndpoint] } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/config/pass_through_endpoint_update_params.rbi b/rbi/hanzoai/models/config/pass_through_endpoint_update_params.rbi new file mode 100644 index 00000000..514ea244 --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_endpoint_update_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Config + class PassThroughEndpointUpdateParams < Hanzoai::Models::Config::PassThroughGenericEndpoint + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Config::PassThroughEndpointUpdateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/config/pass_through_endpoint_update_response.rbi b/rbi/hanzoai/models/config/pass_through_endpoint_update_response.rbi new file mode 100644 index 00000000..322c48d1 --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_endpoint_update_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Config + PassThroughEndpointUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/config/pass_through_generic_endpoint.rbi b/rbi/hanzoai/models/config/pass_through_generic_endpoint.rbi new file mode 100644 index 00000000..396e1e00 --- /dev/null +++ b/rbi/hanzoai/models/config/pass_through_generic_endpoint.rbi @@ -0,0 +1,211 @@ +# typed: strong + +module Hanzoai + module Models + module Config + class PassThroughGenericEndpoint < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Config::PassThroughGenericEndpoint, + Hanzoai::Internal::AnyHash + ) + end + + # The route to be added to the LiteLLM Proxy Server. + sig { returns(String) } + attr_accessor :path + + # The URL to which requests for this path should be forwarded. + sig { returns(String) } + attr_accessor :target + + # Optional unique identifier for the pass-through endpoint. If not provided, + # endpoints will be identified by path for backwards compatibility. + sig { returns(T.nilable(String)) } + attr_accessor :id + + # Whether authentication is required for the pass-through endpoint. If True, + # requests to the endpoint will require a valid LiteLLM API key. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :auth + + sig { params(auth: T::Boolean).void } + attr_writer :auth + + # The USD cost per request to the target endpoint. This is used to calculate the + # cost of the request to the target endpoint. + sig { returns(T.nilable(Float)) } + attr_reader :cost_per_request + + sig { params(cost_per_request: Float).void } + attr_writer :cost_per_request + + # Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # names, values are optional settings for field targeting. When set, all + # org/team/key level guardrails will also execute. Defaults to None (no guardrails + # execute). + sig do + returns( + T.nilable( + T::Hash[ + Symbol, + T.nilable( + Hanzoai::Config::PassThroughGenericEndpoint::Guardrail + ) + ] + ) + ) + end + attr_accessor :guardrails + + # Key-value pairs of headers to be forwarded with the request. You can set any key + # value pair here and it will be forwarded to your target endpoint + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :headers + + sig { params(headers: T::Hash[Symbol, T.anything]).void } + attr_writer :headers + + # If True, requests to subpaths of the path will be forwarded to the target + # endpoint. For example, if the path is /bria and include_subpath is True, + # requests to /bria/v1/text-to-image/base/2.3 will be forwarded to the target + # endpoint. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :include_subpath + + sig { params(include_subpath: T::Boolean).void } + attr_writer :include_subpath + + sig do + params( + path: String, + target: String, + id: T.nilable(String), + auth: T::Boolean, + cost_per_request: Float, + guardrails: + T.nilable( + T::Hash[ + Symbol, + T.nilable( + Hanzoai::Config::PassThroughGenericEndpoint::Guardrail::OrHash + ) + ] + ), + headers: T::Hash[Symbol, T.anything], + include_subpath: T::Boolean + ).returns(T.attached_class) + end + def self.new( + # The route to be added to the LiteLLM Proxy Server. + path:, + # The URL to which requests for this path should be forwarded. + target:, + # Optional unique identifier for the pass-through endpoint. If not provided, + # endpoints will be identified by path for backwards compatibility. + id: nil, + # Whether authentication is required for the pass-through endpoint. If True, + # requests to the endpoint will require a valid LiteLLM API key. + auth: nil, + # The USD cost per request to the target endpoint. This is used to calculate the + # cost of the request to the target endpoint. + cost_per_request: nil, + # Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # names, values are optional settings for field targeting. When set, all + # org/team/key level guardrails will also execute. Defaults to None (no guardrails + # execute). + guardrails: nil, + # Key-value pairs of headers to be forwarded with the request. You can set any key + # value pair here and it will be forwarded to your target endpoint + headers: nil, + # If True, requests to subpaths of the path will be forwarded to the target + # endpoint. For example, if the path is /bria and include_subpath is True, + # requests to /bria/v1/text-to-image/base/2.3 will be forwarded to the target + # endpoint. + include_subpath: nil + ) + end + + sig do + override.returns( + { + path: String, + target: String, + id: T.nilable(String), + auth: T::Boolean, + cost_per_request: Float, + guardrails: + T.nilable( + T::Hash[ + Symbol, + T.nilable( + Hanzoai::Config::PassThroughGenericEndpoint::Guardrail + ) + ] + ), + headers: T::Hash[Symbol, T.anything], + include_subpath: T::Boolean + } + ) + end + def to_hash + end + + class Guardrail < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Config::PassThroughGenericEndpoint::Guardrail, + Hanzoai::Internal::AnyHash + ) + end + + # JSONPath expressions for input field targeting (pre_call). Examples: 'query', + # 'documents[*].text', 'messages[*].content'. If not specified, guardrail runs on + # entire request payload. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :request_fields + + # JSONPath expressions for output field targeting (post_call). Examples: + # 'results[*].text', 'output'. If not specified, guardrail runs on entire response + # payload. + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :response_fields + + # Settings for a specific guardrail on a passthrough endpoint. + # + # Allows field-level targeting for guardrail execution. + sig do + params( + request_fields: T.nilable(T::Array[String]), + response_fields: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + # JSONPath expressions for input field targeting (pre_call). Examples: 'query', + # 'documents[*].text', 'messages[*].content'. If not specified, guardrail runs on + # entire request payload. + request_fields: nil, + # JSONPath expressions for output field targeting (post_call). Examples: + # 'results[*].text', 'output'. If not specified, guardrail runs on entire response + # payload. + response_fields: nil + ) + end + + sig do + override.returns( + { + request_fields: T.nilable(T::Array[String]), + response_fields: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/credential_create_params.rbi b/rbi/hanzoai/models/credential_create_params.rbi new file mode 100644 index 00000000..4584f641 --- /dev/null +++ b/rbi/hanzoai/models/credential_create_params.rbi @@ -0,0 +1,59 @@ +# typed: strong + +module Hanzoai + module Models + class CredentialCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CredentialCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Hash[Symbol, T.anything]) } + attr_accessor :credential_info + + sig { returns(String) } + attr_accessor :credential_name + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :credential_values + + sig { returns(T.nilable(String)) } + attr_accessor :model_id + + sig do + params( + credential_info: T::Hash[Symbol, T.anything], + credential_name: String, + credential_values: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + credential_info:, + credential_name:, + credential_values: nil, + model_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + credential_info: T::Hash[Symbol, T.anything], + credential_name: String, + credential_values: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/credential_create_response.rbi b/rbi/hanzoai/models/credential_create_response.rbi new file mode 100644 index 00000000..5d5c6eda --- /dev/null +++ b/rbi/hanzoai/models/credential_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CredentialCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/credential_delete_params.rbi b/rbi/hanzoai/models/credential_delete_params.rbi new file mode 100644 index 00000000..ab889815 --- /dev/null +++ b/rbi/hanzoai/models/credential_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CredentialDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CredentialDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/credential_delete_response.rbi b/rbi/hanzoai/models/credential_delete_response.rbi new file mode 100644 index 00000000..eeb36b41 --- /dev/null +++ b/rbi/hanzoai/models/credential_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CredentialDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/credential_item.rbi b/rbi/hanzoai/models/credential_item.rbi new file mode 100644 index 00000000..9a4f255f --- /dev/null +++ b/rbi/hanzoai/models/credential_item.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + class CredentialItem < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::CredentialItem, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Hash[Symbol, T.anything]) } + attr_accessor :credential_info + + sig { returns(String) } + attr_accessor :credential_name + + sig { returns(T::Hash[Symbol, T.anything]) } + attr_accessor :credential_values + + sig do + params( + credential_info: T::Hash[Symbol, T.anything], + credential_name: String, + credential_values: T::Hash[Symbol, T.anything] + ).returns(T.attached_class) + end + def self.new(credential_info:, credential_name:, credential_values:) + end + + sig do + override.returns( + { + credential_info: T::Hash[Symbol, T.anything], + credential_name: String, + credential_values: T::Hash[Symbol, T.anything] + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/credential_list_params.rbi b/rbi/hanzoai/models/credential_list_params.rbi new file mode 100644 index 00000000..cf918408 --- /dev/null +++ b/rbi/hanzoai/models/credential_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CredentialListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CredentialListParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/credential_list_response.rbi b/rbi/hanzoai/models/credential_list_response.rbi new file mode 100644 index 00000000..266b9346 --- /dev/null +++ b/rbi/hanzoai/models/credential_list_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CredentialListResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/customer_block_params.rbi b/rbi/hanzoai/models/customer_block_params.rbi new file mode 100644 index 00000000..b455f023 --- /dev/null +++ b/rbi/hanzoai/models/customer_block_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CustomerBlockParams < Hanzoai::Models::BlockUsers + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CustomerBlockParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/customer_block_response.rbi b/rbi/hanzoai/models/customer_block_response.rbi new file mode 100644 index 00000000..3d29eacf --- /dev/null +++ b/rbi/hanzoai/models/customer_block_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CustomerBlockResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/customer_create_params.rbi b/rbi/hanzoai/models/customer_create_params.rbi new file mode 100644 index 00000000..3acc804f --- /dev/null +++ b/rbi/hanzoai/models/customer_create_params.rbi @@ -0,0 +1,253 @@ +# typed: strong + +module Hanzoai + module Models + class CustomerCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CustomerCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :alias_ + + sig do + returns( + T.nilable(Hanzoai::CustomerCreateParams::AllowedModelRegion::OrSymbol) + ) + end + attr_accessor :allowed_model_region + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :blocked + + sig { params(blocked: T::Boolean).void } + attr_writer :blocked + + # Max duration budget should be set for (e.g. '1hr', '1d', '28d') + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + # Datetime when the budget is reset + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(String)) } + attr_accessor :default_model + + # Requests will fail if this budget (in USD) is exceeded. + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + # Max concurrent requests allowed for this budget id. + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + sig do + returns( + T.nilable( + T::Hash[Symbol, Hanzoai::CustomerCreateParams::ModelMaxBudget] + ) + ) + end + attr_accessor :model_max_budget + + # Max requests per minute, allowed for this budget id. + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + # Requests will NOT fail if this is exceeded. Will fire alerting though. + sig { returns(T.nilable(Float)) } + attr_accessor :soft_budget + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + # Max tokens per minute, allowed for this budget id. + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + params( + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::CustomerCreateParams::AllowedModelRegion::OrSymbol + ), + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + budget_reset_at: T.nilable(Time), + default_model: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::CustomerCreateParams::ModelMaxBudget::OrHash + ] + ), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + user_id:, + alias_: nil, + allowed_model_region: nil, + blocked: nil, + # Max duration budget should be set for (e.g. '1hr', '1d', '28d') + budget_duration: nil, + budget_id: nil, + # Datetime when the budget is reset + budget_reset_at: nil, + default_model: nil, + # Requests will fail if this budget (in USD) is exceeded. + max_budget: nil, + # Max concurrent requests allowed for this budget id. + max_parallel_requests: nil, + # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + model_max_budget: nil, + # Max requests per minute, allowed for this budget id. + rpm_limit: nil, + # Requests will NOT fail if this is exceeded. Will fire alerting though. + soft_budget: nil, + spend: nil, + # Max tokens per minute, allowed for this budget id. + tpm_limit: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::CustomerCreateParams::AllowedModelRegion::OrSymbol + ), + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + budget_reset_at: T.nilable(Time), + default_model: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: + T.nilable( + T::Hash[Symbol, Hanzoai::CustomerCreateParams::ModelMaxBudget] + ), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module AllowedModelRegion + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::CustomerCreateParams::AllowedModelRegion) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + EU = + T.let( + :eu, + Hanzoai::CustomerCreateParams::AllowedModelRegion::TaggedSymbol + ) + US = + T.let( + :us, + Hanzoai::CustomerCreateParams::AllowedModelRegion::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::CustomerCreateParams::AllowedModelRegion::TaggedSymbol + ] + ) + end + def self.values + end + end + + class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::CustomerCreateParams::ModelMaxBudget, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + params( + budget_duration: T.nilable(String), + max_budget: T.nilable(Float), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + budget_duration: nil, + max_budget: nil, + rpm_limit: nil, + tpm_limit: nil + ) + end + + sig do + override.returns( + { + budget_duration: T.nilable(String), + max_budget: T.nilable(Float), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/customer_create_response.rbi b/rbi/hanzoai/models/customer_create_response.rbi new file mode 100644 index 00000000..2d32f073 --- /dev/null +++ b/rbi/hanzoai/models/customer_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CustomerCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/customer_delete_params.rbi b/rbi/hanzoai/models/customer_delete_params.rbi new file mode 100644 index 00000000..64c0a441 --- /dev/null +++ b/rbi/hanzoai/models/customer_delete_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class CustomerDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CustomerDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Array[String]) } + attr_accessor :user_ids + + sig do + params( + user_ids: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(user_ids:, request_options: {}) + end + + sig do + override.returns( + { + user_ids: T::Array[String], + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/customer_delete_response.rbi b/rbi/hanzoai/models/customer_delete_response.rbi new file mode 100644 index 00000000..c227ea29 --- /dev/null +++ b/rbi/hanzoai/models/customer_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CustomerDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/customer_list_params.rbi b/rbi/hanzoai/models/customer_list_params.rbi new file mode 100644 index 00000000..5c40cf8a --- /dev/null +++ b/rbi/hanzoai/models/customer_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CustomerListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CustomerListParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/customer_list_response.rbi b/rbi/hanzoai/models/customer_list_response.rbi new file mode 100644 index 00000000..bb3c1eb6 --- /dev/null +++ b/rbi/hanzoai/models/customer_list_response.rbi @@ -0,0 +1,11 @@ +# typed: strong + +module Hanzoai + module Models + CustomerListResponse = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::LiteLlmEndUserTable], + Hanzoai::Internal::Type::Converter + ) + end +end diff --git a/rbi/hanzoai/models/customer_retrieve_info_params.rbi b/rbi/hanzoai/models/customer_retrieve_info_params.rbi new file mode 100644 index 00000000..53f50ed0 --- /dev/null +++ b/rbi/hanzoai/models/customer_retrieve_info_params.rbi @@ -0,0 +1,40 @@ +# typed: strong + +module Hanzoai + module Models + class CustomerRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CustomerRetrieveInfoParams, Hanzoai::Internal::AnyHash) + end + + # End User ID in the request parameters + sig { returns(String) } + attr_accessor :end_user_id + + sig do + params( + end_user_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # End User ID in the request parameters + end_user_id:, + request_options: {} + ) + end + + sig do + override.returns( + { end_user_id: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/customer_unblock_params.rbi b/rbi/hanzoai/models/customer_unblock_params.rbi new file mode 100644 index 00000000..06ed092e --- /dev/null +++ b/rbi/hanzoai/models/customer_unblock_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class CustomerUnblockParams < Hanzoai::Models::BlockUsers + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CustomerUnblockParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/customer_unblock_response.rbi b/rbi/hanzoai/models/customer_unblock_response.rbi new file mode 100644 index 00000000..8920948c --- /dev/null +++ b/rbi/hanzoai/models/customer_unblock_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CustomerUnblockResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/customer_update_params.rbi b/rbi/hanzoai/models/customer_update_params.rbi new file mode 100644 index 00000000..65e5fbb2 --- /dev/null +++ b/rbi/hanzoai/models/customer_update_params.rbi @@ -0,0 +1,121 @@ +# typed: strong + +module Hanzoai + module Models + class CustomerUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::CustomerUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :alias_ + + sig do + returns( + T.nilable(Hanzoai::CustomerUpdateParams::AllowedModelRegion::OrSymbol) + ) + end + attr_accessor :allowed_model_region + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :blocked + + sig { params(blocked: T::Boolean).void } + attr_writer :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(String)) } + attr_accessor :default_model + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig do + params( + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::CustomerUpdateParams::AllowedModelRegion::OrSymbol + ), + blocked: T::Boolean, + budget_id: T.nilable(String), + default_model: T.nilable(String), + max_budget: T.nilable(Float), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + user_id:, + alias_: nil, + allowed_model_region: nil, + blocked: nil, + budget_id: nil, + default_model: nil, + max_budget: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::CustomerUpdateParams::AllowedModelRegion::OrSymbol + ), + blocked: T::Boolean, + budget_id: T.nilable(String), + default_model: T.nilable(String), + max_budget: T.nilable(Float), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module AllowedModelRegion + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::CustomerUpdateParams::AllowedModelRegion) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + EU = + T.let( + :eu, + Hanzoai::CustomerUpdateParams::AllowedModelRegion::TaggedSymbol + ) + US = + T.let( + :us, + Hanzoai::CustomerUpdateParams::AllowedModelRegion::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::CustomerUpdateParams::AllowedModelRegion::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/customer_update_response.rbi b/rbi/hanzoai/models/customer_update_response.rbi new file mode 100644 index 00000000..ba22bf70 --- /dev/null +++ b/rbi/hanzoai/models/customer_update_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + CustomerUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/delete_create_allowed_ip_params.rbi b/rbi/hanzoai/models/delete_create_allowed_ip_params.rbi new file mode 100644 index 00000000..6ea29c81 --- /dev/null +++ b/rbi/hanzoai/models/delete_create_allowed_ip_params.rbi @@ -0,0 +1,30 @@ +# typed: strong + +module Hanzoai + module Models + class DeleteCreateAllowedIPParams < Hanzoai::Models::IPAddress + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::DeleteCreateAllowedIPParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/delete_create_allowed_ip_response.rbi b/rbi/hanzoai/models/delete_create_allowed_ip_response.rbi new file mode 100644 index 00000000..88764306 --- /dev/null +++ b/rbi/hanzoai/models/delete_create_allowed_ip_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + DeleteCreateAllowedIPResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/embedding_create_params.rbi b/rbi/hanzoai/models/embedding_create_params.rbi new file mode 100644 index 00000000..64b8c3ca --- /dev/null +++ b/rbi/hanzoai/models/embedding_create_params.rbi @@ -0,0 +1,154 @@ +# typed: strong + +module Hanzoai + module Models + class EmbeddingCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EmbeddingCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :model + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + sig { returns(T.nilable(String)) } + attr_accessor :api_type + + sig { returns(T.nilable(String)) } + attr_accessor :api_version + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :caching + + sig { params(caching: T::Boolean).void } + attr_writer :caching + + sig do + returns( + T.nilable(Hanzoai::EmbeddingCreateParams::CustomLlmProvider::Variants) + ) + end + attr_accessor :custom_llm_provider + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :input + + sig { params(input: T::Array[String]).void } + attr_writer :input + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_call_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :litellm_logging_obj + + sig { returns(T.nilable(String)) } + attr_accessor :logger_fn + + sig { returns(T.nilable(Integer)) } + attr_reader :timeout + + sig { params(timeout: Integer).void } + attr_writer :timeout + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable( + Hanzoai::EmbeddingCreateParams::CustomLlmProvider::Variants + ), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + model:, + api_base: nil, + api_key: nil, + api_type: nil, + api_version: nil, + caching: nil, + custom_llm_provider: nil, + input: nil, + litellm_call_id: nil, + litellm_logging_obj: nil, + logger_fn: nil, + timeout: nil, + user: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable( + Hanzoai::EmbeddingCreateParams::CustomLlmProvider::Variants + ), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::EmbeddingCreateParams::CustomLlmProvider::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + end +end diff --git a/rbi/hanzoai/models/embedding_create_response.rbi b/rbi/hanzoai/models/embedding_create_response.rbi new file mode 100644 index 00000000..1fa20133 --- /dev/null +++ b/rbi/hanzoai/models/embedding_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + EmbeddingCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/engine_complete_params.rbi b/rbi/hanzoai/models/engine_complete_params.rbi new file mode 100644 index 00000000..d1806d70 --- /dev/null +++ b/rbi/hanzoai/models/engine_complete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class EngineCompleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EngineCompleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/engine_complete_response.rbi b/rbi/hanzoai/models/engine_complete_response.rbi new file mode 100644 index 00000000..a81ef8c0 --- /dev/null +++ b/rbi/hanzoai/models/engine_complete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + EngineCompleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/engine_embed_params.rbi b/rbi/hanzoai/models/engine_embed_params.rbi new file mode 100644 index 00000000..c0eeef69 --- /dev/null +++ b/rbi/hanzoai/models/engine_embed_params.rbi @@ -0,0 +1,150 @@ +# typed: strong + +module Hanzoai + module Models + class EngineEmbedParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EngineEmbedParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :body_model + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + sig { returns(T.nilable(String)) } + attr_accessor :api_type + + sig { returns(T.nilable(String)) } + attr_accessor :api_version + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :caching + + sig { params(caching: T::Boolean).void } + attr_writer :caching + + sig do + returns( + T.nilable(Hanzoai::EngineEmbedParams::CustomLlmProvider::Variants) + ) + end + attr_accessor :custom_llm_provider + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :input + + sig { params(input: T::Array[String]).void } + attr_writer :input + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_call_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :litellm_logging_obj + + sig { returns(T.nilable(String)) } + attr_accessor :logger_fn + + sig { returns(T.nilable(Integer)) } + attr_reader :timeout + + sig { params(timeout: Integer).void } + attr_writer :timeout + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + body_model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable(Hanzoai::EngineEmbedParams::CustomLlmProvider::Variants), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + body_model:, + api_base: nil, + api_key: nil, + api_type: nil, + api_version: nil, + caching: nil, + custom_llm_provider: nil, + input: nil, + litellm_call_id: nil, + litellm_logging_obj: nil, + logger_fn: nil, + timeout: nil, + user: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + body_model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable( + Hanzoai::EngineEmbedParams::CustomLlmProvider::Variants + ), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[Hanzoai::EngineEmbedParams::CustomLlmProvider::Variants] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + end +end diff --git a/rbi/hanzoai/models/engine_embed_response.rbi b/rbi/hanzoai/models/engine_embed_response.rbi new file mode 100644 index 00000000..81dd6c96 --- /dev/null +++ b/rbi/hanzoai/models/engine_embed_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + EngineEmbedResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/engines/chat_complete_params.rbi b/rbi/hanzoai/models/engines/chat_complete_params.rbi new file mode 100644 index 00000000..af5b79b8 --- /dev/null +++ b/rbi/hanzoai/models/engines/chat_complete_params.rbi @@ -0,0 +1,2639 @@ +# typed: strong + +module Hanzoai + module Models + module Engines + class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T::Array[ + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + ) + ] + ) + end + attr_accessor :messages + + sig { returns(String) } + attr_accessor :body_model + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :caching + + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_accessor :context_window_fallback_dict + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :frequency_penalty + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::FunctionCall::Variants + ) + ) + end + attr_accessor :function_call + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :functions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(T::Hash[Symbol, Float])) } + attr_accessor :logit_bias + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :logprobs + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_tokens + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(Integer)) } + attr_accessor :n + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :parallel_tool_calls + + sig { returns(T.nilable(Float)) } + attr_accessor :presence_penalty + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :response_format + + sig { returns(T.nilable(Integer)) } + attr_accessor :seed + + sig { returns(T.nilable(String)) } + attr_accessor :service_tier + + sig do + returns( + T.nilable(Hanzoai::Engines::ChatCompleteParams::Stop::Variants) + ) + end + attr_accessor :stop + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :stream + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :stream_options + + sig { returns(T.nilable(Float)) } + attr_accessor :temperature + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::ToolChoice::Variants + ) + ) + end + attr_accessor :tool_choice + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :tools + + sig { returns(T.nilable(Integer)) } + attr_accessor :top_logprobs + + sig { returns(T.nilable(Float)) } + attr_accessor :top_p + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + messages: + T::Array[ + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::OrHash + ) + ], + body_model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable(Hanzoai::Engines::ChatCompleteParams::Stop::Variants), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + messages:, + body_model:, + caching: nil, + context_window_fallback_dict: nil, + fallbacks: nil, + frequency_penalty: nil, + function_call: nil, + functions: nil, + guardrails: nil, + logit_bias: nil, + logprobs: nil, + max_tokens: nil, + metadata: nil, + n: nil, + num_retries: nil, + parallel_tool_calls: nil, + presence_penalty: nil, + response_format: nil, + seed: nil, + service_tier: nil, + stop: nil, + stream: nil, + stream_options: nil, + temperature: nil, + tool_choice: nil, + tools: nil, + top_logprobs: nil, + top_p: nil, + user: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + messages: + T::Array[ + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + ) + ], + body_model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable(Hanzoai::Engines::ChatCompleteParams::Stop::Variants), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module Message + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + ) + end + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl::OrHash, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, cache_control: nil, role: :user) + end + + sig do + override.returns( + { + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::Variants + ] + ) + end + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject + ) + end + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ) + ) + end + attr_accessor :image_url + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + image_url: + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject::OrHash + ), + type: Symbol + ).returns(T.attached_class) + end + def self.new(image_url:, type: :image_url) + end + + sig do + override.returns( + { + image_url: + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ), + type: Symbol + } + ) + end + def to_hash + end + + module ImageURL + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ) + end + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_reader :detail + + sig { params(detail: String).void } + attr_writer :detail + + sig { returns(T.nilable(String)) } + attr_reader :format_ + + sig { params(format_: String).void } + attr_writer :format_ + + sig do + params( + url: String, + detail: String, + format_: String + ).returns(T.attached_class) + end + def self.new(url:, detail: nil, format_: nil) + end + + sig do + override.returns( + { url: String, detail: String, format_: String } + ) + end + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::Variants + ] + ) + end + def self.variants + end + end + end + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio + ) + end + attr_reader :input_audio + + sig do + params( + input_audio: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::OrHash + ).void + end + attr_writer :input_audio + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + input_audio: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(input_audio:, type: :input_audio) + end + + sig do + override.returns( + { + input_audio: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: Symbol + } + ) + end + def to_hash + end + + class InputAudio < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :data + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + ) + end + attr_accessor :format_ + + sig do + params( + data: String, + format_: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + ).returns(T.attached_class) + end + def self.new(data:, format_:) + end + + sig do + override.returns( + { + data: String, + format_: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + } + ) + end + def to_hash + end + + module Format + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + WAV = + T.let( + :wav, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ) + MP3 = + T.let( + :mp3, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + ) + ) + end + attr_reader :citations + + sig do + params( + citations: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations::OrHash + ) + ).void + end + attr_writer :citations + + sig { returns(String) } + attr_accessor :context + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source + ) + end + attr_reader :source + + sig do + params( + source: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source::OrHash + ).void + end + attr_writer :source + + sig { returns(String) } + attr_accessor :title + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + citations: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations::OrHash + ), + context: String, + source: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source::OrHash, + title: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + citations:, + context:, + source:, + title:, + type: :document + ) + end + + sig do + override.returns( + { + citations: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + ), + context: String, + source: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: Symbol + } + ) + end + def to_hash + end + + class Citations < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T::Boolean) } + attr_accessor :enabled + + sig do + params(enabled: T::Boolean).returns(T.attached_class) + end + def self.new(enabled:) + end + + sig { override.returns({ enabled: T::Boolean }) } + def to_hash + end + end + + class Source < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :data + + sig { returns(String) } + attr_accessor :media_type + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + data: String, + media_type: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new(data:, media_type:, type: :text) + end + + sig do + override.returns( + { data: String, media_type: String, type: Symbol } + ) + end + def to_hash + end + end + end + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + ) + end + attr_accessor :video_url + + sig do + params( + video_url: + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject::OrHash + ), + type: Symbol + ).returns(T.attached_class) + end + def self.new(video_url:, type: :video_url) + end + + sig do + override.returns( + { + type: Symbol, + video_url: + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + } + ) + end + def to_hash + end + + module VideoURL + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + end + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_reader :detail + + sig { params(detail: String).void } + attr_writer :detail + + sig do + params(url: String, detail: String).returns( + T.attached_class + ) + end + def self.new(url:, detail: nil) + end + + sig { override.returns({ url: String, detail: String }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::Variants + ] + ) + end + def self.variants + end + end + end + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File + ) + end + attr_reader :file + + sig do + params( + file: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File::OrHash + ).void + end + attr_writer :file + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + file: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(file:, type: :file) + end + + sig do + override.returns( + { + file: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: Symbol + } + ) + end + def to_hash + end + + class File < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :file_data + + sig { params(file_data: String).void } + attr_writer :file_data + + sig { returns(T.nilable(String)) } + attr_reader :file_id + + sig { params(file_id: String).void } + attr_writer :file_id + + sig { returns(T.nilable(String)) } + attr_reader :filename + + sig { params(filename: String).void } + attr_writer :filename + + sig { returns(T.nilable(String)) } + attr_reader :format_ + + sig { params(format_: String).void } + attr_writer :format_ + + sig do + params( + file_data: String, + file_id: String, + filename: String, + format_: String + ).returns(T.attached_class) + end + def self.new( + file_data: nil, + file_id: nil, + filename: nil, + format_: nil + ) + end + + sig do + override.returns( + { + file_data: String, + file_id: String, + filename: String, + format_: String + } + ) + end + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + union: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ) + ) + end + attr_accessor :content + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall + ) + ) + end + attr_reader :function_call + + sig do + params( + function_call: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall::OrHash + ) + ).void + end + attr_writer :function_call + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(String)) } + attr_accessor :reasoning_content + + sig do + returns( + T.nilable( + T::Array[ + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ) + ) + end + attr_accessor :thinking_blocks + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall + ] + ) + ) + end + attr_accessor :tool_calls + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl::OrHash, + content: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ), + function_call: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall::OrHash + ), + name: T.nilable(String), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::OrHash + ) + ] + ), + tool_calls: + T.nilable( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::OrHash + ] + ), + role: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + content: nil, + function_call: nil, + name: nil, + reasoning_content: nil, + thinking_blocks: nil, + tool_calls: nil, + role: :assistant + ) + end + + sig do + override.returns( + { + role: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ), + function_call: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall + ), + name: T.nilable(String), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ), + tool_calls: + T.nilable( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall + ] + ) + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::Variants + ] + ) + end + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock + ) + end + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + union: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :arguments + + sig { params(arguments: String).void } + attr_writer :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + arguments: nil, + name: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :data + + sig { params(data: String).void } + attr_writer :data + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + data: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + data: nil, + type: :redacted_thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + data: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::Variants + ] + ) + end + def self.variants + end + end + + class ToolCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :id + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function + ) + end + attr_reader :function + + sig do + params( + function: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function::OrHash + ).void + end + attr_writer :function + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + id: T.nilable(String), + function: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(id:, function:, type: :function) + end + + sig do + override.returns( + { + id: T.nilable(String), + function: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: Symbol + } + ) + end + def to_hash + end + + class Function < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :arguments + + sig { params(arguments: String).void } + attr_writer :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + arguments: nil, + name: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + end + end + end + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig { returns(String) } + attr_accessor :tool_call_id + + sig do + params( + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants, + tool_call_id: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, tool_call_id:, role: :tool) + end + + sig do + override.returns( + { + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants, + role: Symbol, + tool_call_id: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + ] + ) + end + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig do + params( + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl::OrHash, + name: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, cache_control: nil, name: nil, role: :system) + end + + sig do + override.returns( + { + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ) + ) + end + attr_accessor :content + + sig { returns(String) } + attr_accessor :name + + sig { returns(Symbol) } + attr_accessor :role + + sig { returns(T.nilable(String)) } + attr_accessor :tool_call_id + + sig do + params( + content: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ), + name: String, + tool_call_id: T.nilable(String), + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, name:, tool_call_id:, role: :function) + end + + sig do + override.returns( + { + content: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ), + name: String, + role: Symbol, + tool_call_id: T.nilable(String) + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 + ] + ) + end + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig do + params( + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl::OrHash, + name: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new( + content:, + cache_control: nil, + name: nil, + role: :developer + ) + end + + sig do + override.returns( + { + content: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[Hanzoai::Engines::ChatCompleteParams::Message::Variants] + ) + end + def self.variants + end + end + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::FunctionCall::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module Stop + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[String]) } + + sig do + override.returns( + T::Array[Hanzoai::Engines::ChatCompleteParams::Stop::Variants] + ) + end + def self.variants + end + + StringArray = + T.let( + Hanzoai::Internal::Type::ArrayOf[String], + Hanzoai::Internal::Type::Converter + ) + end + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Engines::ChatCompleteParams::ToolChoice::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + end + end +end diff --git a/rbi/hanzoai/models/engines/chat_complete_response.rbi b/rbi/hanzoai/models/engines/chat_complete_response.rbi new file mode 100644 index 00000000..c1bcf513 --- /dev/null +++ b/rbi/hanzoai/models/engines/chat_complete_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Engines + ChatCompleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_create_params.rbi b/rbi/hanzoai/models/eu_assemblyai_create_params.rbi new file mode 100644 index 00000000..9daaa3a0 --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class EuAssemblyaiCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EuAssemblyaiCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_create_response.rbi b/rbi/hanzoai/models/eu_assemblyai_create_response.rbi new file mode 100644 index 00000000..c9e95c5f --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + EuAssemblyaiCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_delete_params.rbi b/rbi/hanzoai/models/eu_assemblyai_delete_params.rbi new file mode 100644 index 00000000..2f9a5df5 --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class EuAssemblyaiDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EuAssemblyaiDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_delete_response.rbi b/rbi/hanzoai/models/eu_assemblyai_delete_response.rbi new file mode 100644 index 00000000..4c858f71 --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + EuAssemblyaiDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_patch_params.rbi b/rbi/hanzoai/models/eu_assemblyai_patch_params.rbi new file mode 100644 index 00000000..72d1321d --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class EuAssemblyaiPatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EuAssemblyaiPatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_patch_response.rbi b/rbi/hanzoai/models/eu_assemblyai_patch_response.rbi new file mode 100644 index 00000000..e9f2c2ad --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_patch_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + EuAssemblyaiPatchResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_retrieve_params.rbi b/rbi/hanzoai/models/eu_assemblyai_retrieve_params.rbi new file mode 100644 index 00000000..292b6d62 --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class EuAssemblyaiRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EuAssemblyaiRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_retrieve_response.rbi b/rbi/hanzoai/models/eu_assemblyai_retrieve_response.rbi new file mode 100644 index 00000000..c9ec60f6 --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + EuAssemblyaiRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_update_params.rbi b/rbi/hanzoai/models/eu_assemblyai_update_params.rbi new file mode 100644 index 00000000..c26f1322 --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class EuAssemblyaiUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::EuAssemblyaiUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/eu_assemblyai_update_response.rbi b/rbi/hanzoai/models/eu_assemblyai_update_response.rbi new file mode 100644 index 00000000..4e77e2dc --- /dev/null +++ b/rbi/hanzoai/models/eu_assemblyai_update_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + EuAssemblyaiUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/file_create_params.rbi b/rbi/hanzoai/models/file_create_params.rbi new file mode 100644 index 00000000..47cf578f --- /dev/null +++ b/rbi/hanzoai/models/file_create_params.rbi @@ -0,0 +1,80 @@ +# typed: strong + +module Hanzoai + module Models + class FileCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::FileCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(Hanzoai::Internal::FileInput) } + attr_accessor :file + + sig { returns(String) } + attr_accessor :purpose + + sig { returns(T.nilable(String)) } + attr_reader :custom_llm_provider + + sig { params(custom_llm_provider: String).void } + attr_writer :custom_llm_provider + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_metadata + + sig { returns(T.nilable(String)) } + attr_reader :target_model_names + + sig { params(target_model_names: String).void } + attr_writer :target_model_names + + sig { returns(T.nilable(String)) } + attr_reader :target_storage + + sig { params(target_storage: String).void } + attr_writer :target_storage + + sig do + params( + file: Hanzoai::Internal::FileInput, + purpose: String, + custom_llm_provider: String, + litellm_metadata: T.nilable(String), + target_model_names: String, + target_storage: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + file:, + purpose:, + custom_llm_provider: nil, + litellm_metadata: nil, + target_model_names: nil, + target_storage: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + file: Hanzoai::Internal::FileInput, + purpose: String, + custom_llm_provider: String, + litellm_metadata: T.nilable(String), + target_model_names: String, + target_storage: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/file_create_response.rbi b/rbi/hanzoai/models/file_create_response.rbi new file mode 100644 index 00000000..f489e2be --- /dev/null +++ b/rbi/hanzoai/models/file_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + FileCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/file_delete_params.rbi b/rbi/hanzoai/models/file_delete_params.rbi new file mode 100644 index 00000000..b72e593e --- /dev/null +++ b/rbi/hanzoai/models/file_delete_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Hanzoai + module Models + class FileDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::FileDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :provider + + sig do + params( + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider:, request_options: {}) + end + + sig do + override.returns( + { provider: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/file_delete_response.rbi b/rbi/hanzoai/models/file_delete_response.rbi new file mode 100644 index 00000000..d0080585 --- /dev/null +++ b/rbi/hanzoai/models/file_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + FileDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/file_list_params.rbi b/rbi/hanzoai/models/file_list_params.rbi new file mode 100644 index 00000000..4630cb7c --- /dev/null +++ b/rbi/hanzoai/models/file_list_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + class FileListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::FileListParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :purpose + + sig { returns(T.nilable(String)) } + attr_accessor :target_model_names + + sig do + params( + purpose: T.nilable(String), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(purpose: nil, target_model_names: nil, request_options: {}) + end + + sig do + override.returns( + { + purpose: T.nilable(String), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/file_list_response.rbi b/rbi/hanzoai/models/file_list_response.rbi new file mode 100644 index 00000000..84d9af3e --- /dev/null +++ b/rbi/hanzoai/models/file_list_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + FileListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/file_retrieve_params.rbi b/rbi/hanzoai/models/file_retrieve_params.rbi new file mode 100644 index 00000000..55b93aa2 --- /dev/null +++ b/rbi/hanzoai/models/file_retrieve_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Hanzoai + module Models + class FileRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::FileRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :provider + + sig do + params( + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider:, request_options: {}) + end + + sig do + override.returns( + { provider: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/file_retrieve_response.rbi b/rbi/hanzoai/models/file_retrieve_response.rbi new file mode 100644 index 00000000..399d94d9 --- /dev/null +++ b/rbi/hanzoai/models/file_retrieve_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + FileRetrieveResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/files/content_retrieve_params.rbi b/rbi/hanzoai/models/files/content_retrieve_params.rbi new file mode 100644 index 00000000..b99f48b6 --- /dev/null +++ b/rbi/hanzoai/models/files/content_retrieve_params.rbi @@ -0,0 +1,40 @@ +# typed: strong + +module Hanzoai + module Models + module Files + class ContentRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Files::ContentRetrieveParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :provider + + sig do + params( + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(provider:, request_options: {}) + end + + sig do + override.returns( + { provider: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/files/content_retrieve_response.rbi b/rbi/hanzoai/models/files/content_retrieve_response.rbi new file mode 100644 index 00000000..46efc5b2 --- /dev/null +++ b/rbi/hanzoai/models/files/content_retrieve_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Files + ContentRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/job_create_params.rbi b/rbi/hanzoai/models/fine_tuning/job_create_params.rbi new file mode 100644 index 00000000..6e5a7f02 --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/job_create_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + class JobCreateParams < Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::FineTuning::JobCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/job_create_response.rbi b/rbi/hanzoai/models/fine_tuning/job_create_response.rbi new file mode 100644 index 00000000..65f3cf5c --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/job_create_response.rbi @@ -0,0 +1,9 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + JobCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/job_list_params.rbi b/rbi/hanzoai/models/fine_tuning/job_list_params.rbi new file mode 100644 index 00000000..b1d23efb --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/job_list_params.rbi @@ -0,0 +1,112 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + class JobListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::FineTuning::JobListParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :after + + sig do + returns( + T.nilable( + Hanzoai::FineTuning::JobListParams::CustomLlmProvider::OrSymbol + ) + ) + end + attr_accessor :custom_llm_provider + + sig { returns(T.nilable(Integer)) } + attr_accessor :limit + + # Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini' + sig { returns(T.nilable(String)) } + attr_accessor :target_model_names + + sig do + params( + after: T.nilable(String), + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::JobListParams::CustomLlmProvider::OrSymbol + ), + limit: T.nilable(Integer), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + after: nil, + custom_llm_provider: nil, + limit: nil, + # Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini' + target_model_names: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + after: T.nilable(String), + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::JobListParams::CustomLlmProvider::OrSymbol + ), + limit: T.nilable(Integer), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::FineTuning::JobListParams::CustomLlmProvider + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + OPENAI = + T.let( + :openai, + Hanzoai::FineTuning::JobListParams::CustomLlmProvider::TaggedSymbol + ) + AZURE = + T.let( + :azure, + Hanzoai::FineTuning::JobListParams::CustomLlmProvider::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::FineTuning::JobListParams::CustomLlmProvider::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/job_list_response.rbi b/rbi/hanzoai/models/fine_tuning/job_list_response.rbi new file mode 100644 index 00000000..4b508a57 --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/job_list_response.rbi @@ -0,0 +1,9 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + JobListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/job_retrieve_params.rbi b/rbi/hanzoai/models/fine_tuning/job_retrieve_params.rbi new file mode 100644 index 00000000..849d3877 --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/job_retrieve_params.rbi @@ -0,0 +1,89 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + class JobRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::FineTuning::JobRetrieveParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol + ) + ) + end + attr_accessor :custom_llm_provider + + sig do + params( + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol + ), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(custom_llm_provider: nil, request_options: {}) + end + + sig do + override.returns( + { + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol + ), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + OPENAI = + T.let( + :openai, + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider::TaggedSymbol + ) + AZURE = + T.let( + :azure, + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/job_retrieve_response.rbi b/rbi/hanzoai/models/fine_tuning/job_retrieve_response.rbi new file mode 100644 index 00000000..384a6051 --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/job_retrieve_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + JobRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbi b/rbi/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbi new file mode 100644 index 00000000..6346802d --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbi @@ -0,0 +1,34 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + module Jobs + class CancelCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::FineTuning::Jobs::CancelCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/jobs/cancel_create_response.rbi b/rbi/hanzoai/models/fine_tuning/jobs/cancel_create_response.rbi new file mode 100644 index 00000000..b2770358 --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/jobs/cancel_create_response.rbi @@ -0,0 +1,12 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + module Jobs + CancelCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end + end +end diff --git a/rbi/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rbi b/rbi/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rbi new file mode 100644 index 00000000..2b249eba --- /dev/null +++ b/rbi/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rbi @@ -0,0 +1,284 @@ +# typed: strong + +module Hanzoai + module Models + module FineTuning + class LiteLlmFineTuningJobCreate < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :model + + sig { returns(String) } + attr_accessor :training_file + + sig do + returns( + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::OrSymbol + ) + ) + end + attr_accessor :custom_llm_provider + + sig do + returns( + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters + ) + ) + end + attr_reader :hyperparameters + + sig do + params( + hyperparameters: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::OrHash + ) + ).void + end + attr_writer :hyperparameters + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :integrations + + sig { returns(T.nilable(Integer)) } + attr_accessor :seed + + sig { returns(T.nilable(String)) } + attr_accessor :suffix + + sig { returns(T.nilable(String)) } + attr_accessor :validation_file + + sig do + params( + model: String, + training_file: String, + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::OrSymbol + ), + hyperparameters: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::OrHash + ), + integrations: T.nilable(T::Array[String]), + seed: T.nilable(Integer), + suffix: T.nilable(String), + validation_file: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + model:, + training_file:, + custom_llm_provider: nil, + hyperparameters: nil, + integrations: nil, + seed: nil, + suffix: nil, + validation_file: nil + ) + end + + sig do + override.returns( + { + model: String, + training_file: String, + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::OrSymbol + ), + hyperparameters: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters + ), + integrations: T.nilable(T::Array[String]), + seed: T.nilable(Integer), + suffix: T.nilable(String), + validation_file: T.nilable(String) + } + ) + end + def to_hash + end + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + OPENAI = + T.let( + :openai, + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::TaggedSymbol + ) + AZURE = + T.let( + :azure, + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::TaggedSymbol + ) + VERTEX_AI = + T.let( + :vertex_ai, + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::TaggedSymbol + ] + ) + end + def self.values + end + end + + class Hyperparameters < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::BatchSize::Variants + ) + ) + end + attr_accessor :batch_size + + sig do + returns( + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::LearningRateMultiplier::Variants + ) + ) + end + attr_accessor :learning_rate_multiplier + + sig do + returns( + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::NEpochs::Variants + ) + ) + end + attr_accessor :n_epochs + + sig do + params( + batch_size: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::BatchSize::Variants + ), + learning_rate_multiplier: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::LearningRateMultiplier::Variants + ), + n_epochs: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::NEpochs::Variants + ) + ).returns(T.attached_class) + end + def self.new( + batch_size: nil, + learning_rate_multiplier: nil, + n_epochs: nil + ) + end + + sig do + override.returns( + { + batch_size: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::BatchSize::Variants + ), + learning_rate_multiplier: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::LearningRateMultiplier::Variants + ), + n_epochs: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::NEpochs::Variants + ) + } + ) + end + def to_hash + end + + module BatchSize + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Integer) } + + sig do + override.returns( + T::Array[ + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::BatchSize::Variants + ] + ) + end + def self.variants + end + end + + module LearningRateMultiplier + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Float) } + + sig do + override.returns( + T::Array[ + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::LearningRateMultiplier::Variants + ] + ) + end + def self.variants + end + end + + module NEpochs + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Integer) } + + sig do + override.returns( + T::Array[ + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::NEpochs::Variants + ] + ) + end + def self.variants + end + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/gemini_create_params.rbi b/rbi/hanzoai/models/gemini_create_params.rbi new file mode 100644 index 00000000..01fd001e --- /dev/null +++ b/rbi/hanzoai/models/gemini_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class GeminiCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::GeminiCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/gemini_create_response.rbi b/rbi/hanzoai/models/gemini_create_response.rbi new file mode 100644 index 00000000..6677d8e8 --- /dev/null +++ b/rbi/hanzoai/models/gemini_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + GeminiCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/gemini_delete_params.rbi b/rbi/hanzoai/models/gemini_delete_params.rbi new file mode 100644 index 00000000..78e94df8 --- /dev/null +++ b/rbi/hanzoai/models/gemini_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class GeminiDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::GeminiDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/gemini_delete_response.rbi b/rbi/hanzoai/models/gemini_delete_response.rbi new file mode 100644 index 00000000..53bcedfc --- /dev/null +++ b/rbi/hanzoai/models/gemini_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + GeminiDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/gemini_patch_params.rbi b/rbi/hanzoai/models/gemini_patch_params.rbi new file mode 100644 index 00000000..6c38904b --- /dev/null +++ b/rbi/hanzoai/models/gemini_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class GeminiPatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::GeminiPatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/gemini_patch_response.rbi b/rbi/hanzoai/models/gemini_patch_response.rbi new file mode 100644 index 00000000..2b479bd7 --- /dev/null +++ b/rbi/hanzoai/models/gemini_patch_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + GeminiPatchResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/gemini_retrieve_params.rbi b/rbi/hanzoai/models/gemini_retrieve_params.rbi new file mode 100644 index 00000000..78ae71d9 --- /dev/null +++ b/rbi/hanzoai/models/gemini_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class GeminiRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::GeminiRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/gemini_retrieve_response.rbi b/rbi/hanzoai/models/gemini_retrieve_response.rbi new file mode 100644 index 00000000..f3947822 --- /dev/null +++ b/rbi/hanzoai/models/gemini_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + GeminiRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/gemini_update_params.rbi b/rbi/hanzoai/models/gemini_update_params.rbi new file mode 100644 index 00000000..e1fd58a3 --- /dev/null +++ b/rbi/hanzoai/models/gemini_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class GeminiUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::GeminiUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/gemini_update_response.rbi b/rbi/hanzoai/models/gemini_update_response.rbi new file mode 100644 index 00000000..2e7e7613 --- /dev/null +++ b/rbi/hanzoai/models/gemini_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + GeminiUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/generate_key_response.rbi b/rbi/hanzoai/models/generate_key_response.rbi new file mode 100644 index 00000000..54bb5116 --- /dev/null +++ b/rbi/hanzoai/models/generate_key_response.rbi @@ -0,0 +1,701 @@ +# typed: strong + +module Hanzoai + module Models + class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::GenerateKeyResponse, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :key + + sig { returns(T.nilable(String)) } + attr_accessor :token + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_passthrough_routes + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig do + returns( + T.nilable( + T::Array[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex] + ) + ) + end + attr_accessor :allowed_vector_store_indexes + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :config + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(String)) } + attr_accessor :created_by + + sig { returns(T.nilable(String)) } + attr_accessor :duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :enforced_params + + sig { returns(T.nilable(Time)) } + attr_accessor :expires + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(String)) } + attr_accessor :key_name + + sig { returns(T.nilable(T.anything)) } + attr_reader :litellm_budget_table + + sig { params(litellm_budget_table: T.anything).void } + attr_writer :litellm_budget_table + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig { returns(T.nilable(Hanzoai::GenerateKeyResponse::ObjectPermission)) } + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable(Hanzoai::GenerateKeyResponse::ObjectPermission::OrHash) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + # Set of params that you can modify via `router.update_settings()`. + sig { returns(T.nilable(Hanzoai::GenerateKeyResponse::RouterSettings)) } + attr_reader :router_settings + + sig do + params( + router_settings: + T.nilable(Hanzoai::GenerateKeyResponse::RouterSettings::OrHash) + ).void + end + attr_writer :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig do + returns( + T.nilable(Hanzoai::GenerateKeyResponse::RpmLimitType::TaggedSymbol) + ) + end + attr_accessor :rpm_limit_type + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :tags + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(String)) } + attr_accessor :token_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + returns( + T.nilable(Hanzoai::GenerateKeyResponse::TpmLimitType::TaggedSymbol) + ) + end + attr_accessor :tpm_limit_type + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :updated_by + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + key: String, + token: T.nilable(String), + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::OrHash + ] + ), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + created_at: T.nilable(Time), + created_by: T.nilable(String), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + expires: T.nilable(Time), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + key_name: T.nilable(String), + litellm_budget_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::GenerateKeyResponse::ObjectPermission::OrHash), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + router_settings: + T.nilable(Hanzoai::GenerateKeyResponse::RouterSettings::OrHash), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::GenerateKeyResponse::RpmLimitType::OrSymbol), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + token_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::GenerateKeyResponse::TpmLimitType::OrSymbol), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + key:, + token: nil, + aliases: nil, + allowed_cache_controls: nil, + allowed_passthrough_routes: nil, + allowed_routes: nil, + allowed_vector_store_indexes: nil, + blocked: nil, + budget_duration: nil, + budget_id: nil, + config: nil, + created_at: nil, + created_by: nil, + duration: nil, + enforced_params: nil, + expires: nil, + guardrails: nil, + key_alias: nil, + key_name: nil, + litellm_budget_table: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organization_id: nil, + permissions: nil, + prompts: nil, + # Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + rpm_limit: nil, + rpm_limit_type: nil, + spend: nil, + tags: nil, + team_id: nil, + token_id: nil, + tpm_limit: nil, + tpm_limit_type: nil, + updated_at: nil, + updated_by: nil, + user_id: nil + ) + end + + sig do + override.returns( + { + key: String, + token: T.nilable(String), + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex] + ), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + created_at: T.nilable(Time), + created_by: T.nilable(String), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + expires: T.nilable(Time), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + key_name: T.nilable(String), + litellm_budget_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::GenerateKeyResponse::ObjectPermission), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + router_settings: + T.nilable(Hanzoai::GenerateKeyResponse::RouterSettings), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable( + Hanzoai::GenerateKeyResponse::RpmLimitType::TaggedSymbol + ), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + token_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable( + Hanzoai::GenerateKeyResponse::TpmLimitType::TaggedSymbol + ), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_id: T.nilable(String) + } + ) + end + def to_hash + end + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :index_name + + sig do + returns( + T::Array[ + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + attr_accessor :index_permissions + + sig do + params( + index_name: String, + index_permissions: + T::Array[ + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new(index_name:, index_permissions:) + end + + sig do + override.returns( + { + index_name: String, + index_permissions: + T::Array[ + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + } + ) + end + def to_hash + end + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + READ = + T.let( + :read, + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + WRITE = + T.let( + :write, + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::GenerateKeyResponse::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::GenerateKeyResponse::RouterSettings, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_accessor :allowed_fails + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :context_window_fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :cooldown_time + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + sig do + returns( + T.nilable( + T::Hash[ + Symbol, + Hanzoai::GenerateKeyResponse::RouterSettings::ModelGroupAlias::Variants + ] + ) + ) + end + attr_accessor :model_group_alias + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_group_retry_policy + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(Float)) } + attr_accessor :retry_after + + sig { returns(T.nilable(String)) } + attr_accessor :routing_strategy + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :routing_strategy_args + + sig { returns(T.nilable(Float)) } + attr_accessor :timeout + + # Set of params that you can modify via `router.update_settings()`. + sig do + params( + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::GenerateKeyResponse::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + ).returns(T.attached_class) + end + def self.new( + allowed_fails: nil, + context_window_fallbacks: nil, + cooldown_time: nil, + fallbacks: nil, + max_retries: nil, + model_group_alias: nil, + model_group_retry_policy: nil, + num_retries: nil, + retry_after: nil, + routing_strategy: nil, + routing_strategy_args: nil, + timeout: nil + ) + end + + sig do + override.returns( + { + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::GenerateKeyResponse::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + } + ) + end + def to_hash + end + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::GenerateKeyResponse::RouterSettings::ModelGroupAlias::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::GenerateKeyResponse::RpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::GenerateKeyResponse::RpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::GenerateKeyResponse::RpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::GenerateKeyResponse::RpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::GenerateKeyResponse::RpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::GenerateKeyResponse::TpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::GenerateKeyResponse::TpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::GenerateKeyResponse::TpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::GenerateKeyResponse::TpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::GenerateKeyResponse::TpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/get_home_response.rbi b/rbi/hanzoai/models/get_home_response.rbi new file mode 100644 index 00000000..6e327056 --- /dev/null +++ b/rbi/hanzoai/models/get_home_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + GetHomeResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/global/spend_list_tags_params.rbi b/rbi/hanzoai/models/global/spend_list_tags_params.rbi new file mode 100644 index 00000000..86f0f050 --- /dev/null +++ b/rbi/hanzoai/models/global/spend_list_tags_params.rbi @@ -0,0 +1,64 @@ +# typed: strong + +module Hanzoai + module Models + module Global + class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Global::SpendListTagsParams, + Hanzoai::Internal::AnyHash + ) + end + + # Time till which to view key spend + sig { returns(T.nilable(String)) } + attr_accessor :end_date + + # Time from which to start viewing key spend + sig { returns(T.nilable(String)) } + attr_accessor :start_date + + # comman separated tags to filter on + sig { returns(T.nilable(String)) } + attr_accessor :tags + + sig do + params( + end_date: T.nilable(String), + start_date: T.nilable(String), + tags: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Time till which to view key spend + end_date: nil, + # Time from which to start viewing key spend + start_date: nil, + # comman separated tags to filter on + tags: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + end_date: T.nilable(String), + start_date: T.nilable(String), + tags: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/global/spend_list_tags_response.rbi b/rbi/hanzoai/models/global/spend_list_tags_response.rbi new file mode 100644 index 00000000..b5043de3 --- /dev/null +++ b/rbi/hanzoai/models/global/spend_list_tags_response.rbi @@ -0,0 +1,308 @@ +# typed: strong + +module Hanzoai + module Models + module Global + class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::Global::SpendListTagsResponseItem, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :api_key + + sig { returns(String) } + attr_accessor :call_type + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::EndTime::Variants + ) + ) + end + attr_accessor :end_time + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::Messages::Variants + ) + ) + end + attr_accessor :messages + + sig { returns(String) } + attr_accessor :request_id + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::Response::Variants + ) + ) + end + attr_accessor :response + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::StartTime::Variants + ) + ) + end + attr_accessor :start_time + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :cache_hit + + sig { returns(T.nilable(String)) } + attr_accessor :cache_key + + sig { returns(T.nilable(Integer)) } + attr_accessor :completion_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :metadata + + sig { params(metadata: T.anything).void } + attr_writer :metadata + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig { returns(T.nilable(Integer)) } + attr_accessor :prompt_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :request_tags + + sig { params(request_tags: T.anything).void } + attr_writer :request_tags + + sig { returns(T.nilable(String)) } + attr_accessor :requester_ip_address + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(Integer)) } + attr_accessor :total_tokens + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + api_key:, + call_type:, + end_time:, + messages:, + request_id:, + response:, + start_time:, + api_base: nil, + cache_hit: nil, + cache_key: nil, + completion_tokens: nil, + metadata: nil, + model: nil, + prompt_tokens: nil, + request_tags: nil, + requester_ip_address: nil, + spend: nil, + total_tokens: nil, + user: nil + ) + end + + sig do + override.returns( + { + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::Global::SpendListTagsResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + } + ) + end + def to_hash + end + + module EndTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendListTagsResponseItem::EndTime::Variants + ] + ) + end + def self.variants + end + end + + module Messages + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendListTagsResponseItem::Messages::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module Response + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendListTagsResponseItem::Response::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module StartTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendListTagsResponseItem::StartTime::Variants + ] + ) + end + def self.variants + end + end + end + + SpendListTagsResponse = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Models::Global::SpendListTagsResponseItem + ], + Hanzoai::Internal::Type::Converter + ) + end + end +end diff --git a/rbi/hanzoai/models/global/spend_reset_params.rbi b/rbi/hanzoai/models/global/spend_reset_params.rbi new file mode 100644 index 00000000..5d1ecc24 --- /dev/null +++ b/rbi/hanzoai/models/global/spend_reset_params.rbi @@ -0,0 +1,29 @@ +# typed: strong + +module Hanzoai + module Models + module Global + class SpendResetParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::Global::SpendResetParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/global/spend_reset_response.rbi b/rbi/hanzoai/models/global/spend_reset_response.rbi new file mode 100644 index 00000000..224de9e6 --- /dev/null +++ b/rbi/hanzoai/models/global/spend_reset_response.rbi @@ -0,0 +1,9 @@ +# typed: strong + +module Hanzoai + module Models + module Global + SpendResetResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/global/spend_retrieve_report_params.rbi b/rbi/hanzoai/models/global/spend_retrieve_report_params.rbi new file mode 100644 index 00000000..d83f1645 --- /dev/null +++ b/rbi/hanzoai/models/global/spend_retrieve_report_params.rbi @@ -0,0 +1,147 @@ +# typed: strong + +module Hanzoai + module Models + module Global + class SpendRetrieveReportParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Global::SpendRetrieveReportParams, + Hanzoai::Internal::AnyHash + ) + end + + # View spend for a specific api_key. Example api_key='sk-1234 + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + # View spend for a specific customer_id. Example customer_id='1234. Can be used in + # conjunction with team_id as well. + sig { returns(T.nilable(String)) } + attr_accessor :customer_id + + # Time till which to view spend + sig { returns(T.nilable(String)) } + attr_accessor :end_date + + # Group spend by internal team or customer or api_key + sig do + returns( + T.nilable( + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::OrSymbol + ) + ) + end + attr_accessor :group_by + + # View spend for a specific internal_user_id. Example internal_user_id='1234 + sig { returns(T.nilable(String)) } + attr_accessor :internal_user_id + + # Time from which to start viewing spend + sig { returns(T.nilable(String)) } + attr_accessor :start_date + + # View spend for a specific team_id. Example team_id='1234 + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig do + params( + api_key: T.nilable(String), + customer_id: T.nilable(String), + end_date: T.nilable(String), + group_by: + T.nilable( + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::OrSymbol + ), + internal_user_id: T.nilable(String), + start_date: T.nilable(String), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # View spend for a specific api_key. Example api_key='sk-1234 + api_key: nil, + # View spend for a specific customer_id. Example customer_id='1234. Can be used in + # conjunction with team_id as well. + customer_id: nil, + # Time till which to view spend + end_date: nil, + # Group spend by internal team or customer or api_key + group_by: nil, + # View spend for a specific internal_user_id. Example internal_user_id='1234 + internal_user_id: nil, + # Time from which to start viewing spend + start_date: nil, + # View spend for a specific team_id. Example team_id='1234 + team_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + api_key: T.nilable(String), + customer_id: T.nilable(String), + end_date: T.nilable(String), + group_by: + T.nilable( + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::OrSymbol + ), + internal_user_id: T.nilable(String), + start_date: T.nilable(String), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + # Group spend by internal team or customer or api_key + module GroupBy + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Global::SpendRetrieveReportParams::GroupBy) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + TEAM = + T.let( + :team, + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol + ) + CUSTOMER = + T.let( + :customer, + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol + ) + API_KEY = + T.let( + :api_key, + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/global/spend_retrieve_report_response.rbi b/rbi/hanzoai/models/global/spend_retrieve_report_response.rbi new file mode 100644 index 00000000..2ecd17fc --- /dev/null +++ b/rbi/hanzoai/models/global/spend_retrieve_report_response.rbi @@ -0,0 +1,308 @@ +# typed: strong + +module Hanzoai + module Models + module Global + class SpendRetrieveReportResponseItem < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :api_key + + sig { returns(String) } + attr_accessor :call_type + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::EndTime::Variants + ) + ) + end + attr_accessor :end_time + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Messages::Variants + ) + ) + end + attr_accessor :messages + + sig { returns(String) } + attr_accessor :request_id + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Response::Variants + ) + ) + end + attr_accessor :response + + sig do + returns( + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::StartTime::Variants + ) + ) + end + attr_accessor :start_time + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :cache_hit + + sig { returns(T.nilable(String)) } + attr_accessor :cache_key + + sig { returns(T.nilable(Integer)) } + attr_accessor :completion_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :metadata + + sig { params(metadata: T.anything).void } + attr_writer :metadata + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig { returns(T.nilable(Integer)) } + attr_accessor :prompt_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :request_tags + + sig { params(request_tags: T.anything).void } + attr_writer :request_tags + + sig { returns(T.nilable(String)) } + attr_accessor :requester_ip_address + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(Integer)) } + attr_accessor :total_tokens + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + api_key:, + call_type:, + end_time:, + messages:, + request_id:, + response:, + start_time:, + api_base: nil, + cache_hit: nil, + cache_key: nil, + completion_tokens: nil, + metadata: nil, + model: nil, + prompt_tokens: nil, + request_tags: nil, + requester_ip_address: nil, + spend: nil, + total_tokens: nil, + user: nil + ) + end + + sig do + override.returns( + { + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + } + ) + end + def to_hash + end + + module EndTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::EndTime::Variants + ] + ) + end + def self.variants + end + end + + module Messages + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Messages::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module Response + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::Response::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module StartTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::Global::SpendRetrieveReportResponseItem::StartTime::Variants + ] + ) + end + def self.variants + end + end + end + + SpendRetrieveReportResponse = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Models::Global::SpendRetrieveReportResponseItem + ], + Hanzoai::Internal::Type::Converter + ) + end + end +end diff --git a/rbi/hanzoai/models/guardrail_list_params.rbi b/rbi/hanzoai/models/guardrail_list_params.rbi new file mode 100644 index 00000000..da0a3ca0 --- /dev/null +++ b/rbi/hanzoai/models/guardrail_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class GuardrailListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::GuardrailListParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/guardrail_list_response.rbi b/rbi/hanzoai/models/guardrail_list_response.rbi new file mode 100644 index 00000000..df181f3d --- /dev/null +++ b/rbi/hanzoai/models/guardrail_list_response.rbi @@ -0,0 +1,426 @@ +# typed: strong + +module Hanzoai + module Models + class GuardrailListResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::GuardrailListResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns(T::Array[Hanzoai::Models::GuardrailListResponse::Guardrail]) + end + attr_accessor :guardrails + + sig do + params( + guardrails: + T::Array[Hanzoai::Models::GuardrailListResponse::Guardrail::OrHash] + ).returns(T.attached_class) + end + def self.new(guardrails:) + end + + sig do + override.returns( + { + guardrails: + T::Array[Hanzoai::Models::GuardrailListResponse::Guardrail] + } + ) + end + def to_hash + end + + class Guardrail < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::GuardrailListResponse::Guardrail, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :guardrail_name + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig do + returns( + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation::TaggedSymbol + ) + ) + end + attr_reader :guardrail_definition_location + + sig do + params( + guardrail_definition_location: + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation::OrSymbol + ).void + end + attr_writer :guardrail_definition_location + + sig { returns(T.nilable(String)) } + attr_accessor :guardrail_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :guardrail_info + + sig do + returns( + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams + ) + ) + end + attr_reader :litellm_params + + sig do + params( + litellm_params: + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::OrHash + ) + ).void + end + attr_writer :litellm_params + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig do + params( + guardrail_name: String, + created_at: T.nilable(Time), + guardrail_definition_location: + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation::OrSymbol, + guardrail_id: T.nilable(String), + guardrail_info: T.nilable(T::Hash[Symbol, T.anything]), + litellm_params: + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::OrHash + ), + updated_at: T.nilable(Time) + ).returns(T.attached_class) + end + def self.new( + guardrail_name:, + created_at: nil, + guardrail_definition_location: nil, + guardrail_id: nil, + guardrail_info: nil, + litellm_params: nil, + updated_at: nil + ) + end + + sig do + override.returns( + { + guardrail_name: String, + created_at: T.nilable(Time), + guardrail_definition_location: + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation::TaggedSymbol, + guardrail_id: T.nilable(String), + guardrail_info: T.nilable(T::Hash[Symbol, T.anything]), + litellm_params: + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams + ), + updated_at: T.nilable(Time) + } + ) + end + def to_hash + end + + module GuardrailDefinitionLocation + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + DB = + T.let( + :db, + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation::TaggedSymbol + ) + CONFIG = + T.let( + :config, + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Models::GuardrailListResponse::Guardrail::GuardrailDefinitionLocation::TaggedSymbol + ] + ) + end + def self.values + end + end + + class LitellmParams < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams, + Hanzoai::Internal::AnyHash + ) + end + + # Additional provider-specific parameters for generic guardrail APIs + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :additional_provider_specific_params + + # Base URL for the guardrail service API + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + # Optional custom API endpoint for Model Armor + sig { returns(T.nilable(String)) } + attr_accessor :api_endpoint + + # API key for the guardrail service + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + # Threshold configuration for Lakera guardrail categories + sig do + returns( + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds + ) + ) + end + attr_reader :category_thresholds + + sig do + params( + category_thresholds: + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds::OrHash + ) + ).void + end + attr_writer :category_thresholds + + # Path to Google Cloud credentials JSON file or JSON string + sig { returns(T.nilable(String)) } + attr_accessor :credentials + + # Whether the guardrail is enabled by default + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :default_on + + # Configuration for detect-secrets guardrail + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :detect_secrets_config + + # When True, guardrails only receive the latest message for the relevant role + # (e.g., newest user input pre-call, newest assistant output post-call) + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :experimental_use_latest_role_message_only + + # Whether to fail the request if Model Armor encounters an error + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :fail_on_error + + # Name of the guardrail in guardrails.ai + sig { returns(T.nilable(String)) } + attr_accessor :guard_name + + # Google Cloud location/region (e.g., us-central1) + sig { returns(T.nilable(String)) } + attr_accessor :location + + # Will mask request content if guardrail makes any changes + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :mask_request_content + + # Will mask response content if guardrail makes any changes + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :mask_response_content + + # Optional field if guardrail requires a 'model' parameter + sig { returns(T.nilable(String)) } + attr_accessor :model + + # Recipe for input (LLM request) + sig { returns(T.nilable(String)) } + attr_accessor :pangea_input_recipe + + # Recipe for output (LLM response) + sig { returns(T.nilable(String)) } + attr_accessor :pangea_output_recipe + + # The ID of your Model Armor template + sig { returns(T.nilable(String)) } + attr_accessor :template_id + + # Custom message when a guardrail blocks an action. Supports placeholders like + # {tool_name}, {rule_id}, and {default_message}. + sig { returns(T.nilable(String)) } + attr_accessor :violation_message_template + + sig do + params( + additional_provider_specific_params: + T.nilable(T::Hash[Symbol, T.anything]), + api_base: T.nilable(String), + api_endpoint: T.nilable(String), + api_key: T.nilable(String), + category_thresholds: + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds::OrHash + ), + credentials: T.nilable(String), + default_on: T.nilable(T::Boolean), + detect_secrets_config: T.nilable(T::Hash[Symbol, T.anything]), + experimental_use_latest_role_message_only: T.nilable(T::Boolean), + fail_on_error: T.nilable(T::Boolean), + guard_name: T.nilable(String), + location: T.nilable(String), + mask_request_content: T.nilable(T::Boolean), + mask_response_content: T.nilable(T::Boolean), + model: T.nilable(String), + pangea_input_recipe: T.nilable(String), + pangea_output_recipe: T.nilable(String), + template_id: T.nilable(String), + violation_message_template: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # Additional provider-specific parameters for generic guardrail APIs + additional_provider_specific_params: nil, + # Base URL for the guardrail service API + api_base: nil, + # Optional custom API endpoint for Model Armor + api_endpoint: nil, + # API key for the guardrail service + api_key: nil, + # Threshold configuration for Lakera guardrail categories + category_thresholds: nil, + # Path to Google Cloud credentials JSON file or JSON string + credentials: nil, + # Whether the guardrail is enabled by default + default_on: nil, + # Configuration for detect-secrets guardrail + detect_secrets_config: nil, + # When True, guardrails only receive the latest message for the relevant role + # (e.g., newest user input pre-call, newest assistant output post-call) + experimental_use_latest_role_message_only: nil, + # Whether to fail the request if Model Armor encounters an error + fail_on_error: nil, + # Name of the guardrail in guardrails.ai + guard_name: nil, + # Google Cloud location/region (e.g., us-central1) + location: nil, + # Will mask request content if guardrail makes any changes + mask_request_content: nil, + # Will mask response content if guardrail makes any changes + mask_response_content: nil, + # Optional field if guardrail requires a 'model' parameter + model: nil, + # Recipe for input (LLM request) + pangea_input_recipe: nil, + # Recipe for output (LLM response) + pangea_output_recipe: nil, + # The ID of your Model Armor template + template_id: nil, + # Custom message when a guardrail blocks an action. Supports placeholders like + # {tool_name}, {rule_id}, and {default_message}. + violation_message_template: nil + ) + end + + sig do + override.returns( + { + additional_provider_specific_params: + T.nilable(T::Hash[Symbol, T.anything]), + api_base: T.nilable(String), + api_endpoint: T.nilable(String), + api_key: T.nilable(String), + category_thresholds: + T.nilable( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds + ), + credentials: T.nilable(String), + default_on: T.nilable(T::Boolean), + detect_secrets_config: T.nilable(T::Hash[Symbol, T.anything]), + experimental_use_latest_role_message_only: + T.nilable(T::Boolean), + fail_on_error: T.nilable(T::Boolean), + guard_name: T.nilable(String), + location: T.nilable(String), + mask_request_content: T.nilable(T::Boolean), + mask_response_content: T.nilable(T::Boolean), + model: T.nilable(String), + pangea_input_recipe: T.nilable(String), + pangea_output_recipe: T.nilable(String), + template_id: T.nilable(String), + violation_message_template: T.nilable(String) + } + ) + end + def to_hash + end + + class CategoryThresholds < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Float)) } + attr_reader :jailbreak + + sig { params(jailbreak: Float).void } + attr_writer :jailbreak + + sig { returns(T.nilable(Float)) } + attr_reader :prompt_injection + + sig { params(prompt_injection: Float).void } + attr_writer :prompt_injection + + # Threshold configuration for Lakera guardrail categories + sig do + params(jailbreak: Float, prompt_injection: Float).returns( + T.attached_class + ) + end + def self.new(jailbreak: nil, prompt_injection: nil) + end + + sig do + override.returns({ jailbreak: Float, prompt_injection: Float }) + end + def to_hash + end + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/health_check_all_params.rbi b/rbi/hanzoai/models/health_check_all_params.rbi new file mode 100644 index 00000000..be348f61 --- /dev/null +++ b/rbi/hanzoai/models/health_check_all_params.rbi @@ -0,0 +1,51 @@ +# typed: strong + +module Hanzoai + module Models + class HealthCheckAllParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::HealthCheckAllParams, Hanzoai::Internal::AnyHash) + end + + # Specify the model name (optional) + sig { returns(T.nilable(String)) } + attr_accessor :model + + # Specify the model ID (optional) + sig { returns(T.nilable(String)) } + attr_accessor :model_id + + sig do + params( + model: T.nilable(String), + model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Specify the model name (optional) + model: nil, + # Specify the model ID (optional) + model_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + model: T.nilable(String), + model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/health_check_all_response.rbi b/rbi/hanzoai/models/health_check_all_response.rbi new file mode 100644 index 00000000..ed09dced --- /dev/null +++ b/rbi/hanzoai/models/health_check_all_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + HealthCheckAllResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/health_check_liveliness_params.rbi b/rbi/hanzoai/models/health_check_liveliness_params.rbi new file mode 100644 index 00000000..d67e3041 --- /dev/null +++ b/rbi/hanzoai/models/health_check_liveliness_params.rbi @@ -0,0 +1,30 @@ +# typed: strong + +module Hanzoai + module Models + class HealthCheckLivelinessParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::HealthCheckLivelinessParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/health_check_liveliness_response.rbi b/rbi/hanzoai/models/health_check_liveliness_response.rbi new file mode 100644 index 00000000..35567e5a --- /dev/null +++ b/rbi/hanzoai/models/health_check_liveliness_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + HealthCheckLivelinessResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/health_check_liveness_params.rbi b/rbi/hanzoai/models/health_check_liveness_params.rbi new file mode 100644 index 00000000..53d8522d --- /dev/null +++ b/rbi/hanzoai/models/health_check_liveness_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class HealthCheckLivenessParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::HealthCheckLivenessParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/health_check_liveness_response.rbi b/rbi/hanzoai/models/health_check_liveness_response.rbi new file mode 100644 index 00000000..ba89e6a0 --- /dev/null +++ b/rbi/hanzoai/models/health_check_liveness_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + HealthCheckLivenessResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/health_check_readiness_params.rbi b/rbi/hanzoai/models/health_check_readiness_params.rbi new file mode 100644 index 00000000..3ab455f1 --- /dev/null +++ b/rbi/hanzoai/models/health_check_readiness_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class HealthCheckReadinessParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::HealthCheckReadinessParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/health_check_readiness_response.rbi b/rbi/hanzoai/models/health_check_readiness_response.rbi new file mode 100644 index 00000000..c24380f7 --- /dev/null +++ b/rbi/hanzoai/models/health_check_readiness_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + HealthCheckReadinessResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/health_check_services_params.rbi b/rbi/hanzoai/models/health_check_services_params.rbi new file mode 100644 index 00000000..428ffec5 --- /dev/null +++ b/rbi/hanzoai/models/health_check_services_params.rbi @@ -0,0 +1,140 @@ +# typed: strong + +module Hanzoai + module Models + class HealthCheckServicesParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::HealthCheckServicesParams, Hanzoai::Internal::AnyHash) + end + + # Specify the service being hit. + sig do + returns( + T.any(Hanzoai::HealthCheckServicesParams::Service::OrSymbol, String) + ) + end + attr_accessor :service + + sig do + params( + service: + T.any( + Hanzoai::HealthCheckServicesParams::Service::OrSymbol, + String + ), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Specify the service being hit. + service:, + request_options: {} + ) + end + + sig do + override.returns( + { + service: + T.any( + Hanzoai::HealthCheckServicesParams::Service::OrSymbol, + String + ), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + # Specify the service being hit. + module Service + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol, + String + ) + end + + sig do + override.returns( + T::Array[Hanzoai::HealthCheckServicesParams::Service::Variants] + ) + end + def self.variants + end + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::HealthCheckServicesParams::Service) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + SLACK_BUDGET_ALERTS = + T.let( + :slack_budget_alerts, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + LANGFUSE = + T.let( + :langfuse, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + LANGFUSE_OTEL = + T.let( + :langfuse_otel, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + SLACK = + T.let( + :slack, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + OPENMETER = + T.let( + :openmeter, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + WEBHOOK = + T.let( + :webhook, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + EMAIL = + T.let( + :email, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + BRAINTRUST = + T.let( + :braintrust, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + DATADOG = + T.let( + :datadog, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + GENERIC_API = + T.let( + :generic_api, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + ARIZE = + T.let( + :arize, + Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol + ) + SQS = + T.let(:sqs, Hanzoai::HealthCheckServicesParams::Service::TaggedSymbol) + end + end + end +end diff --git a/rbi/hanzoai/models/health_check_services_response.rbi b/rbi/hanzoai/models/health_check_services_response.rbi new file mode 100644 index 00000000..09e4ec17 --- /dev/null +++ b/rbi/hanzoai/models/health_check_services_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + HealthCheckServicesResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/images/generation_create_params.rbi b/rbi/hanzoai/models/images/generation_create_params.rbi new file mode 100644 index 00000000..fe4aefe6 --- /dev/null +++ b/rbi/hanzoai/models/images/generation_create_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + module Images + class GenerationCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Images::GenerationCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig do + params( + model: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(model: nil, request_options: {}) + end + + sig do + override.returns( + { + model: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/images/generation_create_response.rbi b/rbi/hanzoai/models/images/generation_create_response.rbi new file mode 100644 index 00000000..d1f599a7 --- /dev/null +++ b/rbi/hanzoai/models/images/generation_create_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Images + GenerationCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/ip_address.rbi b/rbi/hanzoai/models/ip_address.rbi new file mode 100644 index 00000000..ffff155e --- /dev/null +++ b/rbi/hanzoai/models/ip_address.rbi @@ -0,0 +1,21 @@ +# typed: strong + +module Hanzoai + module Models + class IPAddress < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Hanzoai::IPAddress, Hanzoai::Internal::AnyHash) } + + sig { returns(String) } + attr_accessor :ip + + sig { params(ip: String).returns(T.attached_class) } + def self.new(ip:) + end + + sig { override.returns({ ip: String }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key/regenerate_key_request.rbi b/rbi/hanzoai/models/key/regenerate_key_request.rbi new file mode 100644 index 00000000..0c80d418 --- /dev/null +++ b/rbi/hanzoai/models/key/regenerate_key_request.rbi @@ -0,0 +1,782 @@ +# typed: strong + +module Hanzoai + module Models + module Key + class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Key::RegenerateKeyRequest, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_passthrough_routes + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex + ] + ) + ) + end + attr_accessor :allowed_vector_store_indexes + + # Whether this key should be automatically rotated + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :auto_rotate + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :config + + sig { returns(T.nilable(String)) } + attr_accessor :duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :enforced_params + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(String)) } + attr_accessor :key + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + # Enum for key types that determine what routes a key can access + sig do + returns( + T.nilable(Hanzoai::Key::RegenerateKeyRequest::KeyType::OrSymbol) + ) + end + attr_accessor :key_type + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig { returns(T.nilable(String)) } + attr_accessor :new_key + + sig { returns(T.nilable(String)) } + attr_accessor :new_master_key + + sig do + returns( + T.nilable(Hanzoai::Key::RegenerateKeyRequest::ObjectPermission) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + # How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + sig { returns(T.nilable(String)) } + attr_accessor :rotation_interval + + # Set of params that you can modify via `router.update_settings()`. + sig do + returns(T.nilable(Hanzoai::Key::RegenerateKeyRequest::RouterSettings)) + end + attr_reader :router_settings + + sig do + params( + router_settings: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::RouterSettings::OrHash + ) + ).void + end + attr_writer :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig do + returns( + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::OrSymbol + ) + ) + end + attr_accessor :rpm_limit_type + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :send_invite_email + + sig { returns(T.nilable(Float)) } + attr_accessor :soft_budget + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :tags + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + returns( + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::OrSymbol + ) + ) + end + attr_accessor :tpm_limit_type + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::OrHash + ] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key: T.nilable(String), + key_alias: T.nilable(String), + key_type: + T.nilable(Hanzoai::Key::RegenerateKeyRequest::KeyType::OrSymbol), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + new_key: T.nilable(String), + new_master_key: T.nilable(String), + object_permission: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::ObjectPermission::OrHash + ), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::RouterSettings::OrHash + ), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::OrSymbol + ), + send_invite_email: T.nilable(T::Boolean), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::OrSymbol + ), + user_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + aliases: nil, + allowed_cache_controls: nil, + allowed_passthrough_routes: nil, + allowed_routes: nil, + allowed_vector_store_indexes: nil, + # Whether this key should be automatically rotated + auto_rotate: nil, + blocked: nil, + budget_duration: nil, + budget_id: nil, + config: nil, + duration: nil, + enforced_params: nil, + guardrails: nil, + key: nil, + key_alias: nil, + # Enum for key types that determine what routes a key can access + key_type: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + new_key: nil, + new_master_key: nil, + object_permission: nil, + organization_id: nil, + permissions: nil, + prompts: nil, + # How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + rotation_interval: nil, + # Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + rpm_limit: nil, + rpm_limit_type: nil, + send_invite_email: nil, + soft_budget: nil, + spend: nil, + tags: nil, + team_id: nil, + tpm_limit: nil, + tpm_limit_type: nil, + user_id: nil + ) + end + + sig do + override.returns( + { + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex + ] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key: T.nilable(String), + key_alias: T.nilable(String), + key_type: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::KeyType::OrSymbol + ), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + new_key: T.nilable(String), + new_master_key: T.nilable(String), + object_permission: + T.nilable(Hanzoai::Key::RegenerateKeyRequest::ObjectPermission), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable(Hanzoai::Key::RegenerateKeyRequest::RouterSettings), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::OrSymbol + ), + send_invite_email: T.nilable(T::Boolean), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::OrSymbol + ), + user_id: T.nilable(String) + } + ) + end + def to_hash + end + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :index_name + + sig do + returns( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ) + end + attr_accessor :index_permissions + + sig do + params( + index_name: String, + index_permissions: + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new(index_name:, index_permissions:) + end + + sig do + override.returns( + { + index_name: String, + index_permissions: + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + } + ) + end + def to_hash + end + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + READ = + T.let( + :read, + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + WRITE = + T.let( + :write, + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + # Enum for key types that determine what routes a key can access + module KeyType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Key::RegenerateKeyRequest::KeyType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + LLM_API = + T.let( + :llm_api, + Hanzoai::Key::RegenerateKeyRequest::KeyType::TaggedSymbol + ) + MANAGEMENT = + T.let( + :management, + Hanzoai::Key::RegenerateKeyRequest::KeyType::TaggedSymbol + ) + READ_ONLY = + T.let( + :read_only, + Hanzoai::Key::RegenerateKeyRequest::KeyType::TaggedSymbol + ) + DEFAULT = + T.let( + :default, + Hanzoai::Key::RegenerateKeyRequest::KeyType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::KeyType::TaggedSymbol + ] + ) + end + def self.values + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Key::RegenerateKeyRequest::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Key::RegenerateKeyRequest::RouterSettings, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_accessor :allowed_fails + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :context_window_fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :cooldown_time + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + sig do + returns( + T.nilable( + T::Hash[ + Symbol, + Hanzoai::Key::RegenerateKeyRequest::RouterSettings::ModelGroupAlias::Variants + ] + ) + ) + end + attr_accessor :model_group_alias + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_group_retry_policy + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(Float)) } + attr_accessor :retry_after + + sig { returns(T.nilable(String)) } + attr_accessor :routing_strategy + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :routing_strategy_args + + sig { returns(T.nilable(Float)) } + attr_accessor :timeout + + # Set of params that you can modify via `router.update_settings()`. + sig do + params( + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::Key::RegenerateKeyRequest::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + ).returns(T.attached_class) + end + def self.new( + allowed_fails: nil, + context_window_fallbacks: nil, + cooldown_time: nil, + fallbacks: nil, + max_retries: nil, + model_group_alias: nil, + model_group_retry_policy: nil, + num_retries: nil, + retry_after: nil, + routing_strategy: nil, + routing_strategy_args: nil, + timeout: nil + ) + end + + sig do + override.returns( + { + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::Key::RegenerateKeyRequest::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: + T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + } + ) + end + def to_hash + end + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::RouterSettings::ModelGroupAlias::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Key::RegenerateKeyRequest::RpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::TaggedSymbol + ] + ) + end + def self.values + end + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Key::RegenerateKeyRequest::TpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/key_block_params.rbi b/rbi/hanzoai/models/key_block_params.rbi new file mode 100644 index 00000000..a8132fc6 --- /dev/null +++ b/rbi/hanzoai/models/key_block_params.rbi @@ -0,0 +1,50 @@ +# typed: strong + +module Hanzoai + module Models + class KeyBlockParams < Hanzoai::Models::BlockKeyRequest + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyBlockParams, Hanzoai::Internal::AnyHash) + end + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key_block_response.rbi b/rbi/hanzoai/models/key_block_response.rbi new file mode 100644 index 00000000..8deb6828 --- /dev/null +++ b/rbi/hanzoai/models/key_block_response.rbi @@ -0,0 +1,391 @@ +# typed: strong + +module Hanzoai + module Models + class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::Models::KeyBlockResponse, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :token + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :aliases + + sig { params(aliases: T::Hash[Symbol, T.anything]).void } + attr_writer :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :auto_rotate + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :config + + sig { params(config: T::Hash[Symbol, T.anything]).void } + attr_writer :config + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(String)) } + attr_accessor :created_by + + sig do + returns(T.nilable(Hanzoai::Models::KeyBlockResponse::Expires::Variants)) + end + attr_accessor :expires + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(String)) } + attr_accessor :key_name + + sig { returns(T.nilable(Time)) } + attr_accessor :key_rotation_at + + sig { returns(T.nilable(Time)) } + attr_accessor :last_rotation_at + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :litellm_budget_table + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :metadata + + sig { params(metadata: T::Hash[Symbol, T.anything]).void } + attr_writer :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :model_max_budget + + sig { params(model_max_budget: T::Hash[Symbol, T.anything]).void } + attr_writer :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :model_spend + + sig { params(model_spend: T::Hash[Symbol, T.anything]).void } + attr_writer :model_spend + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns(T.nilable(Hanzoai::Models::KeyBlockResponse::ObjectPermission)) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::KeyBlockResponse::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :org_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :permissions + + sig { params(permissions: T::Hash[Symbol, T.anything]).void } + attr_writer :permissions + + sig { returns(T.nilable(Integer)) } + attr_accessor :rotation_count + + sig { returns(T.nilable(String)) } + attr_accessor :rotation_interval + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :soft_budget_cooldown + + sig { params(soft_budget_cooldown: T::Boolean).void } + attr_writer :soft_budget_cooldown + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :updated_by + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + token: T.nilable(String), + aliases: T::Hash[Symbol, T.anything], + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + config: T::Hash[Symbol, T.anything], + created_at: T.nilable(Time), + created_by: T.nilable(String), + expires: + T.nilable(Hanzoai::Models::KeyBlockResponse::Expires::Variants), + key_alias: T.nilable(String), + key_name: T.nilable(String), + key_rotation_at: T.nilable(Time), + last_rotation_at: T.nilable(Time), + litellm_budget_table: T.nilable(T::Hash[Symbol, T.anything]), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T::Hash[Symbol, T.anything], + model_max_budget: T::Hash[Symbol, T.anything], + model_spend: T::Hash[Symbol, T.anything], + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::KeyBlockResponse::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + org_id: T.nilable(String), + permissions: T::Hash[Symbol, T.anything], + rotation_count: T.nilable(Integer), + rotation_interval: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + soft_budget_cooldown: T::Boolean, + spend: Float, + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + token: nil, + aliases: nil, + allowed_cache_controls: nil, + allowed_routes: nil, + auto_rotate: nil, + blocked: nil, + budget_duration: nil, + budget_reset_at: nil, + config: nil, + created_at: nil, + created_by: nil, + expires: nil, + key_alias: nil, + key_name: nil, + key_rotation_at: nil, + last_rotation_at: nil, + litellm_budget_table: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_spend: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + org_id: nil, + permissions: nil, + rotation_count: nil, + rotation_interval: nil, + router_settings: nil, + rpm_limit: nil, + soft_budget_cooldown: nil, + spend: nil, + team_id: nil, + tpm_limit: nil, + updated_at: nil, + updated_by: nil, + user_id: nil + ) + end + + sig do + override.returns( + { + token: T.nilable(String), + aliases: T::Hash[Symbol, T.anything], + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + config: T::Hash[Symbol, T.anything], + created_at: T.nilable(Time), + created_by: T.nilable(String), + expires: + T.nilable(Hanzoai::Models::KeyBlockResponse::Expires::Variants), + key_alias: T.nilable(String), + key_name: T.nilable(String), + key_rotation_at: T.nilable(Time), + last_rotation_at: T.nilable(Time), + litellm_budget_table: T.nilable(T::Hash[Symbol, T.anything]), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T::Hash[Symbol, T.anything], + model_max_budget: T::Hash[Symbol, T.anything], + model_spend: T::Hash[Symbol, T.anything], + models: T::Array[T.anything], + object_permission: + T.nilable(Hanzoai::Models::KeyBlockResponse::ObjectPermission), + object_permission_id: T.nilable(String), + org_id: T.nilable(String), + permissions: T::Hash[Symbol, T.anything], + rotation_count: T.nilable(Integer), + rotation_interval: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + soft_budget_cooldown: T::Boolean, + spend: Float, + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_id: T.nilable(String) + } + ) + end + def to_hash + end + + module Expires + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[Hanzoai::Models::KeyBlockResponse::Expires::Variants] + ) + end + def self.variants + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::KeyBlockResponse::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/key_check_health_params.rbi b/rbi/hanzoai/models/key_check_health_params.rbi new file mode 100644 index 00000000..a88924e4 --- /dev/null +++ b/rbi/hanzoai/models/key_check_health_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class KeyCheckHealthParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyCheckHealthParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key_check_health_response.rbi b/rbi/hanzoai/models/key_check_health_response.rbi new file mode 100644 index 00000000..b864dfc2 --- /dev/null +++ b/rbi/hanzoai/models/key_check_health_response.rbi @@ -0,0 +1,193 @@ +# typed: strong + +module Hanzoai + module Models + class KeyCheckHealthResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::KeyCheckHealthResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable(Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol) + ) + end + attr_reader :key + + sig do + params(key: Hanzoai::Models::KeyCheckHealthResponse::Key::OrSymbol).void + end + attr_writer :key + + sig do + returns( + T.nilable(Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks) + ) + end + attr_reader :logging_callbacks + + sig do + params( + logging_callbacks: + T.nilable( + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::OrHash + ) + ).void + end + attr_writer :logging_callbacks + + sig do + params( + key: Hanzoai::Models::KeyCheckHealthResponse::Key::OrSymbol, + logging_callbacks: + T.nilable( + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::OrHash + ) + ).returns(T.attached_class) + end + def self.new(key: nil, logging_callbacks: nil) + end + + sig do + override.returns( + { + key: Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol, + logging_callbacks: + T.nilable( + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks + ) + } + ) + end + def to_hash + end + + module Key + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Models::KeyCheckHealthResponse::Key) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + HEALTHY = + T.let( + :healthy, + Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol + ) + UNHEALTHY = + T.let( + :unhealthy, + Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol] + ) + end + def self.values + end + end + + class LoggingCallbacks < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :callbacks + + sig { params(callbacks: T::Array[String]).void } + attr_writer :callbacks + + sig { returns(T.nilable(String)) } + attr_accessor :details + + sig do + returns( + T.nilable( + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol + ) + ) + end + attr_reader :status + + sig do + params( + status: + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::OrSymbol + ).void + end + attr_writer :status + + sig do + params( + callbacks: T::Array[String], + details: T.nilable(String), + status: + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::OrSymbol + ).returns(T.attached_class) + end + def self.new(callbacks: nil, details: nil, status: nil) + end + + sig do + override.returns( + { + callbacks: T::Array[String], + details: T.nilable(String), + status: + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol + } + ) + end + def to_hash + end + + module Status + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + HEALTHY = + T.let( + :healthy, + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol + ) + UNHEALTHY = + T.let( + :unhealthy, + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/key_delete_params.rbi b/rbi/hanzoai/models/key_delete_params.rbi new file mode 100644 index 00000000..aa159a27 --- /dev/null +++ b/rbi/hanzoai/models/key_delete_params.rbi @@ -0,0 +1,62 @@ +# typed: strong + +module Hanzoai + module Models + class KeyDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :key_aliases + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :keys + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + key_aliases: T.nilable(T::Array[String]), + keys: T.nilable(T::Array[String]), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + key_aliases: nil, + keys: nil, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + key_aliases: T.nilable(T::Array[String]), + keys: T.nilable(T::Array[String]), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key_delete_response.rbi b/rbi/hanzoai/models/key_delete_response.rbi new file mode 100644 index 00000000..c1a35084 --- /dev/null +++ b/rbi/hanzoai/models/key_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + KeyDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/key_generate_params.rbi b/rbi/hanzoai/models/key_generate_params.rbi new file mode 100644 index 00000000..1204c50c --- /dev/null +++ b/rbi/hanzoai/models/key_generate_params.rbi @@ -0,0 +1,719 @@ +# typed: strong + +module Hanzoai + module Models + class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyGenerateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_passthrough_routes + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig do + returns( + T.nilable( + T::Array[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex] + ) + ) + end + attr_accessor :allowed_vector_store_indexes + + # Whether this key should be automatically rotated + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :auto_rotate + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :config + + sig { returns(T.nilable(String)) } + attr_accessor :duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :enforced_params + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(String)) } + attr_accessor :key + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + # Enum for key types that determine what routes a key can access + sig { returns(T.nilable(Hanzoai::KeyGenerateParams::KeyType::OrSymbol)) } + attr_accessor :key_type + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig { returns(T.nilable(Hanzoai::KeyGenerateParams::ObjectPermission)) } + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable(Hanzoai::KeyGenerateParams::ObjectPermission::OrHash) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + # How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + sig { returns(T.nilable(String)) } + attr_accessor :rotation_interval + + # Set of params that you can modify via `router.update_settings()`. + sig { returns(T.nilable(Hanzoai::KeyGenerateParams::RouterSettings)) } + attr_reader :router_settings + + sig do + params( + router_settings: + T.nilable(Hanzoai::KeyGenerateParams::RouterSettings::OrHash) + ).void + end + attr_writer :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig do + returns(T.nilable(Hanzoai::KeyGenerateParams::RpmLimitType::OrSymbol)) + end + attr_accessor :rpm_limit_type + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :send_invite_email + + sig { returns(T.nilable(Float)) } + attr_accessor :soft_budget + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :tags + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + returns(T.nilable(Hanzoai::KeyGenerateParams::TpmLimitType::OrSymbol)) + end + attr_accessor :tpm_limit_type + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::OrHash + ] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key: T.nilable(String), + key_alias: T.nilable(String), + key_type: T.nilable(Hanzoai::KeyGenerateParams::KeyType::OrSymbol), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::KeyGenerateParams::ObjectPermission::OrHash), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable(Hanzoai::KeyGenerateParams::RouterSettings::OrHash), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::KeyGenerateParams::RpmLimitType::OrSymbol), + send_invite_email: T.nilable(T::Boolean), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::KeyGenerateParams::TpmLimitType::OrSymbol), + user_id: T.nilable(String), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + aliases: nil, + allowed_cache_controls: nil, + allowed_passthrough_routes: nil, + allowed_routes: nil, + allowed_vector_store_indexes: nil, + # Whether this key should be automatically rotated + auto_rotate: nil, + blocked: nil, + budget_duration: nil, + budget_id: nil, + config: nil, + duration: nil, + enforced_params: nil, + guardrails: nil, + key: nil, + key_alias: nil, + # Enum for key types that determine what routes a key can access + key_type: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organization_id: nil, + permissions: nil, + prompts: nil, + # How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True + rotation_interval: nil, + # Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + rpm_limit: nil, + rpm_limit_type: nil, + send_invite_email: nil, + soft_budget: nil, + spend: nil, + tags: nil, + team_id: nil, + tpm_limit: nil, + tpm_limit_type: nil, + user_id: nil, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key: T.nilable(String), + key_alias: T.nilable(String), + key_type: T.nilable(Hanzoai::KeyGenerateParams::KeyType::OrSymbol), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::KeyGenerateParams::ObjectPermission), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable(Hanzoai::KeyGenerateParams::RouterSettings), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::KeyGenerateParams::RpmLimitType::OrSymbol), + send_invite_email: T.nilable(T::Boolean), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::KeyGenerateParams::TpmLimitType::OrSymbol), + user_id: T.nilable(String), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :index_name + + sig do + returns( + T::Array[ + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ) + end + attr_accessor :index_permissions + + sig do + params( + index_name: String, + index_permissions: + T::Array[ + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new(index_name:, index_permissions:) + end + + sig do + override.returns( + { + index_name: String, + index_permissions: + T::Array[ + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + } + ) + end + def to_hash + end + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + READ = + T.let( + :read, + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + WRITE = + T.let( + :write, + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + # Enum for key types that determine what routes a key can access + module KeyType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Hanzoai::KeyGenerateParams::KeyType) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + LLM_API = + T.let(:llm_api, Hanzoai::KeyGenerateParams::KeyType::TaggedSymbol) + MANAGEMENT = + T.let(:management, Hanzoai::KeyGenerateParams::KeyType::TaggedSymbol) + READ_ONLY = + T.let(:read_only, Hanzoai::KeyGenerateParams::KeyType::TaggedSymbol) + DEFAULT = + T.let(:default, Hanzoai::KeyGenerateParams::KeyType::TaggedSymbol) + + sig do + override.returns( + T::Array[Hanzoai::KeyGenerateParams::KeyType::TaggedSymbol] + ) + end + def self.values + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::KeyGenerateParams::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::KeyGenerateParams::RouterSettings, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_accessor :allowed_fails + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :context_window_fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :cooldown_time + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + sig do + returns( + T.nilable( + T::Hash[ + Symbol, + Hanzoai::KeyGenerateParams::RouterSettings::ModelGroupAlias::Variants + ] + ) + ) + end + attr_accessor :model_group_alias + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_group_retry_policy + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(Float)) } + attr_accessor :retry_after + + sig { returns(T.nilable(String)) } + attr_accessor :routing_strategy + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :routing_strategy_args + + sig { returns(T.nilable(Float)) } + attr_accessor :timeout + + # Set of params that you can modify via `router.update_settings()`. + sig do + params( + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::KeyGenerateParams::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + ).returns(T.attached_class) + end + def self.new( + allowed_fails: nil, + context_window_fallbacks: nil, + cooldown_time: nil, + fallbacks: nil, + max_retries: nil, + model_group_alias: nil, + model_group_retry_policy: nil, + num_retries: nil, + retry_after: nil, + routing_strategy: nil, + routing_strategy_args: nil, + timeout: nil + ) + end + + sig do + override.returns( + { + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::KeyGenerateParams::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + } + ) + end + def to_hash + end + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::KeyGenerateParams::RouterSettings::ModelGroupAlias::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::KeyGenerateParams::RpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::KeyGenerateParams::RpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::KeyGenerateParams::RpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::KeyGenerateParams::RpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::KeyGenerateParams::RpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::KeyGenerateParams::TpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::KeyGenerateParams::TpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::KeyGenerateParams::TpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::KeyGenerateParams::TpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::KeyGenerateParams::TpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/key_list_params.rbi b/rbi/hanzoai/models/key_list_params.rbi new file mode 100644 index 00000000..b701c34f --- /dev/null +++ b/rbi/hanzoai/models/key_list_params.rbi @@ -0,0 +1,165 @@ +# typed: strong + +module Hanzoai + module Models + class KeyListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyListParams, Hanzoai::Internal::AnyHash) + end + + # Expand related objects (e.g. 'user') + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :expand + + # Include keys created by the user + sig { returns(T.nilable(T::Boolean)) } + attr_reader :include_created_by_keys + + sig { params(include_created_by_keys: T::Boolean).void } + attr_writer :include_created_by_keys + + # Include all keys for teams that user is an admin of. + sig { returns(T.nilable(T::Boolean)) } + attr_reader :include_team_keys + + sig { params(include_team_keys: T::Boolean).void } + attr_writer :include_team_keys + + # Filter keys by key alias + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + # Filter keys by key hash + sig { returns(T.nilable(String)) } + attr_accessor :key_hash + + # Filter keys by organization ID + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + # Page number + sig { returns(T.nilable(Integer)) } + attr_reader :page + + sig { params(page: Integer).void } + attr_writer :page + + # Return full key object + sig { returns(T.nilable(T::Boolean)) } + attr_reader :return_full_object + + sig { params(return_full_object: T::Boolean).void } + attr_writer :return_full_object + + # Page size + sig { returns(T.nilable(Integer)) } + attr_reader :size + + sig { params(size: Integer).void } + attr_writer :size + + # Column to sort by (e.g. 'user_id', 'created_at', 'spend') + sig { returns(T.nilable(String)) } + attr_accessor :sort_by + + # Sort order ('asc' or 'desc') + sig { returns(T.nilable(String)) } + attr_reader :sort_order + + sig { params(sort_order: String).void } + attr_writer :sort_order + + # Filter by status (e.g. 'deleted') + sig { returns(T.nilable(String)) } + attr_accessor :status + + # Filter keys by team ID + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + # Filter keys by user ID + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + expand: T.nilable(T::Array[String]), + include_created_by_keys: T::Boolean, + include_team_keys: T::Boolean, + key_alias: T.nilable(String), + key_hash: T.nilable(String), + organization_id: T.nilable(String), + page: Integer, + return_full_object: T::Boolean, + size: Integer, + sort_by: T.nilable(String), + sort_order: String, + status: T.nilable(String), + team_id: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Expand related objects (e.g. 'user') + expand: nil, + # Include keys created by the user + include_created_by_keys: nil, + # Include all keys for teams that user is an admin of. + include_team_keys: nil, + # Filter keys by key alias + key_alias: nil, + # Filter keys by key hash + key_hash: nil, + # Filter keys by organization ID + organization_id: nil, + # Page number + page: nil, + # Return full key object + return_full_object: nil, + # Page size + size: nil, + # Column to sort by (e.g. 'user_id', 'created_at', 'spend') + sort_by: nil, + # Sort order ('asc' or 'desc') + sort_order: nil, + # Filter by status (e.g. 'deleted') + status: nil, + # Filter keys by team ID + team_id: nil, + # Filter keys by user ID + user_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + expand: T.nilable(T::Array[String]), + include_created_by_keys: T::Boolean, + include_team_keys: T::Boolean, + key_alias: T.nilable(String), + key_hash: T.nilable(String), + organization_id: T.nilable(String), + page: Integer, + return_full_object: T::Boolean, + size: Integer, + sort_by: T.nilable(String), + sort_order: String, + status: T.nilable(String), + team_id: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key_list_response.rbi b/rbi/hanzoai/models/key_list_response.rbi new file mode 100644 index 00000000..5b9ed89f --- /dev/null +++ b/rbi/hanzoai/models/key_list_response.rbi @@ -0,0 +1,1250 @@ +# typed: strong + +module Hanzoai + module Models + class KeyListResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::Models::KeyListResponse, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(Integer)) } + attr_accessor :current_page + + sig do + returns( + T.nilable(T::Array[Hanzoai::Models::KeyListResponse::Key::Variants]) + ) + end + attr_reader :keys + + sig do + params( + keys: + T::Array[ + T.any( + String, + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::OrHash, + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::OrHash + ) + ] + ).void + end + attr_writer :keys + + sig { returns(T.nilable(Integer)) } + attr_accessor :total_count + + sig { returns(T.nilable(Integer)) } + attr_accessor :total_pages + + sig do + params( + current_page: T.nilable(Integer), + keys: + T::Array[ + T.any( + String, + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::OrHash, + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::OrHash + ) + ], + total_count: T.nilable(Integer), + total_pages: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + current_page: nil, + keys: nil, + total_count: nil, + total_pages: nil + ) + end + + sig do + override.returns( + { + current_page: T.nilable(Integer), + keys: T::Array[Hanzoai::Models::KeyListResponse::Key::Variants], + total_count: T.nilable(Integer), + total_pages: T.nilable(Integer) + } + ) + end + def to_hash + end + + # Return the row in the db + module Key + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth, + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken + ) + end + + class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :token + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :aliases + + sig { params(aliases: T::Hash[Symbol, T.anything]).void } + attr_writer :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig do + returns( + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol + ) + ) + end + attr_accessor :allowed_model_region + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :auto_rotate + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :config + + sig { params(config: T::Hash[Symbol, T.anything]).void } + attr_writer :config + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(String)) } + attr_accessor :created_by + + sig { returns(T.nilable(String)) } + attr_accessor :end_user_id + + sig { returns(T.nilable(Float)) } + attr_accessor :end_user_max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :end_user_rpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :end_user_tpm_limit + + sig do + returns( + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::Expires::Variants + ) + ) + end + attr_accessor :expires + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(String)) } + attr_accessor :key_name + + sig { returns(T.nilable(Time)) } + attr_accessor :key_rotation_at + + sig { returns(T.nilable(Float)) } + attr_accessor :last_refreshed_at + + sig { returns(T.nilable(Time)) } + attr_accessor :last_rotation_at + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :litellm_budget_table + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :metadata + + sig { params(metadata: T::Hash[Symbol, T.anything]).void } + attr_writer :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :model_max_budget + + sig { params(model_max_budget: T::Hash[Symbol, T.anything]).void } + attr_writer :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :model_spend + + sig { params(model_spend: T::Hash[Symbol, T.anything]).void } + attr_writer :model_spend + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :org_id + + sig { returns(T.nilable(Float)) } + attr_accessor :organization_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :organization_metadata + + sig { returns(T.nilable(Integer)) } + attr_accessor :organization_rpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :organization_tpm_limit + + sig { returns(T.nilable(T.anything)) } + attr_reader :parent_otel_span + + sig { params(parent_otel_span: T.anything).void } + attr_writer :parent_otel_span + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :permissions + + sig { params(permissions: T::Hash[Symbol, T.anything]).void } + attr_writer :permissions + + sig { returns(T.nilable(String)) } + attr_accessor :request_route + + sig { returns(T.nilable(Integer)) } + attr_accessor :rotation_count + + sig { returns(T.nilable(String)) } + attr_accessor :rotation_interval + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :rpm_limit_per_model + + sig { returns(T.nilable(Float)) } + attr_accessor :soft_budget + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :soft_budget_cooldown + + sig { params(soft_budget_cooldown: T::Boolean).void } + attr_writer :soft_budget_cooldown + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(String)) } + attr_accessor :team_alias + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :team_blocked + + sig { params(team_blocked: T::Boolean).void } + attr_writer :team_blocked + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Float)) } + attr_accessor :team_max_budget + + sig { returns(T.nilable(Hanzoai::Member)) } + attr_reader :team_member + + sig { params(team_member: T.nilable(Hanzoai::Member::OrHash)).void } + attr_writer :team_member + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_member_rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :team_member_spend + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_member_tpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :team_metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :team_model_aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :team_models + + sig { params(team_models: T::Array[T.anything]).void } + attr_writer :team_models + + sig { returns(T.nilable(String)) } + attr_accessor :team_object_permission_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :team_spend + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_tpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :tpm_limit_per_model + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :updated_by + + sig { returns(T.nilable(T.anything)) } + attr_reader :user + + sig { params(user: T.anything).void } + attr_writer :user + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig { returns(T.nilable(Float)) } + attr_accessor :user_max_budget + + # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization + # + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend + # + # Team Roles: TEAM: used for JWT auth + # + # Customer Roles: CUSTOMER: External users -> these are customers + sig { returns(T.nilable(Hanzoai::UserRoles::TaggedSymbol)) } + attr_accessor :user_role + + sig { returns(T.nilable(Integer)) } + attr_accessor :user_rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :user_spend + + sig { returns(T.nilable(Integer)) } + attr_accessor :user_tpm_limit + + # Return the row in the db + sig do + params( + token: T.nilable(String), + aliases: T::Hash[Symbol, T.anything], + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_model_region: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::OrSymbol + ), + allowed_routes: T.nilable(T::Array[T.anything]), + api_key: T.nilable(String), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + config: T::Hash[Symbol, T.anything], + created_at: T.nilable(Time), + created_by: T.nilable(String), + end_user_id: T.nilable(String), + end_user_max_budget: T.nilable(Float), + end_user_rpm_limit: T.nilable(Integer), + end_user_tpm_limit: T.nilable(Integer), + expires: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::Expires::Variants + ), + key_alias: T.nilable(String), + key_name: T.nilable(String), + key_rotation_at: T.nilable(Time), + last_refreshed_at: T.nilable(Float), + last_rotation_at: T.nilable(Time), + litellm_budget_table: T.nilable(T::Hash[Symbol, T.anything]), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T::Hash[Symbol, T.anything], + model_max_budget: T::Hash[Symbol, T.anything], + model_spend: T::Hash[Symbol, T.anything], + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + org_id: T.nilable(String), + organization_max_budget: T.nilable(Float), + organization_metadata: T.nilable(T::Hash[Symbol, T.anything]), + organization_rpm_limit: T.nilable(Integer), + organization_tpm_limit: T.nilable(Integer), + parent_otel_span: T.anything, + permissions: T::Hash[Symbol, T.anything], + request_route: T.nilable(String), + rotation_count: T.nilable(Integer), + rotation_interval: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + rpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), + soft_budget: T.nilable(Float), + soft_budget_cooldown: T::Boolean, + spend: Float, + team_alias: T.nilable(String), + team_blocked: T::Boolean, + team_id: T.nilable(String), + team_max_budget: T.nilable(Float), + team_member: T.nilable(Hanzoai::Member::OrHash), + team_member_rpm_limit: T.nilable(Integer), + team_member_spend: T.nilable(Float), + team_member_tpm_limit: T.nilable(Integer), + team_metadata: T.nilable(T::Hash[Symbol, T.anything]), + team_model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + team_models: T::Array[T.anything], + team_object_permission_id: T.nilable(String), + team_rpm_limit: T.nilable(Integer), + team_spend: T.nilable(Float), + team_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + tpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user: T.anything, + user_email: T.nilable(String), + user_id: T.nilable(String), + user_max_budget: T.nilable(Float), + user_role: T.nilable(Hanzoai::UserRoles::OrSymbol), + user_rpm_limit: T.nilable(Integer), + user_spend: T.nilable(Float), + user_tpm_limit: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + token: nil, + aliases: nil, + allowed_cache_controls: nil, + allowed_model_region: nil, + allowed_routes: nil, + api_key: nil, + auto_rotate: nil, + blocked: nil, + budget_duration: nil, + budget_reset_at: nil, + config: nil, + created_at: nil, + created_by: nil, + end_user_id: nil, + end_user_max_budget: nil, + end_user_rpm_limit: nil, + end_user_tpm_limit: nil, + expires: nil, + key_alias: nil, + key_name: nil, + key_rotation_at: nil, + last_refreshed_at: nil, + last_rotation_at: nil, + litellm_budget_table: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_spend: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + org_id: nil, + organization_max_budget: nil, + organization_metadata: nil, + organization_rpm_limit: nil, + organization_tpm_limit: nil, + parent_otel_span: nil, + permissions: nil, + request_route: nil, + rotation_count: nil, + rotation_interval: nil, + router_settings: nil, + rpm_limit: nil, + rpm_limit_per_model: nil, + soft_budget: nil, + soft_budget_cooldown: nil, + spend: nil, + team_alias: nil, + team_blocked: nil, + team_id: nil, + team_max_budget: nil, + team_member: nil, + team_member_rpm_limit: nil, + team_member_spend: nil, + team_member_tpm_limit: nil, + team_metadata: nil, + team_model_aliases: nil, + team_models: nil, + team_object_permission_id: nil, + team_rpm_limit: nil, + team_spend: nil, + team_tpm_limit: nil, + tpm_limit: nil, + tpm_limit_per_model: nil, + updated_at: nil, + updated_by: nil, + user: nil, + user_email: nil, + user_id: nil, + user_max_budget: nil, + # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization + # + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend + # + # Team Roles: TEAM: used for JWT auth + # + # Customer Roles: CUSTOMER: External users -> these are customers + user_role: nil, + user_rpm_limit: nil, + user_spend: nil, + user_tpm_limit: nil + ) + end + + sig do + override.returns( + { + token: T.nilable(String), + aliases: T::Hash[Symbol, T.anything], + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_model_region: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol + ), + allowed_routes: T.nilable(T::Array[T.anything]), + api_key: T.nilable(String), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + config: T::Hash[Symbol, T.anything], + created_at: T.nilable(Time), + created_by: T.nilable(String), + end_user_id: T.nilable(String), + end_user_max_budget: T.nilable(Float), + end_user_rpm_limit: T.nilable(Integer), + end_user_tpm_limit: T.nilable(Integer), + expires: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::Expires::Variants + ), + key_alias: T.nilable(String), + key_name: T.nilable(String), + key_rotation_at: T.nilable(Time), + last_refreshed_at: T.nilable(Float), + last_rotation_at: T.nilable(Time), + litellm_budget_table: T.nilable(T::Hash[Symbol, T.anything]), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T::Hash[Symbol, T.anything], + model_max_budget: T::Hash[Symbol, T.anything], + model_spend: T::Hash[Symbol, T.anything], + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission + ), + object_permission_id: T.nilable(String), + org_id: T.nilable(String), + organization_max_budget: T.nilable(Float), + organization_metadata: T.nilable(T::Hash[Symbol, T.anything]), + organization_rpm_limit: T.nilable(Integer), + organization_tpm_limit: T.nilable(Integer), + parent_otel_span: T.anything, + permissions: T::Hash[Symbol, T.anything], + request_route: T.nilable(String), + rotation_count: T.nilable(Integer), + rotation_interval: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + rpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), + soft_budget: T.nilable(Float), + soft_budget_cooldown: T::Boolean, + spend: Float, + team_alias: T.nilable(String), + team_blocked: T::Boolean, + team_id: T.nilable(String), + team_max_budget: T.nilable(Float), + team_member: T.nilable(Hanzoai::Member), + team_member_rpm_limit: T.nilable(Integer), + team_member_spend: T.nilable(Float), + team_member_tpm_limit: T.nilable(Integer), + team_metadata: T.nilable(T::Hash[Symbol, T.anything]), + team_model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + team_models: T::Array[T.anything], + team_object_permission_id: T.nilable(String), + team_rpm_limit: T.nilable(Integer), + team_spend: T.nilable(Float), + team_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + tpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user: T.anything, + user_email: T.nilable(String), + user_id: T.nilable(String), + user_max_budget: T.nilable(Float), + user_role: T.nilable(Hanzoai::UserRoles::TaggedSymbol), + user_rpm_limit: T.nilable(Integer), + user_spend: T.nilable(Float), + user_tpm_limit: T.nilable(Integer) + } + ) + end + def to_hash + end + + module AllowedModelRegion + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + EU = + T.let( + :eu, + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol + ) + US = + T.let( + :us, + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol + ] + ) + end + def self.values + end + end + + module Expires + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::Expires::Variants + ] + ) + end + def self.variants + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + + class LiteLlmDeletedVerificationToken < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :id + + sig { returns(T.nilable(String)) } + attr_accessor :token + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :aliases + + sig { params(aliases: T::Hash[Symbol, T.anything]).void } + attr_writer :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :auto_rotate + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :config + + sig { params(config: T::Hash[Symbol, T.anything]).void } + attr_writer :config + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(String)) } + attr_accessor :created_by + + sig { returns(T.nilable(Time)) } + attr_accessor :deleted_at + + sig { returns(T.nilable(String)) } + attr_accessor :deleted_by + + sig { returns(T.nilable(String)) } + attr_accessor :deleted_by_api_key + + sig do + returns( + T.nilable( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::Expires::Variants + ) + ) + end + attr_accessor :expires + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(String)) } + attr_accessor :key_name + + sig { returns(T.nilable(Time)) } + attr_accessor :key_rotation_at + + sig { returns(T.nilable(Time)) } + attr_accessor :last_rotation_at + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :litellm_budget_table + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_changed_by + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :metadata + + sig { params(metadata: T::Hash[Symbol, T.anything]).void } + attr_writer :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :model_max_budget + + sig { params(model_max_budget: T::Hash[Symbol, T.anything]).void } + attr_writer :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :model_spend + + sig { params(model_spend: T::Hash[Symbol, T.anything]).void } + attr_writer :model_spend + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :org_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_reader :permissions + + sig { params(permissions: T::Hash[Symbol, T.anything]).void } + attr_writer :permissions + + sig { returns(T.nilable(Integer)) } + attr_accessor :rotation_count + + sig { returns(T.nilable(String)) } + attr_accessor :rotation_interval + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :soft_budget_cooldown + + sig { params(soft_budget_cooldown: T::Boolean).void } + attr_writer :soft_budget_cooldown + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :updated_by + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + # Recording of deleted keys for audit purposes. Mirrors LiteLLM_VerificationToken + # plus metadata captured at deletion time. + sig do + params( + id: T.nilable(String), + token: T.nilable(String), + aliases: T::Hash[Symbol, T.anything], + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + config: T::Hash[Symbol, T.anything], + created_at: T.nilable(Time), + created_by: T.nilable(String), + deleted_at: T.nilable(Time), + deleted_by: T.nilable(String), + deleted_by_api_key: T.nilable(String), + expires: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::Expires::Variants + ), + key_alias: T.nilable(String), + key_name: T.nilable(String), + key_rotation_at: T.nilable(Time), + last_rotation_at: T.nilable(Time), + litellm_budget_table: T.nilable(T::Hash[Symbol, T.anything]), + litellm_changed_by: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T::Hash[Symbol, T.anything], + model_max_budget: T::Hash[Symbol, T.anything], + model_spend: T::Hash[Symbol, T.anything], + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + org_id: T.nilable(String), + permissions: T::Hash[Symbol, T.anything], + rotation_count: T.nilable(Integer), + rotation_interval: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + soft_budget_cooldown: T::Boolean, + spend: Float, + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + id: nil, + token: nil, + aliases: nil, + allowed_cache_controls: nil, + allowed_routes: nil, + auto_rotate: nil, + blocked: nil, + budget_duration: nil, + budget_reset_at: nil, + config: nil, + created_at: nil, + created_by: nil, + deleted_at: nil, + deleted_by: nil, + deleted_by_api_key: nil, + expires: nil, + key_alias: nil, + key_name: nil, + key_rotation_at: nil, + last_rotation_at: nil, + litellm_budget_table: nil, + litellm_changed_by: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_spend: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + org_id: nil, + permissions: nil, + rotation_count: nil, + rotation_interval: nil, + router_settings: nil, + rpm_limit: nil, + soft_budget_cooldown: nil, + spend: nil, + team_id: nil, + tpm_limit: nil, + updated_at: nil, + updated_by: nil, + user_id: nil + ) + end + + sig do + override.returns( + { + id: T.nilable(String), + token: T.nilable(String), + aliases: T::Hash[Symbol, T.anything], + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + config: T::Hash[Symbol, T.anything], + created_at: T.nilable(Time), + created_by: T.nilable(String), + deleted_at: T.nilable(Time), + deleted_by: T.nilable(String), + deleted_by_api_key: T.nilable(String), + expires: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::Expires::Variants + ), + key_alias: T.nilable(String), + key_name: T.nilable(String), + key_rotation_at: T.nilable(Time), + last_rotation_at: T.nilable(Time), + litellm_budget_table: T.nilable(T::Hash[Symbol, T.anything]), + litellm_changed_by: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T::Hash[Symbol, T.anything], + model_max_budget: T::Hash[Symbol, T.anything], + model_spend: T::Hash[Symbol, T.anything], + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission + ), + object_permission_id: T.nilable(String), + org_id: T.nilable(String), + permissions: T::Hash[Symbol, T.anything], + rotation_count: T.nilable(Integer), + rotation_interval: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + soft_budget_cooldown: T::Boolean, + spend: Float, + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_id: T.nilable(String) + } + ) + end + def to_hash + end + + module Expires + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::Expires::Variants + ] + ) + end + def self.variants + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + + sig do + override.returns( + T::Array[Hanzoai::Models::KeyListResponse::Key::Variants] + ) + end + def self.variants + end + end + end + end +end diff --git a/rbi/hanzoai/models/key_regenerate_by_key_params.rbi b/rbi/hanzoai/models/key_regenerate_by_key_params.rbi new file mode 100644 index 00000000..5fd672fb --- /dev/null +++ b/rbi/hanzoai/models/key_regenerate_by_key_params.rbi @@ -0,0 +1,50 @@ +# typed: strong + +module Hanzoai + module Models + class KeyRegenerateByKeyParams < Hanzoai::Models::Key::RegenerateKeyRequest + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyRegenerateByKeyParams, Hanzoai::Internal::AnyHash) + end + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key_retrieve_info_params.rbi b/rbi/hanzoai/models/key_retrieve_info_params.rbi new file mode 100644 index 00000000..d03e36af --- /dev/null +++ b/rbi/hanzoai/models/key_retrieve_info_params.rbi @@ -0,0 +1,40 @@ +# typed: strong + +module Hanzoai + module Models + class KeyRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyRetrieveInfoParams, Hanzoai::Internal::AnyHash) + end + + # Key in the request parameters + sig { returns(T.nilable(String)) } + attr_accessor :key + + sig do + params( + key: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Key in the request parameters + key: nil, + request_options: {} + ) + end + + sig do + override.returns( + { key: T.nilable(String), request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key_retrieve_info_response.rbi b/rbi/hanzoai/models/key_retrieve_info_response.rbi new file mode 100644 index 00000000..a4e43b6a --- /dev/null +++ b/rbi/hanzoai/models/key_retrieve_info_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + KeyRetrieveInfoResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/key_unblock_params.rbi b/rbi/hanzoai/models/key_unblock_params.rbi new file mode 100644 index 00000000..ce99aad3 --- /dev/null +++ b/rbi/hanzoai/models/key_unblock_params.rbi @@ -0,0 +1,50 @@ +# typed: strong + +module Hanzoai + module Models + class KeyUnblockParams < Hanzoai::Models::BlockKeyRequest + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyUnblockParams, Hanzoai::Internal::AnyHash) + end + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/key_unblock_response.rbi b/rbi/hanzoai/models/key_unblock_response.rbi new file mode 100644 index 00000000..0e24c401 --- /dev/null +++ b/rbi/hanzoai/models/key_unblock_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + KeyUnblockResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/key_update_params.rbi b/rbi/hanzoai/models/key_update_params.rbi new file mode 100644 index 00000000..ff4eeea6 --- /dev/null +++ b/rbi/hanzoai/models/key_update_params.rbi @@ -0,0 +1,663 @@ +# typed: strong + +module Hanzoai + module Models + class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::KeyUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :key + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_passthrough_routes + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig do + returns( + T.nilable(T::Array[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex]) + ) + end + attr_accessor :allowed_vector_store_indexes + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :auto_rotate + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :config + + sig { returns(T.nilable(String)) } + attr_accessor :duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :enforced_params + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig { returns(T.nilable(Hanzoai::KeyUpdateParams::ObjectPermission)) } + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable(Hanzoai::KeyUpdateParams::ObjectPermission::OrHash) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + sig { returns(T.nilable(String)) } + attr_accessor :rotation_interval + + # Set of params that you can modify via `router.update_settings()`. + sig { returns(T.nilable(Hanzoai::KeyUpdateParams::RouterSettings)) } + attr_reader :router_settings + + sig do + params( + router_settings: + T.nilable(Hanzoai::KeyUpdateParams::RouterSettings::OrHash) + ).void + end + attr_writer :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig do + returns(T.nilable(Hanzoai::KeyUpdateParams::RpmLimitType::OrSymbol)) + end + attr_accessor :rpm_limit_type + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :tags + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Time)) } + attr_accessor :temp_budget_expiry + + sig { returns(T.nilable(Float)) } + attr_accessor :temp_budget_increase + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + returns(T.nilable(Hanzoai::KeyUpdateParams::TpmLimitType::OrSymbol)) + end + attr_accessor :tpm_limit_type + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + key: String, + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::OrHash + ] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::KeyUpdateParams::ObjectPermission::OrHash), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable(Hanzoai::KeyUpdateParams::RouterSettings::OrHash), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::KeyUpdateParams::RpmLimitType::OrSymbol), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + temp_budget_expiry: T.nilable(Time), + temp_budget_increase: T.nilable(Float), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::KeyUpdateParams::TpmLimitType::OrSymbol), + user_id: T.nilable(String), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + key:, + aliases: nil, + allowed_cache_controls: nil, + allowed_passthrough_routes: nil, + allowed_routes: nil, + allowed_vector_store_indexes: nil, + auto_rotate: nil, + blocked: nil, + budget_duration: nil, + budget_id: nil, + config: nil, + duration: nil, + enforced_params: nil, + guardrails: nil, + key_alias: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + permissions: nil, + prompts: nil, + rotation_interval: nil, + # Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + rpm_limit: nil, + rpm_limit_type: nil, + spend: nil, + tags: nil, + team_id: nil, + temp_budget_expiry: nil, + temp_budget_increase: nil, + tpm_limit: nil, + tpm_limit_type: nil, + user_id: nil, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + key: String, + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::KeyUpdateParams::ObjectPermission), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable(Hanzoai::KeyUpdateParams::RouterSettings), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::KeyUpdateParams::RpmLimitType::OrSymbol), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + temp_budget_expiry: T.nilable(Time), + temp_budget_increase: T.nilable(Float), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::KeyUpdateParams::TpmLimitType::OrSymbol), + user_id: T.nilable(String), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :index_name + + sig do + returns( + T::Array[ + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ) + end + attr_accessor :index_permissions + + sig do + params( + index_name: String, + index_permissions: + T::Array[ + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new(index_name:, index_permissions:) + end + + sig do + override.returns( + { + index_name: String, + index_permissions: + T::Array[ + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + } + ) + end + def to_hash + end + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + READ = + T.let( + :read, + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + WRITE = + T.let( + :write, + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::KeyUpdateParams::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::KeyUpdateParams::RouterSettings, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_accessor :allowed_fails + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :context_window_fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :cooldown_time + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + sig do + returns( + T.nilable( + T::Hash[ + Symbol, + Hanzoai::KeyUpdateParams::RouterSettings::ModelGroupAlias::Variants + ] + ) + ) + end + attr_accessor :model_group_alias + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_group_retry_policy + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(Float)) } + attr_accessor :retry_after + + sig { returns(T.nilable(String)) } + attr_accessor :routing_strategy + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :routing_strategy_args + + sig { returns(T.nilable(Float)) } + attr_accessor :timeout + + # Set of params that you can modify via `router.update_settings()`. + sig do + params( + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::KeyUpdateParams::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + ).returns(T.attached_class) + end + def self.new( + allowed_fails: nil, + context_window_fallbacks: nil, + cooldown_time: nil, + fallbacks: nil, + max_retries: nil, + model_group_alias: nil, + model_group_retry_policy: nil, + num_retries: nil, + retry_after: nil, + routing_strategy: nil, + routing_strategy_args: nil, + timeout: nil + ) + end + + sig do + override.returns( + { + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::KeyUpdateParams::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + } + ) + end + def to_hash + end + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::KeyUpdateParams::RouterSettings::ModelGroupAlias::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Hanzoai::KeyUpdateParams::RpmLimitType) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::KeyUpdateParams::RpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::KeyUpdateParams::RpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let(:dynamic, Hanzoai::KeyUpdateParams::RpmLimitType::TaggedSymbol) + + sig do + override.returns( + T::Array[Hanzoai::KeyUpdateParams::RpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Hanzoai::KeyUpdateParams::TpmLimitType) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::KeyUpdateParams::TpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::KeyUpdateParams::TpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let(:dynamic, Hanzoai::KeyUpdateParams::TpmLimitType::TaggedSymbol) + + sig do + override.returns( + T::Array[Hanzoai::KeyUpdateParams::TpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/key_update_response.rbi b/rbi/hanzoai/models/key_update_response.rbi new file mode 100644 index 00000000..b00ed736 --- /dev/null +++ b/rbi/hanzoai/models/key_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + KeyUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/langfuse_create_params.rbi b/rbi/hanzoai/models/langfuse_create_params.rbi new file mode 100644 index 00000000..3ca1348d --- /dev/null +++ b/rbi/hanzoai/models/langfuse_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class LangfuseCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::LangfuseCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/langfuse_create_response.rbi b/rbi/hanzoai/models/langfuse_create_response.rbi new file mode 100644 index 00000000..8be94284 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + LangfuseCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/langfuse_delete_params.rbi b/rbi/hanzoai/models/langfuse_delete_params.rbi new file mode 100644 index 00000000..a26bf33c --- /dev/null +++ b/rbi/hanzoai/models/langfuse_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class LangfuseDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::LangfuseDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/langfuse_delete_response.rbi b/rbi/hanzoai/models/langfuse_delete_response.rbi new file mode 100644 index 00000000..b3a8e925 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + LangfuseDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/langfuse_patch_params.rbi b/rbi/hanzoai/models/langfuse_patch_params.rbi new file mode 100644 index 00000000..0fcea135 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class LangfusePatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::LangfusePatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/langfuse_patch_response.rbi b/rbi/hanzoai/models/langfuse_patch_response.rbi new file mode 100644 index 00000000..072ce100 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_patch_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + LangfusePatchResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/langfuse_retrieve_params.rbi b/rbi/hanzoai/models/langfuse_retrieve_params.rbi new file mode 100644 index 00000000..26cd1b90 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class LangfuseRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::LangfuseRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/langfuse_retrieve_response.rbi b/rbi/hanzoai/models/langfuse_retrieve_response.rbi new file mode 100644 index 00000000..071f4b19 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + LangfuseRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/langfuse_update_params.rbi b/rbi/hanzoai/models/langfuse_update_params.rbi new file mode 100644 index 00000000..e8458b65 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class LangfuseUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::LangfuseUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/langfuse_update_response.rbi b/rbi/hanzoai/models/langfuse_update_response.rbi new file mode 100644 index 00000000..cec34fa3 --- /dev/null +++ b/rbi/hanzoai/models/langfuse_update_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + LangfuseUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/lite_llm_end_user_table.rbi b/rbi/hanzoai/models/lite_llm_end_user_table.rbi new file mode 100644 index 00000000..4320b70f --- /dev/null +++ b/rbi/hanzoai/models/lite_llm_end_user_table.rbi @@ -0,0 +1,126 @@ +# typed: strong + +module Hanzoai + module Models + class LiteLlmEndUserTable < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::LiteLlmEndUserTable, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Boolean) } + attr_accessor :blocked + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :alias_ + + sig do + returns( + T.nilable( + Hanzoai::LiteLlmEndUserTable::AllowedModelRegion::TaggedSymbol + ) + ) + end + attr_accessor :allowed_model_region + + sig { returns(T.nilable(String)) } + attr_accessor :default_model + + # Represents user-controllable params for a LiteLLM_BudgetTable record + sig { returns(T.nilable(Hanzoai::BudgetTable)) } + attr_reader :litellm_budget_table + + sig do + params( + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash) + ).void + end + attr_writer :litellm_budget_table + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig do + params( + blocked: T::Boolean, + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::LiteLlmEndUserTable::AllowedModelRegion::OrSymbol + ), + default_model: T.nilable(String), + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash), + spend: Float + ).returns(T.attached_class) + end + def self.new( + blocked:, + user_id:, + alias_: nil, + allowed_model_region: nil, + default_model: nil, + # Represents user-controllable params for a LiteLLM_BudgetTable record + litellm_budget_table: nil, + spend: nil + ) + end + + sig do + override.returns( + { + blocked: T::Boolean, + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::LiteLlmEndUserTable::AllowedModelRegion::TaggedSymbol + ), + default_model: T.nilable(String), + litellm_budget_table: T.nilable(Hanzoai::BudgetTable), + spend: Float + } + ) + end + def to_hash + end + + module AllowedModelRegion + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::LiteLlmEndUserTable::AllowedModelRegion) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + EU = + T.let( + :eu, + Hanzoai::LiteLlmEndUserTable::AllowedModelRegion::TaggedSymbol + ) + US = + T.let( + :us, + Hanzoai::LiteLlmEndUserTable::AllowedModelRegion::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::LiteLlmEndUserTable::AllowedModelRegion::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/member.rbi b/rbi/hanzoai/models/member.rbi new file mode 100644 index 00000000..47d310f0 --- /dev/null +++ b/rbi/hanzoai/models/member.rbi @@ -0,0 +1,71 @@ +# typed: strong + +module Hanzoai + module Models + class Member < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Hanzoai::Member, Hanzoai::Internal::AnyHash) } + + # The role of the user within the team. 'admin' users can manage team settings and + # members, 'user' is a regular team member + sig { returns(Hanzoai::Member::Role::OrSymbol) } + attr_accessor :role + + # The email address of the user to add. Either user_id or user_email must be + # provided + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + # The unique ID of the user to add. Either user_id or user_email must be provided + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + role: Hanzoai::Member::Role::OrSymbol, + user_email: T.nilable(String), + user_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + # The role of the user within the team. 'admin' users can manage team settings and + # members, 'user' is a regular team member + role:, + # The email address of the user to add. Either user_id or user_email must be + # provided + user_email: nil, + # The unique ID of the user to add. Either user_id or user_email must be provided + user_id: nil + ) + end + + sig do + override.returns( + { + role: Hanzoai::Member::Role::OrSymbol, + user_email: T.nilable(String), + user_id: T.nilable(String) + } + ) + end + def to_hash + end + + # The role of the user within the team. 'admin' users can manage team settings and + # members, 'user' is a regular team member + module Role + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Member::Role) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ADMIN = T.let(:admin, Hanzoai::Member::Role::TaggedSymbol) + USER = T.let(:user, Hanzoai::Member::Role::TaggedSymbol) + + sig { override.returns(T::Array[Hanzoai::Member::Role::TaggedSymbol]) } + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/model/info_list_params.rbi b/rbi/hanzoai/models/model/info_list_params.rbi new file mode 100644 index 00000000..552007bb --- /dev/null +++ b/rbi/hanzoai/models/model/info_list_params.rbi @@ -0,0 +1,40 @@ +# typed: strong + +module Hanzoai + module Models + module Model + class InfoListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::Model::InfoListParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_model_id + + sig do + params( + litellm_model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(litellm_model_id: nil, request_options: {}) + end + + sig do + override.returns( + { + litellm_model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/model/info_list_response.rbi b/rbi/hanzoai/models/model/info_list_response.rbi new file mode 100644 index 00000000..4d6b23f3 --- /dev/null +++ b/rbi/hanzoai/models/model/info_list_response.rbi @@ -0,0 +1,9 @@ +# typed: strong + +module Hanzoai + module Models + module Model + InfoListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/model/update_deployment.rbi b/rbi/hanzoai/models/model/update_deployment.rbi new file mode 100644 index 00000000..cf089b86 --- /dev/null +++ b/rbi/hanzoai/models/model/update_deployment.rbi @@ -0,0 +1,2086 @@ +# typed: strong + +module Hanzoai + module Models + module Model + class UpdateDeployment < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::Model::UpdateDeployment, Hanzoai::Internal::AnyHash) + end + + sig do + returns(T.nilable(Hanzoai::Model::UpdateDeployment::LitellmParams)) + end + attr_reader :litellm_params + + sig do + params( + litellm_params: + T.nilable(Hanzoai::Model::UpdateDeployment::LitellmParams::OrHash) + ).void + end + attr_writer :litellm_params + + sig { returns(T.nilable(Hanzoai::ModelInfo)) } + attr_reader :model_info + + sig { params(model_info: T.nilable(Hanzoai::ModelInfo::OrHash)).void } + attr_writer :model_info + + sig { returns(T.nilable(String)) } + attr_accessor :model_name + + sig do + params( + litellm_params: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::OrHash + ), + model_info: T.nilable(Hanzoai::ModelInfo::OrHash), + model_name: T.nilable(String) + ).returns(T.attached_class) + end + def self.new(litellm_params: nil, model_info: nil, model_name: nil) + end + + sig do + override.returns( + { + litellm_params: + T.nilable(Hanzoai::Model::UpdateDeployment::LitellmParams), + model_info: T.nilable(Hanzoai::ModelInfo), + model_name: T.nilable(String) + } + ) + end + def to_hash + end + + class LitellmParams < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + sig { returns(T.nilable(String)) } + attr_accessor :api_version + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_config + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_config_path + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_default_model + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_embedding_model + + sig { returns(T.nilable(String)) } + attr_accessor :aws_access_key_id + + sig { returns(T.nilable(String)) } + attr_accessor :aws_bedrock_runtime_endpoint + + sig { returns(T.nilable(String)) } + attr_accessor :aws_region_name + + sig { returns(T.nilable(String)) } + attr_accessor :aws_secret_access_key + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_audio_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_token_cost_above_1hr + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_token_cost_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_audio_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost_flex + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost_priority + + sig { returns(T.nilable(Float)) } + attr_accessor :citation_cost_per_token + + sig do + returns( + T.nilable( + T::Array[ + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput + ) + ] + ) + ) + end + attr_accessor :configurable_clientside_auth_params + + sig { returns(T.nilable(String)) } + attr_accessor :custom_llm_provider + + sig { returns(T.nilable(String)) } + attr_accessor :gcs_bucket_name + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_audio_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_audio_per_second_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_audio_token + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_character + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_character_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_image + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_image_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_pixel + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_query + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_batches + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_cache_hit + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_flex + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_priority + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second_above_15s_interval + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second_above_8s_interval + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_credential_name + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_trace_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Float)) } + attr_accessor :max_file_size_mb + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :merge_reasoning_content_in_choices + + sig { returns(T.nilable(String)) } + attr_accessor :milvus_text_field + + sig do + returns( + T.nilable( + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse, + T.anything + ) + ) + ) + end + attr_accessor :mock_response + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_info + + sig { returns(T.nilable(String)) } + attr_accessor :organization + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_audio_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_audio_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_character + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_character_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_image + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_image_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_pixel + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_reasoning_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_batches + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_flex + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_priority + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_video_per_second + + sig { returns(T.nilable(String)) } + attr_accessor :region_name + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm + + sig { returns(T.nilable(String)) } + attr_accessor :s3_bucket_name + + sig { returns(T.nilable(String)) } + attr_accessor :s3_encryption_key_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :search_context_cost_per_query + + sig do + returns( + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::StreamTimeout::Variants + ) + ) + end + attr_accessor :stream_timeout + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :tiered_pricing + + sig do + returns( + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::Timeout::Variants + ) + ) + end + attr_accessor :timeout + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :use_in_pass_through + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :use_litellm_proxy + + sig { returns(T.nilable(String)) } + attr_accessor :vector_store_id + + sig do + returns( + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::VertexCredentials::Variants + ) + ) + end + attr_accessor :vertex_credentials + + sig { returns(T.nilable(String)) } + attr_accessor :vertex_location + + sig { returns(T.nilable(String)) } + attr_accessor :vertex_project + + sig { returns(T.nilable(String)) } + attr_accessor :watsonx_region_name + + sig do + params( + api_base: T.nilable(String), + api_key: T.nilable(String), + api_version: T.nilable(String), + auto_router_config: T.nilable(String), + auto_router_config_path: T.nilable(String), + auto_router_default_model: T.nilable(String), + auto_router_embedding_model: T.nilable(String), + aws_access_key_id: T.nilable(String), + aws_bedrock_runtime_endpoint: T.nilable(String), + aws_region_name: T.nilable(String), + aws_secret_access_key: T.nilable(String), + budget_duration: T.nilable(String), + cache_creation_input_audio_token_cost: T.nilable(Float), + cache_creation_input_token_cost: T.nilable(Float), + cache_creation_input_token_cost_above_1hr: T.nilable(Float), + cache_creation_input_token_cost_above_200k_tokens: + T.nilable(Float), + cache_read_input_audio_token_cost: T.nilable(Float), + cache_read_input_token_cost: T.nilable(Float), + cache_read_input_token_cost_above_200k_tokens: T.nilable(Float), + cache_read_input_token_cost_flex: T.nilable(Float), + cache_read_input_token_cost_priority: T.nilable(Float), + citation_cost_per_token: T.nilable(Float), + configurable_clientside_auth_params: + T.nilable( + T::Array[ + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput::OrHash + ) + ] + ), + custom_llm_provider: T.nilable(String), + gcs_bucket_name: T.nilable(String), + input_cost_per_audio_per_second: T.nilable(Float), + input_cost_per_audio_per_second_above_128k_tokens: + T.nilable(Float), + input_cost_per_audio_token: T.nilable(Float), + input_cost_per_character: T.nilable(Float), + input_cost_per_character_above_128k_tokens: T.nilable(Float), + input_cost_per_image: T.nilable(Float), + input_cost_per_image_above_128k_tokens: T.nilable(Float), + input_cost_per_pixel: T.nilable(Float), + input_cost_per_query: T.nilable(Float), + input_cost_per_second: T.nilable(Float), + input_cost_per_token: T.nilable(Float), + input_cost_per_token_above_128k_tokens: T.nilable(Float), + input_cost_per_token_above_200k_tokens: T.nilable(Float), + input_cost_per_token_batches: T.nilable(Float), + input_cost_per_token_cache_hit: T.nilable(Float), + input_cost_per_token_flex: T.nilable(Float), + input_cost_per_token_priority: T.nilable(Float), + input_cost_per_video_per_second: T.nilable(Float), + input_cost_per_video_per_second_above_128k_tokens: + T.nilable(Float), + input_cost_per_video_per_second_above_15s_interval: + T.nilable(Float), + input_cost_per_video_per_second_above_8s_interval: + T.nilable(Float), + litellm_credential_name: T.nilable(String), + litellm_trace_id: T.nilable(String), + max_budget: T.nilable(Float), + max_file_size_mb: T.nilable(Float), + max_retries: T.nilable(Integer), + merge_reasoning_content_in_choices: T.nilable(T::Boolean), + milvus_text_field: T.nilable(String), + mock_response: + T.nilable( + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::OrHash, + T.anything + ) + ), + model: T.nilable(String), + model_info: T.nilable(T::Hash[Symbol, T.anything]), + organization: T.nilable(String), + output_cost_per_audio_per_second: T.nilable(Float), + output_cost_per_audio_token: T.nilable(Float), + output_cost_per_character: T.nilable(Float), + output_cost_per_character_above_128k_tokens: T.nilable(Float), + output_cost_per_image: T.nilable(Float), + output_cost_per_image_token: T.nilable(Float), + output_cost_per_pixel: T.nilable(Float), + output_cost_per_reasoning_token: T.nilable(Float), + output_cost_per_second: T.nilable(Float), + output_cost_per_token: T.nilable(Float), + output_cost_per_token_above_128k_tokens: T.nilable(Float), + output_cost_per_token_above_200k_tokens: T.nilable(Float), + output_cost_per_token_batches: T.nilable(Float), + output_cost_per_token_flex: T.nilable(Float), + output_cost_per_token_priority: T.nilable(Float), + output_cost_per_video_per_second: T.nilable(Float), + region_name: T.nilable(String), + rpm: T.nilable(Integer), + s3_bucket_name: T.nilable(String), + s3_encryption_key_id: T.nilable(String), + search_context_cost_per_query: + T.nilable(T::Hash[Symbol, T.anything]), + stream_timeout: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::StreamTimeout::Variants + ), + tiered_pricing: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + timeout: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::Timeout::Variants + ), + tpm: T.nilable(Integer), + use_in_pass_through: T.nilable(T::Boolean), + use_litellm_proxy: T.nilable(T::Boolean), + vector_store_id: T.nilable(String), + vertex_credentials: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::VertexCredentials::Variants + ), + vertex_location: T.nilable(String), + vertex_project: T.nilable(String), + watsonx_region_name: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + api_base: nil, + api_key: nil, + api_version: nil, + auto_router_config: nil, + auto_router_config_path: nil, + auto_router_default_model: nil, + auto_router_embedding_model: nil, + aws_access_key_id: nil, + aws_bedrock_runtime_endpoint: nil, + aws_region_name: nil, + aws_secret_access_key: nil, + budget_duration: nil, + cache_creation_input_audio_token_cost: nil, + cache_creation_input_token_cost: nil, + cache_creation_input_token_cost_above_1hr: nil, + cache_creation_input_token_cost_above_200k_tokens: nil, + cache_read_input_audio_token_cost: nil, + cache_read_input_token_cost: nil, + cache_read_input_token_cost_above_200k_tokens: nil, + cache_read_input_token_cost_flex: nil, + cache_read_input_token_cost_priority: nil, + citation_cost_per_token: nil, + configurable_clientside_auth_params: nil, + custom_llm_provider: nil, + gcs_bucket_name: nil, + input_cost_per_audio_per_second: nil, + input_cost_per_audio_per_second_above_128k_tokens: nil, + input_cost_per_audio_token: nil, + input_cost_per_character: nil, + input_cost_per_character_above_128k_tokens: nil, + input_cost_per_image: nil, + input_cost_per_image_above_128k_tokens: nil, + input_cost_per_pixel: nil, + input_cost_per_query: nil, + input_cost_per_second: nil, + input_cost_per_token: nil, + input_cost_per_token_above_128k_tokens: nil, + input_cost_per_token_above_200k_tokens: nil, + input_cost_per_token_batches: nil, + input_cost_per_token_cache_hit: nil, + input_cost_per_token_flex: nil, + input_cost_per_token_priority: nil, + input_cost_per_video_per_second: nil, + input_cost_per_video_per_second_above_128k_tokens: nil, + input_cost_per_video_per_second_above_15s_interval: nil, + input_cost_per_video_per_second_above_8s_interval: nil, + litellm_credential_name: nil, + litellm_trace_id: nil, + max_budget: nil, + max_file_size_mb: nil, + max_retries: nil, + merge_reasoning_content_in_choices: nil, + milvus_text_field: nil, + mock_response: nil, + model: nil, + model_info: nil, + organization: nil, + output_cost_per_audio_per_second: nil, + output_cost_per_audio_token: nil, + output_cost_per_character: nil, + output_cost_per_character_above_128k_tokens: nil, + output_cost_per_image: nil, + output_cost_per_image_token: nil, + output_cost_per_pixel: nil, + output_cost_per_reasoning_token: nil, + output_cost_per_second: nil, + output_cost_per_token: nil, + output_cost_per_token_above_128k_tokens: nil, + output_cost_per_token_above_200k_tokens: nil, + output_cost_per_token_batches: nil, + output_cost_per_token_flex: nil, + output_cost_per_token_priority: nil, + output_cost_per_video_per_second: nil, + region_name: nil, + rpm: nil, + s3_bucket_name: nil, + s3_encryption_key_id: nil, + search_context_cost_per_query: nil, + stream_timeout: nil, + tiered_pricing: nil, + timeout: nil, + tpm: nil, + use_in_pass_through: nil, + use_litellm_proxy: nil, + vector_store_id: nil, + vertex_credentials: nil, + vertex_location: nil, + vertex_project: nil, + watsonx_region_name: nil + ) + end + + sig do + override.returns( + { + api_base: T.nilable(String), + api_key: T.nilable(String), + api_version: T.nilable(String), + auto_router_config: T.nilable(String), + auto_router_config_path: T.nilable(String), + auto_router_default_model: T.nilable(String), + auto_router_embedding_model: T.nilable(String), + aws_access_key_id: T.nilable(String), + aws_bedrock_runtime_endpoint: T.nilable(String), + aws_region_name: T.nilable(String), + aws_secret_access_key: T.nilable(String), + budget_duration: T.nilable(String), + cache_creation_input_audio_token_cost: T.nilable(Float), + cache_creation_input_token_cost: T.nilable(Float), + cache_creation_input_token_cost_above_1hr: T.nilable(Float), + cache_creation_input_token_cost_above_200k_tokens: + T.nilable(Float), + cache_read_input_audio_token_cost: T.nilable(Float), + cache_read_input_token_cost: T.nilable(Float), + cache_read_input_token_cost_above_200k_tokens: T.nilable(Float), + cache_read_input_token_cost_flex: T.nilable(Float), + cache_read_input_token_cost_priority: T.nilable(Float), + citation_cost_per_token: T.nilable(Float), + configurable_clientside_auth_params: + T.nilable( + T::Array[ + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput + ) + ] + ), + custom_llm_provider: T.nilable(String), + gcs_bucket_name: T.nilable(String), + input_cost_per_audio_per_second: T.nilable(Float), + input_cost_per_audio_per_second_above_128k_tokens: + T.nilable(Float), + input_cost_per_audio_token: T.nilable(Float), + input_cost_per_character: T.nilable(Float), + input_cost_per_character_above_128k_tokens: T.nilable(Float), + input_cost_per_image: T.nilable(Float), + input_cost_per_image_above_128k_tokens: T.nilable(Float), + input_cost_per_pixel: T.nilable(Float), + input_cost_per_query: T.nilable(Float), + input_cost_per_second: T.nilable(Float), + input_cost_per_token: T.nilable(Float), + input_cost_per_token_above_128k_tokens: T.nilable(Float), + input_cost_per_token_above_200k_tokens: T.nilable(Float), + input_cost_per_token_batches: T.nilable(Float), + input_cost_per_token_cache_hit: T.nilable(Float), + input_cost_per_token_flex: T.nilable(Float), + input_cost_per_token_priority: T.nilable(Float), + input_cost_per_video_per_second: T.nilable(Float), + input_cost_per_video_per_second_above_128k_tokens: + T.nilable(Float), + input_cost_per_video_per_second_above_15s_interval: + T.nilable(Float), + input_cost_per_video_per_second_above_8s_interval: + T.nilable(Float), + litellm_credential_name: T.nilable(String), + litellm_trace_id: T.nilable(String), + max_budget: T.nilable(Float), + max_file_size_mb: T.nilable(Float), + max_retries: T.nilable(Integer), + merge_reasoning_content_in_choices: T.nilable(T::Boolean), + milvus_text_field: T.nilable(String), + mock_response: + T.nilable( + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse, + T.anything + ) + ), + model: T.nilable(String), + model_info: T.nilable(T::Hash[Symbol, T.anything]), + organization: T.nilable(String), + output_cost_per_audio_per_second: T.nilable(Float), + output_cost_per_audio_token: T.nilable(Float), + output_cost_per_character: T.nilable(Float), + output_cost_per_character_above_128k_tokens: T.nilable(Float), + output_cost_per_image: T.nilable(Float), + output_cost_per_image_token: T.nilable(Float), + output_cost_per_pixel: T.nilable(Float), + output_cost_per_reasoning_token: T.nilable(Float), + output_cost_per_second: T.nilable(Float), + output_cost_per_token: T.nilable(Float), + output_cost_per_token_above_128k_tokens: T.nilable(Float), + output_cost_per_token_above_200k_tokens: T.nilable(Float), + output_cost_per_token_batches: T.nilable(Float), + output_cost_per_token_flex: T.nilable(Float), + output_cost_per_token_priority: T.nilable(Float), + output_cost_per_video_per_second: T.nilable(Float), + region_name: T.nilable(String), + rpm: T.nilable(Integer), + s3_bucket_name: T.nilable(String), + s3_encryption_key_id: T.nilable(String), + search_context_cost_per_query: + T.nilable(T::Hash[Symbol, T.anything]), + stream_timeout: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::StreamTimeout::Variants + ), + tiered_pricing: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + timeout: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::Timeout::Variants + ), + tpm: T.nilable(Integer), + use_in_pass_through: T.nilable(T::Boolean), + use_litellm_proxy: T.nilable(T::Boolean), + vector_store_id: T.nilable(String), + vertex_credentials: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::VertexCredentials::Variants + ), + vertex_location: T.nilable(String), + vertex_project: T.nilable(String), + watsonx_region_name: T.nilable(String) + } + ) + end + def to_hash + end + + module ConfigurableClientsideAuthParam + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput + ) + end + + class ConfigurableClientsideParamsCustomAuthInput < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :api_base + + sig { params(api_base: String).returns(T.attached_class) } + def self.new(api_base:) + end + + sig { override.returns({ api_base: String }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::Variants + ] + ) + end + def self.variants + end + end + + module MockResponse + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse, + T.anything + ) + end + + class ModelResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :id + + sig do + returns( + T::Array[ + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + T::Hash[Symbol, T.anything] + ) + ] + ) + end + attr_accessor :choices + + sig { returns(Integer) } + attr_accessor :created + + sig { returns(String) } + attr_accessor :object + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig { returns(T.nilable(String)) } + attr_accessor :system_fingerprint + + sig do + params( + id: String, + choices: + T::Array[ + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::OrHash, + T::Hash[Symbol, T.anything] + ) + ], + created: Integer, + object: String, + model: T.nilable(String), + system_fingerprint: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + id:, + choices:, + created:, + object:, + model: nil, + system_fingerprint: nil + ) + end + + sig do + override.returns( + { + id: String, + choices: + T::Array[ + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + T::Hash[Symbol, T.anything] + ) + ], + created: Integer, + object: String, + model: T.nilable(String), + system_fingerprint: T.nilable(String) + } + ) + end + def to_hash + end + + module Choice + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + T::Hash[Symbol, T.anything] + ) + end + + class Choices < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :finish_reason + + sig { returns(Integer) } + attr_accessor :index + + sig do + returns( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message + ) + end + attr_reader :message + + sig do + params( + message: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::OrHash + ).void + end + attr_writer :message + + sig do + returns( + T.nilable( + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + T.anything + ) + ) + ) + end + attr_accessor :logprobs + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + finish_reason: String, + index: Integer, + message: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::OrHash, + logprobs: + T.nilable( + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::OrHash, + T.anything + ) + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + finish_reason:, + index:, + message:, + logprobs: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + finish_reason: String, + index: Integer, + message: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + logprobs: + T.nilable( + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + T.anything + ) + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + + class Message < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :content + + sig do + returns( + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall + ) + ) + end + attr_reader :function_call + + sig do + params( + function_call: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall::OrHash + ) + ).void + end + attr_writer :function_call + + sig do + returns( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::OrSymbol + ) + end + attr_accessor :role + + sig do + returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) + end + attr_accessor :tool_calls + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation + ] + ) + ) + end + attr_accessor :annotations + + sig do + returns( + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio + ) + ) + end + attr_reader :audio + + sig do + params( + audio: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio::OrHash + ) + ).void + end + attr_writer :audio + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image + ] + ) + ) + end + attr_accessor :images + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig { returns(T.nilable(String)) } + attr_accessor :reasoning_content + + sig do + returns( + T.nilable( + T::Array[ + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ) + ) + end + attr_accessor :thinking_blocks + + sig do + params( + content: T.nilable(String), + function_call: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall::OrHash + ), + role: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::OrSymbol, + tool_calls: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + annotations: + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::OrHash + ] + ), + audio: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio::OrHash + ), + images: + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::OrHash + ] + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::OrHash, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::OrHash + ) + ] + ) + ).returns(T.attached_class) + end + def self.new( + content:, + function_call:, + role:, + tool_calls:, + annotations: nil, + audio: nil, + images: nil, + provider_specific_fields: nil, + reasoning_content: nil, + thinking_blocks: nil + ) + end + + sig do + override.returns( + { + content: T.nilable(String), + function_call: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall + ), + role: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::OrSymbol, + tool_calls: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + annotations: + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation + ] + ), + audio: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio + ), + images: + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image + ] + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ) + } + ) + end + def to_hash + end + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig do + params( + arguments: String, + name: T.nilable(String) + ).returns(T.attached_class) + end + def self.new(arguments:, name: nil) + end + + sig do + override.returns( + { arguments: String, name: T.nilable(String) } + ) + end + def to_hash + end + end + + module Role + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ASSISTANT = + T.let( + :assistant, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + USER = + T.let( + :user, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + SYSTEM = + T.let( + :system, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + TOOL = + T.let( + :tool, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + FUNCTION = + T.let( + :function, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ] + ) + end + def self.values + end + end + + class Annotation < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol + ) + ) + end + attr_reader :type + + sig do + params( + type: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol + ).void + end + attr_writer :type + + sig do + returns( + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + ) + ) + end + attr_reader :url_citation + + sig do + params( + url_citation: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation::OrHash + ).void + end + attr_writer :url_citation + + sig do + params( + type: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol, + url_citation: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation::OrHash + ).returns(T.attached_class) + end + def self.new(type: nil, url_citation: nil) + end + + sig do + override.returns( + { + type: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol, + url_citation: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + } + ) + end + def to_hash + end + + module Type + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + URL_CITATION = + T.let( + :url_citation, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::TaggedSymbol + ] + ) + end + def self.values + end + end + + class URLCitation < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :end_index + + sig { params(end_index: Integer).void } + attr_writer :end_index + + sig { returns(T.nilable(Integer)) } + attr_reader :start_index + + sig { params(start_index: Integer).void } + attr_writer :start_index + + sig { returns(T.nilable(String)) } + attr_reader :title + + sig { params(title: String).void } + attr_writer :title + + sig { returns(T.nilable(String)) } + attr_reader :url + + sig { params(url: String).void } + attr_writer :url + + sig do + params( + end_index: Integer, + start_index: Integer, + title: String, + url: String + ).returns(T.attached_class) + end + def self.new( + end_index: nil, + start_index: nil, + title: nil, + url: nil + ) + end + + sig do + override.returns( + { + end_index: Integer, + start_index: Integer, + title: String, + url: String + } + ) + end + def to_hash + end + end + end + + class Audio < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :id + + sig { returns(String) } + attr_accessor :data + + sig { returns(Integer) } + attr_accessor :expires_at + + sig { returns(String) } + attr_accessor :transcript + + sig do + params( + id: String, + data: String, + expires_at: Integer, + transcript: String + ).returns(T.attached_class) + end + def self.new(id:, data:, expires_at:, transcript:) + end + + sig do + override.returns( + { + id: String, + data: String, + expires_at: Integer, + transcript: String + } + ) + end + def to_hash + end + end + + class Image < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL + ) + end + attr_reader :image_url + + sig do + params( + image_url: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL::OrHash + ).void + end + attr_writer :image_url + + sig { returns(Integer) } + attr_accessor :index + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + image_url: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL::OrHash, + index: Integer, + type: Symbol + ).returns(T.attached_class) + end + def self.new(image_url:, index:, type: :image_url) + end + + sig do + override.returns( + { + image_url: + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + type: Symbol + } + ) + end + def to_hash + end + + class ImageURL < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_accessor :detail + + sig do + params( + url: String, + detail: T.nilable(String) + ).returns(T.attached_class) + end + def self.new(url:, detail: nil) + end + + sig do + override.returns( + { url: String, detail: T.nilable(String) } + ) + end + def to_hash + end + end + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params(type: Symbol).returns(T.attached_class) + end + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :data + + sig { params(data: String).void } + attr_writer :data + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + data: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + data: nil, + type: :redacted_thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + data: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params(type: Symbol).returns(T.attached_class) + end + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::Variants + ] + ) + end + def self.variants + end + end + end + + module Logprobs + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + T.anything + ) + end + + class ChoiceLogprobs < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content + ] + ) + ) + end + attr_accessor :content + + sig do + params( + content: + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::OrHash + ] + ) + ).returns(T.attached_class) + end + def self.new(content: nil) + end + + sig do + override.returns( + { + content: + T.nilable( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content + ] + ) + } + ) + end + def to_hash + end + + class Content < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :token + + sig { returns(Float) } + attr_accessor :logprob + + sig do + returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob + ] + ) + end + attr_accessor :top_logprobs + + sig { returns(T.nilable(T::Array[Integer])) } + attr_accessor :bytes + + sig do + params( + token: String, + logprob: Float, + top_logprobs: + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob::OrHash + ], + bytes: T.nilable(T::Array[Integer]) + ).returns(T.attached_class) + end + def self.new( + token:, + logprob:, + top_logprobs:, + bytes: nil + ) + end + + sig do + override.returns( + { + token: String, + logprob: Float, + top_logprobs: + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob + ], + bytes: T.nilable(T::Array[Integer]) + } + ) + end + def to_hash + end + + class TopLogprob < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :token + + sig { returns(Float) } + attr_accessor :logprob + + sig { returns(T.nilable(T::Array[Integer])) } + attr_accessor :bytes + + sig do + params( + token: String, + logprob: Float, + bytes: T.nilable(T::Array[Integer]) + ).returns(T.attached_class) + end + def self.new(token:, logprob:, bytes: nil) + end + + sig do + override.returns( + { + token: String, + logprob: Float, + bytes: T.nilable(T::Array[Integer]) + } + ) + end + def to_hash + end + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::Variants + ] + ) + end + def self.variants + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Variants + ] + ) + end + def self.variants + end + + StreamingChoiceMap = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::Variants + ] + ) + end + def self.variants + end + end + + module StreamTimeout + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(Float, String) } + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::StreamTimeout::Variants + ] + ) + end + def self.variants + end + end + + module Timeout + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(Float, String) } + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::Timeout::Variants + ] + ) + end + def self.variants + end + end + + module VertexCredentials + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Model::UpdateDeployment::LitellmParams::VertexCredentials::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/model/update_full_params.rbi b/rbi/hanzoai/models/model/update_full_params.rbi new file mode 100644 index 00000000..c79f0a8d --- /dev/null +++ b/rbi/hanzoai/models/model/update_full_params.rbi @@ -0,0 +1,29 @@ +# typed: strong + +module Hanzoai + module Models + module Model + class UpdateFullParams < Hanzoai::Models::Model::UpdateDeployment + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::Model::UpdateFullParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/model/update_full_response.rbi b/rbi/hanzoai/models/model/update_full_response.rbi new file mode 100644 index 00000000..1c453603 --- /dev/null +++ b/rbi/hanzoai/models/model/update_full_response.rbi @@ -0,0 +1,9 @@ +# typed: strong + +module Hanzoai + module Models + module Model + UpdateFullResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/model/update_partial_params.rbi b/rbi/hanzoai/models/model/update_partial_params.rbi new file mode 100644 index 00000000..2ee34b43 --- /dev/null +++ b/rbi/hanzoai/models/model/update_partial_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Model + class UpdatePartialParams < Hanzoai::Models::Model::UpdateDeployment + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Model::UpdatePartialParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/model/update_partial_response.rbi b/rbi/hanzoai/models/model/update_partial_response.rbi new file mode 100644 index 00000000..700afc83 --- /dev/null +++ b/rbi/hanzoai/models/model/update_partial_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Model + UpdatePartialResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/model_create_params.rbi b/rbi/hanzoai/models/model_create_params.rbi new file mode 100644 index 00000000..f0f1862d --- /dev/null +++ b/rbi/hanzoai/models/model_create_params.rbi @@ -0,0 +1,2072 @@ +# typed: strong + +module Hanzoai + module Models + class ModelCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ModelCreateParams, Hanzoai::Internal::AnyHash) + end + + # LiteLLM Params with 'model' requirement - used for completions + sig { returns(Hanzoai::ModelCreateParams::LitellmParams) } + attr_reader :litellm_params + + sig do + params( + litellm_params: Hanzoai::ModelCreateParams::LitellmParams::OrHash + ).void + end + attr_writer :litellm_params + + sig { returns(Hanzoai::ModelInfo) } + attr_reader :model_info + + sig { params(model_info: Hanzoai::ModelInfo::OrHash).void } + attr_writer :model_info + + sig { returns(String) } + attr_accessor :model_name + + sig do + params( + litellm_params: Hanzoai::ModelCreateParams::LitellmParams::OrHash, + model_info: Hanzoai::ModelInfo::OrHash, + model_name: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # LiteLLM Params with 'model' requirement - used for completions + litellm_params:, + model_info:, + model_name:, + request_options: {} + ) + end + + sig do + override.returns( + { + litellm_params: Hanzoai::ModelCreateParams::LitellmParams, + model_info: Hanzoai::ModelInfo, + model_name: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class LitellmParams < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :model + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + sig { returns(T.nilable(String)) } + attr_accessor :api_version + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_config + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_config_path + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_default_model + + sig { returns(T.nilable(String)) } + attr_accessor :auto_router_embedding_model + + sig { returns(T.nilable(String)) } + attr_accessor :aws_access_key_id + + sig { returns(T.nilable(String)) } + attr_accessor :aws_bedrock_runtime_endpoint + + sig { returns(T.nilable(String)) } + attr_accessor :aws_region_name + + sig { returns(T.nilable(String)) } + attr_accessor :aws_secret_access_key + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_audio_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_token_cost_above_1hr + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_creation_input_token_cost_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_audio_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost_flex + + sig { returns(T.nilable(Float)) } + attr_accessor :cache_read_input_token_cost_priority + + sig { returns(T.nilable(Float)) } + attr_accessor :citation_cost_per_token + + sig do + returns( + T.nilable( + T::Array[ + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput + ) + ] + ) + ) + end + attr_accessor :configurable_clientside_auth_params + + sig { returns(T.nilable(String)) } + attr_accessor :custom_llm_provider + + sig { returns(T.nilable(String)) } + attr_accessor :gcs_bucket_name + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_audio_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_audio_per_second_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_audio_token + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_character + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_character_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_image + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_image_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_pixel + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_query + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_batches + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_cache_hit + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_flex + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_token_priority + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second_above_15s_interval + + sig { returns(T.nilable(Float)) } + attr_accessor :input_cost_per_video_per_second_above_8s_interval + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_credential_name + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_trace_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Float)) } + attr_accessor :max_file_size_mb + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :merge_reasoning_content_in_choices + + sig { returns(T.nilable(String)) } + attr_accessor :milvus_text_field + + sig do + returns( + T.nilable( + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse, + T.anything + ) + ) + ) + end + attr_accessor :mock_response + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_info + + sig { returns(T.nilable(String)) } + attr_accessor :organization + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_audio_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_audio_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_character + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_character_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_image + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_image_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_pixel + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_reasoning_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_second + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_above_128k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_above_200k_tokens + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_batches + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_flex + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_token_priority + + sig { returns(T.nilable(Float)) } + attr_accessor :output_cost_per_video_per_second + + sig { returns(T.nilable(String)) } + attr_accessor :region_name + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm + + sig { returns(T.nilable(String)) } + attr_accessor :s3_bucket_name + + sig { returns(T.nilable(String)) } + attr_accessor :s3_encryption_key_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :search_context_cost_per_query + + sig do + returns( + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::StreamTimeout::Variants + ) + ) + end + attr_accessor :stream_timeout + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :tiered_pricing + + sig do + returns( + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::Timeout::Variants + ) + ) + end + attr_accessor :timeout + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :use_in_pass_through + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :use_litellm_proxy + + sig { returns(T.nilable(String)) } + attr_accessor :vector_store_id + + sig do + returns( + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::VertexCredentials::Variants + ) + ) + end + attr_accessor :vertex_credentials + + sig { returns(T.nilable(String)) } + attr_accessor :vertex_location + + sig { returns(T.nilable(String)) } + attr_accessor :vertex_project + + sig { returns(T.nilable(String)) } + attr_accessor :watsonx_region_name + + # LiteLLM Params with 'model' requirement - used for completions + sig do + params( + model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_version: T.nilable(String), + auto_router_config: T.nilable(String), + auto_router_config_path: T.nilable(String), + auto_router_default_model: T.nilable(String), + auto_router_embedding_model: T.nilable(String), + aws_access_key_id: T.nilable(String), + aws_bedrock_runtime_endpoint: T.nilable(String), + aws_region_name: T.nilable(String), + aws_secret_access_key: T.nilable(String), + budget_duration: T.nilable(String), + cache_creation_input_audio_token_cost: T.nilable(Float), + cache_creation_input_token_cost: T.nilable(Float), + cache_creation_input_token_cost_above_1hr: T.nilable(Float), + cache_creation_input_token_cost_above_200k_tokens: T.nilable(Float), + cache_read_input_audio_token_cost: T.nilable(Float), + cache_read_input_token_cost: T.nilable(Float), + cache_read_input_token_cost_above_200k_tokens: T.nilable(Float), + cache_read_input_token_cost_flex: T.nilable(Float), + cache_read_input_token_cost_priority: T.nilable(Float), + citation_cost_per_token: T.nilable(Float), + configurable_clientside_auth_params: + T.nilable( + T::Array[ + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput::OrHash + ) + ] + ), + custom_llm_provider: T.nilable(String), + gcs_bucket_name: T.nilable(String), + input_cost_per_audio_per_second: T.nilable(Float), + input_cost_per_audio_per_second_above_128k_tokens: T.nilable(Float), + input_cost_per_audio_token: T.nilable(Float), + input_cost_per_character: T.nilable(Float), + input_cost_per_character_above_128k_tokens: T.nilable(Float), + input_cost_per_image: T.nilable(Float), + input_cost_per_image_above_128k_tokens: T.nilable(Float), + input_cost_per_pixel: T.nilable(Float), + input_cost_per_query: T.nilable(Float), + input_cost_per_second: T.nilable(Float), + input_cost_per_token: T.nilable(Float), + input_cost_per_token_above_128k_tokens: T.nilable(Float), + input_cost_per_token_above_200k_tokens: T.nilable(Float), + input_cost_per_token_batches: T.nilable(Float), + input_cost_per_token_cache_hit: T.nilable(Float), + input_cost_per_token_flex: T.nilable(Float), + input_cost_per_token_priority: T.nilable(Float), + input_cost_per_video_per_second: T.nilable(Float), + input_cost_per_video_per_second_above_128k_tokens: T.nilable(Float), + input_cost_per_video_per_second_above_15s_interval: + T.nilable(Float), + input_cost_per_video_per_second_above_8s_interval: T.nilable(Float), + litellm_credential_name: T.nilable(String), + litellm_trace_id: T.nilable(String), + max_budget: T.nilable(Float), + max_file_size_mb: T.nilable(Float), + max_retries: T.nilable(Integer), + merge_reasoning_content_in_choices: T.nilable(T::Boolean), + milvus_text_field: T.nilable(String), + mock_response: + T.nilable( + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::OrHash, + T.anything + ) + ), + model_info: T.nilable(T::Hash[Symbol, T.anything]), + organization: T.nilable(String), + output_cost_per_audio_per_second: T.nilable(Float), + output_cost_per_audio_token: T.nilable(Float), + output_cost_per_character: T.nilable(Float), + output_cost_per_character_above_128k_tokens: T.nilable(Float), + output_cost_per_image: T.nilable(Float), + output_cost_per_image_token: T.nilable(Float), + output_cost_per_pixel: T.nilable(Float), + output_cost_per_reasoning_token: T.nilable(Float), + output_cost_per_second: T.nilable(Float), + output_cost_per_token: T.nilable(Float), + output_cost_per_token_above_128k_tokens: T.nilable(Float), + output_cost_per_token_above_200k_tokens: T.nilable(Float), + output_cost_per_token_batches: T.nilable(Float), + output_cost_per_token_flex: T.nilable(Float), + output_cost_per_token_priority: T.nilable(Float), + output_cost_per_video_per_second: T.nilable(Float), + region_name: T.nilable(String), + rpm: T.nilable(Integer), + s3_bucket_name: T.nilable(String), + s3_encryption_key_id: T.nilable(String), + search_context_cost_per_query: + T.nilable(T::Hash[Symbol, T.anything]), + stream_timeout: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::StreamTimeout::Variants + ), + tiered_pricing: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + timeout: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::Timeout::Variants + ), + tpm: T.nilable(Integer), + use_in_pass_through: T.nilable(T::Boolean), + use_litellm_proxy: T.nilable(T::Boolean), + vector_store_id: T.nilable(String), + vertex_credentials: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::VertexCredentials::Variants + ), + vertex_location: T.nilable(String), + vertex_project: T.nilable(String), + watsonx_region_name: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + model:, + api_base: nil, + api_key: nil, + api_version: nil, + auto_router_config: nil, + auto_router_config_path: nil, + auto_router_default_model: nil, + auto_router_embedding_model: nil, + aws_access_key_id: nil, + aws_bedrock_runtime_endpoint: nil, + aws_region_name: nil, + aws_secret_access_key: nil, + budget_duration: nil, + cache_creation_input_audio_token_cost: nil, + cache_creation_input_token_cost: nil, + cache_creation_input_token_cost_above_1hr: nil, + cache_creation_input_token_cost_above_200k_tokens: nil, + cache_read_input_audio_token_cost: nil, + cache_read_input_token_cost: nil, + cache_read_input_token_cost_above_200k_tokens: nil, + cache_read_input_token_cost_flex: nil, + cache_read_input_token_cost_priority: nil, + citation_cost_per_token: nil, + configurable_clientside_auth_params: nil, + custom_llm_provider: nil, + gcs_bucket_name: nil, + input_cost_per_audio_per_second: nil, + input_cost_per_audio_per_second_above_128k_tokens: nil, + input_cost_per_audio_token: nil, + input_cost_per_character: nil, + input_cost_per_character_above_128k_tokens: nil, + input_cost_per_image: nil, + input_cost_per_image_above_128k_tokens: nil, + input_cost_per_pixel: nil, + input_cost_per_query: nil, + input_cost_per_second: nil, + input_cost_per_token: nil, + input_cost_per_token_above_128k_tokens: nil, + input_cost_per_token_above_200k_tokens: nil, + input_cost_per_token_batches: nil, + input_cost_per_token_cache_hit: nil, + input_cost_per_token_flex: nil, + input_cost_per_token_priority: nil, + input_cost_per_video_per_second: nil, + input_cost_per_video_per_second_above_128k_tokens: nil, + input_cost_per_video_per_second_above_15s_interval: nil, + input_cost_per_video_per_second_above_8s_interval: nil, + litellm_credential_name: nil, + litellm_trace_id: nil, + max_budget: nil, + max_file_size_mb: nil, + max_retries: nil, + merge_reasoning_content_in_choices: nil, + milvus_text_field: nil, + mock_response: nil, + model_info: nil, + organization: nil, + output_cost_per_audio_per_second: nil, + output_cost_per_audio_token: nil, + output_cost_per_character: nil, + output_cost_per_character_above_128k_tokens: nil, + output_cost_per_image: nil, + output_cost_per_image_token: nil, + output_cost_per_pixel: nil, + output_cost_per_reasoning_token: nil, + output_cost_per_second: nil, + output_cost_per_token: nil, + output_cost_per_token_above_128k_tokens: nil, + output_cost_per_token_above_200k_tokens: nil, + output_cost_per_token_batches: nil, + output_cost_per_token_flex: nil, + output_cost_per_token_priority: nil, + output_cost_per_video_per_second: nil, + region_name: nil, + rpm: nil, + s3_bucket_name: nil, + s3_encryption_key_id: nil, + search_context_cost_per_query: nil, + stream_timeout: nil, + tiered_pricing: nil, + timeout: nil, + tpm: nil, + use_in_pass_through: nil, + use_litellm_proxy: nil, + vector_store_id: nil, + vertex_credentials: nil, + vertex_location: nil, + vertex_project: nil, + watsonx_region_name: nil + ) + end + + sig do + override.returns( + { + model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_version: T.nilable(String), + auto_router_config: T.nilable(String), + auto_router_config_path: T.nilable(String), + auto_router_default_model: T.nilable(String), + auto_router_embedding_model: T.nilable(String), + aws_access_key_id: T.nilable(String), + aws_bedrock_runtime_endpoint: T.nilable(String), + aws_region_name: T.nilable(String), + aws_secret_access_key: T.nilable(String), + budget_duration: T.nilable(String), + cache_creation_input_audio_token_cost: T.nilable(Float), + cache_creation_input_token_cost: T.nilable(Float), + cache_creation_input_token_cost_above_1hr: T.nilable(Float), + cache_creation_input_token_cost_above_200k_tokens: + T.nilable(Float), + cache_read_input_audio_token_cost: T.nilable(Float), + cache_read_input_token_cost: T.nilable(Float), + cache_read_input_token_cost_above_200k_tokens: T.nilable(Float), + cache_read_input_token_cost_flex: T.nilable(Float), + cache_read_input_token_cost_priority: T.nilable(Float), + citation_cost_per_token: T.nilable(Float), + configurable_clientside_auth_params: + T.nilable( + T::Array[ + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput + ) + ] + ), + custom_llm_provider: T.nilable(String), + gcs_bucket_name: T.nilable(String), + input_cost_per_audio_per_second: T.nilable(Float), + input_cost_per_audio_per_second_above_128k_tokens: + T.nilable(Float), + input_cost_per_audio_token: T.nilable(Float), + input_cost_per_character: T.nilable(Float), + input_cost_per_character_above_128k_tokens: T.nilable(Float), + input_cost_per_image: T.nilable(Float), + input_cost_per_image_above_128k_tokens: T.nilable(Float), + input_cost_per_pixel: T.nilable(Float), + input_cost_per_query: T.nilable(Float), + input_cost_per_second: T.nilable(Float), + input_cost_per_token: T.nilable(Float), + input_cost_per_token_above_128k_tokens: T.nilable(Float), + input_cost_per_token_above_200k_tokens: T.nilable(Float), + input_cost_per_token_batches: T.nilable(Float), + input_cost_per_token_cache_hit: T.nilable(Float), + input_cost_per_token_flex: T.nilable(Float), + input_cost_per_token_priority: T.nilable(Float), + input_cost_per_video_per_second: T.nilable(Float), + input_cost_per_video_per_second_above_128k_tokens: + T.nilable(Float), + input_cost_per_video_per_second_above_15s_interval: + T.nilable(Float), + input_cost_per_video_per_second_above_8s_interval: + T.nilable(Float), + litellm_credential_name: T.nilable(String), + litellm_trace_id: T.nilable(String), + max_budget: T.nilable(Float), + max_file_size_mb: T.nilable(Float), + max_retries: T.nilable(Integer), + merge_reasoning_content_in_choices: T.nilable(T::Boolean), + milvus_text_field: T.nilable(String), + mock_response: + T.nilable( + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse, + T.anything + ) + ), + model_info: T.nilable(T::Hash[Symbol, T.anything]), + organization: T.nilable(String), + output_cost_per_audio_per_second: T.nilable(Float), + output_cost_per_audio_token: T.nilable(Float), + output_cost_per_character: T.nilable(Float), + output_cost_per_character_above_128k_tokens: T.nilable(Float), + output_cost_per_image: T.nilable(Float), + output_cost_per_image_token: T.nilable(Float), + output_cost_per_pixel: T.nilable(Float), + output_cost_per_reasoning_token: T.nilable(Float), + output_cost_per_second: T.nilable(Float), + output_cost_per_token: T.nilable(Float), + output_cost_per_token_above_128k_tokens: T.nilable(Float), + output_cost_per_token_above_200k_tokens: T.nilable(Float), + output_cost_per_token_batches: T.nilable(Float), + output_cost_per_token_flex: T.nilable(Float), + output_cost_per_token_priority: T.nilable(Float), + output_cost_per_video_per_second: T.nilable(Float), + region_name: T.nilable(String), + rpm: T.nilable(Integer), + s3_bucket_name: T.nilable(String), + s3_encryption_key_id: T.nilable(String), + search_context_cost_per_query: + T.nilable(T::Hash[Symbol, T.anything]), + stream_timeout: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::StreamTimeout::Variants + ), + tiered_pricing: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + timeout: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::Timeout::Variants + ), + tpm: T.nilable(Integer), + use_in_pass_through: T.nilable(T::Boolean), + use_litellm_proxy: T.nilable(T::Boolean), + vector_store_id: T.nilable(String), + vertex_credentials: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::VertexCredentials::Variants + ), + vertex_location: T.nilable(String), + vertex_project: T.nilable(String), + watsonx_region_name: T.nilable(String) + } + ) + end + def to_hash + end + + module ConfigurableClientsideAuthParam + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput + ) + end + + class ConfigurableClientsideParamsCustomAuthInput < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :api_base + + sig { params(api_base: String).returns(T.attached_class) } + def self.new(api_base:) + end + + sig { override.returns({ api_base: String }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::Variants + ] + ) + end + def self.variants + end + end + + module MockResponse + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse, + T.anything + ) + end + + class ModelResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :id + + sig do + returns( + T::Array[ + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + T::Hash[Symbol, T.anything] + ) + ] + ) + end + attr_accessor :choices + + sig { returns(Integer) } + attr_accessor :created + + sig { returns(String) } + attr_accessor :object + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig { returns(T.nilable(String)) } + attr_accessor :system_fingerprint + + sig do + params( + id: String, + choices: + T::Array[ + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::OrHash, + T::Hash[Symbol, T.anything] + ) + ], + created: Integer, + object: String, + model: T.nilable(String), + system_fingerprint: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + id:, + choices:, + created:, + object:, + model: nil, + system_fingerprint: nil + ) + end + + sig do + override.returns( + { + id: String, + choices: + T::Array[ + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + T::Hash[Symbol, T.anything] + ) + ], + created: Integer, + object: String, + model: T.nilable(String), + system_fingerprint: T.nilable(String) + } + ) + end + def to_hash + end + + module Choice + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + T::Hash[Symbol, T.anything] + ) + end + + class Choices < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :finish_reason + + sig { returns(Integer) } + attr_accessor :index + + sig do + returns( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message + ) + end + attr_reader :message + + sig do + params( + message: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::OrHash + ).void + end + attr_writer :message + + sig do + returns( + T.nilable( + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + T.anything + ) + ) + ) + end + attr_accessor :logprobs + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + finish_reason: String, + index: Integer, + message: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::OrHash, + logprobs: + T.nilable( + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::OrHash, + T.anything + ) + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + finish_reason:, + index:, + message:, + logprobs: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + finish_reason: String, + index: Integer, + message: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + logprobs: + T.nilable( + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + T.anything + ) + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + + class Message < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :content + + sig do + returns( + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall + ) + ) + end + attr_reader :function_call + + sig do + params( + function_call: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall::OrHash + ) + ).void + end + attr_writer :function_call + + sig do + returns( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::OrSymbol + ) + end + attr_accessor :role + + sig do + returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) + end + attr_accessor :tool_calls + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation + ] + ) + ) + end + attr_accessor :annotations + + sig do + returns( + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio + ) + ) + end + attr_reader :audio + + sig do + params( + audio: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio::OrHash + ) + ).void + end + attr_writer :audio + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image + ] + ) + ) + end + attr_accessor :images + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig { returns(T.nilable(String)) } + attr_accessor :reasoning_content + + sig do + returns( + T.nilable( + T::Array[ + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ) + ) + end + attr_accessor :thinking_blocks + + sig do + params( + content: T.nilable(String), + function_call: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall::OrHash + ), + role: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::OrSymbol, + tool_calls: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + annotations: + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::OrHash + ] + ), + audio: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio::OrHash + ), + images: + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::OrHash + ] + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::OrHash, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::OrHash + ) + ] + ) + ).returns(T.attached_class) + end + def self.new( + content:, + function_call:, + role:, + tool_calls:, + annotations: nil, + audio: nil, + images: nil, + provider_specific_fields: nil, + reasoning_content: nil, + thinking_blocks: nil + ) + end + + sig do + override.returns( + { + content: T.nilable(String), + function_call: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall + ), + role: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::OrSymbol, + tool_calls: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + annotations: + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation + ] + ), + audio: + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio + ), + images: + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image + ] + ), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ) + } + ) + end + def to_hash + end + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig do + params( + arguments: String, + name: T.nilable(String) + ).returns(T.attached_class) + end + def self.new(arguments:, name: nil) + end + + sig do + override.returns( + { arguments: String, name: T.nilable(String) } + ) + end + def to_hash + end + end + + module Role + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ASSISTANT = + T.let( + :assistant, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + USER = + T.let( + :user, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + SYSTEM = + T.let( + :system, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + TOOL = + T.let( + :tool, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + FUNCTION = + T.let( + :function, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Role::TaggedSymbol + ] + ) + end + def self.values + end + end + + class Annotation < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol + ) + ) + end + attr_reader :type + + sig do + params( + type: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol + ).void + end + attr_writer :type + + sig do + returns( + T.nilable( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + ) + ) + end + attr_reader :url_citation + + sig do + params( + url_citation: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation::OrHash + ).void + end + attr_writer :url_citation + + sig do + params( + type: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol, + url_citation: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation::OrHash + ).returns(T.attached_class) + end + def self.new(type: nil, url_citation: nil) + end + + sig do + override.returns( + { + type: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::OrSymbol, + url_citation: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + } + ) + end + def to_hash + end + + module Type + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + URL_CITATION = + T.let( + :url_citation, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::Type::TaggedSymbol + ] + ) + end + def self.values + end + end + + class URLCitation < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_reader :end_index + + sig { params(end_index: Integer).void } + attr_writer :end_index + + sig { returns(T.nilable(Integer)) } + attr_reader :start_index + + sig { params(start_index: Integer).void } + attr_writer :start_index + + sig { returns(T.nilable(String)) } + attr_reader :title + + sig { params(title: String).void } + attr_writer :title + + sig { returns(T.nilable(String)) } + attr_reader :url + + sig { params(url: String).void } + attr_writer :url + + sig do + params( + end_index: Integer, + start_index: Integer, + title: String, + url: String + ).returns(T.attached_class) + end + def self.new( + end_index: nil, + start_index: nil, + title: nil, + url: nil + ) + end + + sig do + override.returns( + { + end_index: Integer, + start_index: Integer, + title: String, + url: String + } + ) + end + def to_hash + end + end + end + + class Audio < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :id + + sig { returns(String) } + attr_accessor :data + + sig { returns(Integer) } + attr_accessor :expires_at + + sig { returns(String) } + attr_accessor :transcript + + sig do + params( + id: String, + data: String, + expires_at: Integer, + transcript: String + ).returns(T.attached_class) + end + def self.new(id:, data:, expires_at:, transcript:) + end + + sig do + override.returns( + { + id: String, + data: String, + expires_at: Integer, + transcript: String + } + ) + end + def to_hash + end + end + + class Image < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL + ) + end + attr_reader :image_url + + sig do + params( + image_url: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL::OrHash + ).void + end + attr_writer :image_url + + sig { returns(Integer) } + attr_accessor :index + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + image_url: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL::OrHash, + index: Integer, + type: Symbol + ).returns(T.attached_class) + end + def self.new(image_url:, index:, type: :image_url) + end + + sig do + override.returns( + { + image_url: + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + type: Symbol + } + ) + end + def to_hash + end + + class ImageURL < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_accessor :detail + + sig do + params(url: String, detail: T.nilable(String)).returns( + T.attached_class + ) + end + def self.new(url:, detail: nil) + end + + sig do + override.returns( + { url: String, detail: T.nilable(String) } + ) + end + def to_hash + end + end + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :data + + sig { params(data: String).void } + attr_writer :data + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + data: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + data: nil, + type: :redacted_thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + data: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::Variants + ] + ) + end + def self.variants + end + end + end + + module Logprobs + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + T.anything + ) + end + + class ChoiceLogprobs < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content + ] + ) + ) + end + attr_accessor :content + + sig do + params( + content: + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::OrHash + ] + ) + ).returns(T.attached_class) + end + def self.new(content: nil) + end + + sig do + override.returns( + { + content: + T.nilable( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content + ] + ) + } + ) + end + def to_hash + end + + class Content < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :token + + sig { returns(Float) } + attr_accessor :logprob + + sig do + returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob + ] + ) + end + attr_accessor :top_logprobs + + sig { returns(T.nilable(T::Array[Integer])) } + attr_accessor :bytes + + sig do + params( + token: String, + logprob: Float, + top_logprobs: + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob::OrHash + ], + bytes: T.nilable(T::Array[Integer]) + ).returns(T.attached_class) + end + def self.new(token:, logprob:, top_logprobs:, bytes: nil) + end + + sig do + override.returns( + { + token: String, + logprob: Float, + top_logprobs: + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob + ], + bytes: T.nilable(T::Array[Integer]) + } + ) + end + def to_hash + end + + class TopLogprob < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :token + + sig { returns(Float) } + attr_accessor :logprob + + sig { returns(T.nilable(T::Array[Integer])) } + attr_accessor :bytes + + sig do + params( + token: String, + logprob: Float, + bytes: T.nilable(T::Array[Integer]) + ).returns(T.attached_class) + end + def self.new(token:, logprob:, bytes: nil) + end + + sig do + override.returns( + { + token: String, + logprob: Float, + bytes: T.nilable(T::Array[Integer]) + } + ) + end + def to_hash + end + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::Variants + ] + ) + end + def self.variants + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Variants + ] + ) + end + def self.variants + end + + StreamingChoiceMap = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::Variants + ] + ) + end + def self.variants + end + end + + module StreamTimeout + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(Float, String) } + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::StreamTimeout::Variants + ] + ) + end + def self.variants + end + end + + module Timeout + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(Float, String) } + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::Timeout::Variants + ] + ) + end + def self.variants + end + end + + module VertexCredentials + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::ModelCreateParams::LitellmParams::VertexCredentials::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + end + end +end diff --git a/rbi/hanzoai/models/model_create_response.rbi b/rbi/hanzoai/models/model_create_response.rbi new file mode 100644 index 00000000..7c9076b8 --- /dev/null +++ b/rbi/hanzoai/models/model_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + ModelCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/model_delete_params.rbi b/rbi/hanzoai/models/model_delete_params.rbi new file mode 100644 index 00000000..40867eae --- /dev/null +++ b/rbi/hanzoai/models/model_delete_params.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Hanzoai + module Models + class ModelDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ModelDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :id + + sig do + params( + id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(id:, request_options: {}) + end + + sig do + override.returns( + { id: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/model_delete_response.rbi b/rbi/hanzoai/models/model_delete_response.rbi new file mode 100644 index 00000000..ccad07ea --- /dev/null +++ b/rbi/hanzoai/models/model_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + ModelDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/model_group_retrieve_info_params.rbi b/rbi/hanzoai/models/model_group_retrieve_info_params.rbi new file mode 100644 index 00000000..b8cab048 --- /dev/null +++ b/rbi/hanzoai/models/model_group_retrieve_info_params.rbi @@ -0,0 +1,41 @@ +# typed: strong + +module Hanzoai + module Models + class ModelGroupRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::ModelGroupRetrieveInfoParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :model_group + + sig do + params( + model_group: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(model_group: nil, request_options: {}) + end + + sig do + override.returns( + { + model_group: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/model_group_retrieve_info_response.rbi b/rbi/hanzoai/models/model_group_retrieve_info_response.rbi new file mode 100644 index 00000000..e0d5100b --- /dev/null +++ b/rbi/hanzoai/models/model_group_retrieve_info_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + ModelGroupRetrieveInfoResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/model_info.rbi b/rbi/hanzoai/models/model_info.rbi new file mode 100644 index 00000000..0097a485 --- /dev/null +++ b/rbi/hanzoai/models/model_info.rbi @@ -0,0 +1,106 @@ +# typed: strong + +module Hanzoai + module Models + class ModelInfo < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Hanzoai::ModelInfo, Hanzoai::Internal::AnyHash) } + + sig { returns(T.nilable(String)) } + attr_accessor :id + + sig { returns(T.nilable(String)) } + attr_accessor :base_model + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(String)) } + attr_accessor :created_by + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :db_model + + sig { params(db_model: T::Boolean).void } + attr_writer :db_model + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(String)) } + attr_accessor :team_public_model_name + + sig { returns(T.nilable(Hanzoai::ModelInfo::Tier::OrSymbol)) } + attr_accessor :tier + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :updated_by + + sig do + params( + id: T.nilable(String), + base_model: T.nilable(String), + created_at: T.nilable(Time), + created_by: T.nilable(String), + db_model: T::Boolean, + team_id: T.nilable(String), + team_public_model_name: T.nilable(String), + tier: T.nilable(Hanzoai::ModelInfo::Tier::OrSymbol), + updated_at: T.nilable(Time), + updated_by: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + id:, + base_model: nil, + created_at: nil, + created_by: nil, + db_model: nil, + team_id: nil, + team_public_model_name: nil, + tier: nil, + updated_at: nil, + updated_by: nil + ) + end + + sig do + override.returns( + { + id: T.nilable(String), + base_model: T.nilable(String), + created_at: T.nilable(Time), + created_by: T.nilable(String), + db_model: T::Boolean, + team_id: T.nilable(String), + team_public_model_name: T.nilable(String), + tier: T.nilable(Hanzoai::ModelInfo::Tier::OrSymbol), + updated_at: T.nilable(Time), + updated_by: T.nilable(String) + } + ) + end + def to_hash + end + + module Tier + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::ModelInfo::Tier) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + FREE = T.let(:free, Hanzoai::ModelInfo::Tier::TaggedSymbol) + PAID = T.let(:paid, Hanzoai::ModelInfo::Tier::TaggedSymbol) + + sig do + override.returns(T::Array[Hanzoai::ModelInfo::Tier::TaggedSymbol]) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/model_list_params.rbi b/rbi/hanzoai/models/model_list_params.rbi new file mode 100644 index 00000000..013a7d6d --- /dev/null +++ b/rbi/hanzoai/models/model_list_params.rbi @@ -0,0 +1,71 @@ +# typed: strong + +module Hanzoai + module Models + class ModelListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ModelListParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :fallback_type + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :include_metadata + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :include_model_access_groups + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :only_model_access_groups + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :return_wildcard_routes + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig do + params( + fallback_type: T.nilable(String), + include_metadata: T.nilable(T::Boolean), + include_model_access_groups: T.nilable(T::Boolean), + only_model_access_groups: T.nilable(T::Boolean), + return_wildcard_routes: T.nilable(T::Boolean), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + fallback_type: nil, + include_metadata: nil, + include_model_access_groups: nil, + only_model_access_groups: nil, + return_wildcard_routes: nil, + team_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + fallback_type: T.nilable(String), + include_metadata: T.nilable(T::Boolean), + include_model_access_groups: T.nilable(T::Boolean), + only_model_access_groups: T.nilable(T::Boolean), + return_wildcard_routes: T.nilable(T::Boolean), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/model_list_response.rbi b/rbi/hanzoai/models/model_list_response.rbi new file mode 100644 index 00000000..548237b1 --- /dev/null +++ b/rbi/hanzoai/models/model_list_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + ModelListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/moderation_create_params.rbi b/rbi/hanzoai/models/moderation_create_params.rbi new file mode 100644 index 00000000..b6030fea --- /dev/null +++ b/rbi/hanzoai/models/moderation_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ModerationCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ModerationCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/moderation_create_response.rbi b/rbi/hanzoai/models/moderation_create_response.rbi new file mode 100644 index 00000000..5780cd05 --- /dev/null +++ b/rbi/hanzoai/models/moderation_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + ModerationCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/openai/deployment_complete_params.rbi b/rbi/hanzoai/models/openai/deployment_complete_params.rbi new file mode 100644 index 00000000..398ba44f --- /dev/null +++ b/rbi/hanzoai/models/openai/deployment_complete_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module OpenAI + class DeploymentCompleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::DeploymentCompleteParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/openai/deployment_complete_response.rbi b/rbi/hanzoai/models/openai/deployment_complete_response.rbi new file mode 100644 index 00000000..1377eee3 --- /dev/null +++ b/rbi/hanzoai/models/openai/deployment_complete_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module OpenAI + DeploymentCompleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/openai/deployment_embed_params.rbi b/rbi/hanzoai/models/openai/deployment_embed_params.rbi new file mode 100644 index 00000000..d1d2e7e6 --- /dev/null +++ b/rbi/hanzoai/models/openai/deployment_embed_params.rbi @@ -0,0 +1,161 @@ +# typed: strong + +module Hanzoai + module Models + module OpenAI + class DeploymentEmbedParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::DeploymentEmbedParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :body_model + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + sig { returns(T.nilable(String)) } + attr_accessor :api_type + + sig { returns(T.nilable(String)) } + attr_accessor :api_version + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :caching + + sig { params(caching: T::Boolean).void } + attr_writer :caching + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::DeploymentEmbedParams::CustomLlmProvider::Variants + ) + ) + end + attr_accessor :custom_llm_provider + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :input + + sig { params(input: T::Array[String]).void } + attr_writer :input + + sig { returns(T.nilable(String)) } + attr_accessor :litellm_call_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :litellm_logging_obj + + sig { returns(T.nilable(String)) } + attr_accessor :logger_fn + + sig { returns(T.nilable(Integer)) } + attr_reader :timeout + + sig { params(timeout: Integer).void } + attr_writer :timeout + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + body_model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable( + Hanzoai::OpenAI::DeploymentEmbedParams::CustomLlmProvider::Variants + ), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + body_model:, + api_base: nil, + api_key: nil, + api_type: nil, + api_version: nil, + caching: nil, + custom_llm_provider: nil, + input: nil, + litellm_call_id: nil, + litellm_logging_obj: nil, + logger_fn: nil, + timeout: nil, + user: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + body_model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable( + Hanzoai::OpenAI::DeploymentEmbedParams::CustomLlmProvider::Variants + ), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::DeploymentEmbedParams::CustomLlmProvider::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + end + end +end diff --git a/rbi/hanzoai/models/openai/deployment_embed_response.rbi b/rbi/hanzoai/models/openai/deployment_embed_response.rbi new file mode 100644 index 00000000..e7503ecf --- /dev/null +++ b/rbi/hanzoai/models/openai/deployment_embed_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module OpenAI + DeploymentEmbedResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/openai/deployments/chat_complete_params.rbi b/rbi/hanzoai/models/openai/deployments/chat_complete_params.rbi new file mode 100644 index 00000000..e3a02e5b --- /dev/null +++ b/rbi/hanzoai/models/openai/deployments/chat_complete_params.rbi @@ -0,0 +1,2665 @@ +# typed: strong + +module Hanzoai + module Models + module OpenAI + module Deployments + class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T::Array[ + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + ) + ] + ) + end + attr_accessor :messages + + sig { returns(String) } + attr_accessor :body_model + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :caching + + sig { returns(T.nilable(T::Hash[Symbol, String])) } + attr_accessor :context_window_fallback_dict + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :frequency_penalty + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::FunctionCall::Variants + ) + ) + end + attr_accessor :function_call + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :functions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(T::Hash[Symbol, Float])) } + attr_accessor :logit_bias + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :logprobs + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_tokens + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(Integer)) } + attr_accessor :n + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :parallel_tool_calls + + sig { returns(T.nilable(Float)) } + attr_accessor :presence_penalty + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :response_format + + sig { returns(T.nilable(Integer)) } + attr_accessor :seed + + sig { returns(T.nilable(String)) } + attr_accessor :service_tier + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Stop::Variants + ) + ) + end + attr_accessor :stop + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :stream + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :stream_options + + sig { returns(T.nilable(Float)) } + attr_accessor :temperature + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::ToolChoice::Variants + ) + ) + end + attr_accessor :tool_choice + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :tools + + sig { returns(T.nilable(Integer)) } + attr_accessor :top_logprobs + + sig { returns(T.nilable(Float)) } + attr_accessor :top_p + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + messages: + T::Array[ + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::OrHash + ) + ], + body_model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Stop::Variants + ), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + messages:, + body_model:, + caching: nil, + context_window_fallback_dict: nil, + fallbacks: nil, + frequency_penalty: nil, + function_call: nil, + functions: nil, + guardrails: nil, + logit_bias: nil, + logprobs: nil, + max_tokens: nil, + metadata: nil, + n: nil, + num_retries: nil, + parallel_tool_calls: nil, + presence_penalty: nil, + response_format: nil, + seed: nil, + service_tier: nil, + stop: nil, + stream: nil, + stream_options: nil, + temperature: nil, + tool_choice: nil, + tools: nil, + top_logprobs: nil, + top_p: nil, + user: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + messages: + T::Array[ + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + ) + ], + body_model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: + T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Stop::Variants + ), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module Message + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + ) + end + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl::OrHash, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, cache_control: nil, role: :user) + end + + sig do + override.returns( + { + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::Variants + ] + ) + end + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject + ) + end + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ) + ) + end + attr_accessor :image_url + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + image_url: + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject::OrHash + ), + type: Symbol + ).returns(T.attached_class) + end + def self.new(image_url:, type: :image_url) + end + + sig do + override.returns( + { + image_url: + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ), + type: Symbol + } + ) + end + def to_hash + end + + module ImageURL + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + ) + end + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_reader :detail + + sig { params(detail: String).void } + attr_writer :detail + + sig { returns(T.nilable(String)) } + attr_reader :format_ + + sig { params(format_: String).void } + attr_writer :format_ + + sig do + params( + url: String, + detail: String, + format_: String + ).returns(T.attached_class) + end + def self.new(url:, detail: nil, format_: nil) + end + + sig do + override.returns( + { url: String, detail: String, format_: String } + ) + end + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::Variants + ] + ) + end + def self.variants + end + end + end + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio + ) + end + attr_reader :input_audio + + sig do + params( + input_audio: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::OrHash + ).void + end + attr_writer :input_audio + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + input_audio: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(input_audio:, type: :input_audio) + end + + sig do + override.returns( + { + input_audio: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: Symbol + } + ) + end + def to_hash + end + + class InputAudio < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :data + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + ) + end + attr_accessor :format_ + + sig do + params( + data: String, + format_: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + ).returns(T.attached_class) + end + def self.new(data:, format_:) + end + + sig do + override.returns( + { + data: String, + format_: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::OrSymbol + } + ) + end + def to_hash + end + + module Format + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + WAV = + T.let( + :wav, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ) + MP3 = + T.let( + :mp3, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::Format::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + ) + ) + end + attr_reader :citations + + sig do + params( + citations: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations::OrHash + ) + ).void + end + attr_writer :citations + + sig { returns(String) } + attr_accessor :context + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source + ) + end + attr_reader :source + + sig do + params( + source: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source::OrHash + ).void + end + attr_writer :source + + sig { returns(String) } + attr_accessor :title + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + citations: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations::OrHash + ), + context: String, + source: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source::OrHash, + title: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + citations:, + context:, + source:, + title:, + type: :document + ) + end + + sig do + override.returns( + { + citations: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations + ), + context: String, + source: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: Symbol + } + ) + end + def to_hash + end + + class Citations < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T::Boolean) } + attr_accessor :enabled + + sig do + params(enabled: T::Boolean).returns(T.attached_class) + end + def self.new(enabled:) + end + + sig { override.returns({ enabled: T::Boolean }) } + def to_hash + end + end + + class Source < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :data + + sig { returns(String) } + attr_accessor :media_type + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + data: String, + media_type: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new(data:, media_type:, type: :text) + end + + sig do + override.returns( + { data: String, media_type: String, type: Symbol } + ) + end + def to_hash + end + end + end + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + ) + end + attr_accessor :video_url + + sig do + params( + video_url: + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject::OrHash + ), + type: Symbol + ).returns(T.attached_class) + end + def self.new(video_url:, type: :video_url) + end + + sig do + override.returns( + { + type: Symbol, + video_url: + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + } + ) + end + def to_hash + end + + module VideoURL + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + ) + end + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :url + + sig { returns(T.nilable(String)) } + attr_reader :detail + + sig { params(detail: String).void } + attr_writer :detail + + sig do + params(url: String, detail: String).returns( + T.attached_class + ) + end + def self.new(url:, detail: nil) + end + + sig do + override.returns({ url: String, detail: String }) + end + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::Variants + ] + ) + end + def self.variants + end + end + end + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File + ) + end + attr_reader :file + + sig do + params( + file: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File::OrHash + ).void + end + attr_writer :file + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + file: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(file:, type: :file) + end + + sig do + override.returns( + { + file: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: Symbol + } + ) + end + def to_hash + end + + class File < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :file_data + + sig { params(file_data: String).void } + attr_writer :file_data + + sig { returns(T.nilable(String)) } + attr_reader :file_id + + sig { params(file_id: String).void } + attr_writer :file_id + + sig { returns(T.nilable(String)) } + attr_reader :filename + + sig { params(filename: String).void } + attr_writer :filename + + sig { returns(T.nilable(String)) } + attr_reader :format_ + + sig { params(format_: String).void } + attr_writer :format_ + + sig do + params( + file_data: String, + file_id: String, + filename: String, + format_: String + ).returns(T.attached_class) + end + def self.new( + file_data: nil, + file_id: nil, + filename: nil, + format_: nil + ) + end + + sig do + override.returns( + { + file_data: String, + file_id: String, + filename: String, + format_: String + } + ) + end + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + union: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ) + ) + end + attr_accessor :content + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall + ) + ) + end + attr_reader :function_call + + sig do + params( + function_call: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall::OrHash + ) + ).void + end + attr_writer :function_call + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(String)) } + attr_accessor :reasoning_content + + sig do + returns( + T.nilable( + T::Array[ + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ) + ) + end + attr_accessor :thinking_blocks + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall + ] + ) + ) + end + attr_accessor :tool_calls + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl::OrHash, + content: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ), + function_call: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall::OrHash + ), + name: T.nilable(String), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::OrHash + ) + ] + ), + tool_calls: + T.nilable( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::OrHash + ] + ), + role: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + content: nil, + function_call: nil, + name: nil, + reasoning_content: nil, + thinking_blocks: nil, + tool_calls: nil, + role: :assistant + ) + end + + sig do + override.returns( + { + role: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ), + function_call: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall + ), + name: T.nilable(String), + reasoning_content: T.nilable(String), + thinking_blocks: + T.nilable( + T::Array[ + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + ] + ), + tool_calls: + T.nilable( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall + ] + ) + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::Variants + ] + ) + end + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock + ) + end + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::Variants + ] + ) + end + def self.variants + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + union: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :arguments + + sig { params(arguments: String).void } + attr_writer :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + arguments: nil, + name: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + end + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + ) + end + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :signature + + sig { params(signature: String).void } + attr_writer :signature + + sig { returns(T.nilable(String)) } + attr_reader :thinking + + sig { params(thinking: String).void } + attr_writer :thinking + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + signature: String, + thinking: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + signature: nil, + thinking: nil, + type: :thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + signature: String, + thinking: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ) + ) + end + attr_accessor :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :data + + sig { params(data: String).void } + attr_writer :data + + sig do + params( + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent::OrHash + ) + ), + data: String, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + cache_control: nil, + data: nil, + type: :redacted_thinking + ) + end + + sig do + override.returns( + { + type: Symbol, + cache_control: + T.nilable( + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + ), + data: String + } + ) + end + def to_hash + end + + module CacheControl + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Hash[Symbol, T.anything], + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + ) + end + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::Variants + ] + ) + end + def self.variants + end + end + + class ToolCall < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :id + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function + ) + end + attr_reader :function + + sig do + params( + function: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function::OrHash + ).void + end + attr_writer :function + + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + id: T.nilable(String), + function: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(id:, function:, type: :function) + end + + sig do + override.returns( + { + id: T.nilable(String), + function: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: Symbol + } + ) + end + def to_hash + end + + class Function < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_reader :arguments + + sig { params(arguments: String).void } + attr_writer :arguments + + sig { returns(T.nilable(String)) } + attr_accessor :name + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :provider_specific_fields + + sig do + params( + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + arguments: nil, + name: nil, + provider_specific_fields: nil + ) + end + + sig do + override.returns( + { + arguments: String, + name: T.nilable(String), + provider_specific_fields: + T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + end + end + end + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig { returns(String) } + attr_accessor :tool_call_id + + sig do + params( + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants, + tool_call_id: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, tool_call_id:, role: :tool) + end + + sig do + override.returns( + { + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants, + role: Symbol, + tool_call_id: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + ] + ) + end + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig do + params( + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl::OrHash, + name: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new( + content:, + cache_control: nil, + name: nil, + role: :system + ) + end + + sig do + override.returns( + { + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ) + ) + end + attr_accessor :content + + sig { returns(String) } + attr_accessor :name + + sig { returns(Symbol) } + attr_accessor :role + + sig { returns(T.nilable(String)) } + attr_accessor :tool_call_id + + sig do + params( + content: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ), + name: String, + tool_call_id: T.nilable(String), + role: Symbol + ).returns(T.attached_class) + end + def self.new(content:, name:, tool_call_id:, role: :function) + end + + sig do + override.returns( + { + content: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ), + name: String, + role: Symbol, + tool_call_id: T.nilable(String) + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + String, + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 + ] + ) + end + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :text + + sig { returns(Symbol) } + attr_accessor :type + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig do + params( + text: String, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl::OrHash, + type: Symbol + ).returns(T.attached_class) + end + def self.new(text:, cache_control: nil, type: :text) + end + + sig do + override.returns( + { + text: String, + type: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + ) + end + def to_hash + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants + ) + end + attr_accessor :content + + sig { returns(Symbol) } + attr_accessor :role + + sig do + returns( + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl + ) + ) + end + attr_reader :cache_control + + sig do + params( + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl::OrHash + ).void + end + attr_writer :cache_control + + sig { returns(T.nilable(String)) } + attr_reader :name + + sig { params(name: String).void } + attr_writer :name + + sig do + params( + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl::OrHash, + name: String, + role: Symbol + ).returns(T.attached_class) + end + def self.new( + content:, + cache_control: nil, + name: nil, + role: :developer + ) + end + + sig do + override.returns( + { + content: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants, + role: Symbol, + cache_control: + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + ) + end + def to_hash + end + + module Content + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::Content::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + + class CacheControl < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Symbol) } + attr_accessor :type + + sig { params(type: Symbol).returns(T.attached_class) } + def self.new(type: :ephemeral) + end + + sig { override.returns({ type: Symbol }) } + def to_hash + end + end + end + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::Variants + ] + ) + end + def self.variants + end + end + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::FunctionCall::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + + module Stop + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Array[String]) } + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Stop::Variants + ] + ) + end + def self.variants + end + + StringArray = + T.let( + Hanzoai::Internal::Type::ArrayOf[String], + Hanzoai::Internal::Type::Converter + ) + end + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::OpenAI::Deployments::ChatCompleteParams::ToolChoice::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[ + Hanzoai::Internal::Type::Unknown + ], + Hanzoai::Internal::Type::Converter + ) + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/openai/deployments/chat_complete_response.rbi b/rbi/hanzoai/models/openai/deployments/chat_complete_response.rbi new file mode 100644 index 00000000..1bcbe7cf --- /dev/null +++ b/rbi/hanzoai/models/openai/deployments/chat_complete_response.rbi @@ -0,0 +1,12 @@ +# typed: strong + +module Hanzoai + module Models + module OpenAI + module Deployments + ChatCompleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end + end +end diff --git a/rbi/hanzoai/models/openai_create_params.rbi b/rbi/hanzoai/models/openai_create_params.rbi new file mode 100644 index 00000000..aa7f64a1 --- /dev/null +++ b/rbi/hanzoai/models/openai_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class OpenAICreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OpenAICreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/openai_create_response.rbi b/rbi/hanzoai/models/openai_create_response.rbi new file mode 100644 index 00000000..c6033cfb --- /dev/null +++ b/rbi/hanzoai/models/openai_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + OpenAICreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/openai_delete_params.rbi b/rbi/hanzoai/models/openai_delete_params.rbi new file mode 100644 index 00000000..7640987b --- /dev/null +++ b/rbi/hanzoai/models/openai_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class OpenAIDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OpenAIDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/openai_delete_response.rbi b/rbi/hanzoai/models/openai_delete_response.rbi new file mode 100644 index 00000000..f1c22a57 --- /dev/null +++ b/rbi/hanzoai/models/openai_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + OpenAIDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/openai_patch_params.rbi b/rbi/hanzoai/models/openai_patch_params.rbi new file mode 100644 index 00000000..b514b805 --- /dev/null +++ b/rbi/hanzoai/models/openai_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class OpenAIPatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OpenAIPatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/openai_patch_response.rbi b/rbi/hanzoai/models/openai_patch_response.rbi new file mode 100644 index 00000000..ef1a00f7 --- /dev/null +++ b/rbi/hanzoai/models/openai_patch_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + OpenAIPatchResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/openai_retrieve_params.rbi b/rbi/hanzoai/models/openai_retrieve_params.rbi new file mode 100644 index 00000000..51aeda91 --- /dev/null +++ b/rbi/hanzoai/models/openai_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class OpenAIRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OpenAIRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/openai_retrieve_response.rbi b/rbi/hanzoai/models/openai_retrieve_response.rbi new file mode 100644 index 00000000..40deaab0 --- /dev/null +++ b/rbi/hanzoai/models/openai_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + OpenAIRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/openai_update_params.rbi b/rbi/hanzoai/models/openai_update_params.rbi new file mode 100644 index 00000000..39effa0e --- /dev/null +++ b/rbi/hanzoai/models/openai_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class OpenAIUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OpenAIUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/openai_update_response.rbi b/rbi/hanzoai/models/openai_update_response.rbi new file mode 100644 index 00000000..2ee5d020 --- /dev/null +++ b/rbi/hanzoai/models/openai_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + OpenAIUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/org_member.rbi b/rbi/hanzoai/models/org_member.rbi new file mode 100644 index 00000000..282080d2 --- /dev/null +++ b/rbi/hanzoai/models/org_member.rbi @@ -0,0 +1,70 @@ +# typed: strong + +module Hanzoai + module Models + class OrgMember < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias { T.any(Hanzoai::OrgMember, Hanzoai::Internal::AnyHash) } + + sig { returns(Hanzoai::OrgMember::Role::OrSymbol) } + attr_accessor :role + + # The email address of the user to add. Either user_id or user_email must be + # provided + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + # The unique ID of the user to add. Either user_id or user_email must be provided + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + role: Hanzoai::OrgMember::Role::OrSymbol, + user_email: T.nilable(String), + user_id: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + role:, + # The email address of the user to add. Either user_id or user_email must be + # provided + user_email: nil, + # The unique ID of the user to add. Either user_id or user_email must be provided + user_id: nil + ) + end + + sig do + override.returns( + { + role: Hanzoai::OrgMember::Role::OrSymbol, + user_email: T.nilable(String), + user_id: T.nilable(String) + } + ) + end + def to_hash + end + + module Role + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::OrgMember::Role) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ORG_ADMIN = T.let(:org_admin, Hanzoai::OrgMember::Role::TaggedSymbol) + INTERNAL_USER = + T.let(:internal_user, Hanzoai::OrgMember::Role::TaggedSymbol) + INTERNAL_USER_VIEWER = + T.let(:internal_user_viewer, Hanzoai::OrgMember::Role::TaggedSymbol) + + sig do + override.returns(T::Array[Hanzoai::OrgMember::Role::TaggedSymbol]) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/organization/info_deprecated_params.rbi b/rbi/hanzoai/models/organization/info_deprecated_params.rbi new file mode 100644 index 00000000..b08cb8bf --- /dev/null +++ b/rbi/hanzoai/models/organization/info_deprecated_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + module Organization + class InfoDeprecatedParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Organization::InfoDeprecatedParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T::Array[String]) } + attr_accessor :organizations + + sig do + params( + organizations: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(organizations:, request_options: {}) + end + + sig do + override.returns( + { + organizations: T::Array[String], + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/organization/info_deprecated_response.rbi b/rbi/hanzoai/models/organization/info_deprecated_response.rbi new file mode 100644 index 00000000..d6c13d7d --- /dev/null +++ b/rbi/hanzoai/models/organization/info_deprecated_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Organization + InfoDeprecatedResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/organization/info_retrieve_params.rbi b/rbi/hanzoai/models/organization/info_retrieve_params.rbi new file mode 100644 index 00000000..445fb451 --- /dev/null +++ b/rbi/hanzoai/models/organization/info_retrieve_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + module Organization + class InfoRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Organization::InfoRetrieveParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :organization_id + + sig do + params( + organization_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(organization_id:, request_options: {}) + end + + sig do + override.returns( + { + organization_id: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/organization_add_member_params.rbi b/rbi/hanzoai/models/organization_add_member_params.rbi new file mode 100644 index 00000000..75894e0a --- /dev/null +++ b/rbi/hanzoai/models/organization_add_member_params.rbi @@ -0,0 +1,83 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationAddMemberParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationAddMemberParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.any(T::Array[Hanzoai::OrgMember], Hanzoai::OrgMember)) } + attr_accessor :member + + sig { returns(String) } + attr_accessor :organization_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget_in_organization + + sig do + params( + member: + T.any( + T::Array[Hanzoai::OrgMember::OrHash], + Hanzoai::OrgMember::OrHash + ), + organization_id: String, + max_budget_in_organization: T.nilable(Float), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + member:, + organization_id:, + max_budget_in_organization: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + member: T.any(T::Array[Hanzoai::OrgMember], Hanzoai::OrgMember), + organization_id: String, + max_budget_in_organization: T.nilable(Float), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module Member + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(T::Array[Hanzoai::OrgMember], Hanzoai::OrgMember) + end + + sig do + override.returns( + T::Array[Hanzoai::OrganizationAddMemberParams::Member::Variants] + ) + end + def self.variants + end + + OrgMemberArray = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrgMember], + Hanzoai::Internal::Type::Converter + ) + end + end + end +end diff --git a/rbi/hanzoai/models/organization_add_member_response.rbi b/rbi/hanzoai/models/organization_add_member_response.rbi new file mode 100644 index 00000000..5d927251 --- /dev/null +++ b/rbi/hanzoai/models/organization_add_member_response.rbi @@ -0,0 +1,318 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationAddMemberResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::OrganizationAddMemberResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :organization_id + + sig { returns(T::Array[Hanzoai::OrganizationMembershipTable]) } + attr_accessor :updated_organization_memberships + + sig do + returns( + T::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser] + ) + end + attr_accessor :updated_users + + sig do + params( + organization_id: String, + updated_organization_memberships: + T::Array[Hanzoai::OrganizationMembershipTable::OrHash], + updated_users: + T::Array[ + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrHash + ] + ).returns(T.attached_class) + end + def self.new( + organization_id:, + updated_organization_memberships:, + updated_users: + ) + end + + sig do + override.returns( + { + organization_id: String, + updated_organization_memberships: + T::Array[Hanzoai::OrganizationMembershipTable], + updated_users: + T::Array[ + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser + ] + } + ) + end + def to_hash + end + + class UpdatedUser < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_spend + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig do + returns(T.nilable(T::Array[Hanzoai::OrganizationMembershipTable])) + end + attr_accessor :organization_memberships + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(String)) } + attr_accessor :sso_user_id + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :teams + + sig { params(teams: T::Array[String]).void } + attr_writer :teams + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :user_alias + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_role + + sig do + params( + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission::OrHash + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable::OrHash]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + user_id:, + budget_duration: nil, + budget_reset_at: nil, + created_at: nil, + max_budget: nil, + metadata: nil, + model_max_budget: nil, + model_spend: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + organization_memberships: nil, + rpm_limit: nil, + spend: nil, + sso_user_id: nil, + teams: nil, + tpm_limit: nil, + updated_at: nil, + user_alias: nil, + user_email: nil, + user_role: nil + ) + end + + sig do + override.returns( + { + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/organization_create_params.rbi b/rbi/hanzoai/models/organization_create_params.rbi new file mode 100644 index 00000000..9118b96a --- /dev/null +++ b/rbi/hanzoai/models/organization_create_params.rbi @@ -0,0 +1,208 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OrganizationCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :organization_alias + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + sig do + returns(T.nilable(Hanzoai::OrganizationCreateParams::ObjectPermission)) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::OrganizationCreateParams::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :soft_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + params( + organization_alias: String, + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::OrganizationCreateParams::ObjectPermission::OrHash + ), + organization_id: T.nilable(String), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + organization_alias:, + budget_duration: nil, + budget_id: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organization_id: nil, + rpm_limit: nil, + soft_budget: nil, + tpm_limit: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + organization_alias: String, + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T::Array[T.anything], + object_permission: + T.nilable(Hanzoai::OrganizationCreateParams::ObjectPermission), + organization_id: T.nilable(String), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationCreateParams::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/organization_create_response.rbi b/rbi/hanzoai/models/organization_create_response.rbi new file mode 100644 index 00000000..7dbc0803 --- /dev/null +++ b/rbi/hanzoai/models/organization_create_response.rbi @@ -0,0 +1,491 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationCreateResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::OrganizationCreateResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :budget_id + + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(String) } + attr_accessor :created_by + + sig { returns(T::Array[String]) } + attr_accessor :models + + sig { returns(String) } + attr_accessor :organization_id + + sig { returns(Time) } + attr_accessor :updated_at + + sig { returns(String) } + attr_accessor :updated_by + + # Represents user-controllable params for a LiteLLM_BudgetTable record + sig { returns(T.nilable(Hanzoai::BudgetTable)) } + attr_reader :litellm_budget_table + + sig do + params( + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash) + ).void + end + attr_writer :litellm_budget_table + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :organization_alias + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig do + returns( + T.nilable(T::Array[Hanzoai::Models::OrganizationCreateResponse::User]) + ) + end + attr_accessor :users + + sig do + params( + budget_id: String, + created_at: Time, + created_by: String, + models: T::Array[String], + organization_id: String, + updated_at: Time, + updated_by: String, + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + object_permission: + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + organization_alias: T.nilable(String), + spend: Float, + users: + T.nilable( + T::Array[ + Hanzoai::Models::OrganizationCreateResponse::User::OrHash + ] + ) + ).returns(T.attached_class) + end + def self.new( + budget_id:, + created_at:, + created_by:, + models:, + organization_id:, + updated_at:, + updated_by:, + # Represents user-controllable params for a LiteLLM_BudgetTable record + litellm_budget_table: nil, + metadata: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + organization_alias: nil, + spend: nil, + users: nil + ) + end + + sig do + override.returns( + { + budget_id: String, + created_at: Time, + created_by: String, + models: T::Array[String], + organization_id: String, + updated_at: Time, + updated_by: String, + litellm_budget_table: T.nilable(Hanzoai::BudgetTable), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + object_permission: + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::ObjectPermission + ), + object_permission_id: T.nilable(String), + organization_alias: T.nilable(String), + spend: Float, + users: + T.nilable( + T::Array[Hanzoai::Models::OrganizationCreateResponse::User] + ) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::OrganizationCreateResponse::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + class User < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::OrganizationCreateResponse::User, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_spend + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig do + returns(T.nilable(T::Array[Hanzoai::OrganizationMembershipTable])) + end + attr_accessor :organization_memberships + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(String)) } + attr_accessor :sso_user_id + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :teams + + sig { params(teams: T::Array[String]).void } + attr_writer :teams + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :user_alias + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_role + + sig do + params( + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission::OrHash + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable::OrHash]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + user_id:, + budget_duration: nil, + budget_reset_at: nil, + created_at: nil, + max_budget: nil, + metadata: nil, + model_max_budget: nil, + model_spend: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + organization_memberships: nil, + rpm_limit: nil, + spend: nil, + sso_user_id: nil, + teams: nil, + tpm_limit: nil, + updated_at: nil, + user_alias: nil, + user_email: nil, + user_role: nil + ) + end + + sig do + override.returns( + { + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/organization_delete_member_params.rbi b/rbi/hanzoai/models/organization_delete_member_params.rbi new file mode 100644 index 00000000..2bdd9a45 --- /dev/null +++ b/rbi/hanzoai/models/organization_delete_member_params.rbi @@ -0,0 +1,56 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationDeleteMemberParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationDeleteMemberParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :organization_id + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + organization_id: String, + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + organization_id:, + user_email: nil, + user_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + organization_id: String, + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/organization_delete_member_response.rbi b/rbi/hanzoai/models/organization_delete_member_response.rbi new file mode 100644 index 00000000..df7e26f5 --- /dev/null +++ b/rbi/hanzoai/models/organization_delete_member_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + OrganizationDeleteMemberResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/organization_delete_params.rbi b/rbi/hanzoai/models/organization_delete_params.rbi new file mode 100644 index 00000000..1dd02528 --- /dev/null +++ b/rbi/hanzoai/models/organization_delete_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OrganizationDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Array[String]) } + attr_accessor :organization_ids + + sig do + params( + organization_ids: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(organization_ids:, request_options: {}) + end + + sig do + override.returns( + { + organization_ids: T::Array[String], + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/organization_delete_response.rbi b/rbi/hanzoai/models/organization_delete_response.rbi new file mode 100644 index 00000000..61a55170 --- /dev/null +++ b/rbi/hanzoai/models/organization_delete_response.rbi @@ -0,0 +1,11 @@ +# typed: strong + +module Hanzoai + module Models + OrganizationDeleteResponse = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers], + Hanzoai::Internal::Type::Converter + ) + end +end diff --git a/rbi/hanzoai/models/organization_list_params.rbi b/rbi/hanzoai/models/organization_list_params.rbi new file mode 100644 index 00000000..2d8eeeb2 --- /dev/null +++ b/rbi/hanzoai/models/organization_list_params.rbi @@ -0,0 +1,53 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OrganizationListParams, Hanzoai::Internal::AnyHash) + end + + # Filter organizations by partial organization_alias match. Supports + # case-insensitive search. + sig { returns(T.nilable(String)) } + attr_accessor :org_alias + + # Filter organizations by exact organization_id match + sig { returns(T.nilable(String)) } + attr_accessor :org_id + + sig do + params( + org_alias: T.nilable(String), + org_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Filter organizations by partial organization_alias match. Supports + # case-insensitive search. + org_alias: nil, + # Filter organizations by exact organization_id match + org_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + org_alias: T.nilable(String), + org_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/organization_list_response.rbi b/rbi/hanzoai/models/organization_list_response.rbi new file mode 100644 index 00000000..ee3a9a0a --- /dev/null +++ b/rbi/hanzoai/models/organization_list_response.rbi @@ -0,0 +1,11 @@ +# typed: strong + +module Hanzoai + module Models + OrganizationListResponse = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers], + Hanzoai::Internal::Type::Converter + ) + end +end diff --git a/rbi/hanzoai/models/organization_membership_table.rbi b/rbi/hanzoai/models/organization_membership_table.rbi new file mode 100644 index 00000000..0567a993 --- /dev/null +++ b/rbi/hanzoai/models/organization_membership_table.rbi @@ -0,0 +1,103 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationMembershipTable < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationMembershipTable, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(String) } + attr_accessor :organization_id + + sig { returns(Time) } + attr_accessor :updated_at + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + # Represents user-controllable params for a LiteLLM_BudgetTable record + sig { returns(T.nilable(Hanzoai::BudgetTable)) } + attr_reader :litellm_budget_table + + sig do + params( + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash) + ).void + end + attr_writer :litellm_budget_table + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(T.anything)) } + attr_reader :user + + sig { params(user: T.anything).void } + attr_writer :user + + sig { returns(T.nilable(String)) } + attr_accessor :user_role + + # This is the table that track what organizations a user belongs to and users + # spend within the organization + sig do + params( + created_at: Time, + organization_id: String, + updated_at: Time, + user_id: String, + budget_id: T.nilable(String), + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash), + spend: Float, + user: T.anything, + user_role: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + created_at:, + organization_id:, + updated_at:, + user_id:, + budget_id: nil, + # Represents user-controllable params for a LiteLLM_BudgetTable record + litellm_budget_table: nil, + spend: nil, + user: nil, + user_role: nil + ) + end + + sig do + override.returns( + { + created_at: Time, + organization_id: String, + updated_at: Time, + user_id: String, + budget_id: T.nilable(String), + litellm_budget_table: T.nilable(Hanzoai::BudgetTable), + spend: Float, + user: T.anything, + user_role: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/organization_table_with_members.rbi b/rbi/hanzoai/models/organization_table_with_members.rbi new file mode 100644 index 00000000..a9ea30a5 --- /dev/null +++ b/rbi/hanzoai/models/organization_table_with_members.rbi @@ -0,0 +1,803 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationTableWithMembers < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationTableWithMembers, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :budget_id + + sig { returns(Time) } + attr_accessor :created_at + + sig { returns(String) } + attr_accessor :created_by + + sig { returns(T::Array[String]) } + attr_accessor :models + + sig { returns(Time) } + attr_accessor :updated_at + + sig { returns(String) } + attr_accessor :updated_by + + # Represents user-controllable params for a LiteLLM_BudgetTable record + sig { returns(T.nilable(Hanzoai::BudgetTable)) } + attr_reader :litellm_budget_table + + sig do + params( + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash) + ).void + end + attr_writer :litellm_budget_table + + sig { returns(T.nilable(T::Array[Hanzoai::OrganizationMembershipTable])) } + attr_reader :members + + sig do + params( + members: T::Array[Hanzoai::OrganizationMembershipTable::OrHash] + ).void + end + attr_writer :members + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable(Hanzoai::OrganizationTableWithMembers::ObjectPermission) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :organization_alias + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig do + returns( + T.nilable(T::Array[Hanzoai::OrganizationTableWithMembers::Team]) + ) + end + attr_reader :teams + + sig do + params( + teams: T::Array[Hanzoai::OrganizationTableWithMembers::Team::OrHash] + ).void + end + attr_writer :teams + + sig do + returns( + T.nilable(T::Array[Hanzoai::OrganizationTableWithMembers::User]) + ) + end + attr_accessor :users + + # Returned by the /organization/info endpoint and /organization/list endpoint + sig do + params( + budget_id: String, + created_at: Time, + created_by: String, + models: T::Array[String], + updated_at: Time, + updated_by: String, + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash), + members: T::Array[Hanzoai::OrganizationMembershipTable::OrHash], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + organization_alias: T.nilable(String), + organization_id: T.nilable(String), + spend: Float, + teams: T::Array[Hanzoai::OrganizationTableWithMembers::Team::OrHash], + users: + T.nilable( + T::Array[Hanzoai::OrganizationTableWithMembers::User::OrHash] + ) + ).returns(T.attached_class) + end + def self.new( + budget_id:, + created_at:, + created_by:, + models:, + updated_at:, + updated_by:, + # Represents user-controllable params for a LiteLLM_BudgetTable record + litellm_budget_table: nil, + members: nil, + metadata: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + organization_alias: nil, + organization_id: nil, + spend: nil, + teams: nil, + users: nil + ) + end + + sig do + override.returns( + { + budget_id: String, + created_at: Time, + created_by: String, + models: T::Array[String], + updated_at: Time, + updated_by: String, + litellm_budget_table: T.nilable(Hanzoai::BudgetTable), + members: T::Array[Hanzoai::OrganizationMembershipTable], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::ObjectPermission + ), + object_permission_id: T.nilable(String), + organization_alias: T.nilable(String), + organization_id: T.nilable(String), + spend: Float, + teams: T::Array[Hanzoai::OrganizationTableWithMembers::Team], + users: + T.nilable(T::Array[Hanzoai::OrganizationTableWithMembers::User]) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationTableWithMembers::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + class Team < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationTableWithMembers::Team, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :admins + + sig { params(admins: T::Array[T.anything]).void } + attr_writer :admins + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :blocked + + sig { params(blocked: T::Boolean).void } + attr_writer :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(T.anything)) } + attr_reader :litellm_model_table + + sig { params(litellm_model_table: T.anything).void } + attr_writer :litellm_model_table + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :members + + sig { params(members: T::Array[T.anything]).void } + attr_writer :members + + sig { returns(T.nilable(T::Array[Hanzoai::Member])) } + attr_reader :members_with_roles + + sig do + params(members_with_roles: T::Array[Hanzoai::Member::OrHash]).void + end + attr_writer :members_with_roles + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(Integer)) } + attr_accessor :model_id + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(String)) } + attr_accessor :team_alias + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :team_member_permissions + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig do + params( + team_id: String, + admins: T::Array[T.anything], + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + litellm_model_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member::OrHash], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(Integer), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + organization_id: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_alias: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time) + ).returns(T.attached_class) + end + def self.new( + team_id:, + admins: nil, + blocked: nil, + budget_duration: nil, + budget_reset_at: nil, + created_at: nil, + litellm_model_table: nil, + max_budget: nil, + max_parallel_requests: nil, + members: nil, + members_with_roles: nil, + metadata: nil, + model_id: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + organization_id: nil, + router_settings: nil, + rpm_limit: nil, + spend: nil, + team_alias: nil, + team_member_permissions: nil, + tpm_limit: nil, + updated_at: nil + ) + end + + sig do + override.returns( + { + team_id: String, + admins: T::Array[T.anything], + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + litellm_model_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(Integer), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission + ), + object_permission_id: T.nilable(String), + organization_id: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_alias: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + + class User < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationTableWithMembers::User, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_spend + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::OrganizationTableWithMembers::User::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::User::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig do + returns(T.nilable(T::Array[Hanzoai::OrganizationMembershipTable])) + end + attr_accessor :organization_memberships + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(String)) } + attr_accessor :sso_user_id + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :teams + + sig { params(teams: T::Array[String]).void } + attr_writer :teams + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :user_alias + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_role + + sig do + params( + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::User::ObjectPermission::OrHash + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable::OrHash]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + user_id:, + budget_duration: nil, + budget_reset_at: nil, + created_at: nil, + max_budget: nil, + metadata: nil, + model_max_budget: nil, + model_spend: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + organization_memberships: nil, + rpm_limit: nil, + spend: nil, + sso_user_id: nil, + teams: nil, + tpm_limit: nil, + updated_at: nil, + user_alias: nil, + user_email: nil, + user_role: nil + ) + end + + sig do + override.returns( + { + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::OrganizationTableWithMembers::User::ObjectPermission + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationTableWithMembers::User::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/organization_update_member_params.rbi b/rbi/hanzoai/models/organization_update_member_params.rbi new file mode 100644 index 00000000..d455ff28 --- /dev/null +++ b/rbi/hanzoai/models/organization_update_member_params.rbi @@ -0,0 +1,90 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationUpdateMemberParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::OrganizationUpdateMemberParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :organization_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget_in_organization + + # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization + # + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend + # + # Team Roles: TEAM: used for JWT auth + # + # Customer Roles: CUSTOMER: External users -> these are customers + sig { returns(T.nilable(Hanzoai::UserRoles::OrSymbol)) } + attr_accessor :role + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + organization_id: String, + max_budget_in_organization: T.nilable(Float), + role: T.nilable(Hanzoai::UserRoles::OrSymbol), + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + organization_id:, + max_budget_in_organization: nil, + # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization + # + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend + # + # Team Roles: TEAM: used for JWT auth + # + # Customer Roles: CUSTOMER: External users -> these are customers + role: nil, + user_email: nil, + user_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + organization_id: String, + max_budget_in_organization: T.nilable(Float), + role: T.nilable(Hanzoai::UserRoles::OrSymbol), + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/organization_update_params.rbi b/rbi/hanzoai/models/organization_update_params.rbi new file mode 100644 index 00000000..98a381c8 --- /dev/null +++ b/rbi/hanzoai/models/organization_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class OrganizationUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::OrganizationUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/provider_list_budgets_params.rbi b/rbi/hanzoai/models/provider_list_budgets_params.rbi new file mode 100644 index 00000000..60f1705b --- /dev/null +++ b/rbi/hanzoai/models/provider_list_budgets_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ProviderListBudgetsParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ProviderListBudgetsParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/provider_list_budgets_response.rbi b/rbi/hanzoai/models/provider_list_budgets_response.rbi new file mode 100644 index 00000000..fd70af2b --- /dev/null +++ b/rbi/hanzoai/models/provider_list_budgets_response.rbi @@ -0,0 +1,118 @@ +# typed: strong + +module Hanzoai + module Models + class ProviderListBudgetsResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::ProviderListBudgetsResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig do + returns( + T.nilable( + T::Hash[ + Symbol, + Hanzoai::Models::ProviderListBudgetsResponse::Provider + ] + ) + ) + end + attr_reader :providers + + sig do + params( + providers: + T::Hash[ + Symbol, + Hanzoai::Models::ProviderListBudgetsResponse::Provider::OrHash + ] + ).void + end + attr_writer :providers + + # Complete provider budget configuration and status. Maps provider names to their + # budget configs. + sig do + params( + providers: + T::Hash[ + Symbol, + Hanzoai::Models::ProviderListBudgetsResponse::Provider::OrHash + ] + ).returns(T.attached_class) + end + def self.new(providers: nil) + end + + sig do + override.returns( + { + providers: + T::Hash[ + Symbol, + Hanzoai::Models::ProviderListBudgetsResponse::Provider + ] + } + ) + end + def to_hash + end + + class Provider < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::ProviderListBudgetsResponse::Provider, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Float)) } + attr_accessor :budget_limit + + sig { returns(T.nilable(String)) } + attr_accessor :time_period + + sig { returns(T.nilable(String)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + # Configuration for a single provider's budget settings + sig do + params( + budget_limit: T.nilable(Float), + time_period: T.nilable(String), + budget_reset_at: T.nilable(String), + spend: T.nilable(Float) + ).returns(T.attached_class) + end + def self.new( + budget_limit:, + time_period:, + budget_reset_at: nil, + spend: nil + ) + end + + sig do + override.returns( + { + budget_limit: T.nilable(Float), + time_period: T.nilable(String), + budget_reset_at: T.nilable(String), + spend: T.nilable(Float) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/rerank_create_params.rbi b/rbi/hanzoai/models/rerank_create_params.rbi new file mode 100644 index 00000000..543001a5 --- /dev/null +++ b/rbi/hanzoai/models/rerank_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class RerankCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::RerankCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/rerank_create_response.rbi b/rbi/hanzoai/models/rerank_create_response.rbi new file mode 100644 index 00000000..125938b8 --- /dev/null +++ b/rbi/hanzoai/models/rerank_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + RerankCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/rerank_create_v1_params.rbi b/rbi/hanzoai/models/rerank_create_v1_params.rbi new file mode 100644 index 00000000..4c4e2540 --- /dev/null +++ b/rbi/hanzoai/models/rerank_create_v1_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class RerankCreateV1Params < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::RerankCreateV1Params, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/rerank_create_v1_response.rbi b/rbi/hanzoai/models/rerank_create_v1_response.rbi new file mode 100644 index 00000000..a183531c --- /dev/null +++ b/rbi/hanzoai/models/rerank_create_v1_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + RerankCreateV1Response = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/rerank_create_v2_params.rbi b/rbi/hanzoai/models/rerank_create_v2_params.rbi new file mode 100644 index 00000000..50af3d2f --- /dev/null +++ b/rbi/hanzoai/models/rerank_create_v2_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class RerankCreateV2Params < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::RerankCreateV2Params, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/rerank_create_v2_response.rbi b/rbi/hanzoai/models/rerank_create_v2_response.rbi new file mode 100644 index 00000000..bafd8dd7 --- /dev/null +++ b/rbi/hanzoai/models/rerank_create_v2_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + RerankCreateV2Response = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/response_create_params.rbi b/rbi/hanzoai/models/response_create_params.rbi new file mode 100644 index 00000000..591a458f --- /dev/null +++ b/rbi/hanzoai/models/response_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ResponseCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ResponseCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/response_create_response.rbi b/rbi/hanzoai/models/response_create_response.rbi new file mode 100644 index 00000000..7df60b0d --- /dev/null +++ b/rbi/hanzoai/models/response_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + ResponseCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/response_delete_params.rbi b/rbi/hanzoai/models/response_delete_params.rbi new file mode 100644 index 00000000..036c6300 --- /dev/null +++ b/rbi/hanzoai/models/response_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ResponseDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ResponseDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/response_delete_response.rbi b/rbi/hanzoai/models/response_delete_response.rbi new file mode 100644 index 00000000..bd2ba788 --- /dev/null +++ b/rbi/hanzoai/models/response_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + ResponseDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/response_retrieve_params.rbi b/rbi/hanzoai/models/response_retrieve_params.rbi new file mode 100644 index 00000000..7e37e6d3 --- /dev/null +++ b/rbi/hanzoai/models/response_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ResponseRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ResponseRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/response_retrieve_response.rbi b/rbi/hanzoai/models/response_retrieve_response.rbi new file mode 100644 index 00000000..1d1251e1 --- /dev/null +++ b/rbi/hanzoai/models/response_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + ResponseRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/responses/input_item_list_params.rbi b/rbi/hanzoai/models/responses/input_item_list_params.rbi new file mode 100644 index 00000000..5173a646 --- /dev/null +++ b/rbi/hanzoai/models/responses/input_item_list_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Responses + class InputItemListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Responses::InputItemListParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/responses/input_item_list_response.rbi b/rbi/hanzoai/models/responses/input_item_list_response.rbi new file mode 100644 index 00000000..15916c19 --- /dev/null +++ b/rbi/hanzoai/models/responses/input_item_list_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Responses + InputItemListResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/route_list_params.rbi b/rbi/hanzoai/models/route_list_params.rbi new file mode 100644 index 00000000..04b1e1d4 --- /dev/null +++ b/rbi/hanzoai/models/route_list_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class RouteListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::RouteListParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/route_list_response.rbi b/rbi/hanzoai/models/route_list_response.rbi new file mode 100644 index 00000000..e398e214 --- /dev/null +++ b/rbi/hanzoai/models/route_list_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + RouteListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/setting_retrieve_params.rbi b/rbi/hanzoai/models/setting_retrieve_params.rbi new file mode 100644 index 00000000..18955e33 --- /dev/null +++ b/rbi/hanzoai/models/setting_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class SettingRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::SettingRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/setting_retrieve_response.rbi b/rbi/hanzoai/models/setting_retrieve_response.rbi new file mode 100644 index 00000000..5db9c937 --- /dev/null +++ b/rbi/hanzoai/models/setting_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + SettingRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/spend_calculate_spend_params.rbi b/rbi/hanzoai/models/spend_calculate_spend_params.rbi new file mode 100644 index 00000000..9a8755f3 --- /dev/null +++ b/rbi/hanzoai/models/spend_calculate_spend_params.rbi @@ -0,0 +1,53 @@ +# typed: strong + +module Hanzoai + module Models + class SpendCalculateSpendParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::SpendCalculateSpendParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :completion_response + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :messages + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig do + params( + completion_response: T.nilable(T::Hash[Symbol, T.anything]), + messages: T.nilable(T::Array[T.anything]), + model: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + completion_response: nil, + messages: nil, + model: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + completion_response: T.nilable(T::Hash[Symbol, T.anything]), + messages: T.nilable(T::Array[T.anything]), + model: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/spend_calculate_spend_response.rbi b/rbi/hanzoai/models/spend_calculate_spend_response.rbi new file mode 100644 index 00000000..dc49b920 --- /dev/null +++ b/rbi/hanzoai/models/spend_calculate_spend_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + SpendCalculateSpendResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/spend_list_logs_params.rbi b/rbi/hanzoai/models/spend_list_logs_params.rbi new file mode 100644 index 00000000..eaecf109 --- /dev/null +++ b/rbi/hanzoai/models/spend_list_logs_params.rbi @@ -0,0 +1,90 @@ +# typed: strong + +module Hanzoai + module Models + class SpendListLogsParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::SpendListLogsParams, Hanzoai::Internal::AnyHash) + end + + # Get spend logs based on api key + sig { returns(T.nilable(String)) } + attr_accessor :api_key + + # Time till which to view key spend + sig { returns(T.nilable(String)) } + attr_accessor :end_date + + # request_id to get spend logs for specific request_id. If none passed then pass + # spend logs for all requests + sig { returns(T.nilable(String)) } + attr_accessor :request_id + + # Time from which to start viewing key spend + sig { returns(T.nilable(String)) } + attr_accessor :start_date + + # When start_date and end_date are provided, summarize=true returns aggregated + # data by date (legacy behavior), summarize=false returns filtered individual logs + sig { returns(T.nilable(T::Boolean)) } + attr_reader :summarize + + sig { params(summarize: T::Boolean).void } + attr_writer :summarize + + # Get spend logs based on user_id + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + api_key: T.nilable(String), + end_date: T.nilable(String), + request_id: T.nilable(String), + start_date: T.nilable(String), + summarize: T::Boolean, + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Get spend logs based on api key + api_key: nil, + # Time till which to view key spend + end_date: nil, + # request_id to get spend logs for specific request_id. If none passed then pass + # spend logs for all requests + request_id: nil, + # Time from which to start viewing key spend + start_date: nil, + # When start_date and end_date are provided, summarize=true returns aggregated + # data by date (legacy behavior), summarize=false returns filtered individual logs + summarize: nil, + # Get spend logs based on user_id + user_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + api_key: T.nilable(String), + end_date: T.nilable(String), + request_id: T.nilable(String), + start_date: T.nilable(String), + summarize: T::Boolean, + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/spend_list_logs_response.rbi b/rbi/hanzoai/models/spend_list_logs_response.rbi new file mode 100644 index 00000000..091b2876 --- /dev/null +++ b/rbi/hanzoai/models/spend_list_logs_response.rbi @@ -0,0 +1,302 @@ +# typed: strong + +module Hanzoai + module Models + class SpendListLogsResponseItem < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::SpendListLogsResponseItem, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :api_key + + sig { returns(String) } + attr_accessor :call_type + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::EndTime::Variants + ) + ) + end + attr_accessor :end_time + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::Messages::Variants + ) + ) + end + attr_accessor :messages + + sig { returns(String) } + attr_accessor :request_id + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::Response::Variants + ) + ) + end + attr_accessor :response + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::StartTime::Variants + ) + ) + end + attr_accessor :start_time + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :cache_hit + + sig { returns(T.nilable(String)) } + attr_accessor :cache_key + + sig { returns(T.nilable(Integer)) } + attr_accessor :completion_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :metadata + + sig { params(metadata: T.anything).void } + attr_writer :metadata + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig { returns(T.nilable(Integer)) } + attr_accessor :prompt_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :request_tags + + sig { params(request_tags: T.anything).void } + attr_writer :request_tags + + sig { returns(T.nilable(String)) } + attr_accessor :requester_ip_address + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(Integer)) } + attr_accessor :total_tokens + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + api_key:, + call_type:, + end_time:, + messages:, + request_id:, + response:, + start_time:, + api_base: nil, + cache_hit: nil, + cache_key: nil, + completion_tokens: nil, + metadata: nil, + model: nil, + prompt_tokens: nil, + request_tags: nil, + requester_ip_address: nil, + spend: nil, + total_tokens: nil, + user: nil + ) + end + + sig do + override.returns( + { + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::SpendListLogsResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + } + ) + end + def to_hash + end + + module EndTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListLogsResponseItem::EndTime::Variants + ] + ) + end + def self.variants + end + end + + module Messages + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListLogsResponseItem::Messages::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module Response + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListLogsResponseItem::Response::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module StartTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListLogsResponseItem::StartTime::Variants + ] + ) + end + def self.variants + end + end + end + + SpendListLogsResponse = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Models::SpendListLogsResponseItem + ], + Hanzoai::Internal::Type::Converter + ) + end +end diff --git a/rbi/hanzoai/models/spend_list_tags_params.rbi b/rbi/hanzoai/models/spend_list_tags_params.rbi new file mode 100644 index 00000000..baab051c --- /dev/null +++ b/rbi/hanzoai/models/spend_list_tags_params.rbi @@ -0,0 +1,51 @@ +# typed: strong + +module Hanzoai + module Models + class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::SpendListTagsParams, Hanzoai::Internal::AnyHash) + end + + # Time till which to view key spend + sig { returns(T.nilable(String)) } + attr_accessor :end_date + + # Time from which to start viewing key spend + sig { returns(T.nilable(String)) } + attr_accessor :start_date + + sig do + params( + end_date: T.nilable(String), + start_date: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Time till which to view key spend + end_date: nil, + # Time from which to start viewing key spend + start_date: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + end_date: T.nilable(String), + start_date: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/spend_list_tags_response.rbi b/rbi/hanzoai/models/spend_list_tags_response.rbi new file mode 100644 index 00000000..0767f1fd --- /dev/null +++ b/rbi/hanzoai/models/spend_list_tags_response.rbi @@ -0,0 +1,302 @@ +# typed: strong + +module Hanzoai + module Models + class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::SpendListTagsResponseItem, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :api_key + + sig { returns(String) } + attr_accessor :call_type + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::EndTime::Variants + ) + ) + end + attr_accessor :end_time + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::Messages::Variants + ) + ) + end + attr_accessor :messages + + sig { returns(String) } + attr_accessor :request_id + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::Response::Variants + ) + ) + end + attr_accessor :response + + sig do + returns( + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::StartTime::Variants + ) + ) + end + attr_accessor :start_time + + sig { returns(T.nilable(String)) } + attr_accessor :api_base + + sig { returns(T.nilable(String)) } + attr_accessor :cache_hit + + sig { returns(T.nilable(String)) } + attr_accessor :cache_key + + sig { returns(T.nilable(Integer)) } + attr_accessor :completion_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :metadata + + sig { params(metadata: T.anything).void } + attr_writer :metadata + + sig { returns(T.nilable(String)) } + attr_accessor :model + + sig { returns(T.nilable(Integer)) } + attr_accessor :prompt_tokens + + sig { returns(T.nilable(T.anything)) } + attr_reader :request_tags + + sig { params(request_tags: T.anything).void } + attr_writer :request_tags + + sig { returns(T.nilable(String)) } + attr_accessor :requester_ip_address + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(Integer)) } + attr_accessor :total_tokens + + sig { returns(T.nilable(String)) } + attr_accessor :user + + sig do + params( + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + api_key:, + call_type:, + end_time:, + messages:, + request_id:, + response:, + start_time:, + api_base: nil, + cache_hit: nil, + cache_key: nil, + completion_tokens: nil, + metadata: nil, + model: nil, + prompt_tokens: nil, + request_tags: nil, + requester_ip_address: nil, + spend: nil, + total_tokens: nil, + user: nil + ) + end + + sig do + override.returns( + { + api_key: String, + call_type: String, + end_time: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::EndTime::Variants + ), + messages: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::Messages::Variants + ), + request_id: String, + response: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::Response::Variants + ), + start_time: + T.nilable( + Hanzoai::Models::SpendListTagsResponseItem::StartTime::Variants + ), + api_base: T.nilable(String), + cache_hit: T.nilable(String), + cache_key: T.nilable(String), + completion_tokens: T.nilable(Integer), + metadata: T.anything, + model: T.nilable(String), + prompt_tokens: T.nilable(Integer), + request_tags: T.anything, + requester_ip_address: T.nilable(String), + spend: T.nilable(Float), + total_tokens: T.nilable(Integer), + user: T.nilable(String) + } + ) + end + def to_hash + end + + module EndTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListTagsResponseItem::EndTime::Variants + ] + ) + end + def self.variants + end + end + + module Messages + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListTagsResponseItem::Messages::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module Response + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any(String, T::Array[T.anything], T::Hash[Symbol, T.anything]) + end + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListTagsResponseItem::Response::Variants + ] + ) + end + def self.variants + end + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + + UnionMember2Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + + module StartTime + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, Time) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::SpendListTagsResponseItem::StartTime::Variants + ] + ) + end + def self.variants + end + end + end + + SpendListTagsResponse = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::Models::SpendListTagsResponseItem + ], + Hanzoai::Internal::Type::Converter + ) + end +end diff --git a/rbi/hanzoai/models/team/callback_add_params.rbi b/rbi/hanzoai/models/team/callback_add_params.rbi new file mode 100644 index 00000000..a13b9035 --- /dev/null +++ b/rbi/hanzoai/models/team/callback_add_params.rbi @@ -0,0 +1,116 @@ +# typed: strong + +module Hanzoai + module Models + module Team + class CallbackAddParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::Team::CallbackAddParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :callback_name + + sig { returns(T::Hash[Symbol, String]) } + attr_accessor :callback_vars + + sig do + returns( + T.nilable(Hanzoai::Team::CallbackAddParams::CallbackType::OrSymbol) + ) + end + attr_accessor :callback_type + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + callback_name: String, + callback_vars: T::Hash[Symbol, String], + callback_type: + T.nilable( + Hanzoai::Team::CallbackAddParams::CallbackType::OrSymbol + ), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + callback_name:, + callback_vars:, + callback_type: nil, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + callback_name: String, + callback_vars: T::Hash[Symbol, String], + callback_type: + T.nilable( + Hanzoai::Team::CallbackAddParams::CallbackType::OrSymbol + ), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module CallbackType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Team::CallbackAddParams::CallbackType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + SUCCESS = + T.let( + :success, + Hanzoai::Team::CallbackAddParams::CallbackType::TaggedSymbol + ) + FAILURE = + T.let( + :failure, + Hanzoai::Team::CallbackAddParams::CallbackType::TaggedSymbol + ) + SUCCESS_AND_FAILURE = + T.let( + :success_and_failure, + Hanzoai::Team::CallbackAddParams::CallbackType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Team::CallbackAddParams::CallbackType::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/hanzoai/models/team/callback_add_response.rbi b/rbi/hanzoai/models/team/callback_add_response.rbi new file mode 100644 index 00000000..16234978 --- /dev/null +++ b/rbi/hanzoai/models/team/callback_add_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Team + CallbackAddResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/team/callback_retrieve_params.rbi b/rbi/hanzoai/models/team/callback_retrieve_params.rbi new file mode 100644 index 00000000..b59508ce --- /dev/null +++ b/rbi/hanzoai/models/team/callback_retrieve_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Team + class CallbackRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Team::CallbackRetrieveParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/team/callback_retrieve_response.rbi b/rbi/hanzoai/models/team/callback_retrieve_response.rbi new file mode 100644 index 00000000..7c2e58be --- /dev/null +++ b/rbi/hanzoai/models/team/callback_retrieve_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Team + CallbackRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/lib/hanzoai/models/team/model_add_params.rbi b/rbi/hanzoai/models/team/model_add_params.rbi similarity index 78% rename from rbi/lib/hanzoai/models/team/model_add_params.rbi rename to rbi/hanzoai/models/team/model_add_params.rbi index 8f765b75..3cfb5d1a 100644 --- a/rbi/lib/hanzoai/models/team/model_add_params.rbi +++ b/rbi/hanzoai/models/team/model_add_params.rbi @@ -7,6 +7,11 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters + OrHash = + T.type_alias do + T.any(Hanzoai::Team::ModelAddParams, Hanzoai::Internal::AnyHash) + end + sig { returns(T::Array[String]) } attr_accessor :models @@ -17,9 +22,8 @@ module Hanzoai params( models: T::Array[String], team_id: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) end def self.new(models:, team_id:, request_options: {}) end diff --git a/rbi/hanzoai/models/team/model_add_response.rbi b/rbi/hanzoai/models/team/model_add_response.rbi new file mode 100644 index 00000000..2bbd38b5 --- /dev/null +++ b/rbi/hanzoai/models/team/model_add_response.rbi @@ -0,0 +1,9 @@ +# typed: strong + +module Hanzoai + module Models + module Team + ModelAddResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/lib/hanzoai/models/team/model_remove_params.rbi b/rbi/hanzoai/models/team/model_remove_params.rbi similarity index 78% rename from rbi/lib/hanzoai/models/team/model_remove_params.rbi rename to rbi/hanzoai/models/team/model_remove_params.rbi index 9819cf0a..cfbb4886 100644 --- a/rbi/lib/hanzoai/models/team/model_remove_params.rbi +++ b/rbi/hanzoai/models/team/model_remove_params.rbi @@ -7,6 +7,11 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters + OrHash = + T.type_alias do + T.any(Hanzoai::Team::ModelRemoveParams, Hanzoai::Internal::AnyHash) + end + sig { returns(T::Array[String]) } attr_accessor :models @@ -17,9 +22,8 @@ module Hanzoai params( models: T::Array[String], team_id: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) end def self.new(models:, team_id:, request_options: {}) end diff --git a/rbi/hanzoai/models/team/model_remove_response.rbi b/rbi/hanzoai/models/team/model_remove_response.rbi new file mode 100644 index 00000000..05159f7d --- /dev/null +++ b/rbi/hanzoai/models/team/model_remove_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Team + ModelRemoveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/team_add_member_params.rbi b/rbi/hanzoai/models/team_add_member_params.rbi new file mode 100644 index 00000000..0b4645c3 --- /dev/null +++ b/rbi/hanzoai/models/team_add_member_params.rbi @@ -0,0 +1,87 @@ +# typed: strong + +module Hanzoai + module Models + class TeamAddMemberParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamAddMemberParams, Hanzoai::Internal::AnyHash) + end + + # Member object or list of member objects to add. Each member must include either + # user_id or user_email, and a role + sig { returns(T.any(T::Array[Hanzoai::Member], Hanzoai::Member)) } + attr_accessor :member + + # The ID of the team to add the member to + sig { returns(String) } + attr_accessor :team_id + + # Maximum budget allocated to this user within the team. If not set, user has + # unlimited budget within team limits + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget_in_team + + sig do + params( + member: + T.any(T::Array[Hanzoai::Member::OrHash], Hanzoai::Member::OrHash), + team_id: String, + max_budget_in_team: T.nilable(Float), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Member object or list of member objects to add. Each member must include either + # user_id or user_email, and a role + member:, + # The ID of the team to add the member to + team_id:, + # Maximum budget allocated to this user within the team. If not set, user has + # unlimited budget within team limits + max_budget_in_team: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + member: T.any(T::Array[Hanzoai::Member], Hanzoai::Member), + team_id: String, + max_budget_in_team: T.nilable(Float), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + # Member object or list of member objects to add. Each member must include either + # user_id or user_email, and a role + module Member + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias { T.any(T::Array[Hanzoai::Member], Hanzoai::Member) } + + sig do + override.returns( + T::Array[Hanzoai::TeamAddMemberParams::Member::Variants] + ) + end + def self.variants + end + + MemberArray = + T.let( + Hanzoai::Internal::Type::ArrayOf[Hanzoai::Member], + Hanzoai::Internal::Type::Converter + ) + end + end + end +end diff --git a/rbi/hanzoai/models/team_add_member_response.rbi b/rbi/hanzoai/models/team_add_member_response.rbi new file mode 100644 index 00000000..e216beb8 --- /dev/null +++ b/rbi/hanzoai/models/team_add_member_response.rbi @@ -0,0 +1,750 @@ +# typed: strong + +module Hanzoai + module Models + class TeamAddMemberResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamAddMemberResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :team_id + + sig do + returns( + T::Array[ + Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership + ] + ) + end + attr_accessor :updated_team_memberships + + sig do + returns(T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser]) + end + attr_accessor :updated_users + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :admins + + sig { params(admins: T::Array[T.anything]).void } + attr_writer :admins + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :blocked + + sig { params(blocked: T::Boolean).void } + attr_writer :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig do + returns( + T.nilable(Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable) + ) + end + attr_reader :litellm_model_table + + sig do + params( + litellm_model_table: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::OrHash + ) + ).void + end + attr_writer :litellm_model_table + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :members + + sig { params(members: T::Array[T.anything]).void } + attr_writer :members + + sig { returns(T.nilable(T::Array[Hanzoai::Member])) } + attr_reader :members_with_roles + + sig { params(members_with_roles: T::Array[Hanzoai::Member::OrHash]).void } + attr_writer :members_with_roles + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(Integer)) } + attr_accessor :model_id + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable(Hanzoai::Models::TeamAddMemberResponse::ObjectPermission) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(String)) } + attr_accessor :team_alias + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :team_member_permissions + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig do + params( + team_id: String, + updated_team_memberships: + T::Array[ + Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::OrHash + ], + updated_users: + T::Array[ + Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrHash + ], + admins: T::Array[T.anything], + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + litellm_model_table: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::OrHash + ), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member::OrHash], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(Integer), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + organization_id: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_alias: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time) + ).returns(T.attached_class) + end + def self.new( + team_id:, + updated_team_memberships:, + updated_users:, + admins: nil, + blocked: nil, + budget_duration: nil, + budget_reset_at: nil, + created_at: nil, + litellm_model_table: nil, + max_budget: nil, + max_parallel_requests: nil, + members: nil, + members_with_roles: nil, + metadata: nil, + model_id: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + organization_id: nil, + router_settings: nil, + rpm_limit: nil, + spend: nil, + team_alias: nil, + team_member_permissions: nil, + tpm_limit: nil, + updated_at: nil + ) + end + + sig do + override.returns( + { + team_id: String, + updated_team_memberships: + T::Array[ + Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership + ], + updated_users: + T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser], + admins: T::Array[T.anything], + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + litellm_model_table: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable + ), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(Integer), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::ObjectPermission + ), + object_permission_id: T.nilable(String), + organization_id: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_alias: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time) + } + ) + end + def to_hash + end + + class UpdatedTeamMembership < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership, + Hanzoai::Internal::AnyHash + ) + end + + # Represents user-controllable params for a LiteLLM_BudgetTable record + sig { returns(T.nilable(Hanzoai::BudgetTable)) } + attr_reader :litellm_budget_table + + sig do + params( + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash) + ).void + end + attr_writer :litellm_budget_table + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig do + params( + litellm_budget_table: T.nilable(Hanzoai::BudgetTable::OrHash), + team_id: String, + user_id: String, + budget_id: T.nilable(String), + spend: T.nilable(Float) + ).returns(T.attached_class) + end + def self.new( + # Represents user-controllable params for a LiteLLM_BudgetTable record + litellm_budget_table:, + team_id:, + user_id:, + budget_id: nil, + spend: nil + ) + end + + sig do + override.returns( + { + litellm_budget_table: T.nilable(Hanzoai::BudgetTable), + team_id: String, + user_id: String, + budget_id: T.nilable(String), + spend: T.nilable(Float) + } + ) + end + def to_hash + end + end + + class UpdatedUser < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamAddMemberResponse::UpdatedUser, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_spend + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission + ) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig do + returns(T.nilable(T::Array[Hanzoai::OrganizationMembershipTable])) + end + attr_accessor :organization_memberships + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_reader :spend + + sig { params(spend: Float).void } + attr_writer :spend + + sig { returns(T.nilable(String)) } + attr_accessor :sso_user_id + + sig { returns(T.nilable(T::Array[String])) } + attr_reader :teams + + sig { params(teams: T::Array[String]).void } + attr_writer :teams + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :user_alias + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_role + + sig do + params( + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission::OrHash + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable::OrHash]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + user_id:, + budget_duration: nil, + budget_reset_at: nil, + created_at: nil, + max_budget: nil, + metadata: nil, + model_max_budget: nil, + model_spend: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + organization_memberships: nil, + rpm_limit: nil, + spend: nil, + sso_user_id: nil, + teams: nil, + tpm_limit: nil, + updated_at: nil, + user_alias: nil, + user_email: nil, + user_role: nil + ) + end + + sig do + override.returns( + { + user_id: String, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_spend: T.nilable(T::Hash[Symbol, T.anything]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission + ), + organization_memberships: + T.nilable(T::Array[Hanzoai::OrganizationMembershipTable]), + rpm_limit: T.nilable(Integer), + spend: Float, + sso_user_id: T.nilable(String), + teams: T::Array[String], + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_role: T.nilable(String) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + + class LitellmModelTable < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :created_by + + sig { returns(String) } + attr_accessor :updated_by + + sig { returns(T.nilable(Integer)) } + attr_accessor :id + + sig do + returns( + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::ModelAliases::Variants + ) + ) + end + attr_accessor :model_aliases + + sig { returns(T.nilable(T.anything)) } + attr_reader :team + + sig { params(team: T.anything).void } + attr_writer :team + + sig do + params( + created_by: String, + updated_by: String, + id: T.nilable(Integer), + model_aliases: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::ModelAliases::Variants + ), + team: T.anything + ).returns(T.attached_class) + end + def self.new( + created_by:, + updated_by:, + id: nil, + model_aliases: nil, + team: nil + ) + end + + sig do + override.returns( + { + created_by: String, + updated_by: String, + id: T.nilable(Integer), + model_aliases: + T.nilable( + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::ModelAliases::Variants + ), + team: T.anything + } + ) + end + def to_hash + end + + module ModelAliases + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(T::Hash[Symbol, T.anything], String) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::ModelAliases::Variants + ] + ) + end + def self.variants + end + + UnionMember0Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamAddMemberResponse::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/team_block_params.rbi b/rbi/hanzoai/models/team_block_params.rbi new file mode 100644 index 00000000..dc642496 --- /dev/null +++ b/rbi/hanzoai/models/team_block_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class TeamBlockParams < Hanzoai::Models::BlockTeamRequest + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamBlockParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_block_response.rbi b/rbi/hanzoai/models/team_block_response.rbi new file mode 100644 index 00000000..bc4ab15c --- /dev/null +++ b/rbi/hanzoai/models/team_block_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + TeamBlockResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_create_params.rbi b/rbi/hanzoai/models/team_create_params.rbi new file mode 100644 index 00000000..3a9e25b8 --- /dev/null +++ b/rbi/hanzoai/models/team_create_params.rbi @@ -0,0 +1,487 @@ +# typed: strong + +module Hanzoai + module Models + class TeamCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :admins + + sig { params(admins: T::Array[T.anything]).void } + attr_writer :admins + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_passthrough_routes + + sig do + returns( + T.nilable( + T::Array[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex] + ) + ) + end + attr_accessor :allowed_vector_store_indexes + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :blocked + + sig { params(blocked: T::Boolean).void } + attr_writer :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :members + + sig { params(members: T::Array[T.anything]).void } + attr_writer :members + + sig { returns(T.nilable(T::Array[Hanzoai::Member])) } + attr_reader :members_with_roles + + sig { params(members_with_roles: T::Array[Hanzoai::Member::OrHash]).void } + attr_writer :members_with_roles + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_aliases + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + sig { returns(T.nilable(Hanzoai::TeamCreateParams::ObjectPermission)) } + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable(Hanzoai::TeamCreateParams::ObjectPermission::OrHash) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig do + returns(T.nilable(Hanzoai::TeamCreateParams::RpmLimitType::OrSymbol)) + end + attr_accessor :rpm_limit_type + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :secret_manager_settings + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :tags + + sig { returns(T.nilable(String)) } + attr_accessor :team_alias + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Float)) } + attr_accessor :team_member_budget + + sig { returns(T.nilable(String)) } + attr_accessor :team_member_key_duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :team_member_permissions + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_member_rpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_member_tpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + returns(T.nilable(Hanzoai::TeamCreateParams::TpmLimitType::OrSymbol)) + end + attr_accessor :tpm_limit_type + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + admins: T::Array[T.anything], + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::OrHash + ] + ), + blocked: T::Boolean, + budget_duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + max_budget: T.nilable(Float), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member::OrHash], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T::Array[T.anything], + object_permission: + T.nilable(Hanzoai::TeamCreateParams::ObjectPermission::OrHash), + organization_id: T.nilable(String), + prompts: T.nilable(T::Array[String]), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::TeamCreateParams::RpmLimitType::OrSymbol), + secret_manager_settings: T.nilable(T::Hash[Symbol, T.anything]), + tags: T.nilable(T::Array[T.anything]), + team_alias: T.nilable(String), + team_id: T.nilable(String), + team_member_budget: T.nilable(Float), + team_member_key_duration: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + team_member_rpm_limit: T.nilable(Integer), + team_member_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::TeamCreateParams::TpmLimitType::OrSymbol), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + admins: nil, + allowed_passthrough_routes: nil, + allowed_vector_store_indexes: nil, + blocked: nil, + budget_duration: nil, + guardrails: nil, + max_budget: nil, + members: nil, + members_with_roles: nil, + metadata: nil, + model_aliases: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organization_id: nil, + prompts: nil, + router_settings: nil, + rpm_limit: nil, + rpm_limit_type: nil, + secret_manager_settings: nil, + tags: nil, + team_alias: nil, + team_id: nil, + team_member_budget: nil, + team_member_key_duration: nil, + team_member_permissions: nil, + team_member_rpm_limit: nil, + team_member_tpm_limit: nil, + tpm_limit: nil, + tpm_limit_type: nil, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + admins: T::Array[T.anything], + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex] + ), + blocked: T::Boolean, + budget_duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + max_budget: T.nilable(Float), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T::Array[T.anything], + object_permission: + T.nilable(Hanzoai::TeamCreateParams::ObjectPermission), + organization_id: T.nilable(String), + prompts: T.nilable(T::Array[String]), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::TeamCreateParams::RpmLimitType::OrSymbol), + secret_manager_settings: T.nilable(T::Hash[Symbol, T.anything]), + tags: T.nilable(T::Array[T.anything]), + team_alias: T.nilable(String), + team_id: T.nilable(String), + team_member_budget: T.nilable(Float), + team_member_key_duration: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + team_member_rpm_limit: T.nilable(Integer), + team_member_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::TeamCreateParams::TpmLimitType::OrSymbol), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :index_name + + sig do + returns( + T::Array[ + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ) + end + attr_accessor :index_permissions + + sig do + params( + index_name: String, + index_permissions: + T::Array[ + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new(index_name:, index_permissions:) + end + + sig do + override.returns( + { + index_name: String, + index_permissions: + T::Array[ + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + } + ) + end + def to_hash + end + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + READ = + T.let( + :read, + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + WRITE = + T.let( + :write, + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::TeamCreateParams::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::TeamCreateParams::RpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::TeamCreateParams::RpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::TeamCreateParams::RpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::TeamCreateParams::RpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::TeamCreateParams::TpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::TeamCreateParams::TpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::TeamCreateParams::TpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::TeamCreateParams::TpmLimitType::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/team_create_response.rbi b/rbi/hanzoai/models/team_create_response.rbi new file mode 100644 index 00000000..c48083c1 --- /dev/null +++ b/rbi/hanzoai/models/team_create_response.rbi @@ -0,0 +1,282 @@ +# typed: strong + +module Hanzoai + module Models + class TeamCreateResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::Models::TeamCreateResponse, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :admins + + sig { params(admins: T::Array[T.anything]).void } + attr_writer :admins + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :blocked + + sig { params(blocked: T::Boolean).void } + attr_writer :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(Time)) } + attr_accessor :budget_reset_at + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(T.anything)) } + attr_reader :litellm_model_table + + sig { params(litellm_model_table: T.anything).void } + attr_writer :litellm_model_table + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :members + + sig { params(members: T::Array[T.anything]).void } + attr_writer :members + + sig { returns(T.nilable(T::Array[Hanzoai::Member])) } + attr_reader :members_with_roles + + sig { params(members_with_roles: T::Array[Hanzoai::Member::OrHash]).void } + attr_writer :members_with_roles + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(Integer)) } + attr_accessor :model_id + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_reader :models + + sig { params(models: T::Array[T.anything]).void } + attr_writer :models + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + returns( + T.nilable(Hanzoai::Models::TeamCreateResponse::ObjectPermission) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::TeamCreateResponse::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(String)) } + attr_accessor :team_alias + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :team_member_permissions + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig do + params( + team_id: String, + admins: T::Array[T.anything], + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + litellm_model_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member::OrHash], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(Integer), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::Models::TeamCreateResponse::ObjectPermission::OrHash + ), + object_permission_id: T.nilable(String), + organization_id: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_alias: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time) + ).returns(T.attached_class) + end + def self.new( + team_id:, + admins: nil, + blocked: nil, + budget_duration: nil, + budget_reset_at: nil, + created_at: nil, + litellm_model_table: nil, + max_budget: nil, + max_parallel_requests: nil, + members: nil, + members_with_roles: nil, + metadata: nil, + model_id: nil, + models: nil, + # Represents a LiteLLM_ObjectPermissionTable record + object_permission: nil, + object_permission_id: nil, + organization_id: nil, + router_settings: nil, + rpm_limit: nil, + spend: nil, + team_alias: nil, + team_member_permissions: nil, + tpm_limit: nil, + updated_at: nil + ) + end + + sig do + override.returns( + { + team_id: String, + admins: T::Array[T.anything], + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_reset_at: T.nilable(Time), + created_at: T.nilable(Time), + litellm_model_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(Integer), + models: T::Array[T.anything], + object_permission: + T.nilable(Hanzoai::Models::TeamCreateResponse::ObjectPermission), + object_permission_id: T.nilable(String), + organization_id: T.nilable(String), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_alias: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + tpm_limit: T.nilable(Integer), + updated_at: T.nilable(Time) + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamCreateResponse::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :object_permission_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + # Represents a LiteLLM_ObjectPermissionTable record + sig do + params( + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + object_permission_id:, + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + object_permission_id: String, + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/team_delete_params.rbi b/rbi/hanzoai/models/team_delete_params.rbi new file mode 100644 index 00000000..c618391f --- /dev/null +++ b/rbi/hanzoai/models/team_delete_params.rbi @@ -0,0 +1,56 @@ +# typed: strong + +module Hanzoai + module Models + class TeamDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Array[String]) } + attr_accessor :team_ids + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + team_ids: T::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + team_ids:, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + team_ids: T::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_delete_response.rbi b/rbi/hanzoai/models/team_delete_response.rbi new file mode 100644 index 00000000..b9f882f7 --- /dev/null +++ b/rbi/hanzoai/models/team_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + TeamDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_disable_logging_params.rbi b/rbi/hanzoai/models/team_disable_logging_params.rbi new file mode 100644 index 00000000..412ed031 --- /dev/null +++ b/rbi/hanzoai/models/team_disable_logging_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class TeamDisableLoggingParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamDisableLoggingParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_disable_logging_response.rbi b/rbi/hanzoai/models/team_disable_logging_response.rbi new file mode 100644 index 00000000..8b15a6a2 --- /dev/null +++ b/rbi/hanzoai/models/team_disable_logging_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + TeamDisableLoggingResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_list_available_params.rbi b/rbi/hanzoai/models/team_list_available_params.rbi new file mode 100644 index 00000000..8f6eeb3b --- /dev/null +++ b/rbi/hanzoai/models/team_list_available_params.rbi @@ -0,0 +1,41 @@ +# typed: strong + +module Hanzoai + module Models + class TeamListAvailableParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamListAvailableParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(T.anything)) } + attr_reader :response_model + + sig { params(response_model: T.anything).void } + attr_writer :response_model + + sig do + params( + response_model: T.anything, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(response_model: nil, request_options: {}) + end + + sig do + override.returns( + { + response_model: T.anything, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_list_available_response.rbi b/rbi/hanzoai/models/team_list_available_response.rbi new file mode 100644 index 00000000..f6dc1e51 --- /dev/null +++ b/rbi/hanzoai/models/team_list_available_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + TeamListAvailableResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_list_params.rbi b/rbi/hanzoai/models/team_list_params.rbi new file mode 100644 index 00000000..f46de1a7 --- /dev/null +++ b/rbi/hanzoai/models/team_list_params.rbi @@ -0,0 +1,49 @@ +# typed: strong + +module Hanzoai + module Models + class TeamListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamListParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + # Only return teams which this 'user_id' belongs to + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + organization_id: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + organization_id: nil, + # Only return teams which this 'user_id' belongs to + user_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + organization_id: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_list_response.rbi b/rbi/hanzoai/models/team_list_response.rbi new file mode 100644 index 00000000..1a32baf9 --- /dev/null +++ b/rbi/hanzoai/models/team_list_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + TeamListResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_remove_member_params.rbi b/rbi/hanzoai/models/team_remove_member_params.rbi new file mode 100644 index 00000000..60773273 --- /dev/null +++ b/rbi/hanzoai/models/team_remove_member_params.rbi @@ -0,0 +1,48 @@ +# typed: strong + +module Hanzoai + module Models + class TeamRemoveMemberParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamRemoveMemberParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + team_id: String, + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(team_id:, user_email: nil, user_id: nil, request_options: {}) + end + + sig do + override.returns( + { + team_id: String, + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_remove_member_response.rbi b/rbi/hanzoai/models/team_remove_member_response.rbi new file mode 100644 index 00000000..88259905 --- /dev/null +++ b/rbi/hanzoai/models/team_remove_member_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + TeamRemoveMemberResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_retrieve_info_params.rbi b/rbi/hanzoai/models/team_retrieve_info_params.rbi new file mode 100644 index 00000000..af50303d --- /dev/null +++ b/rbi/hanzoai/models/team_retrieve_info_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + class TeamRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamRetrieveInfoParams, Hanzoai::Internal::AnyHash) + end + + # Team ID in the request parameters + sig { returns(T.nilable(String)) } + attr_reader :team_id + + sig { params(team_id: String).void } + attr_writer :team_id + + sig do + params( + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # Team ID in the request parameters + team_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { team_id: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_retrieve_info_response.rbi b/rbi/hanzoai/models/team_retrieve_info_response.rbi new file mode 100644 index 00000000..07e0275b --- /dev/null +++ b/rbi/hanzoai/models/team_retrieve_info_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + TeamRetrieveInfoResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_unblock_params.rbi b/rbi/hanzoai/models/team_unblock_params.rbi new file mode 100644 index 00000000..f1da409f --- /dev/null +++ b/rbi/hanzoai/models/team_unblock_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class TeamUnblockParams < Hanzoai::Models::BlockTeamRequest + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamUnblockParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_unblock_response.rbi b/rbi/hanzoai/models/team_unblock_response.rbi new file mode 100644 index 00000000..1a99bf07 --- /dev/null +++ b/rbi/hanzoai/models/team_unblock_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + TeamUnblockResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/team_update_member_params.rbi b/rbi/hanzoai/models/team_update_member_params.rbi new file mode 100644 index 00000000..116329c0 --- /dev/null +++ b/rbi/hanzoai/models/team_update_member_params.rbi @@ -0,0 +1,103 @@ +# typed: strong + +module Hanzoai + module Models + class TeamUpdateMemberParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamUpdateMemberParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget_in_team + + sig do + returns(T.nilable(Hanzoai::TeamUpdateMemberParams::Role::OrSymbol)) + end + attr_accessor :role + + # Requests per minute limit for this team member + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + # Tokens per minute limit for this team member + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + team_id: String, + max_budget_in_team: T.nilable(Float), + role: T.nilable(Hanzoai::TeamUpdateMemberParams::Role::OrSymbol), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + team_id:, + max_budget_in_team: nil, + role: nil, + # Requests per minute limit for this team member + rpm_limit: nil, + # Tokens per minute limit for this team member + tpm_limit: nil, + user_email: nil, + user_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + team_id: String, + max_budget_in_team: T.nilable(Float), + role: T.nilable(Hanzoai::TeamUpdateMemberParams::Role::OrSymbol), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module Role + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Hanzoai::TeamUpdateMemberParams::Role) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ADMIN = + T.let(:admin, Hanzoai::TeamUpdateMemberParams::Role::TaggedSymbol) + USER = T.let(:user, Hanzoai::TeamUpdateMemberParams::Role::TaggedSymbol) + + sig do + override.returns( + T::Array[Hanzoai::TeamUpdateMemberParams::Role::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/team_update_member_response.rbi b/rbi/hanzoai/models/team_update_member_response.rbi new file mode 100644 index 00000000..a47d8db9 --- /dev/null +++ b/rbi/hanzoai/models/team_update_member_response.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Hanzoai + module Models + class TeamUpdateMemberResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::TeamUpdateMemberResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(String) } + attr_accessor :user_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget_in_team + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig do + params( + team_id: String, + user_id: String, + max_budget_in_team: T.nilable(Float), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + user_email: T.nilable(String) + ).returns(T.attached_class) + end + def self.new( + team_id:, + user_id:, + max_budget_in_team: nil, + rpm_limit: nil, + tpm_limit: nil, + user_email: nil + ) + end + + sig do + override.returns( + { + team_id: String, + user_id: String, + max_budget_in_team: T.nilable(Float), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + user_email: T.nilable(String) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/team_update_params.rbi b/rbi/hanzoai/models/team_update_params.rbi new file mode 100644 index 00000000..f72cfa3b --- /dev/null +++ b/rbi/hanzoai/models/team_update_params.rbi @@ -0,0 +1,376 @@ +# typed: strong + +module Hanzoai + module Models + class TeamUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TeamUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_passthrough_routes + + sig do + returns( + T.nilable( + T::Array[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex] + ) + ) + end + attr_accessor :allowed_vector_store_indexes + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_aliases + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, Integer])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig { returns(T.nilable(Hanzoai::TeamUpdateParams::ObjectPermission)) } + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable(Hanzoai::TeamUpdateParams::ObjectPermission::OrHash) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :secret_manager_settings + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :tags + + sig { returns(T.nilable(String)) } + attr_accessor :team_alias + + sig { returns(T.nilable(Float)) } + attr_accessor :team_member_budget + + sig { returns(T.nilable(String)) } + attr_accessor :team_member_budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :team_member_key_duration + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_member_rpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :team_member_tpm_limit + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + team_id: String, + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::OrHash + ] + ), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::TeamUpdateParams::ObjectPermission::OrHash), + organization_id: T.nilable(String), + prompts: T.nilable(T::Array[String]), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + secret_manager_settings: T.nilable(T::Hash[Symbol, T.anything]), + tags: T.nilable(T::Array[T.anything]), + team_alias: T.nilable(String), + team_member_budget: T.nilable(Float), + team_member_budget_duration: T.nilable(String), + team_member_key_duration: T.nilable(String), + team_member_rpm_limit: T.nilable(Integer), + team_member_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + team_id:, + allowed_passthrough_routes: nil, + allowed_vector_store_indexes: nil, + blocked: nil, + budget_duration: nil, + guardrails: nil, + max_budget: nil, + metadata: nil, + model_aliases: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organization_id: nil, + prompts: nil, + router_settings: nil, + rpm_limit: nil, + secret_manager_settings: nil, + tags: nil, + team_alias: nil, + team_member_budget: nil, + team_member_budget_duration: nil, + team_member_key_duration: nil, + team_member_rpm_limit: nil, + team_member_tpm_limit: nil, + tpm_limit: nil, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + team_id: String, + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex] + ), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::TeamUpdateParams::ObjectPermission), + organization_id: T.nilable(String), + prompts: T.nilable(T::Array[String]), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + secret_manager_settings: T.nilable(T::Hash[Symbol, T.anything]), + tags: T.nilable(T::Array[T.anything]), + team_alias: T.nilable(String), + team_member_budget: T.nilable(Float), + team_member_budget_duration: T.nilable(String), + team_member_key_duration: T.nilable(String), + team_member_rpm_limit: T.nilable(Integer), + team_member_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :index_name + + sig do + returns( + T::Array[ + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ) + end + attr_accessor :index_permissions + + sig do + params( + index_name: String, + index_permissions: + T::Array[ + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new(index_name:, index_permissions:) + end + + sig do + override.returns( + { + index_name: String, + index_permissions: + T::Array[ + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + } + ) + end + def to_hash + end + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + READ = + T.let( + :read, + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + WRITE = + T.let( + :write, + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::TeamUpdateParams::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/team_update_response.rbi b/rbi/hanzoai/models/team_update_response.rbi new file mode 100644 index 00000000..322b06ca --- /dev/null +++ b/rbi/hanzoai/models/team_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + TeamUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/test_ping_params.rbi b/rbi/hanzoai/models/test_ping_params.rbi new file mode 100644 index 00000000..af5d0af4 --- /dev/null +++ b/rbi/hanzoai/models/test_ping_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class TestPingParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::TestPingParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/test_ping_response.rbi b/rbi/hanzoai/models/test_ping_response.rbi new file mode 100644 index 00000000..3349e7ca --- /dev/null +++ b/rbi/hanzoai/models/test_ping_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + TestPingResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/thread_create_params.rbi b/rbi/hanzoai/models/thread_create_params.rbi new file mode 100644 index 00000000..803220cb --- /dev/null +++ b/rbi/hanzoai/models/thread_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ThreadCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ThreadCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/thread_create_response.rbi b/rbi/hanzoai/models/thread_create_response.rbi new file mode 100644 index 00000000..73368c09 --- /dev/null +++ b/rbi/hanzoai/models/thread_create_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + ThreadCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/thread_retrieve_params.rbi b/rbi/hanzoai/models/thread_retrieve_params.rbi new file mode 100644 index 00000000..90ef387f --- /dev/null +++ b/rbi/hanzoai/models/thread_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class ThreadRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::ThreadRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/thread_retrieve_response.rbi b/rbi/hanzoai/models/thread_retrieve_response.rbi new file mode 100644 index 00000000..222770de --- /dev/null +++ b/rbi/hanzoai/models/thread_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + ThreadRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/threads/message_create_params.rbi b/rbi/hanzoai/models/threads/message_create_params.rbi new file mode 100644 index 00000000..5982c5d0 --- /dev/null +++ b/rbi/hanzoai/models/threads/message_create_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Threads + class MessageCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Threads::MessageCreateParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/threads/message_create_response.rbi b/rbi/hanzoai/models/threads/message_create_response.rbi new file mode 100644 index 00000000..c5f60c42 --- /dev/null +++ b/rbi/hanzoai/models/threads/message_create_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Threads + MessageCreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/threads/message_list_params.rbi b/rbi/hanzoai/models/threads/message_list_params.rbi new file mode 100644 index 00000000..aa64ac09 --- /dev/null +++ b/rbi/hanzoai/models/threads/message_list_params.rbi @@ -0,0 +1,32 @@ +# typed: strong + +module Hanzoai + module Models + module Threads + class MessageListParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::Threads::MessageListParams, + Hanzoai::Internal::AnyHash + ) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/threads/message_list_response.rbi b/rbi/hanzoai/models/threads/message_list_response.rbi new file mode 100644 index 00000000..d11f31a7 --- /dev/null +++ b/rbi/hanzoai/models/threads/message_list_response.rbi @@ -0,0 +1,10 @@ +# typed: strong + +module Hanzoai + module Models + module Threads + MessageListResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/threads/run_create_params.rbi b/rbi/hanzoai/models/threads/run_create_params.rbi new file mode 100644 index 00000000..4022e11a --- /dev/null +++ b/rbi/hanzoai/models/threads/run_create_params.rbi @@ -0,0 +1,29 @@ +# typed: strong + +module Hanzoai + module Models + module Threads + class RunCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::Threads::RunCreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end + end +end diff --git a/rbi/hanzoai/models/threads/run_create_response.rbi b/rbi/hanzoai/models/threads/run_create_response.rbi new file mode 100644 index 00000000..fdeff389 --- /dev/null +++ b/rbi/hanzoai/models/threads/run_create_response.rbi @@ -0,0 +1,9 @@ +# typed: strong + +module Hanzoai + module Models + module Threads + RunCreateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end + end +end diff --git a/rbi/hanzoai/models/user_create_params.rbi b/rbi/hanzoai/models/user_create_params.rbi new file mode 100644 index 00000000..cc35bcb3 --- /dev/null +++ b/rbi/hanzoai/models/user_create_params.rbi @@ -0,0 +1,455 @@ +# typed: strong + +module Hanzoai + module Models + class UserCreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::UserCreateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :auto_create_key + + sig { params(auto_create_key: T::Boolean).void } + attr_writer :auto_create_key + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :config + + sig { returns(T.nilable(String)) } + attr_accessor :duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig { returns(T.nilable(Hanzoai::UserCreateParams::ObjectPermission)) } + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable(Hanzoai::UserCreateParams::ObjectPermission::OrHash) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :organizations + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :send_invite_email + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(String)) } + attr_accessor :sso_user_id + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Hanzoai::UserCreateParams::Teams::Variants)) } + attr_accessor :teams + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(String)) } + attr_accessor :user_alias + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig { returns(T.nilable(Hanzoai::UserCreateParams::UserRole::OrSymbol)) } + attr_accessor :user_role + + sig do + params( + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + auto_create_key: T::Boolean, + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::UserCreateParams::ObjectPermission::OrHash), + organizations: T.nilable(T::Array[String]), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rpm_limit: T.nilable(Integer), + send_invite_email: T.nilable(T::Boolean), + spend: T.nilable(Float), + sso_user_id: T.nilable(String), + team_id: T.nilable(String), + teams: T.nilable(Hanzoai::UserCreateParams::Teams::Variants), + tpm_limit: T.nilable(Integer), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: T.nilable(Hanzoai::UserCreateParams::UserRole::OrSymbol), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + aliases: nil, + allowed_cache_controls: nil, + auto_create_key: nil, + blocked: nil, + budget_duration: nil, + config: nil, + duration: nil, + guardrails: nil, + key_alias: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organizations: nil, + permissions: nil, + prompts: nil, + rpm_limit: nil, + send_invite_email: nil, + spend: nil, + sso_user_id: nil, + team_id: nil, + teams: nil, + tpm_limit: nil, + user_alias: nil, + user_email: nil, + user_id: nil, + user_role: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + auto_create_key: T::Boolean, + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::UserCreateParams::ObjectPermission), + organizations: T.nilable(T::Array[String]), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rpm_limit: T.nilable(Integer), + send_invite_email: T.nilable(T::Boolean), + spend: T.nilable(Float), + sso_user_id: T.nilable(String), + team_id: T.nilable(String), + teams: T.nilable(Hanzoai::UserCreateParams::Teams::Variants), + tpm_limit: T.nilable(Integer), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: T.nilable(Hanzoai::UserCreateParams::UserRole::OrSymbol), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::UserCreateParams::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + module Teams + extend Hanzoai::Internal::Type::Union + + Variants = + T.type_alias do + T.any( + T::Array[String], + T::Array[Hanzoai::UserCreateParams::Teams::UnionMember1] + ) + end + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::UserCreateParams::Teams::UnionMember1, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :team_id + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget_in_team + + sig do + returns( + T.nilable( + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole::OrSymbol + ) + ) + end + attr_reader :user_role + + sig do + params( + user_role: + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole::OrSymbol + ).void + end + attr_writer :user_role + + sig do + params( + team_id: String, + max_budget_in_team: T.nilable(Float), + user_role: + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole::OrSymbol + ).returns(T.attached_class) + end + def self.new(team_id:, max_budget_in_team: nil, user_role: nil) + end + + sig do + override.returns( + { + team_id: String, + max_budget_in_team: T.nilable(Float), + user_role: + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole::OrSymbol + } + ) + end + def to_hash + end + + module UserRole + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + USER = + T.let( + :user, + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole::TaggedSymbol + ) + ADMIN = + T.let( + :admin, + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::UserCreateParams::Teams::UnionMember1::UserRole::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + sig do + override.returns(T::Array[Hanzoai::UserCreateParams::Teams::Variants]) + end + def self.variants + end + + StringArray = + T.let( + Hanzoai::Internal::Type::ArrayOf[String], + Hanzoai::Internal::Type::Converter + ) + + UnionMember1Array = + T.let( + Hanzoai::Internal::Type::ArrayOf[ + Hanzoai::UserCreateParams::Teams::UnionMember1 + ], + Hanzoai::Internal::Type::Converter + ) + end + + module UserRole + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Hanzoai::UserCreateParams::UserRole) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + PROXY_ADMIN = + T.let(:proxy_admin, Hanzoai::UserCreateParams::UserRole::TaggedSymbol) + PROXY_ADMIN_VIEWER = + T.let( + :proxy_admin_viewer, + Hanzoai::UserCreateParams::UserRole::TaggedSymbol + ) + INTERNAL_USER = + T.let( + :internal_user, + Hanzoai::UserCreateParams::UserRole::TaggedSymbol + ) + INTERNAL_USER_VIEWER = + T.let( + :internal_user_viewer, + Hanzoai::UserCreateParams::UserRole::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::UserCreateParams::UserRole::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/user_create_response.rbi b/rbi/hanzoai/models/user_create_response.rbi new file mode 100644 index 00000000..c659be1f --- /dev/null +++ b/rbi/hanzoai/models/user_create_response.rbi @@ -0,0 +1,804 @@ +# typed: strong + +module Hanzoai + module Models + class UserCreateResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::Models::UserCreateResponse, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :key + + sig { returns(T.nilable(String)) } + attr_accessor :token + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_passthrough_routes + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_routes + + sig do + returns( + T.nilable( + T::Array[ + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex + ] + ) + ) + end + attr_accessor :allowed_vector_store_indexes + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(String)) } + attr_accessor :budget_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :config + + sig { returns(T.nilable(Time)) } + attr_accessor :created_at + + sig { returns(T.nilable(String)) } + attr_accessor :created_by + + sig { returns(T.nilable(String)) } + attr_accessor :duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :enforced_params + + sig { returns(T.nilable(Time)) } + attr_accessor :expires + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(String)) } + attr_accessor :key_name + + sig { returns(T.nilable(T.anything)) } + attr_reader :litellm_budget_table + + sig { params(litellm_budget_table: T.anything).void } + attr_writer :litellm_budget_table + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig do + returns( + T.nilable(Hanzoai::Models::UserCreateResponse::ObjectPermission) + ) + end + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable( + Hanzoai::Models::UserCreateResponse::ObjectPermission::OrHash + ) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :organization_id + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + # Set of params that you can modify via `router.update_settings()`. + sig do + returns(T.nilable(Hanzoai::Models::UserCreateResponse::RouterSettings)) + end + attr_reader :router_settings + + sig do + params( + router_settings: + T.nilable( + Hanzoai::Models::UserCreateResponse::RouterSettings::OrHash + ) + ).void + end + attr_writer :router_settings + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig do + returns( + T.nilable( + Hanzoai::Models::UserCreateResponse::RpmLimitType::TaggedSymbol + ) + ) + end + attr_accessor :rpm_limit_type + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :tags + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :teams + + sig { returns(T.nilable(String)) } + attr_accessor :token_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig do + returns( + T.nilable( + Hanzoai::Models::UserCreateResponse::TpmLimitType::TaggedSymbol + ) + ) + end + attr_accessor :tpm_limit_type + + sig { returns(T.nilable(Time)) } + attr_accessor :updated_at + + sig { returns(T.nilable(String)) } + attr_accessor :updated_by + + sig { returns(T.nilable(String)) } + attr_accessor :user_alias + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + returns( + T.nilable(Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol) + ) + end + attr_accessor :user_role + + sig do + params( + key: String, + token: T.nilable(String), + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::OrHash + ] + ), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + created_at: T.nilable(Time), + created_by: T.nilable(String), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + expires: T.nilable(Time), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + key_name: T.nilable(String), + litellm_budget_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable( + Hanzoai::Models::UserCreateResponse::ObjectPermission::OrHash + ), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + router_settings: + T.nilable( + Hanzoai::Models::UserCreateResponse::RouterSettings::OrHash + ), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable( + Hanzoai::Models::UserCreateResponse::RpmLimitType::OrSymbol + ), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + teams: T.nilable(T::Array[T.anything]), + token_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable( + Hanzoai::Models::UserCreateResponse::TpmLimitType::OrSymbol + ), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: + T.nilable(Hanzoai::Models::UserCreateResponse::UserRole::OrSymbol) + ).returns(T.attached_class) + end + def self.new( + key:, + token: nil, + aliases: nil, + allowed_cache_controls: nil, + allowed_passthrough_routes: nil, + allowed_routes: nil, + allowed_vector_store_indexes: nil, + blocked: nil, + budget_duration: nil, + budget_id: nil, + config: nil, + created_at: nil, + created_by: nil, + duration: nil, + enforced_params: nil, + expires: nil, + guardrails: nil, + key_alias: nil, + key_name: nil, + litellm_budget_table: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organization_id: nil, + permissions: nil, + prompts: nil, + # Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + rpm_limit: nil, + rpm_limit_type: nil, + spend: nil, + tags: nil, + team_id: nil, + teams: nil, + token_id: nil, + tpm_limit: nil, + tpm_limit_type: nil, + updated_at: nil, + updated_by: nil, + user_alias: nil, + user_email: nil, + user_id: nil, + user_role: nil + ) + end + + sig do + override.returns( + { + key: String, + token: T.nilable(String), + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex + ] + ), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + created_at: T.nilable(Time), + created_by: T.nilable(String), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + expires: T.nilable(Time), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + key_name: T.nilable(String), + litellm_budget_table: T.anything, + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::Models::UserCreateResponse::ObjectPermission), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + router_settings: + T.nilable(Hanzoai::Models::UserCreateResponse::RouterSettings), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable( + Hanzoai::Models::UserCreateResponse::RpmLimitType::TaggedSymbol + ), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + teams: T.nilable(T::Array[T.anything]), + token_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable( + Hanzoai::Models::UserCreateResponse::TpmLimitType::TaggedSymbol + ), + updated_at: T.nilable(Time), + updated_by: T.nilable(String), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: + T.nilable( + Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol + ) + } + ) + end + def to_hash + end + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :index_name + + sig do + returns( + T::Array[ + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + attr_accessor :index_permissions + + sig do + params( + index_name: String, + index_permissions: + T::Array[ + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission::OrSymbol + ] + ).returns(T.attached_class) + end + def self.new(index_name:, index_permissions:) + end + + sig do + override.returns( + { + index_name: String, + index_permissions: + T::Array[ + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + } + ) + end + def to_hash + end + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + READ = + T.let( + :read, + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + WRITE = + T.let( + :write, + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::IndexPermission::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::UserCreateResponse::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::UserCreateResponse::RouterSettings, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(Integer)) } + attr_accessor :allowed_fails + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :context_window_fallbacks + + sig { returns(T.nilable(Float)) } + attr_accessor :cooldown_time + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :fallbacks + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + sig do + returns( + T.nilable( + T::Hash[ + Symbol, + Hanzoai::Models::UserCreateResponse::RouterSettings::ModelGroupAlias::Variants + ] + ) + ) + end + attr_accessor :model_group_alias + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_group_retry_policy + + sig { returns(T.nilable(Integer)) } + attr_accessor :num_retries + + sig { returns(T.nilable(Float)) } + attr_accessor :retry_after + + sig { returns(T.nilable(String)) } + attr_accessor :routing_strategy + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :routing_strategy_args + + sig { returns(T.nilable(Float)) } + attr_accessor :timeout + + # Set of params that you can modify via `router.update_settings()`. + sig do + params( + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::Models::UserCreateResponse::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + ).returns(T.attached_class) + end + def self.new( + allowed_fails: nil, + context_window_fallbacks: nil, + cooldown_time: nil, + fallbacks: nil, + max_retries: nil, + model_group_alias: nil, + model_group_retry_policy: nil, + num_retries: nil, + retry_after: nil, + routing_strategy: nil, + routing_strategy_args: nil, + timeout: nil + ) + end + + sig do + override.returns( + { + allowed_fails: T.nilable(Integer), + context_window_fallbacks: + T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + cooldown_time: T.nilable(Float), + fallbacks: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + max_retries: T.nilable(Integer), + model_group_alias: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::Models::UserCreateResponse::RouterSettings::ModelGroupAlias::Variants + ] + ), + model_group_retry_policy: T.nilable(T::Hash[Symbol, T.anything]), + num_retries: T.nilable(Integer), + retry_after: T.nilable(Float), + routing_strategy: T.nilable(String), + routing_strategy_args: T.nilable(T::Hash[Symbol, T.anything]), + timeout: T.nilable(Float) + } + ) + end + def to_hash + end + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + Variants = T.type_alias { T.any(String, T::Hash[Symbol, T.anything]) } + + sig do + override.returns( + T::Array[ + Hanzoai::Models::UserCreateResponse::RouterSettings::ModelGroupAlias::Variants + ] + ) + end + def self.variants + end + + UnionMember1Map = + T.let( + Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown], + Hanzoai::Internal::Type::Converter + ) + end + end + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Models::UserCreateResponse::RpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::Models::UserCreateResponse::RpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::Models::UserCreateResponse::RpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::Models::UserCreateResponse::RpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Models::UserCreateResponse::RpmLimitType::TaggedSymbol + ] + ) + end + def self.values + end + end + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Models::UserCreateResponse::TpmLimitType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GUARANTEED_THROUGHPUT = + T.let( + :guaranteed_throughput, + Hanzoai::Models::UserCreateResponse::TpmLimitType::TaggedSymbol + ) + BEST_EFFORT_THROUGHPUT = + T.let( + :best_effort_throughput, + Hanzoai::Models::UserCreateResponse::TpmLimitType::TaggedSymbol + ) + DYNAMIC = + T.let( + :dynamic, + Hanzoai::Models::UserCreateResponse::TpmLimitType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Models::UserCreateResponse::TpmLimitType::TaggedSymbol + ] + ) + end + def self.values + end + end + + module UserRole + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::Models::UserCreateResponse::UserRole) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + PROXY_ADMIN = + T.let( + :proxy_admin, + Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol + ) + PROXY_ADMIN_VIEWER = + T.let( + :proxy_admin_viewer, + Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol + ) + INTERNAL_USER = + T.let( + :internal_user, + Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol + ) + INTERNAL_USER_VIEWER = + T.let( + :internal_user_viewer, + Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/user_delete_params.rbi b/rbi/hanzoai/models/user_delete_params.rbi new file mode 100644 index 00000000..0084e2ca --- /dev/null +++ b/rbi/hanzoai/models/user_delete_params.rbi @@ -0,0 +1,56 @@ +# typed: strong + +module Hanzoai + module Models + class UserDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::UserDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T::Array[String]) } + attr_accessor :user_ids + + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + sig { returns(T.nilable(String)) } + attr_reader :litellm_changed_by + + sig { params(litellm_changed_by: String).void } + attr_writer :litellm_changed_by + + sig do + params( + user_ids: T::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + user_ids:, + # The litellm-changed-by header enables tracking of actions performed by + # authorized users on behalf of other users, providing an audit trail for + # accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + user_ids: T::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/user_delete_response.rbi b/rbi/hanzoai/models/user_delete_response.rbi new file mode 100644 index 00000000..67e91c4f --- /dev/null +++ b/rbi/hanzoai/models/user_delete_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + UserDeleteResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/user_retrieve_info_params.rbi b/rbi/hanzoai/models/user_retrieve_info_params.rbi new file mode 100644 index 00000000..d27ba19b --- /dev/null +++ b/rbi/hanzoai/models/user_retrieve_info_params.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Models + class UserRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::UserRetrieveInfoParams, Hanzoai::Internal::AnyHash) + end + + # User ID in the request parameters + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig do + params( + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + # User ID in the request parameters + user_id: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/user_retrieve_info_response.rbi b/rbi/hanzoai/models/user_retrieve_info_response.rbi new file mode 100644 index 00000000..8dce6e86 --- /dev/null +++ b/rbi/hanzoai/models/user_retrieve_info_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + UserRetrieveInfoResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/user_roles.rbi b/rbi/hanzoai/models/user_roles.rbi new file mode 100644 index 00000000..3109cee9 --- /dev/null +++ b/rbi/hanzoai/models/user_roles.rbi @@ -0,0 +1,37 @@ +# typed: strong + +module Hanzoai + module Models + # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization + # + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend + # + # Team Roles: TEAM: used for JWT auth + # + # Customer Roles: CUSTOMER: External users -> these are customers + module UserRoles + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::UserRoles) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + PROXY_ADMIN = T.let(:proxy_admin, Hanzoai::UserRoles::TaggedSymbol) + PROXY_ADMIN_VIEWER = + T.let(:proxy_admin_viewer, Hanzoai::UserRoles::TaggedSymbol) + ORG_ADMIN = T.let(:org_admin, Hanzoai::UserRoles::TaggedSymbol) + INTERNAL_USER = T.let(:internal_user, Hanzoai::UserRoles::TaggedSymbol) + INTERNAL_USER_VIEWER = + T.let(:internal_user_viewer, Hanzoai::UserRoles::TaggedSymbol) + TEAM = T.let(:team, Hanzoai::UserRoles::TaggedSymbol) + CUSTOMER = T.let(:customer, Hanzoai::UserRoles::TaggedSymbol) + + sig { override.returns(T::Array[Hanzoai::UserRoles::TaggedSymbol]) } + def self.values + end + end + end +end diff --git a/rbi/hanzoai/models/user_update_params.rbi b/rbi/hanzoai/models/user_update_params.rbi new file mode 100644 index 00000000..da473655 --- /dev/null +++ b/rbi/hanzoai/models/user_update_params.rbi @@ -0,0 +1,305 @@ +# typed: strong + +module Hanzoai + module Models + class UserUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::UserUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :aliases + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :allowed_cache_controls + + sig { returns(T.nilable(T::Boolean)) } + attr_accessor :blocked + + sig { returns(T.nilable(String)) } + attr_accessor :budget_duration + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :config + + sig { returns(T.nilable(String)) } + attr_accessor :duration + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :guardrails + + sig { returns(T.nilable(String)) } + attr_accessor :key_alias + + sig { returns(T.nilable(Float)) } + attr_accessor :max_budget + + sig { returns(T.nilable(Integer)) } + attr_accessor :max_parallel_requests + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :metadata + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_max_budget + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_rpm_limit + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :model_tpm_limit + + sig { returns(T.nilable(T::Array[T.anything])) } + attr_accessor :models + + sig { returns(T.nilable(Hanzoai::UserUpdateParams::ObjectPermission)) } + attr_reader :object_permission + + sig do + params( + object_permission: + T.nilable(Hanzoai::UserUpdateParams::ObjectPermission::OrHash) + ).void + end + attr_writer :object_permission + + sig { returns(T.nilable(String)) } + attr_accessor :password + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :prompts + + sig { returns(T.nilable(Integer)) } + attr_accessor :rpm_limit + + sig { returns(T.nilable(Float)) } + attr_accessor :spend + + sig { returns(T.nilable(String)) } + attr_accessor :team_id + + sig { returns(T.nilable(Integer)) } + attr_accessor :tpm_limit + + sig { returns(T.nilable(String)) } + attr_accessor :user_alias + + sig { returns(T.nilable(String)) } + attr_accessor :user_email + + sig { returns(T.nilable(String)) } + attr_accessor :user_id + + sig { returns(T.nilable(Hanzoai::UserUpdateParams::UserRole::OrSymbol)) } + attr_accessor :user_role + + sig do + params( + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::UserUpdateParams::ObjectPermission::OrHash), + password: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: T.nilable(Hanzoai::UserUpdateParams::UserRole::OrSymbol), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + aliases: nil, + allowed_cache_controls: nil, + blocked: nil, + budget_duration: nil, + config: nil, + duration: nil, + guardrails: nil, + key_alias: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + password: nil, + permissions: nil, + prompts: nil, + rpm_limit: nil, + spend: nil, + team_id: nil, + tpm_limit: nil, + user_alias: nil, + user_email: nil, + user_id: nil, + user_role: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::UserUpdateParams::ObjectPermission), + password: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: T.nilable(Hanzoai::UserUpdateParams::UserRole::OrSymbol), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::UserUpdateParams::ObjectPermission, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agent_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :agents + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_access_groups + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :mcp_servers + + sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) } + attr_accessor :mcp_tool_permissions + + sig { returns(T.nilable(T::Array[String])) } + attr_accessor :vector_stores + + sig do + params( + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + ).returns(T.attached_class) + end + def self.new( + agent_access_groups: nil, + agents: nil, + mcp_access_groups: nil, + mcp_servers: nil, + mcp_tool_permissions: nil, + vector_stores: nil + ) + end + + sig do + override.returns( + { + agent_access_groups: T.nilable(T::Array[String]), + agents: T.nilable(T::Array[String]), + mcp_access_groups: T.nilable(T::Array[String]), + mcp_servers: T.nilable(T::Array[String]), + mcp_tool_permissions: + T.nilable(T::Hash[Symbol, T::Array[String]]), + vector_stores: T.nilable(T::Array[String]) + } + ) + end + def to_hash + end + end + + module UserRole + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias { T.all(Symbol, Hanzoai::UserUpdateParams::UserRole) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + PROXY_ADMIN = + T.let(:proxy_admin, Hanzoai::UserUpdateParams::UserRole::TaggedSymbol) + PROXY_ADMIN_VIEWER = + T.let( + :proxy_admin_viewer, + Hanzoai::UserUpdateParams::UserRole::TaggedSymbol + ) + INTERNAL_USER = + T.let( + :internal_user, + Hanzoai::UserUpdateParams::UserRole::TaggedSymbol + ) + INTERNAL_USER_VIEWER = + T.let( + :internal_user_viewer, + Hanzoai::UserUpdateParams::UserRole::TaggedSymbol + ) + + sig do + override.returns( + T::Array[Hanzoai::UserUpdateParams::UserRole::TaggedSymbol] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/user_update_response.rbi b/rbi/hanzoai/models/user_update_response.rbi new file mode 100644 index 00000000..932d7f74 --- /dev/null +++ b/rbi/hanzoai/models/user_update_response.rbi @@ -0,0 +1,7 @@ +# typed: strong + +module Hanzoai + module Models + UserUpdateResponse = T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/util_get_supported_openai_params_params.rbi b/rbi/hanzoai/models/util_get_supported_openai_params_params.rbi new file mode 100644 index 00000000..a08ac0dc --- /dev/null +++ b/rbi/hanzoai/models/util_get_supported_openai_params_params.rbi @@ -0,0 +1,38 @@ +# typed: strong + +module Hanzoai + module Models + class UtilGetSupportedOpenAIParamsParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any( + Hanzoai::UtilGetSupportedOpenAIParamsParams, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :model + + sig do + params( + model: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(model:, request_options: {}) + end + + sig do + override.returns( + { model: String, request_options: Hanzoai::RequestOptions } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/util_get_supported_openai_params_response.rbi b/rbi/hanzoai/models/util_get_supported_openai_params_response.rbi new file mode 100644 index 00000000..f64fc94e --- /dev/null +++ b/rbi/hanzoai/models/util_get_supported_openai_params_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + UtilGetSupportedOpenAIParamsResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/util_token_counter_params.rbi b/rbi/hanzoai/models/util_token_counter_params.rbi new file mode 100644 index 00000000..61b86e9e --- /dev/null +++ b/rbi/hanzoai/models/util_token_counter_params.rbi @@ -0,0 +1,68 @@ +# typed: strong + +module Hanzoai + module Models + class UtilTokenCounterParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::UtilTokenCounterParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(String) } + attr_accessor :model + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :call_endpoint + + sig { params(call_endpoint: T::Boolean).void } + attr_writer :call_endpoint + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :contents + + sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) } + attr_accessor :messages + + sig { returns(T.nilable(String)) } + attr_accessor :prompt + + sig do + params( + model: String, + call_endpoint: T::Boolean, + contents: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + messages: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + prompt: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new( + model:, + call_endpoint: nil, + contents: nil, + messages: nil, + prompt: nil, + request_options: {} + ) + end + + sig do + override.returns( + { + model: String, + call_endpoint: T::Boolean, + contents: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + messages: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + prompt: T.nilable(String), + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/util_token_counter_response.rbi b/rbi/hanzoai/models/util_token_counter_response.rbi new file mode 100644 index 00000000..1035a150 --- /dev/null +++ b/rbi/hanzoai/models/util_token_counter_response.rbi @@ -0,0 +1,83 @@ +# typed: strong + +module Hanzoai + module Models + class UtilTokenCounterResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::UtilTokenCounterResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(String) } + attr_accessor :model_used + + sig { returns(String) } + attr_accessor :request_model + + sig { returns(String) } + attr_accessor :tokenizer_type + + sig { returns(Integer) } + attr_accessor :total_tokens + + sig { returns(T.nilable(T::Boolean)) } + attr_reader :error + + sig { params(error: T::Boolean).void } + attr_writer :error + + sig { returns(T.nilable(String)) } + attr_accessor :error_message + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :original_response + + sig { returns(T.nilable(Integer)) } + attr_accessor :status_code + + sig do + params( + model_used: String, + request_model: String, + tokenizer_type: String, + total_tokens: Integer, + error: T::Boolean, + error_message: T.nilable(String), + original_response: T.nilable(T::Hash[Symbol, T.anything]), + status_code: T.nilable(Integer) + ).returns(T.attached_class) + end + def self.new( + model_used:, + request_model:, + tokenizer_type:, + total_tokens:, + error: nil, + error_message: nil, + original_response: nil, + status_code: nil + ) + end + + sig do + override.returns( + { + model_used: String, + request_model: String, + tokenizer_type: String, + total_tokens: Integer, + error: T::Boolean, + error_message: T.nilable(String), + original_response: T.nilable(T::Hash[Symbol, T.anything]), + status_code: T.nilable(Integer) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/util_transform_request_params.rbi b/rbi/hanzoai/models/util_transform_request_params.rbi new file mode 100644 index 00000000..e4eb620f --- /dev/null +++ b/rbi/hanzoai/models/util_transform_request_params.rbi @@ -0,0 +1,664 @@ +# typed: strong + +module Hanzoai + module Models + class UtilTransformRequestParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::UtilTransformRequestParams, Hanzoai::Internal::AnyHash) + end + + sig { returns(Hanzoai::UtilTransformRequestParams::CallType::OrSymbol) } + attr_accessor :call_type + + sig { returns(T::Hash[Symbol, T.anything]) } + attr_accessor :request_body + + sig do + params( + call_type: Hanzoai::UtilTransformRequestParams::CallType::OrSymbol, + request_body: T::Hash[Symbol, T.anything], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.attached_class) + end + def self.new(call_type:, request_body:, request_options: {}) + end + + sig do + override.returns( + { + call_type: Hanzoai::UtilTransformRequestParams::CallType::OrSymbol, + request_body: T::Hash[Symbol, T.anything], + request_options: Hanzoai::RequestOptions + } + ) + end + def to_hash + end + + module CallType + extend Hanzoai::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, Hanzoai::UtilTransformRequestParams::CallType) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + EMBEDDING = + T.let( + :embedding, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AEMBEDDING = + T.let( + :aembedding, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + COMPLETION = + T.let( + :completion, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACOMPLETION = + T.let( + :acompletion, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ATEXT_COMPLETION = + T.let( + :atext_completion, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + TEXT_COMPLETION = + T.let( + :text_completion, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + IMAGE_GENERATION = + T.let( + :image_generation, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AIMAGE_GENERATION = + T.let( + :aimage_generation, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + IMAGE_EDIT = + T.let( + :image_edit, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AIMAGE_EDIT = + T.let( + :aimage_edit, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + MODERATION = + T.let( + :moderation, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AMODERATION = + T.let( + :amoderation, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ATRANSCRIPTION = + T.let( + :atranscription, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + TRANSCRIPTION = + T.let( + :transcription, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ASPEECH = + T.let( + :aspeech, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + SPEECH = + T.let( + :speech, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + RERANK = + T.let( + :rerank, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ARERANK = + T.let( + :arerank, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + SEARCH = + T.let( + :search, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ASEARCH = + T.let( + :asearch, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AREALTIME = + T.let( + :_arealtime, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CREATE_BATCH = + T.let( + :create_batch, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_BATCH = + T.let( + :acreate_batch, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ARETRIEVE_BATCH = + T.let( + :aretrieve_batch, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + RETRIEVE_BATCH = + T.let( + :retrieve_batch, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + PASS_THROUGH_ENDPOINT = + T.let( + :pass_through_endpoint, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ANTHROPIC_MESSAGES = + T.let( + :anthropic_messages, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + GET_ASSISTANTS = + T.let( + :get_assistants, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AGET_ASSISTANTS = + T.let( + :aget_assistants, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CREATE_ASSISTANTS = + T.let( + :create_assistants, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_ASSISTANTS = + T.let( + :acreate_assistants, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + DELETE_ASSISTANT = + T.let( + :delete_assistant, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ADELETE_ASSISTANT = + T.let( + :adelete_assistant, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_THREAD = + T.let( + :acreate_thread, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CREATE_THREAD = + T.let( + :create_thread, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AGET_THREAD = + T.let( + :aget_thread, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + GET_THREAD = + T.let( + :get_thread, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + A_ADD_MESSAGE = + T.let( + :a_add_message, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ADD_MESSAGE = + T.let( + :add_message, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AGET_MESSAGES = + T.let( + :aget_messages, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + GET_MESSAGES = + T.let( + :get_messages, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ARUN_THREAD = + T.let( + :arun_thread, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + RUN_THREAD = + T.let( + :run_thread, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ARUN_THREAD_STREAM = + T.let( + :arun_thread_stream, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + RUN_THREAD_STREAM = + T.let( + :run_thread_stream, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AFILE_RETRIEVE = + T.let( + :afile_retrieve, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + FILE_RETRIEVE = + T.let( + :file_retrieve, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AFILE_DELETE = + T.let( + :afile_delete, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + FILE_DELETE = + T.let( + :file_delete, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AFILE_LIST = + T.let( + :afile_list, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + FILE_LIST = + T.let( + :file_list, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_FILE = + T.let( + :acreate_file, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CREATE_FILE = + T.let( + :create_file, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AFILE_CONTENT = + T.let( + :afile_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + FILE_CONTENT = + T.let( + :file_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CREATE_FINE_TUNING_JOB = + T.let( + :create_fine_tuning_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_FINE_TUNING_JOB = + T.let( + :acreate_fine_tuning_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CREATE_VIDEO = + T.let( + :create_video, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_VIDEO = + T.let( + :acreate_video, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVIDEO_RETRIEVE = + T.let( + :avideo_retrieve, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VIDEO_RETRIEVE = + T.let( + :video_retrieve, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVIDEO_CONTENT = + T.let( + :avideo_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VIDEO_CONTENT = + T.let( + :video_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VIDEO_REMIX = + T.let( + :video_remix, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVIDEO_REMIX = + T.let( + :avideo_remix, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VIDEO_LIST = + T.let( + :video_list, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVIDEO_LIST = + T.let( + :avideo_list, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VIDEO_RETRIEVE_JOB = + T.let( + :video_retrieve_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVIDEO_RETRIEVE_JOB = + T.let( + :avideo_retrieve_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VIDEO_DELETE = + T.let( + :video_delete, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVIDEO_DELETE = + T.let( + :avideo_delete, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_FILE_CREATE = + T.let( + :vector_store_file_create, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_FILE_CREATE = + T.let( + :avector_store_file_create, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_FILE_LIST = + T.let( + :vector_store_file_list, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_FILE_LIST = + T.let( + :avector_store_file_list, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_FILE_RETRIEVE = + T.let( + :vector_store_file_retrieve, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_FILE_RETRIEVE = + T.let( + :avector_store_file_retrieve, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_FILE_CONTENT = + T.let( + :vector_store_file_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_FILE_CONTENT = + T.let( + :avector_store_file_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_FILE_UPDATE = + T.let( + :vector_store_file_update, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_FILE_UPDATE = + T.let( + :avector_store_file_update, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_FILE_DELETE = + T.let( + :vector_store_file_delete, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_FILE_DELETE = + T.let( + :avector_store_file_delete, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_CREATE = + T.let( + :vector_store_create, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_CREATE = + T.let( + :avector_store_create, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + VECTOR_STORE_SEARCH = + T.let( + :vector_store_search, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AVECTOR_STORE_SEARCH = + T.let( + :avector_store_search, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CREATE_CONTAINER = + T.let( + :create_container, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_CONTAINER = + T.let( + :acreate_container, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + LIST_CONTAINERS = + T.let( + :list_containers, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ALIST_CONTAINERS = + T.let( + :alist_containers, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + RETRIEVE_CONTAINER = + T.let( + :retrieve_container, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ARETRIEVE_CONTAINER = + T.let( + :aretrieve_container, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + DELETE_CONTAINER = + T.let( + :delete_container, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ADELETE_CONTAINER = + T.let( + :adelete_container, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + LIST_CONTAINER_FILES = + T.let( + :list_container_files, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ALIST_CONTAINER_FILES = + T.let( + :alist_container_files, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + UPLOAD_CONTAINER_FILE = + T.let( + :upload_container_file, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AUPLOAD_CONTAINER_FILE = + T.let( + :aupload_container_file, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACANCEL_FINE_TUNING_JOB = + T.let( + :acancel_fine_tuning_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CANCEL_FINE_TUNING_JOB = + T.let( + :cancel_fine_tuning_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ALIST_FINE_TUNING_JOBS = + T.let( + :alist_fine_tuning_jobs, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + LIST_FINE_TUNING_JOBS = + T.let( + :list_fine_tuning_jobs, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ARETRIEVE_FINE_TUNING_JOB = + T.let( + :aretrieve_fine_tuning_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + RETRIEVE_FINE_TUNING_JOB = + T.let( + :retrieve_fine_tuning_job, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + RESPONSES = + T.let( + :responses, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ARESPONSES = + T.let( + :aresponses, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ALIST_INPUT_ITEMS = + T.let( + :alist_input_items, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + LLM_PASSTHROUGH_ROUTE = + T.let( + :llm_passthrough_route, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ALLM_PASSTHROUGH_ROUTE = + T.let( + :allm_passthrough_route, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + GENERATE_CONTENT = + T.let( + :generate_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AGENERATE_CONTENT = + T.let( + :agenerate_content, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + GENERATE_CONTENT_STREAM = + T.let( + :generate_content_stream, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AGENERATE_CONTENT_STREAM = + T.let( + :agenerate_content_stream, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + OCR = + T.let( + :ocr, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + AOCR = + T.let( + :aocr, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + CALL_MCP_TOOL = + T.let( + :call_mcp_tool, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ASEND_MESSAGE = + T.let( + :asend_message, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + SEND_MESSAGE = + T.let( + :send_message, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + ACREATE_SKILL = + T.let( + :acreate_skill, + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + Hanzoai::UtilTransformRequestParams::CallType::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end +end diff --git a/rbi/hanzoai/models/util_transform_request_response.rbi b/rbi/hanzoai/models/util_transform_request_response.rbi new file mode 100644 index 00000000..ed4ca8a3 --- /dev/null +++ b/rbi/hanzoai/models/util_transform_request_response.rbi @@ -0,0 +1,56 @@ +# typed: strong + +module Hanzoai + module Models + class UtilTransformRequestResponse < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + Hanzoai::Models::UtilTransformRequestResponse, + Hanzoai::Internal::AnyHash + ) + end + + sig { returns(T.nilable(String)) } + attr_accessor :error + + sig { returns(T.nilable(String)) } + attr_accessor :raw_request_api_base + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :raw_request_body + + sig { returns(T.nilable(T::Hash[Symbol, T.anything])) } + attr_accessor :raw_request_headers + + sig do + params( + error: T.nilable(String), + raw_request_api_base: T.nilable(String), + raw_request_body: T.nilable(T::Hash[Symbol, T.anything]), + raw_request_headers: T.nilable(T::Hash[Symbol, T.anything]) + ).returns(T.attached_class) + end + def self.new( + error: nil, + raw_request_api_base: nil, + raw_request_body: nil, + raw_request_headers: nil + ) + end + + sig do + override.returns( + { + error: T.nilable(String), + raw_request_api_base: T.nilable(String), + raw_request_body: T.nilable(T::Hash[Symbol, T.anything]), + raw_request_headers: T.nilable(T::Hash[Symbol, T.anything]) + } + ) + end + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/vertex_ai_create_params.rbi b/rbi/hanzoai/models/vertex_ai_create_params.rbi new file mode 100644 index 00000000..6d4066a3 --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_create_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class VertexAICreateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::VertexAICreateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/vertex_ai_create_response.rbi b/rbi/hanzoai/models/vertex_ai_create_response.rbi new file mode 100644 index 00000000..9944833c --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_create_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + VertexAICreateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/vertex_ai_delete_params.rbi b/rbi/hanzoai/models/vertex_ai_delete_params.rbi new file mode 100644 index 00000000..d3c3e6e3 --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_delete_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class VertexAIDeleteParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::VertexAIDeleteParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/vertex_ai_delete_response.rbi b/rbi/hanzoai/models/vertex_ai_delete_response.rbi new file mode 100644 index 00000000..8aabb6b1 --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_delete_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + VertexAIDeleteResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/vertex_ai_patch_params.rbi b/rbi/hanzoai/models/vertex_ai_patch_params.rbi new file mode 100644 index 00000000..486912fd --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_patch_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class VertexAIPatchParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::VertexAIPatchParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/vertex_ai_patch_response.rbi b/rbi/hanzoai/models/vertex_ai_patch_response.rbi new file mode 100644 index 00000000..08b19536 --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_patch_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + VertexAIPatchResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/vertex_ai_retrieve_params.rbi b/rbi/hanzoai/models/vertex_ai_retrieve_params.rbi new file mode 100644 index 00000000..51d2d9e1 --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_retrieve_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class VertexAIRetrieveParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::VertexAIRetrieveParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/vertex_ai_retrieve_response.rbi b/rbi/hanzoai/models/vertex_ai_retrieve_response.rbi new file mode 100644 index 00000000..4ff4dc82 --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_retrieve_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + VertexAIRetrieveResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/models/vertex_ai_update_params.rbi b/rbi/hanzoai/models/vertex_ai_update_params.rbi new file mode 100644 index 00000000..29079e4d --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_update_params.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Models + class VertexAIUpdateParams < Hanzoai::Internal::Type::BaseModel + extend Hanzoai::Internal::Type::RequestParameters::Converter + include Hanzoai::Internal::Type::RequestParameters + + OrHash = + T.type_alias do + T.any(Hanzoai::VertexAIUpdateParams, Hanzoai::Internal::AnyHash) + end + + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.attached_class + ) + end + def self.new(request_options: {}) + end + + sig { override.returns({ request_options: Hanzoai::RequestOptions }) } + def to_hash + end + end + end +end diff --git a/rbi/hanzoai/models/vertex_ai_update_response.rbi b/rbi/hanzoai/models/vertex_ai_update_response.rbi new file mode 100644 index 00000000..a8f8e3fb --- /dev/null +++ b/rbi/hanzoai/models/vertex_ai_update_response.rbi @@ -0,0 +1,8 @@ +# typed: strong + +module Hanzoai + module Models + VertexAIUpdateResponse = + T.let(T.anything, Hanzoai::Internal::Type::Converter) + end +end diff --git a/rbi/hanzoai/request_options.rbi b/rbi/hanzoai/request_options.rbi new file mode 100644 index 00000000..8ee51b65 --- /dev/null +++ b/rbi/hanzoai/request_options.rbi @@ -0,0 +1,57 @@ +# typed: strong + +module Hanzoai + # Specify HTTP behaviour to use for a specific request. These options supplement + # or override those provided at the client level. + # + # When making a request, you can pass an actual {RequestOptions} instance, or + # simply pass a Hash with symbol keys matching the attributes on this class. + class RequestOptions < Hanzoai::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) + end + + # @api private + sig { params(opts: Hanzoai::RequestOptions::OrHash).void } + def self.validate!(opts) + end + + # Idempotency key to send with request and all associated retries. Will only be + # sent for write requests. + sig { returns(T.nilable(String)) } + attr_accessor :idempotency_key + + # Extra query params to send with the request. These are `.merge`’d into any + # `query` given at the client level. + sig do + returns( + T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]) + ) + end + attr_accessor :extra_query + + # Extra headers to send with the request. These are `.merged`’d into any + # `extra_headers` given at the client level. + sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) } + attr_accessor :extra_headers + + # Extra data to send with the request. These are deep merged into any data + # generated as part of the normal request. + sig { returns(T.nilable(T.anything)) } + attr_accessor :extra_body + + # Maximum number of retries to attempt after a failed initial request. + sig { returns(T.nilable(Integer)) } + attr_accessor :max_retries + + # Request timeout in seconds. + sig { returns(T.nilable(Float)) } + attr_accessor :timeout + + # Returns a new instance of RequestOptions. + sig { params(values: Hanzoai::Internal::AnyHash).returns(T.attached_class) } + def self.new(values = {}) + end + end +end diff --git a/rbi/hanzoai/resources/active.rbi b/rbi/hanzoai/resources/active.rbi new file mode 100644 index 00000000..1bbba0ff --- /dev/null +++ b/rbi/hanzoai/resources/active.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Resources + class Active + # Returns a list of litellm level settings + # + # This is useful for debugging and ensuring the proxy server is configured + # correctly. + # + # Response schema: + # + # ``` + # { + # "alerting": _alerting, + # "litellm.callbacks": litellm_callbacks, + # "litellm.input_callback": litellm_input_callbacks, + # "litellm.failure_callback": litellm_failure_callbacks, + # "litellm.success_callback": litellm_success_callbacks, + # "litellm._async_success_callback": litellm_async_success_callbacks, + # "litellm._async_failure_callback": litellm_async_failure_callbacks, + # "litellm._async_input_callback": litellm_async_input_callbacks, + # "all_litellm_callbacks": all_litellm_callbacks, + # "num_callbacks": len(all_litellm_callbacks), + # "num_alerting": _num_alerting, + # "litellm.request_timeout": litellm.request_timeout, + # } + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def list_callbacks(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/add.rbi b/rbi/hanzoai/resources/add.rbi new file mode 100644 index 00000000..137bdcf9 --- /dev/null +++ b/rbi/hanzoai/resources/add.rbi @@ -0,0 +1,22 @@ +# typed: strong + +module Hanzoai + module Resources + class Add + # Add Allowed Ip + sig do + params( + ip: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def add_allowed_ip(ip:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/anthropic.rbi b/rbi/hanzoai/resources/anthropic.rbi new file mode 100644 index 00000000..c2a37862 --- /dev/null +++ b/rbi/hanzoai/resources/anthropic.rbi @@ -0,0 +1,62 @@ +# typed: strong + +module Hanzoai + module Resources + class Anthropic + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def modify(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/assemblyai.rbi b/rbi/hanzoai/resources/assemblyai.rbi new file mode 100644 index 00000000..0c8f0aeb --- /dev/null +++ b/rbi/hanzoai/resources/assemblyai.rbi @@ -0,0 +1,62 @@ +# typed: strong + +module Hanzoai + module Resources + class Assemblyai + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/assistants.rbi b/rbi/hanzoai/resources/assistants.rbi new file mode 100644 index 00000000..1086298c --- /dev/null +++ b/rbi/hanzoai/resources/assistants.rbi @@ -0,0 +1,49 @@ +# typed: strong + +module Hanzoai + module Resources + class Assistants + # Create assistant + # + # API Reference docs - + # https://platform.openai.com/docs/api-reference/assistants/createAssistant + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create(request_options: {}) + end + + # Returns a list of assistants. + # + # API Reference docs - + # https://platform.openai.com/docs/api-reference/assistants/listAssistants + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def list(request_options: {}) + end + + # Delete assistant + # + # API Reference docs - + # https://platform.openai.com/docs/api-reference/assistants/createAssistant + sig do + params( + assistant_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(assistant_id, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/lib/hanzoai/resources/audio.rbi b/rbi/hanzoai/resources/audio.rbi similarity index 100% rename from rbi/lib/hanzoai/resources/audio.rbi rename to rbi/hanzoai/resources/audio.rbi diff --git a/rbi/hanzoai/resources/audio/speech.rbi b/rbi/hanzoai/resources/audio/speech.rbi new file mode 100644 index 00000000..22ec498a --- /dev/null +++ b/rbi/hanzoai/resources/audio/speech.rbi @@ -0,0 +1,25 @@ +# typed: strong + +module Hanzoai + module Resources + class Audio + class Speech + # Same params as: + # + # https://platform.openai.com/docs/api-reference/audio/createSpeech + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/audio/transcriptions.rbi b/rbi/hanzoai/resources/audio/transcriptions.rbi new file mode 100644 index 00000000..620135c8 --- /dev/null +++ b/rbi/hanzoai/resources/audio/transcriptions.rbi @@ -0,0 +1,26 @@ +# typed: strong + +module Hanzoai + module Resources + class Audio + class Transcriptions + # Same params as: + # + # https://platform.openai.com/docs/api-reference/audio/createTranscription?lang=curl + sig do + params( + file: Hanzoai::Internal::FileInput, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(file:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/azure.rbi b/rbi/hanzoai/resources/azure.rbi new file mode 100644 index 00000000..fe98ca2b --- /dev/null +++ b/rbi/hanzoai/resources/azure.rbi @@ -0,0 +1,87 @@ +# typed: strong + +module Hanzoai + module Resources + class Azure + # Call any azure endpoint using the proxy. + # + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # Call any azure endpoint using the proxy. + # + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # Call any azure endpoint using the proxy. + # + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # Call any azure endpoint using the proxy. + # + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def call(endpoint, request_options: {}) + end + + # Call any azure endpoint using the proxy. + # + # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` + # + # Checks if the deployment id in the url is a litellm model name. If so, it will + # route using the llm_router.allm_passthrough_route. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/batches.rbi b/rbi/hanzoai/resources/batches.rbi new file mode 100644 index 00000000..13e3f2d2 --- /dev/null +++ b/rbi/hanzoai/resources/batches.rbi @@ -0,0 +1,181 @@ +# typed: strong + +module Hanzoai + module Resources + class Batches + sig { returns(Hanzoai::Resources::Batches::Cancel) } + attr_reader :cancel + + # Create large batches of API requests for asynchronous processing. This is the + # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ + # "input_file_id": "file-abc123", + # "endpoint": "/v1/chat/completions", + # "completion_window": "24h" + # }' + # ``` + sig do + params( + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(provider: nil, request_options: {}) + end + + # Retrieves a batch. This is the equivalent of GET + # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/retrieve + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` + sig do + params( + batch_id: String, + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve( + # The ID of the batch to retrieve + batch_id, + provider: nil, + request_options: {} + ) + end + + # Lists This is the equivalent of GET https://api.openai.com/v1/batches/ Supports + # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` + sig do + params( + after: T.nilable(String), + limit: T.nilable(Integer), + provider: T.nilable(String), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list( + after: nil, + limit: nil, + provider: nil, + target_model_names: nil, + request_options: {} + ) + end + + # Cancel a batch. This is the equivalent of POST + # https://api.openai.com/v1/batches/{batch_id}/cancel + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/cancel + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST + # + # ``` + sig do + params( + batch_id: String, + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def cancel_with_provider(batch_id, provider:, request_options: {}) + end + + # Create large batches of API requests for asynchronous processing. This is the + # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ + # "input_file_id": "file-abc123", + # "endpoint": "/v1/chat/completions", + # "completion_window": "24h" + # }' + # ``` + sig do + params( + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create_with_provider(provider, request_options: {}) + end + + # Lists This is the equivalent of GET https://api.openai.com/v1/batches/ Supports + # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` + sig do + params( + provider: String, + after: T.nilable(String), + limit: T.nilable(Integer), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list_with_provider( + provider, + after: nil, + limit: nil, + target_model_names: nil, + request_options: {} + ) + end + + # Retrieves a batch. This is the equivalent of GET + # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/retrieve + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` + sig do + params( + batch_id: String, + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve_with_provider( + # The ID of the batch to retrieve + batch_id, + provider:, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/batches/cancel.rbi b/rbi/hanzoai/resources/batches/cancel.rbi new file mode 100644 index 00000000..b3ba2d25 --- /dev/null +++ b/rbi/hanzoai/resources/batches/cancel.rbi @@ -0,0 +1,36 @@ +# typed: strong + +module Hanzoai + module Resources + class Batches + class Cancel + # Cancel a batch. This is the equivalent of POST + # https://api.openai.com/v1/batches/{batch_id}/cancel + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/batch/cancel + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST + # + # ``` + sig do + params( + batch_id: String, + provider: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def cancel(batch_id, provider: nil, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/bedrock.rbi b/rbi/hanzoai/resources/bedrock.rbi new file mode 100644 index 00000000..4360ec3d --- /dev/null +++ b/rbi/hanzoai/resources/bedrock.rbi @@ -0,0 +1,67 @@ +# typed: strong + +module Hanzoai + module Resources + class Bedrock + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # This is the v1 passthrough for Bedrock. V2 is handled by the `/bedrock/v2` + # endpoint. [Docs](https://docs.litellm.ai/docs/pass_through/bedrock) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/budget.rbi b/rbi/hanzoai/resources/budget.rbi new file mode 100644 index 00000000..f1ac45e0 --- /dev/null +++ b/rbi/hanzoai/resources/budget.rbi @@ -0,0 +1,184 @@ +# typed: strong + +module Hanzoai + module Resources + class Budget + # Create a new budget object. Can apply this to teams, orgs, end-users, keys. + # + # Parameters: + # + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - budget_id: Optional[str] - The id of the budget. If not provided, a new id + # will be generated. + # - max_budget: Optional[float] - The max budget for the budget. + # - soft_budget: Optional[float] - The soft budget for the budget. + # - max_parallel_requests: Optional[int] - The max number of parallel requests for + # the budget. + # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. + # - rpm_limit: Optional[int] - The requests per minute limit for the budget. + # - model_max_budget: Optional[dict] - Specify max budget for a given model. + # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", + # "tpm_limit": 100000, "rpm_limit": 100000}} + # - budget_reset_at: Optional[datetime] - Datetime when the initial budget is + # reset. Default is now. + sig do + params( + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + budget_reset_at: T.nilable(Time), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: + T.nilable( + T::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget::OrHash] + ), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + # Max duration budget should be set for (e.g. '1hr', '1d', '28d') + budget_duration: nil, + # The unique budget id. + budget_id: nil, + # Datetime when the budget is reset + budget_reset_at: nil, + # Requests will fail if this budget (in USD) is exceeded. + max_budget: nil, + # Max concurrent requests allowed for this budget id. + max_parallel_requests: nil, + # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + model_max_budget: nil, + # Max requests per minute, allowed for this budget id. + rpm_limit: nil, + # Requests will NOT fail if this is exceeded. Will fire alerting though. + soft_budget: nil, + # Max tokens per minute, allowed for this budget id. + tpm_limit: nil, + request_options: {} + ) + end + + # Update an existing budget object. + # + # Parameters: + # + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - budget_id: Optional[str] - The id of the budget. If not provided, a new id + # will be generated. + # - max_budget: Optional[float] - The max budget for the budget. + # - soft_budget: Optional[float] - The soft budget for the budget. + # - max_parallel_requests: Optional[int] - The max number of parallel requests for + # the budget. + # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. + # - rpm_limit: Optional[int] - The requests per minute limit for the budget. + # - model_max_budget: Optional[dict] - Specify max budget for a given model. + # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", + # "tpm_limit": 100000, "rpm_limit": 100000}} + # - budget_reset_at: Optional[datetime] - Update the Datetime when the budget was + # last reset. + sig do + params( + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + budget_reset_at: T.nilable(Time), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: + T.nilable( + T::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget::OrHash] + ), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update( + # Max duration budget should be set for (e.g. '1hr', '1d', '28d') + budget_duration: nil, + # The unique budget id. + budget_id: nil, + # Datetime when the budget is reset + budget_reset_at: nil, + # Requests will fail if this budget (in USD) is exceeded. + max_budget: nil, + # Max concurrent requests allowed for this budget id. + max_parallel_requests: nil, + # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + model_max_budget: nil, + # Max requests per minute, allowed for this budget id. + rpm_limit: nil, + # Requests will NOT fail if this is exceeded. Will fire alerting though. + soft_budget: nil, + # Max tokens per minute, allowed for this budget id. + tpm_limit: nil, + request_options: {} + ) + end + + # List all the created budgets in proxy db. Used on Admin UI. + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def list(request_options: {}) + end + + # Delete budget + # + # Parameters: + # + # - id: str - The budget id to delete + sig do + params( + id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(id:, request_options: {}) + end + + # Get the budget id specific information + # + # Parameters: + # + # - budgets: List[str] - The list of budget ids to get information for + sig do + params( + budgets: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def info(budgets:, request_options: {}) + end + + # Get list of configurable params + current value for a budget item + description + # of each field + # + # Used on Admin UI. + # + # Query Parameters: + # + # - budget_id: str - The budget id to get information for + sig do + params( + budget_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def settings(budget_id:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/cache.rbi b/rbi/hanzoai/resources/cache.rbi new file mode 100644 index 00000000..5af7b00b --- /dev/null +++ b/rbi/hanzoai/resources/cache.rbi @@ -0,0 +1,61 @@ +# typed: strong + +module Hanzoai + module Resources + class Cache + sig { returns(Hanzoai::Resources::Cache::Redis) } + attr_reader :redis + + # Endpoint for deleting a key from the cache. All responses from litellm proxy + # have `x-litellm-cache-key` in the headers + # + # Parameters: + # + # - **keys**: _Optional[List[str]]_ - A list of keys to delete from the cache. + # Example {"keys": ["key1", "key2"]} + # + # ```shell + # curl -X POST "http://0.0.0.0:4000/cache/delete" -H "Authorization: Bearer sk-1234" -d '{"keys": ["key1", "key2"]}' + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def delete(request_options: {}) + end + + # A function to flush all items from the cache. (All items will be deleted from + # the cache with this) Raises HTTPException if the cache is not initialized or if + # the cache type does not support flushing. Returns a dictionary with the status + # of the operation. + # + # Usage: + # + # ``` + # curl -X POST http://0.0.0.0:4000/cache/flushall -H "Authorization: Bearer sk-1234" + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def flush_all(request_options: {}) + end + + # Endpoint for checking if cache can be pinged + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + Hanzoai::Models::CachePingResponse + ) + end + def ping(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/cache/redis.rbi b/rbi/hanzoai/resources/cache/redis.rbi new file mode 100644 index 00000000..ec83d25d --- /dev/null +++ b/rbi/hanzoai/resources/cache/redis.rbi @@ -0,0 +1,23 @@ +# typed: strong + +module Hanzoai + module Resources + class Cache + class Redis + # Endpoint for getting /redis/info + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def retrieve_info(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/lib/hanzoai/resources/chat.rbi b/rbi/hanzoai/resources/chat.rbi similarity index 100% rename from rbi/lib/hanzoai/resources/chat.rbi rename to rbi/hanzoai/resources/chat.rbi diff --git a/rbi/hanzoai/resources/chat/completions.rbi b/rbi/hanzoai/resources/chat/completions.rbi new file mode 100644 index 00000000..bc714bf2 --- /dev/null +++ b/rbi/hanzoai/resources/chat/completions.rbi @@ -0,0 +1,116 @@ +# typed: strong + +module Hanzoai + module Resources + class Chat + class Completions + # Follows the exact same API spec as + # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` + # + # ```bash + # curl -X POST http://localhost:4000/v1/chat/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-4o", + # "messages": [ + # { + # "role": "user", + # "content": "Hello!" + # } + # ] + # }' + # ``` + sig do + params( + messages: + T::Array[ + T.any( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::OrHash, + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::OrHash + ) + ], + model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable(Hanzoai::Chat::CompletionCreateParams::Stop::Variants), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::Chat::CompletionCreateParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + messages:, + model:, + caching: nil, + context_window_fallback_dict: nil, + fallbacks: nil, + frequency_penalty: nil, + function_call: nil, + functions: nil, + guardrails: nil, + logit_bias: nil, + logprobs: nil, + max_tokens: nil, + metadata: nil, + n: nil, + num_retries: nil, + parallel_tool_calls: nil, + presence_penalty: nil, + response_format: nil, + seed: nil, + service_tier: nil, + stop: nil, + stream: nil, + stream_options: nil, + temperature: nil, + tool_choice: nil, + tools: nil, + top_logprobs: nil, + top_p: nil, + user: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/cohere.rbi b/rbi/hanzoai/resources/cohere.rbi new file mode 100644 index 00000000..81e3947b --- /dev/null +++ b/rbi/hanzoai/resources/cohere.rbi @@ -0,0 +1,62 @@ +# typed: strong + +module Hanzoai + module Resources + class Cohere + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/cohere) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def modify(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/completions.rbi b/rbi/hanzoai/resources/completions.rbi new file mode 100644 index 00000000..9c7ff880 --- /dev/null +++ b/rbi/hanzoai/resources/completions.rbi @@ -0,0 +1,35 @@ +# typed: strong + +module Hanzoai + module Resources + class Completions + # Follows the exact same API spec as + # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` + # + # ```bash + # curl -X POST http://localhost:4000/v1/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-3.5-turbo-instruct", + # "prompt": "Once upon a time", + # "max_tokens": 50, + # "temperature": 0.7 + # }' + # ``` + sig do + params( + model: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(model: nil, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/lib/hanzoai/resources/config.rbi b/rbi/hanzoai/resources/config.rbi similarity index 100% rename from rbi/lib/hanzoai/resources/config.rbi rename to rbi/hanzoai/resources/config.rbi diff --git a/rbi/hanzoai/resources/config/pass_through_endpoint.rbi b/rbi/hanzoai/resources/config/pass_through_endpoint.rbi new file mode 100644 index 00000000..a04a4a69 --- /dev/null +++ b/rbi/hanzoai/resources/config/pass_through_endpoint.rbi @@ -0,0 +1,147 @@ +# typed: strong + +module Hanzoai + module Resources + class Config + class PassThroughEndpoint + # Create new pass-through endpoint + sig do + params( + path: String, + target: String, + id: T.nilable(String), + auth: T::Boolean, + cost_per_request: Float, + guardrails: + T.nilable( + T::Hash[ + Symbol, + T.nilable( + Hanzoai::Config::PassThroughGenericEndpoint::Guardrail::OrHash + ) + ] + ), + headers: T::Hash[Symbol, T.anything], + include_subpath: T::Boolean, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + # The route to be added to the LiteLLM Proxy Server. + path:, + # The URL to which requests for this path should be forwarded. + target:, + # Optional unique identifier for the pass-through endpoint. If not provided, + # endpoints will be identified by path for backwards compatibility. + id: nil, + # Whether authentication is required for the pass-through endpoint. If True, + # requests to the endpoint will require a valid LiteLLM API key. + auth: nil, + # The USD cost per request to the target endpoint. This is used to calculate the + # cost of the request to the target endpoint. + cost_per_request: nil, + # Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # names, values are optional settings for field targeting. When set, all + # org/team/key level guardrails will also execute. Defaults to None (no guardrails + # execute). + guardrails: nil, + # Key-value pairs of headers to be forwarded with the request. You can set any key + # value pair here and it will be forwarded to your target endpoint + headers: nil, + # If True, requests to subpaths of the path will be forwarded to the target + # endpoint. For example, if the path is /bria and include_subpath is True, + # requests to /bria/v1/text-to-image/base/2.3 will be forwarded to the target + # endpoint. + include_subpath: nil, + request_options: {} + ) + end + + # Update a pass-through endpoint by ID. + sig do + params( + endpoint_id: String, + path: String, + target: String, + id: T.nilable(String), + auth: T::Boolean, + cost_per_request: Float, + guardrails: + T.nilable( + T::Hash[ + Symbol, + T.nilable( + Hanzoai::Config::PassThroughGenericEndpoint::Guardrail::OrHash + ) + ] + ), + headers: T::Hash[Symbol, T.anything], + include_subpath: T::Boolean, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update( + endpoint_id, + # The route to be added to the LiteLLM Proxy Server. + path:, + # The URL to which requests for this path should be forwarded. + target:, + # Optional unique identifier for the pass-through endpoint. If not provided, + # endpoints will be identified by path for backwards compatibility. + id: nil, + # Whether authentication is required for the pass-through endpoint. If True, + # requests to the endpoint will require a valid LiteLLM API key. + auth: nil, + # The USD cost per request to the target endpoint. This is used to calculate the + # cost of the request to the target endpoint. + cost_per_request: nil, + # Guardrails configuration for this passthrough endpoint. Dict keys are guardrail + # names, values are optional settings for field targeting. When set, all + # org/team/key level guardrails will also execute. Defaults to None (no guardrails + # execute). + guardrails: nil, + # Key-value pairs of headers to be forwarded with the request. You can set any key + # value pair here and it will be forwarded to your target endpoint + headers: nil, + # If True, requests to subpaths of the path will be forwarded to the target + # endpoint. For example, if the path is /bria and include_subpath is True, + # requests to /bria/v1/text-to-image/base/2.3 will be forwarded to the target + # endpoint. + include_subpath: nil, + request_options: {} + ) + end + + # GET configured pass through endpoint. + # + # If no endpoint_id given, return all configured endpoints. + sig do + params( + endpoint_id: T.nilable(String), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Config::PassThroughEndpointResponse) + end + def list(endpoint_id: nil, team_id: nil, request_options: {}) + end + + # Delete a pass-through endpoint by ID. + # + # Returns - the deleted endpoint + sig do + params( + endpoint_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Config::PassThroughEndpointResponse) + end + def delete(endpoint_id:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/credentials.rbi b/rbi/hanzoai/resources/credentials.rbi new file mode 100644 index 00000000..574bb6fc --- /dev/null +++ b/rbi/hanzoai/resources/credentials.rbi @@ -0,0 +1,55 @@ +# typed: strong + +module Hanzoai + module Resources + class Credentials + # [BETA] endpoint. This might change unexpectedly. Stores credential in DB. + # Reloads credentials in memory. + sig do + params( + credential_info: T::Hash[Symbol, T.anything], + credential_name: String, + credential_values: T.nilable(T::Hash[Symbol, T.anything]), + model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + credential_info:, + credential_name:, + credential_values: nil, + model_id: nil, + request_options: {} + ) + end + + # [BETA] endpoint. This might change unexpectedly. + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def list(request_options: {}) + end + + # [BETA] endpoint. This might change unexpectedly. + sig do + params( + credential_name: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete( + # The credential name, percent-decoded; may contain slashes + credential_name, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/customer.rbi b/rbi/hanzoai/resources/customer.rbi new file mode 100644 index 00000000..dbf06570 --- /dev/null +++ b/rbi/hanzoai/resources/customer.rbi @@ -0,0 +1,284 @@ +# typed: strong + +module Hanzoai + module Resources + class Customer + # Allow creating a new Customer + # + # Parameters: + # + # - user_id: str - The unique identifier for the user. + # - alias: Optional[str] - A human-friendly alias for the user. + # - blocked: bool - Flag to allow or disallow requests for this end-user. Default + # is False. + # - max_budget: Optional[float] - The maximum budget allocated to the user. Either + # 'max_budget' or 'budget_id' should be provided, not both. + # - budget_id: Optional[str] - The identifier for an existing budget allocated to + # the user. Either 'max_budget' or 'budget_id' should be provided, not both. + # - allowed_model_region: Optional[Union[Literal["eu"], Literal["us"]]] - Require + # all user requests to use models in this specific region. + # - default_model: Optional[str] - If no equivalent model in the allowed region, + # default all requests to this model. + # - metadata: Optional[dict] = Metadata for customer, store information for + # customer. Example metadata = {"data_training_opt_out": True} + # - budget_duration: Optional[str] - Budget is reset at the end of specified + # duration. If not set, budget is never reset. You can set duration as seconds + # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). + # - tpm_limit: Optional[int] - [Not Implemented Yet] Specify tpm limit for a given + # customer (Tokens per minute) + # - rpm_limit: Optional[int] - [Not Implemented Yet] Specify rpm limit for a given + # customer (Requests per minute) + # - model_max_budget: Optional[dict] - [Not Implemented Yet] Specify max budget + # for a given model. Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, + # "budget_duration": "1d"}} + # - max_parallel_requests: Optional[int] - [Not Implemented Yet] Specify max + # parallel requests for a given customer. + # - soft_budget: Optional[float] - [Not Implemented Yet] Get alerts when customer + # crosses given budget, doesn't block requests. + # - spend: Optional[float] - Specify initial spend for a given customer. + # - budget_reset_at: Optional[str] - Specify the date and time when the budget + # should be reset. + # + # - Allow specifying allowed regions + # - Allow specifying default model + # + # Example curl: + # + # ``` + # curl --location 'http://0.0.0.0:4000/customer/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_id" : "ishaan-jaff-3", + # "allowed_region": "eu", + # "budget_id": "free_tier", + # "default_model": "azure/gpt-3.5-turbo-eu" <- all calls from this user, use this model? + # }' + # + # # return end-user object + # ``` + # + # NOTE: This used to be called `/end_user/new`, we will still be maintaining + # compatibility for /end_user/XXX for these endpoints + sig do + params( + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::CustomerCreateParams::AllowedModelRegion::OrSymbol + ), + blocked: T::Boolean, + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + budget_reset_at: T.nilable(Time), + default_model: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + model_max_budget: + T.nilable( + T::Hash[ + Symbol, + Hanzoai::CustomerCreateParams::ModelMaxBudget::OrHash + ] + ), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + user_id:, + alias_: nil, + allowed_model_region: nil, + blocked: nil, + # Max duration budget should be set for (e.g. '1hr', '1d', '28d') + budget_duration: nil, + budget_id: nil, + # Datetime when the budget is reset + budget_reset_at: nil, + default_model: nil, + # Requests will fail if this budget (in USD) is exceeded. + max_budget: nil, + # Max concurrent requests allowed for this budget id. + max_parallel_requests: nil, + # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', + # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) + model_max_budget: nil, + # Max requests per minute, allowed for this budget id. + rpm_limit: nil, + # Requests will NOT fail if this is exceeded. Will fire alerting though. + soft_budget: nil, + spend: nil, + # Max tokens per minute, allowed for this budget id. + tpm_limit: nil, + request_options: {} + ) + end + + # Example curl + # + # Parameters: + # + # - user_id: str + # - alias: Optional[str] = None # human-friendly alias + # - blocked: bool = False # allow/disallow requests for this end-user + # - max_budget: Optional[float] = None + # - budget_id: Optional[str] = None # give either a budget_id or max_budget + # - allowed_model_region: Optional[AllowedModelRegion] = ( None # require all user + # requests to use models in this specific region ) + # - default_model: Optional[str] = ( None # if no equivalent model in allowed + # region - default all requests to this model ) + # + # Example curl: + # + # ``` + # curl --location 'http://0.0.0.0:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_id": "test-litellm-user-4", + # "budget_id": "paid_tier" + # }' + # + # See below for all params + # ``` + sig do + params( + user_id: String, + alias_: T.nilable(String), + allowed_model_region: + T.nilable( + Hanzoai::CustomerUpdateParams::AllowedModelRegion::OrSymbol + ), + blocked: T::Boolean, + budget_id: T.nilable(String), + default_model: T.nilable(String), + max_budget: T.nilable(Float), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update( + user_id:, + alias_: nil, + allowed_model_region: nil, + blocked: nil, + budget_id: nil, + default_model: nil, + max_budget: nil, + request_options: {} + ) + end + + # [Admin-only] List all available customers + # + # Example curl: + # + # ``` + # curl --location --request GET 'http://0.0.0.0:4000/customer/list' --header 'Authorization: Bearer sk-1234' + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T::Array[Hanzoai::LiteLlmEndUserTable] + ) + end + def list(request_options: {}) + end + + # Delete multiple end-users. + # + # Parameters: + # + # - user_ids (List[str], required): The unique `user_id`s for the users to delete + # + # Example curl: + # + # ``` + # curl --location 'http://0.0.0.0:4000/customer/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_ids" :["ishaan-jaff-5"] + # }' + # + # See below for all params + # ``` + sig do + params( + user_ids: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(user_ids:, request_options: {}) + end + + # [BETA] Reject calls with this end-user id + # + # Parameters: + # + # - user_ids (List[str], required): The unique `user_id`s for the users to block + # + # (any /chat/completion call with this user={end-user-id} param, will be + # rejected.) + # + # ``` + # curl -X POST "http://0.0.0.0:8000/user/block" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "user_ids": [, ...] + # }' + # ``` + sig do + params( + user_ids: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def block(user_ids:, request_options: {}) + end + + # Get information about an end-user. An `end_user` is a customer (external user) + # of the proxy. + # + # Parameters: + # + # - end_user_id (str, required): The unique identifier for the end-user + # + # Example curl: + # + # ``` + # curl -X GET 'http://localhost:4000/customer/info?end_user_id=test-litellm-user-4' -H 'Authorization: Bearer sk-1234' + # ``` + sig do + params( + end_user_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::LiteLlmEndUserTable) + end + def retrieve_info( + # End User ID in the request parameters + end_user_id:, + request_options: {} + ) + end + + # [BETA] Unblock calls with this user id + # + # Example + # + # ``` + # curl -X POST "http://0.0.0.0:8000/user/unblock" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "user_ids": [, ...] + # }' + # ``` + sig do + params( + user_ids: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def unblock(user_ids:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/delete.rbi b/rbi/hanzoai/resources/delete.rbi new file mode 100644 index 00000000..a5b50bc8 --- /dev/null +++ b/rbi/hanzoai/resources/delete.rbi @@ -0,0 +1,22 @@ +# typed: strong + +module Hanzoai + module Resources + class Delete + # Delete Allowed Ip + sig do + params( + ip: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create_allowed_ip(ip:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/embeddings.rbi b/rbi/hanzoai/resources/embeddings.rbi new file mode 100644 index 00000000..457bb725 --- /dev/null +++ b/rbi/hanzoai/resources/embeddings.rbi @@ -0,0 +1,63 @@ +# typed: strong + +module Hanzoai + module Resources + class Embeddings + # Follows the exact same API spec as + # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` + # + # ```bash + # curl -X POST http://localhost:4000/v1/embeddings + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "text-embedding-ada-002", + # "input": "The quick brown fox jumps over the lazy dog" + # }' + # ``` + sig do + params( + model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable( + Hanzoai::EmbeddingCreateParams::CustomLlmProvider::Variants + ), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + model:, + api_base: nil, + api_key: nil, + api_type: nil, + api_version: nil, + caching: nil, + custom_llm_provider: nil, + input: nil, + litellm_call_id: nil, + litellm_logging_obj: nil, + logger_fn: nil, + timeout: nil, + user: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/engines.rbi b/rbi/hanzoai/resources/engines.rbi new file mode 100644 index 00000000..eb91a4eb --- /dev/null +++ b/rbi/hanzoai/resources/engines.rbi @@ -0,0 +1,89 @@ +# typed: strong + +module Hanzoai + module Resources + class Engines + sig { returns(Hanzoai::Resources::Engines::Chat) } + attr_reader :chat + + # Follows the exact same API spec as + # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` + # + # ```bash + # curl -X POST http://localhost:4000/v1/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-3.5-turbo-instruct", + # "prompt": "Once upon a time", + # "max_tokens": 50, + # "temperature": 0.7 + # }' + # ``` + sig do + params( + model: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def complete(model, request_options: {}) + end + + # Follows the exact same API spec as + # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` + # + # ```bash + # curl -X POST http://localhost:4000/v1/embeddings + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "text-embedding-ada-002", + # "input": "The quick brown fox jumps over the lazy dog" + # }' + # ``` + sig do + params( + path_model: String, + body_model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable(Hanzoai::EngineEmbedParams::CustomLlmProvider::Variants), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def embed( + path_model, + body_model:, + api_base: nil, + api_key: nil, + api_type: nil, + api_version: nil, + caching: nil, + custom_llm_provider: nil, + input: nil, + litellm_call_id: nil, + litellm_logging_obj: nil, + logger_fn: nil, + timeout: nil, + user: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/engines/chat.rbi b/rbi/hanzoai/resources/engines/chat.rbi new file mode 100644 index 00000000..caf63c8e --- /dev/null +++ b/rbi/hanzoai/resources/engines/chat.rbi @@ -0,0 +1,118 @@ +# typed: strong + +module Hanzoai + module Resources + class Engines + class Chat + # Follows the exact same API spec as + # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` + # + # ```bash + # curl -X POST http://localhost:4000/v1/chat/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-4o", + # "messages": [ + # { + # "role": "user", + # "content": "Hello!" + # } + # ] + # }' + # ``` + sig do + params( + path_model: String, + messages: + T::Array[ + T.any( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::OrHash, + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::OrHash + ) + ], + body_model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable(Hanzoai::Engines::ChatCompleteParams::Stop::Variants), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::Engines::ChatCompleteParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def complete( + path_model, + messages:, + body_model:, + caching: nil, + context_window_fallback_dict: nil, + fallbacks: nil, + frequency_penalty: nil, + function_call: nil, + functions: nil, + guardrails: nil, + logit_bias: nil, + logprobs: nil, + max_tokens: nil, + metadata: nil, + n: nil, + num_retries: nil, + parallel_tool_calls: nil, + presence_penalty: nil, + response_format: nil, + seed: nil, + service_tier: nil, + stop: nil, + stream: nil, + stream_options: nil, + temperature: nil, + tool_choice: nil, + tools: nil, + top_logprobs: nil, + top_p: nil, + user: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/eu_assemblyai.rbi b/rbi/hanzoai/resources/eu_assemblyai.rbi new file mode 100644 index 00000000..70179f95 --- /dev/null +++ b/rbi/hanzoai/resources/eu_assemblyai.rbi @@ -0,0 +1,62 @@ +# typed: strong + +module Hanzoai + module Resources + class EuAssemblyai + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # Assemblyai Proxy Route + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/files.rbi b/rbi/hanzoai/resources/files.rbi new file mode 100644 index 00000000..a3a4bc91 --- /dev/null +++ b/rbi/hanzoai/resources/files.rbi @@ -0,0 +1,124 @@ +# typed: strong + +module Hanzoai + module Resources + class Files + sig { returns(Hanzoai::Resources::Files::Content) } + attr_reader :content + + # Upload a file that can be used across - Assistants API, Batch API This is the + # equivalent of POST https://api.openai.com/v1/files + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/create + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" -F purpose="batch" -F file="@mydata.jsonl" + # -F expires_after[anchor]="created_at" -F expires_after[seconds]=2592000 + # ``` + sig do + params( + provider: String, + file: Hanzoai::Internal::FileInput, + purpose: String, + custom_llm_provider: String, + litellm_metadata: T.nilable(String), + target_model_names: String, + target_storage: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + provider, + file:, + purpose:, + custom_llm_provider: nil, + litellm_metadata: nil, + target_model_names: nil, + target_storage: nil, + request_options: {} + ) + end + + # Returns information about a specific file. that can be used across - Assistants + # API, Batch API This is the equivalent of GET + # https://api.openai.com/v1/files/{file_id} + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/retrieve + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/files/file-abc123 -H "Authorization: Bearer sk-1234" + # + # ``` + sig do + params( + file_id: String, + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(file_id, provider:, request_options: {}) + end + + # Returns information about a specific file. that can be used across - Assistants + # API, Batch API This is the equivalent of GET https://api.openai.com/v1/files/ + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/list + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" + # + # ``` + sig do + params( + provider: String, + purpose: T.nilable(String), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list( + provider, + purpose: nil, + target_model_names: nil, + request_options: {} + ) + end + + # Deletes a specified file. that can be used across - Assistants API, Batch API + # This is the equivalent of DELETE https://api.openai.com/v1/files/{file_id} + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/delete + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/files/file-abc123 -X DELETE -H "Authorization: Bearer $OPENAI_API_KEY" + # + # ``` + sig do + params( + file_id: String, + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(file_id, provider:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/files/content.rbi b/rbi/hanzoai/resources/files/content.rbi new file mode 100644 index 00000000..645c3311 --- /dev/null +++ b/rbi/hanzoai/resources/files/content.rbi @@ -0,0 +1,37 @@ +# typed: strong + +module Hanzoai + module Resources + class Files + class Content + # Returns information about a specific file. that can be used across - Assistants + # API, Batch API This is the equivalent of GET + # https://api.openai.com/v1/files/{file_id}/content + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/files/retrieve-contents + # + # Example Curl + # + # ``` + # curl http://localhost:4000/v1/files/file-abc123/content -H "Authorization: Bearer sk-1234" + # + # ``` + sig do + params( + file_id: String, + provider: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(file_id, provider:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/lib/hanzoai/resources/fine_tuning.rbi b/rbi/hanzoai/resources/fine_tuning.rbi similarity index 100% rename from rbi/lib/hanzoai/resources/fine_tuning.rbi rename to rbi/hanzoai/resources/fine_tuning.rbi diff --git a/rbi/hanzoai/resources/fine_tuning/jobs.rbi b/rbi/hanzoai/resources/fine_tuning/jobs.rbi new file mode 100644 index 00000000..4f136ccc --- /dev/null +++ b/rbi/hanzoai/resources/fine_tuning/jobs.rbi @@ -0,0 +1,121 @@ +# typed: strong + +module Hanzoai + module Resources + class FineTuning + class Jobs + sig { returns(Hanzoai::Resources::FineTuning::Jobs::Cancel) } + attr_reader :cancel + + # Creates a fine-tuning job which begins the process of creating a new model from + # a given dataset. This is the equivalent of POST + # https://api.openai.com/v1/fine_tuning/jobs + # + # Supports Identical Params as: + # https://platform.openai.com/docs/api-reference/fine-tuning/create + # + # Example Curl: + # + # ``` + # curl http://localhost:4000/v1/fine_tuning/jobs -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "model": "gpt-3.5-turbo", + # "training_file": "file-abc123", + # "hyperparameters": { + # "n_epochs": 4 + # } + # }' + # ``` + sig do + params( + model: String, + training_file: String, + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::CustomLlmProvider::OrSymbol + ), + hyperparameters: + T.nilable( + Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::OrHash + ), + integrations: T.nilable(T::Array[String]), + seed: T.nilable(Integer), + suffix: T.nilable(String), + validation_file: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + model:, + training_file:, + custom_llm_provider: nil, + hyperparameters: nil, + integrations: nil, + seed: nil, + suffix: nil, + validation_file: nil, + request_options: {} + ) + end + + # Retrieves a fine-tuning job. This is the equivalent of GET + # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id} + # + # Supported Query Params: + # + # - `custom_llm_provider`: Name of the LiteLLM provider + # - `fine_tuning_job_id`: The ID of the fine-tuning job to retrieve. + sig do + params( + fine_tuning_job_id: String, + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol + ), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve( + fine_tuning_job_id, + custom_llm_provider: nil, + request_options: {} + ) + end + + # Lists fine-tuning jobs for the organization. This is the equivalent of GET + # https://api.openai.com/v1/fine_tuning/jobs + # + # Supported Query Params: + # + # - `custom_llm_provider`: Name of the LiteLLM provider + # - `after`: Identifier for the last job from the previous pagination request. + # - `limit`: Number of fine-tuning jobs to retrieve (default is 20). + sig do + params( + after: T.nilable(String), + custom_llm_provider: + T.nilable( + Hanzoai::FineTuning::JobListParams::CustomLlmProvider::OrSymbol + ), + limit: T.nilable(Integer), + target_model_names: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list( + after: nil, + custom_llm_provider: nil, + limit: nil, + # Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini' + target_model_names: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/fine_tuning/jobs/cancel.rbi b/rbi/hanzoai/resources/fine_tuning/jobs/cancel.rbi new file mode 100644 index 00000000..64b45dc6 --- /dev/null +++ b/rbi/hanzoai/resources/fine_tuning/jobs/cancel.rbi @@ -0,0 +1,34 @@ +# typed: strong + +module Hanzoai + module Resources + class FineTuning + class Jobs + class Cancel + # Cancel a fine-tuning job. + # + # This is the equivalent of POST + # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel + # + # Supported Query Params: + # + # - `custom_llm_provider`: Name of the LiteLLM provider + # - `fine_tuning_job_id`: The ID of the fine-tuning job to cancel. + sig do + params( + fine_tuning_job_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(fine_tuning_job_id, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end + end +end diff --git a/rbi/hanzoai/resources/gemini.rbi b/rbi/hanzoai/resources/gemini.rbi new file mode 100644 index 00000000..bc849b55 --- /dev/null +++ b/rbi/hanzoai/resources/gemini.rbi @@ -0,0 +1,62 @@ +# typed: strong + +module Hanzoai + module Resources + class Gemini + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # [Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/lib/hanzoai/resources/global.rbi b/rbi/hanzoai/resources/global.rbi similarity index 100% rename from rbi/lib/hanzoai/resources/global.rbi rename to rbi/hanzoai/resources/global.rbi diff --git a/rbi/hanzoai/resources/global/spend.rbi b/rbi/hanzoai/resources/global/spend.rbi new file mode 100644 index 00000000..ea4281c5 --- /dev/null +++ b/rbi/hanzoai/resources/global/spend.rbi @@ -0,0 +1,107 @@ +# typed: strong + +module Hanzoai + module Resources + class Global + class Spend + # LiteLLM Enterprise - View Spend Per Request Tag. Used by LiteLLM UI + # + # Example Request: + # + # ``` + # curl -X GET "http://0.0.0.0:4000/spend/tags" -H "Authorization: Bearer sk-1234" + # ``` + # + # Spend with Start Date and End Date + # + # ``` + # curl -X GET "http://0.0.0.0:4000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" + # ``` + sig do + params( + end_date: T.nilable(String), + start_date: T.nilable(String), + tags: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns( + T::Array[Hanzoai::Models::Global::SpendListTagsResponseItem] + ) + end + def list_tags( + # Time till which to view key spend + end_date: nil, + # Time from which to start viewing key spend + start_date: nil, + # comman separated tags to filter on + tags: nil, + request_options: {} + ) + end + + # ADMIN ONLY / MASTER KEY Only Endpoint + # + # Globally reset spend for All API Keys and Teams, maintain LiteLLM_SpendLogs + # + # 1. LiteLLM_SpendLogs will maintain the logs on spend, no data gets deleted from + # there + # 2. LiteLLM_VerificationTokens spend will be set = 0 + # 3. LiteLLM_TeamTable spend will be set = 0 + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def reset(request_options: {}) + end + + # Get Daily Spend per Team, based on specific startTime and endTime. Per team, + # view usage by each key, model [ { "group-by-day": "2024-05-10", "teams": [ { + # "team_name": "team-1" "spend": 10, "keys": [ "key": "1213", "usage": { + # "model-1": { "cost": 12.50, "input_tokens": 1000, "output_tokens": 5000, + # "requests": 100 }, "audio-modelname1": { "cost": 25.50, "seconds": 25, + # "requests": 50 }, } } ] ] } + sig do + params( + api_key: T.nilable(String), + customer_id: T.nilable(String), + end_date: T.nilable(String), + group_by: + T.nilable( + Hanzoai::Global::SpendRetrieveReportParams::GroupBy::OrSymbol + ), + internal_user_id: T.nilable(String), + start_date: T.nilable(String), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns( + T::Array[Hanzoai::Models::Global::SpendRetrieveReportResponseItem] + ) + end + def retrieve_report( + # View spend for a specific api_key. Example api_key='sk-1234 + api_key: nil, + # View spend for a specific customer_id. Example customer_id='1234. Can be used in + # conjunction with team_id as well. + customer_id: nil, + # Time till which to view spend + end_date: nil, + # Group spend by internal team or customer or api_key + group_by: nil, + # View spend for a specific internal_user_id. Example internal_user_id='1234 + internal_user_id: nil, + # Time from which to start viewing spend + start_date: nil, + # View spend for a specific team_id. Example team_id='1234 + team_id: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/guardrails.rbi b/rbi/hanzoai/resources/guardrails.rbi new file mode 100644 index 00000000..26030423 --- /dev/null +++ b/rbi/hanzoai/resources/guardrails.rbi @@ -0,0 +1,54 @@ +# typed: strong + +module Hanzoai + module Resources + class Guardrails + # List the guardrails that are available on the proxy server + # + # 👉 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start) + # + # Example Request: + # + # ```bash + # curl -X GET "http://localhost:4000/guardrails/list" -H "Authorization: Bearer " + # ``` + # + # Example Response: + # + # ```json + # { + # "guardrails": [ + # { + # "guardrail_name": "bedrock-pre-guard", + # "guardrail_info": { + # "params": [ + # { + # "name": "toxicity_score", + # "type": "float", + # "description": "Score between 0-1 indicating content toxicity level" + # }, + # { + # "name": "pii_detection", + # "type": "boolean" + # } + # ] + # } + # } + # ] + # } + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + Hanzoai::Models::GuardrailListResponse + ) + end + def list(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/health.rbi b/rbi/hanzoai/resources/health.rbi new file mode 100644 index 00000000..650623df --- /dev/null +++ b/rbi/hanzoai/resources/health.rbi @@ -0,0 +1,94 @@ +# typed: strong + +module Hanzoai + module Resources + class Health + # 🚨 USE `/health/liveliness` to health check the proxy 🚨 + # + # See more 👉 https://docs.litellm.ai/docs/proxy/health + # + # Check the health of all the endpoints in config.yaml + # + # To run health checks in the background, add this to config.yaml: + # + # ``` + # general_settings: + # # ... other settings + # background_health_checks: True + # ``` + # + # else, the health checks will be run on models when /health is called. + sig do + params( + model: T.nilable(String), + model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def check_all( + # Specify the model name (optional) + model: nil, + # Specify the model ID (optional) + model_id: nil, + request_options: {} + ) + end + + # Unprotected endpoint for checking if worker is alive + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def check_liveliness(request_options: {}) + end + + # Unprotected endpoint for checking if worker is alive + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def check_liveness(request_options: {}) + end + + # Unprotected endpoint for checking if worker can receive requests + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def check_readiness(request_options: {}) + end + + # Use this admin-only endpoint to check if the service is healthy. + # + # Example: + # + # ``` + # curl -L -X GET 'http://0.0.0.0:4000/health/services?service=datadog' -H 'Authorization: Bearer sk-1234' + # ``` + sig do + params( + service: + T.any( + Hanzoai::HealthCheckServicesParams::Service::OrSymbol, + String + ), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def check_services( + # Specify the service being hit. + service:, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/lib/hanzoai/resources/images.rbi b/rbi/hanzoai/resources/images.rbi similarity index 100% rename from rbi/lib/hanzoai/resources/images.rbi rename to rbi/hanzoai/resources/images.rbi diff --git a/rbi/hanzoai/resources/images/generations.rbi b/rbi/hanzoai/resources/images/generations.rbi new file mode 100644 index 00000000..87cb5c7c --- /dev/null +++ b/rbi/hanzoai/resources/images/generations.rbi @@ -0,0 +1,24 @@ +# typed: strong + +module Hanzoai + module Resources + class Images + class Generations + # Image Generation + sig do + params( + model: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(model: nil, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/key.rbi b/rbi/hanzoai/resources/key.rbi new file mode 100644 index 00000000..690d5b52 --- /dev/null +++ b/rbi/hanzoai/resources/key.rbi @@ -0,0 +1,985 @@ +# typed: strong + +module Hanzoai + module Resources + class Key + sig { returns(Hanzoai::Resources::Key::Regenerate) } + attr_reader :regenerate + + # Update an existing API key's parameters. + # + # Parameters: + # + # - key: str - The key to update + # - key_alias: Optional[str] - User-friendly key alias + # - user_id: Optional[str] - User ID associated with key + # - team_id: Optional[str] - Team ID associated with key + # - budget_id: Optional[str] - The budget id associated with the key. Created by + # calling `/budget/new`. + # - models: Optional[list] - Model_name's a user is allowed to call + # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - enforced_params: Optional[List[str]] - List of enforced params for the key + # (Enterprise only). + # [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) + # - spend: Optional[float] - Amount spent by key + # - max_budget: Optional[float] - Max budget for key + # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets + # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard + # stop). Will trigger a slack alert when this soft budget is reached. + # - max_parallel_requests: Optional[int] - Rate limit for parallel requests + # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", + # "app": "app2"} + # - tpm_limit: Optional[int] - Tokens per minute limit + # - rpm_limit: Optional[int] - Requests per minute limit + # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, + # "claude-v1": 200} + # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, + # "claude-v1": 200000} + # - tpm_limit_type: Optional[str] - TPM rate limit type - + # "best_effort_throughput", "guaranteed_throughput", or "dynamic" + # - rpm_limit_type: Optional[str] - RPM rate limit type - + # "best_effort_throughput", "guaranteed_throughput", or "dynamic" + # - allowed_cache_controls: Optional[list] - List of allowed cache control values + # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) or "-1" to + # never expire + # - permissions: Optional[dict] - Key-specific permissions + # - send_invite_email: Optional[bool] - Send invite email to user_id + # - guardrails: Optional[List[str]] - List of active guardrails for the key + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - blocked: Optional[bool] - Whether the key is blocked + # - aliases: Optional[dict] - Model aliases for the key - + # [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) + # - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. + # - temp_budget_increase: Optional[float] - Temporary budget increase for the key + # (Enterprise only). + # - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget + # increase (Enterprise only). + # - allowed_routes: Optional[list] - List of allowed routes for the key. Store the + # actual route or store a wildcard pattern for a set of routes. Example - + # ["/chat/completions", "/embeddings", "/keys/*"] + # - allowed_passthrough_routes: Optional[list] - List of allowed pass through + # routes for the key. Store the actual route or store a wildcard pattern for a + # set of routes. Example - ["/my-custom-endpoint"]. Use this instead of + # allowed_routes, if you just want to specify which pass through routes the key + # can access, without specifying the routes. If allowed_routes is specified, + # allowed_passthrough_routes is ignored. + # - prompts: Optional[List[str]] - List of allowed prompts for the key. If + # specified, the key will only be able to use these specific prompts. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - auto_rotate: Optional[bool] - Whether this key should be automatically rotated + # - rotation_interval: Optional[str] - How often to rotate this key (e.g., '30d', + # '90d'). Required if auto_rotate=True + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # Example: + # + # ```bash + # curl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "key": "sk-1234", + # "key_alias": "my-key", + # "user_id": "user-1234", + # "team_id": "team-1234", + # "max_budget": 100, + # "metadata": {"any_key": "any-val"}, + # }' + # ``` + sig do + params( + key: String, + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex::OrHash + ] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::KeyUpdateParams::ObjectPermission::OrHash), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable(Hanzoai::KeyUpdateParams::RouterSettings::OrHash), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::KeyUpdateParams::RpmLimitType::OrSymbol), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + temp_budget_expiry: T.nilable(Time), + temp_budget_increase: T.nilable(Float), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::KeyUpdateParams::TpmLimitType::OrSymbol), + user_id: T.nilable(String), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update( + # Body param + key:, + # Body param + aliases: nil, + # Body param + allowed_cache_controls: nil, + # Body param + allowed_passthrough_routes: nil, + # Body param + allowed_routes: nil, + # Body param + allowed_vector_store_indexes: nil, + # Body param + auto_rotate: nil, + # Body param + blocked: nil, + # Body param + budget_duration: nil, + # Body param + budget_id: nil, + # Body param + config: nil, + # Body param + duration: nil, + # Body param + enforced_params: nil, + # Body param + guardrails: nil, + # Body param + key_alias: nil, + # Body param + max_budget: nil, + # Body param + max_parallel_requests: nil, + # Body param + metadata: nil, + # Body param + model_max_budget: nil, + # Body param + model_rpm_limit: nil, + # Body param + model_tpm_limit: nil, + # Body param + models: nil, + # Body param + object_permission: nil, + # Body param + permissions: nil, + # Body param + prompts: nil, + # Body param + rotation_interval: nil, + # Body param: Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + # Body param + rpm_limit: nil, + # Body param + rpm_limit_type: nil, + # Body param + spend: nil, + # Body param + tags: nil, + # Body param + team_id: nil, + # Body param + temp_budget_expiry: nil, + # Body param + temp_budget_increase: nil, + # Body param + tpm_limit: nil, + # Body param + tpm_limit_type: nil, + # Body param + user_id: nil, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # List all keys for a given user / team / organization. + # + # Parameters: expand: Optional[List[str]] - Expand related objects (e.g. 'user' to + # include user information) status: Optional[str] - Filter by status. Currently + # supports "deleted" to query deleted keys. + # + # Returns: { "keys": List[str] or List[UserAPIKeyAuth], "total_count": int, + # "current_page": int, "total_pages": int, } + # + # When expand includes "user", each key object will include a "user" field with + # the associated user object. Note: When expand=user is specified, full key + # objects are returned regardless of the return_full_object parameter. + sig do + params( + expand: T.nilable(T::Array[String]), + include_created_by_keys: T::Boolean, + include_team_keys: T::Boolean, + key_alias: T.nilable(String), + key_hash: T.nilable(String), + organization_id: T.nilable(String), + page: Integer, + return_full_object: T::Boolean, + size: Integer, + sort_by: T.nilable(String), + sort_order: String, + status: T.nilable(String), + team_id: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::KeyListResponse) + end + def list( + # Expand related objects (e.g. 'user') + expand: nil, + # Include keys created by the user + include_created_by_keys: nil, + # Include all keys for teams that user is an admin of. + include_team_keys: nil, + # Filter keys by key alias + key_alias: nil, + # Filter keys by key hash + key_hash: nil, + # Filter keys by organization ID + organization_id: nil, + # Page number + page: nil, + # Return full key object + return_full_object: nil, + # Page size + size: nil, + # Column to sort by (e.g. 'user_id', 'created_at', 'spend') + sort_by: nil, + # Sort order ('asc' or 'desc') + sort_order: nil, + # Filter by status (e.g. 'deleted') + status: nil, + # Filter keys by team ID + team_id: nil, + # Filter keys by user ID + user_id: nil, + request_options: {} + ) + end + + # Delete a key from the key management system. + # + # Parameters:: + # + # - keys (List[str]): A list of keys or hashed keys to delete. Example {"keys": + # ["sk-QWrxEynunsNpV1zT48HIrw", + # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} + # - key_aliases (List[str]): A list of key aliases to delete. Can be passed + # instead of `keys`.Example {"key_aliases": ["alias1", "alias2"]} + # + # Returns: + # + # - deleted_keys (List[str]): A list of deleted keys. Example {"deleted_keys": + # ["sk-QWrxEynunsNpV1zT48HIrw", + # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} + # + # Example: + # + # ```bash + # curl --location 'http://0.0.0.0:4000/key/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "keys": ["sk-QWrxEynunsNpV1zT48HIrw"] + # }' + # ``` + # + # Raises: HTTPException: If an error occurs during key deletion. + sig do + params( + key_aliases: T.nilable(T::Array[String]), + keys: T.nilable(T::Array[String]), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete( + # Body param + key_aliases: nil, + # Body param + keys: nil, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # Block an Virtual key from making any requests. + # + # Parameters: + # + # - key: str - The key to block. Can be either the unhashed key (sk-...) or the + # hashed key value + # + # Example: + # + # ```bash + # curl --location 'http://0.0.0.0:4000/key/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" + # }' + # ``` + # + # Note: This is an admin-only endpoint. Only proxy admins can block keys. + sig do + params( + key: String, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.nilable(Hanzoai::Models::KeyBlockResponse)) + end + def block( + # Body param + key:, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # Check the health of the key + # + # Checks: + # + # - If key based logging is configured correctly - sends a test log + # + # Usage + # + # Pass the key in the request header + # + # ```bash + # curl -X POST "http://localhost:4000/key/health" -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" + # ``` + # + # Response when logging callbacks are setup correctly: + # + # ```json + # { + # "key": "healthy", + # "logging_callbacks": { + # "callbacks": ["gcs_bucket"], + # "status": "healthy", + # "details": "No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']" + # } + # } + # ``` + # + # Response when logging callbacks are not setup correctly: + # + # ```json + # { + # "key": "unhealthy", + # "logging_callbacks": { + # "callbacks": ["gcs_bucket"], + # "status": "unhealthy", + # "details": "Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information." + # } + # } + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + Hanzoai::Models::KeyCheckHealthResponse + ) + end + def check_health(request_options: {}) + end + + # Generate an API key based on the provided data. + # + # Docs: https://docs.litellm.ai/docs/proxy/virtual_keys + # + # Parameters: + # + # - duration: Optional[str] - Specify the length of time the token is valid for. + # You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days + # ("30d"). + # - key_alias: Optional[str] - User defined key alias + # - key: Optional[str] - User defined key value. If not set, a 16-digit unique + # sk-key is created for you. + # - team_id: Optional[str] - The team id of the key + # - user_id: Optional[str] - The user id of the key + # - organization_id: Optional[str] - The organization id of the key. If not set, + # and team_id is set, the organization id will be the same as the team id. If + # conflict, an error will be raised. + # - budget_id: Optional[str] - The budget id associated with the key. Created by + # calling `/budget/new`. + # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, + # key is allowed to call all models) + # - aliases: Optional[dict] - Any alias mappings, on top of anything in the + # config.yaml model list. - + # https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models + # - config: Optional[dict] - any key-specific configs, overrides config in + # config.yaml + # - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by + # proxy whenever key is used. + # https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend + # - send_invite_email: Optional[bool] - Whether to send an invite email to the + # user_id, with the generate key + # - max_budget: Optional[float] - Specify max budget for a given key. + # - budget_duration: Optional[str] - Budget is reset at the end of specified + # duration. If not set, budget is never reset. You can set duration as seconds + # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). + # - max_parallel_requests: Optional[int] - Rate limit a user based on the number + # of parallel requests. Raises 429 error, if user's parallel requests > x. + # - metadata: Optional[dict] - Metadata for key, store information for key. + # Example metadata = {"team": "core-infra", "app": "app2", "email": + # "ishaan@berri.ai" } + # - guardrails: Optional[List[str]] - List of active guardrails for the key + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - permissions: Optional[dict] - key-specific permissions. Currently just used + # for turning off pii masking (if connected). Example - {"pii": false} + # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets + # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then + # no model specific budget. + # - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - + # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model + # specific rpm limit. + # - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - + # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model + # specific tpm limit. + # - tpm_limit_type: Optional[str] - Type of tpm limit. Options: + # "best_effort_throughput" (no error if we're overallocating tpm), + # "guaranteed_throughput" (raise an error if we're overallocating tpm), + # "dynamic" (dynamically exceed limit when no 429 errors). Defaults to + # "best_effort_throughput". + # - rpm_limit_type: Optional[str] - Type of rpm limit. Options: + # "best_effort_throughput" (no error if we're overallocating rpm), + # "guaranteed_throughput" (raise an error if we're overallocating rpm), + # "dynamic" (dynamically exceed limit when no 429 errors). Defaults to + # "best_effort_throughput". + # - allowed_cache_controls: Optional[list] - List of allowed cache control values. + # Example - ["no-cache", "no-store"]. See all values - + # https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request + # - blocked: Optional[bool] - Whether the key is blocked. + # - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per + # minute) + # - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per + # minute) + # - soft_budget: Optional[float] - Specify soft budget for a given key. Will + # trigger a slack alert when this soft budget is reached. + # - tags: Optional[List[str]] - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - enforced_params: Optional[List[str]] - List of enforced params for the key + # (Enterprise only). + # [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) + # - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. + # - allowed_routes: Optional[list] - List of allowed routes for the key. Store the + # actual route or store a wildcard pattern for a set of routes. Example - + # ["/chat/completions", "/embeddings", "/keys/*"] + # - allowed_passthrough_routes: Optional[list] - List of allowed pass through + # endpoints for the key. Store the actual endpoint or store a wildcard pattern + # for a set of endpoints. Example - ["/my-custom-endpoint"]. Use this instead of + # allowed_routes, if you just want to specify which pass through endpoints the + # key can access, without specifying the routes. If allowed_routes is specified, + # allowed_pass_through_endpoints is ignored. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - key_type: Optional[str] - Type of key that determines default allowed routes. + # Options: "llm_api" (can call LLM API routes), "management" (can call + # management routes), "read_only" (can only call info/read routes), "default" + # (uses default allowed routes). Defaults to "default". + # - prompts: Optional[List[str]] - List of allowed prompts for the key. If + # specified, the key will only be able to use these specific prompts. + # - auto_rotate: Optional[bool] - Whether this key should be automatically rotated + # (regenerated) + # - rotation_interval: Optional[str] - How often to auto-rotate this key (e.g., + # '30s', '30m', '30h', '30d'). Required if auto_rotate=True. + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # Examples: + # + # 1. Allow users to turn on/off pii masking + # + # ```bash + # curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "permissions": {"allow_pii_controls": true} + # }' + # ``` + # + # Returns: + # + # - key: (str) The generated api key + # - expires: (datetime) Datetime object for when key expires. + # - user_id: (str) Unique user id - used for tracking spend across multiple keys + # for same user id. + sig do + params( + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex::OrHash + ] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + key: T.nilable(String), + key_alias: T.nilable(String), + key_type: T.nilable(Hanzoai::KeyGenerateParams::KeyType::OrSymbol), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::KeyGenerateParams::ObjectPermission::OrHash), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable(Hanzoai::KeyGenerateParams::RouterSettings::OrHash), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::KeyGenerateParams::RpmLimitType::OrSymbol), + send_invite_email: T.nilable(T::Boolean), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::KeyGenerateParams::TpmLimitType::OrSymbol), + user_id: T.nilable(String), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::GenerateKeyResponse) + end + def generate( + # Body param + aliases: nil, + # Body param + allowed_cache_controls: nil, + # Body param + allowed_passthrough_routes: nil, + # Body param + allowed_routes: nil, + # Body param + allowed_vector_store_indexes: nil, + # Body param: Whether this key should be automatically rotated + auto_rotate: nil, + # Body param + blocked: nil, + # Body param + budget_duration: nil, + # Body param + budget_id: nil, + # Body param + config: nil, + # Body param + duration: nil, + # Body param + enforced_params: nil, + # Body param + guardrails: nil, + # Body param + key: nil, + # Body param + key_alias: nil, + # Body param: Enum for key types that determine what routes a key can access + key_type: nil, + # Body param + max_budget: nil, + # Body param + max_parallel_requests: nil, + # Body param + metadata: nil, + # Body param + model_max_budget: nil, + # Body param + model_rpm_limit: nil, + # Body param + model_tpm_limit: nil, + # Body param + models: nil, + # Body param + object_permission: nil, + # Body param + organization_id: nil, + # Body param + permissions: nil, + # Body param + prompts: nil, + # Body param: How often to rotate this key (e.g., '30d', '90d'). Required if + # auto_rotate=True + rotation_interval: nil, + # Body param: Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + # Body param + rpm_limit: nil, + # Body param + rpm_limit_type: nil, + # Body param + send_invite_email: nil, + # Body param + soft_budget: nil, + # Body param + spend: nil, + # Body param + tags: nil, + # Body param + team_id: nil, + # Body param + tpm_limit: nil, + # Body param + tpm_limit_type: nil, + # Body param + user_id: nil, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # Regenerate an existing API key while optionally updating its parameters. + # + # Parameters: + # + # - key: str (path parameter) - The key to regenerate + # - data: Optional[RegenerateKeyRequest] - Request body containing optional + # parameters to update + # - key: Optional[str] - The key to regenerate. + # - new_master_key: Optional[str] - The new master key to use, if key is the + # master key. + # - new_key: Optional[str] - The new key to use, if key is not the master key. + # If both set, new_master_key will be used. + # - key_alias: Optional[str] - User-friendly key alias + # - user_id: Optional[str] - User ID associated with key + # - team_id: Optional[str] - Team ID associated with key + # - models: Optional[list] - Model_name's a user is allowed to call + # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) + # - spend: Optional[float] - Amount spent by key + # - max_budget: Optional[float] - Max budget for key + # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets + # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} + # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) + # - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). + # Will trigger a slack alert when this soft budget is reached. + # - max_parallel_requests: Optional[int] - Rate limit for parallel requests + # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", + # "app": "app2"} + # - tpm_limit: Optional[int] - Tokens per minute limit + # - rpm_limit: Optional[int] - Requests per minute limit + # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, + # "claude-v1": 200} + # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": + # 100000, "claude-v1": 200000} + # - allowed_cache_controls: Optional[list] - List of allowed cache control + # values + # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) + # - permissions: Optional[dict] - Key-specific permissions + # - guardrails: Optional[List[str]] - List of active guardrails for the key + # - blocked: Optional[bool] - Whether the key is blocked + # + # Returns: + # + # - GenerateKeyResponse containing the new key and its updated parameters + # + # Example: + # + # ```bash + # curl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "max_budget": 100, + # "metadata": {"team": "core-infra"}, + # "models": ["gpt-4", "gpt-3.5-turbo"] + # }' + # ``` + # + # Note: This is an Enterprise feature. It requires a premium license to use. + sig do + params( + path_key: String, + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::OrHash + ] + ), + auto_rotate: T.nilable(T::Boolean), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + enforced_params: T.nilable(T::Array[String]), + guardrails: T.nilable(T::Array[String]), + body_key: T.nilable(String), + key_alias: T.nilable(String), + key_type: + T.nilable(Hanzoai::Key::RegenerateKeyRequest::KeyType::OrSymbol), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + new_key: T.nilable(String), + new_master_key: T.nilable(String), + object_permission: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::ObjectPermission::OrHash + ), + organization_id: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rotation_interval: T.nilable(String), + router_settings: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::RouterSettings::OrHash + ), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::RpmLimitType::OrSymbol + ), + send_invite_email: T.nilable(T::Boolean), + soft_budget: T.nilable(Float), + spend: T.nilable(Float), + tags: T.nilable(T::Array[String]), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable( + Hanzoai::Key::RegenerateKeyRequest::TpmLimitType::OrSymbol + ), + user_id: T.nilable(String), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.nilable(Hanzoai::GenerateKeyResponse)) + end + def regenerate_by_key( + # Path param + path_key, + # Body param + aliases: nil, + # Body param + allowed_cache_controls: nil, + # Body param + allowed_passthrough_routes: nil, + # Body param + allowed_routes: nil, + # Body param + allowed_vector_store_indexes: nil, + # Body param: Whether this key should be automatically rotated + auto_rotate: nil, + # Body param + blocked: nil, + # Body param + budget_duration: nil, + # Body param + budget_id: nil, + # Body param + config: nil, + # Body param + duration: nil, + # Body param + enforced_params: nil, + # Body param + guardrails: nil, + # Body param + body_key: nil, + # Body param + key_alias: nil, + # Body param: Enum for key types that determine what routes a key can access + key_type: nil, + # Body param + max_budget: nil, + # Body param + max_parallel_requests: nil, + # Body param + metadata: nil, + # Body param + model_max_budget: nil, + # Body param + model_rpm_limit: nil, + # Body param + model_tpm_limit: nil, + # Body param + models: nil, + # Body param + new_key: nil, + # Body param + new_master_key: nil, + # Body param + object_permission: nil, + # Body param + organization_id: nil, + # Body param + permissions: nil, + # Body param + prompts: nil, + # Body param: How often to rotate this key (e.g., '30d', '90d'). Required if + # auto_rotate=True + rotation_interval: nil, + # Body param: Set of params that you can modify via `router.update_settings()`. + router_settings: nil, + # Body param + rpm_limit: nil, + # Body param + rpm_limit_type: nil, + # Body param + send_invite_email: nil, + # Body param + soft_budget: nil, + # Body param + spend: nil, + # Body param + tags: nil, + # Body param + team_id: nil, + # Body param + tpm_limit: nil, + # Body param + tpm_limit_type: nil, + # Body param + user_id: nil, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # Retrieve information about a key. Parameters: key: Optional[str] = Query + # parameter representing the key in the request user_api_key_dict: UserAPIKeyAuth + # = Dependency representing the user's API key Returns: Dict containing the key + # and its associated information + # + # Example Curl: + # + # ``` + # curl -X GET "http://0.0.0.0:4000/key/info?key=sk-test-example-key-123" -H "Authorization: Bearer sk-1234" + # ``` + # + # Example Curl - if no key is passed, it will use the Key Passed in Authorization + # Header + # + # ``` + # curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-test-example-key-123" + # ``` + sig do + params( + key: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve_info( + # Key in the request parameters + key: nil, + request_options: {} + ) + end + + # Unblock a Virtual key to allow it to make requests again. + # + # Parameters: + # + # - key: str - The key to unblock. Can be either the unhashed key (sk-...) or the + # hashed key value + # + # Example: + # + # ```bash + # curl --location 'http://0.0.0.0:4000/key/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" + # }' + # ``` + # + # Note: This is an admin-only endpoint. Only proxy admins can unblock keys. + sig do + params( + key: String, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def unblock( + # Body param + key:, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/lib/hanzoai/resources/key/regenerate.rbi b/rbi/hanzoai/resources/key/regenerate.rbi similarity index 100% rename from rbi/lib/hanzoai/resources/key/regenerate.rbi rename to rbi/hanzoai/resources/key/regenerate.rbi diff --git a/rbi/hanzoai/resources/langfuse.rbi b/rbi/hanzoai/resources/langfuse.rbi new file mode 100644 index 00000000..6cd6336e --- /dev/null +++ b/rbi/hanzoai/resources/langfuse.rbi @@ -0,0 +1,72 @@ +# typed: strong + +module Hanzoai + module Resources + class Langfuse + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # Call Langfuse via LiteLLM proxy. Works with Langfuse SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/langfuse) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/model.rbi b/rbi/hanzoai/resources/model.rbi new file mode 100644 index 00000000..ac9d2f31 --- /dev/null +++ b/rbi/hanzoai/resources/model.rbi @@ -0,0 +1,46 @@ +# typed: strong + +module Hanzoai + module Resources + class Model + sig { returns(Hanzoai::Resources::Model::Info) } + attr_reader :info + + sig { returns(Hanzoai::Resources::Model::Update) } + attr_reader :update + + # Allows adding new models to the model list in the config.yaml + sig do + params( + litellm_params: Hanzoai::ModelCreateParams::LitellmParams::OrHash, + model_info: Hanzoai::ModelInfo::OrHash, + model_name: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create( + # LiteLLM Params with 'model' requirement - used for completions + litellm_params:, + model_info:, + model_name:, + request_options: {} + ) + end + + # Allows deleting models in the model list in the config.yaml + sig do + params( + id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(id:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/model/info.rbi b/rbi/hanzoai/resources/model/info.rbi new file mode 100644 index 00000000..dc6bd6d1 --- /dev/null +++ b/rbi/hanzoai/resources/model/info.rbi @@ -0,0 +1,53 @@ +# typed: strong + +module Hanzoai + module Resources + class Model + class Info + # Provides more info about each model in /models, including config.yaml + # descriptions (except api key and api base) + # + # Parameters: litellm_model_id: Optional[str] = None (this is the value of + # `x-litellm-model-id` returned in response headers) + # + # - When litellm_model_id is passed, it will return the info for that specific model + # - When litellm_model_id is not passed, it will return the info for all models + # + # Returns: Returns a dictionary containing information about each model. + # + # Example Response: + # + # ```json + # { + # "data": [ + # { + # "model_name": "fake-openai-endpoint", + # "litellm_params": { + # "api_base": "https://exampleopenaiendpoint-production.up.railway.app/", + # "model": "openai/fake" + # }, + # "model_info": { + # "id": "112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af", + # "db_model": false + # } + # } + # ] + # } + # ``` + sig do + params( + litellm_model_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list(litellm_model_id: nil, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/model/update.rbi b/rbi/hanzoai/resources/model/update.rbi new file mode 100644 index 00000000..9a42d5e6 --- /dev/null +++ b/rbi/hanzoai/resources/model/update.rbi @@ -0,0 +1,67 @@ +# typed: strong + +module Hanzoai + module Resources + class Model + class Update + # Edit existing model params + sig do + params( + litellm_params: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::OrHash + ), + model_info: T.nilable(Hanzoai::ModelInfo::OrHash), + model_name: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def full( + litellm_params: nil, + model_info: nil, + model_name: nil, + request_options: {} + ) + end + + # PATCH Endpoint for partial model updates. + # + # Only updates the fields specified in the request while preserving other existing + # values. Follows proper PATCH semantics by only modifying provided fields. + # + # Args: model_id: The ID of the model to update patch_data: The fields to update + # and their new values user_api_key_dict: User authentication information + # + # Returns: Updated model information + # + # Raises: ProxyException: For various error conditions including authentication + # and database errors + sig do + params( + model_id: String, + litellm_params: + T.nilable( + Hanzoai::Model::UpdateDeployment::LitellmParams::OrHash + ), + model_info: T.nilable(Hanzoai::ModelInfo::OrHash), + model_name: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def partial( + model_id, + litellm_params: nil, + model_info: nil, + model_name: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/model_group.rbi b/rbi/hanzoai/resources/model_group.rbi new file mode 100644 index 00000000..e98c8d7c --- /dev/null +++ b/rbi/hanzoai/resources/model_group.rbi @@ -0,0 +1,163 @@ +# typed: strong + +module Hanzoai + module Resources + class ModelGroup + # Get information about all the deployments on litellm proxy, including + # config.yaml descriptions (except api key and api base) + # + # - /model_group/info returns all model groups. End users of proxy should use + # /model_group/info since those models will be used for /chat/completions, + # /embeddings, etc. + # - /model_group/info?model_group=rerank-english-v3.0 returns all model groups for + # a specific model group (`model_name` in config.yaml) + # + # Example Request (All Models): + # + # ```shell + # curl -X 'GET' 'http://localhost:4000/model_group/info' -H 'accept: application/json' -H 'x-api-key: sk-1234' + # ``` + # + # Example Request (Specific Model Group): + # + # ```shell + # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=rerank-english-v3.0' -H 'accept: application/json' -H 'Authorization: Bearer sk-1234' + # ``` + # + # Example Request (Specific Wildcard Model Group): (e.g. `model_name: openai/*` on + # config.yaml) + # + # ```shell + # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=openai/tts-1' + # -H 'accept: application/json' -H 'Authorization: Bearersk-1234' + # ``` + # + # Learn how to use and set wildcard models + # [here](https://docs.litellm.ai/docs/wildcard_routing) + # + # Example Response: + # + # ```json + # { + # "data": [ + # { + # "model_group": "rerank-english-v3.0", + # "providers": ["cohere"], + # "max_input_tokens": null, + # "max_output_tokens": null, + # "input_cost_per_token": 0.0, + # "output_cost_per_token": 0.0, + # "mode": null, + # "tpm": null, + # "rpm": null, + # "supports_parallel_function_calling": false, + # "supports_vision": false, + # "supports_function_calling": false, + # "supported_openai_params": [ + # "stream", + # "temperature", + # "max_tokens", + # "logit_bias", + # "top_p", + # "frequency_penalty", + # "presence_penalty", + # "stop", + # "n", + # "extra_headers" + # ] + # }, + # { + # "model_group": "gpt-3.5-turbo", + # "providers": ["openai"], + # "max_input_tokens": 16385.0, + # "max_output_tokens": 4096.0, + # "input_cost_per_token": 1.5e-6, + # "output_cost_per_token": 2e-6, + # "mode": "chat", + # "tpm": null, + # "rpm": null, + # "supports_parallel_function_calling": false, + # "supports_vision": false, + # "supports_function_calling": true, + # "supported_openai_params": [ + # "frequency_penalty", + # "logit_bias", + # "logprobs", + # "top_logprobs", + # "max_tokens", + # "max_completion_tokens", + # "n", + # "presence_penalty", + # "seed", + # "stop", + # "stream", + # "stream_options", + # "temperature", + # "top_p", + # "tools", + # "tool_choice", + # "function_call", + # "functions", + # "max_retries", + # "extra_headers", + # "parallel_tool_calls", + # "response_format" + # ] + # }, + # { + # "model_group": "llava-hf", + # "providers": ["openai"], + # "max_input_tokens": null, + # "max_output_tokens": null, + # "input_cost_per_token": 0.0, + # "output_cost_per_token": 0.0, + # "mode": null, + # "tpm": null, + # "rpm": null, + # "supports_parallel_function_calling": false, + # "supports_vision": true, + # "supports_function_calling": false, + # "supported_openai_params": [ + # "frequency_penalty", + # "logit_bias", + # "logprobs", + # "top_logprobs", + # "max_tokens", + # "max_completion_tokens", + # "n", + # "presence_penalty", + # "seed", + # "stop", + # "stream", + # "stream_options", + # "temperature", + # "top_p", + # "tools", + # "tool_choice", + # "function_call", + # "functions", + # "max_retries", + # "extra_headers", + # "parallel_tool_calls", + # "response_format" + # ] + # } + # ] + # } + # ``` + sig do + params( + model_group: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve_info(model_group: nil, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/models.rbi b/rbi/hanzoai/resources/models.rbi new file mode 100644 index 00000000..8ef6f87a --- /dev/null +++ b/rbi/hanzoai/resources/models.rbi @@ -0,0 +1,45 @@ +# typed: strong + +module Hanzoai + module Resources + class Models + # Use `/model/info` - to get detailed model information, example - pricing, mode, + # etc. + # + # This is just for compatibility with openai projects like aider. + # + # Query Parameters: + # + # - include_metadata: Include additional metadata in the response with fallback + # information + # - fallback_type: Type of fallbacks to include ("general", "context_window", + # "content_policy") Defaults to "general" when include_metadata=true + sig do + params( + fallback_type: T.nilable(String), + include_metadata: T.nilable(T::Boolean), + include_model_access_groups: T.nilable(T::Boolean), + only_model_access_groups: T.nilable(T::Boolean), + return_wildcard_routes: T.nilable(T::Boolean), + team_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list( + fallback_type: nil, + include_metadata: nil, + include_model_access_groups: nil, + only_model_access_groups: nil, + return_wildcard_routes: nil, + team_id: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/moderations.rbi b/rbi/hanzoai/resources/moderations.rbi new file mode 100644 index 00000000..ad2e88fb --- /dev/null +++ b/rbi/hanzoai/resources/moderations.rbi @@ -0,0 +1,26 @@ +# typed: strong + +module Hanzoai + module Resources + class Moderations + # The moderations endpoint is a tool you can use to check whether content complies + # with an LLM Providers policies. Quick Start + # + # ``` + # curl --location 'http://0.0.0.0:4000/moderations' --header 'Content-Type: application/json' --header 'Authorization: Bearer sk-1234' --data '{"input": "Sample text goes here", "model": "text-moderation-stable"}' + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/openai.rbi b/rbi/hanzoai/resources/openai.rbi new file mode 100644 index 00000000..24838e9e --- /dev/null +++ b/rbi/hanzoai/resources/openai.rbi @@ -0,0 +1,70 @@ +# typed: strong + +module Hanzoai + module Resources + class OpenAI + sig { returns(Hanzoai::Resources::OpenAI::Deployments) } + attr_reader :deployments + + # Simple pass-through for OpenAI. Use this if you want to directly send a request + # to OpenAI. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # Simple pass-through for OpenAI. Use this if you want to directly send a request + # to OpenAI. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # Simple pass-through for OpenAI. Use this if you want to directly send a request + # to OpenAI. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # Simple pass-through for OpenAI. Use this if you want to directly send a request + # to OpenAI. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # Simple pass-through for OpenAI. Use this if you want to directly send a request + # to OpenAI. + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/openai/deployments.rbi b/rbi/hanzoai/resources/openai/deployments.rbi new file mode 100644 index 00000000..cae9d1dc --- /dev/null +++ b/rbi/hanzoai/resources/openai/deployments.rbi @@ -0,0 +1,93 @@ +# typed: strong + +module Hanzoai + module Resources + class OpenAI + class Deployments + sig { returns(Hanzoai::Resources::OpenAI::Deployments::Chat) } + attr_reader :chat + + # Follows the exact same API spec as + # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` + # + # ```bash + # curl -X POST http://localhost:4000/v1/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-3.5-turbo-instruct", + # "prompt": "Once upon a time", + # "max_tokens": 50, + # "temperature": 0.7 + # }' + # ``` + sig do + params( + model: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def complete(model, request_options: {}) + end + + # Follows the exact same API spec as + # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` + # + # ```bash + # curl -X POST http://localhost:4000/v1/embeddings + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "text-embedding-ada-002", + # "input": "The quick brown fox jumps over the lazy dog" + # }' + # ``` + sig do + params( + path_model: String, + body_model: String, + api_base: T.nilable(String), + api_key: T.nilable(String), + api_type: T.nilable(String), + api_version: T.nilable(String), + caching: T::Boolean, + custom_llm_provider: + T.nilable( + Hanzoai::OpenAI::DeploymentEmbedParams::CustomLlmProvider::Variants + ), + input: T::Array[String], + litellm_call_id: T.nilable(String), + litellm_logging_obj: T.nilable(T::Hash[Symbol, T.anything]), + logger_fn: T.nilable(String), + timeout: Integer, + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def embed( + path_model, + body_model:, + api_base: nil, + api_key: nil, + api_type: nil, + api_version: nil, + caching: nil, + custom_llm_provider: nil, + input: nil, + litellm_call_id: nil, + litellm_logging_obj: nil, + logger_fn: nil, + timeout: nil, + user: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/openai/deployments/chat.rbi b/rbi/hanzoai/resources/openai/deployments/chat.rbi new file mode 100644 index 00000000..51563eb0 --- /dev/null +++ b/rbi/hanzoai/resources/openai/deployments/chat.rbi @@ -0,0 +1,122 @@ +# typed: strong + +module Hanzoai + module Resources + class OpenAI + class Deployments + class Chat + # Follows the exact same API spec as + # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` + # + # ```bash + # curl -X POST http://localhost:4000/v1/chat/completions + # -H "Content-Type: application/json" + # -H "Authorization: Bearer sk-1234" + # -d '{ + # "model": "gpt-4o", + # "messages": [ + # { + # "role": "user", + # "content": "Hello!" + # } + # ] + # }' + # ``` + sig do + params( + path_model: String, + messages: + T::Array[ + T.any( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::OrHash, + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::OrHash + ) + ], + body_model: String, + caching: T.nilable(T::Boolean), + context_window_fallback_dict: T.nilable(T::Hash[Symbol, String]), + fallbacks: T.nilable(T::Array[String]), + frequency_penalty: T.nilable(Float), + function_call: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::FunctionCall::Variants + ), + functions: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + guardrails: T.nilable(T::Array[String]), + logit_bias: T.nilable(T::Hash[Symbol, Float]), + logprobs: T.nilable(T::Boolean), + max_tokens: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + n: T.nilable(Integer), + num_retries: T.nilable(Integer), + parallel_tool_calls: T.nilable(T::Boolean), + presence_penalty: T.nilable(Float), + response_format: T.nilable(T::Hash[Symbol, T.anything]), + seed: T.nilable(Integer), + service_tier: T.nilable(String), + stop: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Stop::Variants + ), + stream: T.nilable(T::Boolean), + stream_options: T.nilable(T::Hash[Symbol, T.anything]), + temperature: T.nilable(Float), + tool_choice: + T.nilable( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::ToolChoice::Variants + ), + tools: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + top_logprobs: T.nilable(Integer), + top_p: T.nilable(Float), + user: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def complete( + path_model, + messages:, + body_model:, + caching: nil, + context_window_fallback_dict: nil, + fallbacks: nil, + frequency_penalty: nil, + function_call: nil, + functions: nil, + guardrails: nil, + logit_bias: nil, + logprobs: nil, + max_tokens: nil, + metadata: nil, + n: nil, + num_retries: nil, + parallel_tool_calls: nil, + presence_penalty: nil, + response_format: nil, + seed: nil, + service_tier: nil, + stop: nil, + stream: nil, + stream_options: nil, + temperature: nil, + tool_choice: nil, + tools: nil, + top_logprobs: nil, + top_p: nil, + user: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end + end +end diff --git a/rbi/hanzoai/resources/organization.rbi b/rbi/hanzoai/resources/organization.rbi new file mode 100644 index 00000000..d4ef591f --- /dev/null +++ b/rbi/hanzoai/resources/organization.rbi @@ -0,0 +1,291 @@ +# typed: strong + +module Hanzoai + module Resources + class Organization + sig { returns(Hanzoai::Resources::Organization::Info) } + attr_reader :info + + # Allow orgs to own teams + # + # Set org level budgets + model access. + # + # Only admins can create orgs. + # + # # Parameters + # + # - organization_alias: _str_ - The name of the organization. + # - models: _List_ - The models the organization has access to. + # - budget_id: _Optional[str]_ - The id for a budget (tpm/rpm/max budget) for the + # organization. + # + # ### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS + # + # - max_budget: _Optional[float]_ - Max budget for org + # - tpm_limit: _Optional[int]_ - Max tpm limit for org + # - rpm_limit: _Optional[int]_ - Max rpm limit for org + # - model_rpm_limit: _Optional[Dict[str, int]]_ - The RPM (Requests Per Minute) + # limit per model for this organization. + # - model_tpm_limit: _Optional[Dict[str, int]]_ - The TPM (Tokens Per Minute) + # limit per model for this organization. + # - max_parallel_requests: _Optional[int]_ - [Not Implemented Yet] Max parallel + # requests for org + # - soft_budget: _Optional[float]_ - [Not Implemented Yet] Get a slack alert when + # this soft budget is reached. Don't block requests. + # - model_max_budget: _Optional[dict]_ - Max budget for a specific model + # - budget_duration: _Optional[str]_ - Frequency of reseting org budget + # - metadata: _Optional[dict]_ - Metadata for organization, store information for + # organization. Example metadata - {"extra_info": "some info"} + # - blocked: _bool_ - Flag indicating if the org is blocked or not - will stop all + # calls from keys with this org_id. + # - tags: _Optional[List[str]]_ - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - organization_id: _Optional[str]_ - The organization id of the team. Default is + # None. Create via `/organization/new`. + # - model_aliases: Optional[dict] - Model aliases for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - + # organization-specific object permission. Example - {"vector_stores": + # ["vector_store_1", "vector_store_2"]}. IF null or {} then no object + # permission. Case 1: Create new org **without** a budget_id + # + # ```bash + # curl --location 'http://0.0.0.0:4000/organization/new' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "organization_alias": "my-secret-org", + # "models": ["model1", "model2"], + # "max_budget": 100 + # }' + # + # + # ``` + # + # Case 2: Create new org **with** a budget_id + # + # ```bash + # curl --location 'http://0.0.0.0:4000/organization/new' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "organization_alias": "my-secret-org", + # "models": ["model1", "model2"], + # "budget_id": "428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689" + # }' + # ``` + sig do + params( + organization_alias: String, + budget_duration: T.nilable(String), + budget_id: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T::Array[T.anything], + object_permission: + T.nilable( + Hanzoai::OrganizationCreateParams::ObjectPermission::OrHash + ), + organization_id: T.nilable(String), + rpm_limit: T.nilable(Integer), + soft_budget: T.nilable(Float), + tpm_limit: T.nilable(Integer), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::OrganizationCreateResponse) + end + def create( + organization_alias:, + budget_duration: nil, + budget_id: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organization_id: nil, + rpm_limit: nil, + soft_budget: nil, + tpm_limit: nil, + request_options: {} + ) + end + + # Update an organization + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + Hanzoai::OrganizationTableWithMembers + ) + end + def update(request_options: {}) + end + + # Get a list of organizations with optional filtering. + # + # Parameters: org_id: Optional[str] Filter organizations by exact organization_id + # match org_alias: Optional[str] Filter organizations by partial + # organization_alias match (case-insensitive) + # + # Example: + # + # ``` + # curl --location --request GET 'http://0.0.0.0:4000/organization/list?org_alias=my-org' --header 'Authorization: Bearer sk-1234' + # ``` + # + # Example with org_id: + # + # ``` + # curl --location --request GET 'http://0.0.0.0:4000/organization/list?org_id=123e4567-e89b-12d3-a456-426614174000' --header 'Authorization: Bearer sk-1234' + # ``` + sig do + params( + org_alias: T.nilable(String), + org_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T::Array[Hanzoai::OrganizationTableWithMembers]) + end + def list( + # Filter organizations by partial organization_alias match. Supports + # case-insensitive search. + org_alias: nil, + # Filter organizations by exact organization_id match + org_id: nil, + request_options: {} + ) + end + + # Delete an organization + # + # # Parameters: + # + # - organization_ids: List[str] - The organization ids to delete. + sig do + params( + organization_ids: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T::Array[Hanzoai::OrganizationTableWithMembers]) + end + def delete(organization_ids:, request_options: {}) + end + + # [BETA] + # + # Add new members (either via user_email or user_id) to an organization + # + # If user doesn't exist, new user row will also be added to User Table + # + # Only proxy_admin or org_admin of organization, allowed to access this endpoint. + # + # # Parameters: + # + # - organization_id: str (required) + # - member: Union[List[Member], Member] (required) + # - role: Literal[LitellmUserRoles] (required) + # - user_id: Optional[str] + # - user_email: Optional[str] + # + # Note: Either user_id or user_email must be provided for each member. + # + # Example: + # + # ``` + # curl -X POST 'http://0.0.0.0:4000/organization/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{ + # "organization_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", + # "member": { + # "role": "internal_user", + # "user_id": "krrish247652@berri.ai" + # }, + # "max_budget_in_organization": 100.0 + # }' + # ``` + # + # The following is executed in this function: + # + # 1. Check if organization exists + # 2. Creates a new Internal User if the user_id or user_email is not found in + # LiteLLM_UserTable + # 3. Add Internal User to the `LiteLLM_OrganizationMembership` table + sig do + params( + member: + T.any( + T::Array[Hanzoai::OrgMember::OrHash], + Hanzoai::OrgMember::OrHash + ), + organization_id: String, + max_budget_in_organization: T.nilable(Float), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::OrganizationAddMemberResponse) + end + def add_member( + member:, + organization_id:, + max_budget_in_organization: nil, + request_options: {} + ) + end + + # Delete a member from an organization + sig do + params( + organization_id: String, + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete_member( + organization_id:, + user_email: nil, + user_id: nil, + request_options: {} + ) + end + + # Update a member's role in an organization + sig do + params( + organization_id: String, + max_budget_in_organization: T.nilable(Float), + role: T.nilable(Hanzoai::UserRoles::OrSymbol), + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::OrganizationMembershipTable) + end + def update_member( + organization_id:, + max_budget_in_organization: nil, + # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can + # login, view all own keys, view all spend ORG_ADMIN: admin over a specific + # organization, can create teams, users only within their organization + # + # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own + # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, + # view their own spend + # + # Team Roles: TEAM: used for JWT auth + # + # Customer Roles: CUSTOMER: External users -> these are customers + role: nil, + user_email: nil, + user_id: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/organization/info.rbi b/rbi/hanzoai/resources/organization/info.rbi new file mode 100644 index 00000000..0b0072c2 --- /dev/null +++ b/rbi/hanzoai/resources/organization/info.rbi @@ -0,0 +1,34 @@ +# typed: strong + +module Hanzoai + module Resources + class Organization + class Info + # Get the org specific information + sig do + params( + organization_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::OrganizationTableWithMembers) + end + def retrieve(organization_id:, request_options: {}) + end + + # DEPRECATED: Use GET /organization/info instead + sig do + params( + organizations: T::Array[String], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def deprecated(organizations:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/provider.rbi b/rbi/hanzoai/resources/provider.rbi new file mode 100644 index 00000000..96a2f7ff --- /dev/null +++ b/rbi/hanzoai/resources/provider.rbi @@ -0,0 +1,64 @@ +# typed: strong + +module Hanzoai + module Resources + class Provider + # Provider Budget Routing - Get Budget, Spend Details + # https://docs.litellm.ai/docs/proxy/provider_budget_routing + # + # Use this endpoint to check current budget, spend and budget reset time for a + # provider + # + # Example Request + # + # ```bash + # curl -X GET http://localhost:4000/provider/budgets -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" + # ``` + # + # Example Response + # + # ```json + # { + # "providers": { + # "openai": { + # "budget_limit": 1e-12, + # "time_period": "1d", + # "spend": 0.0, + # "budget_reset_at": null + # }, + # "azure": { + # "budget_limit": 100.0, + # "time_period": "1d", + # "spend": 0.0, + # "budget_reset_at": null + # }, + # "anthropic": { + # "budget_limit": 100.0, + # "time_period": "10d", + # "spend": 0.0, + # "budget_reset_at": null + # }, + # "vertex_ai": { + # "budget_limit": 100.0, + # "time_period": "12d", + # "spend": 0.0, + # "budget_reset_at": null + # } + # } + # } + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + Hanzoai::Models::ProviderListBudgetsResponse + ) + end + def list_budgets(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/rerank.rbi b/rbi/hanzoai/resources/rerank.rbi new file mode 100644 index 00000000..13ea256f --- /dev/null +++ b/rbi/hanzoai/resources/rerank.rbi @@ -0,0 +1,39 @@ +# typed: strong + +module Hanzoai + module Resources + class Rerank + # Rerank + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create(request_options: {}) + end + + # Rerank + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create_v1(request_options: {}) + end + + # Rerank + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create_v2(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/responses.rbi b/rbi/hanzoai/resources/responses.rbi new file mode 100644 index 00000000..4143df36 --- /dev/null +++ b/rbi/hanzoai/resources/responses.rbi @@ -0,0 +1,93 @@ +# typed: strong + +module Hanzoai + module Resources + class Responses + sig { returns(Hanzoai::Resources::Responses::InputItems) } + attr_reader :input_items + + # Follows the OpenAI Responses API spec: + # https://platform.openai.com/docs/api-reference/responses + # + # Supports background mode with polling_via_cache for partial response retrieval. + # When background=true and polling_via_cache is enabled, returns a polling_id + # immediately and streams the response in the background, updating Redis cache. + # + # ```bash + # # Normal request + # curl -X POST http://localhost:4000/v1/responses -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "model": "gpt-4o", + # "input": "Tell me about AI" + # }' + # + # # Background request with polling + # curl -X POST http://localhost:4000/v1/responses -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "model": "gpt-4o", + # "input": "Tell me about AI", + # "background": true + # }' + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create(request_options: {}) + end + + # Get a response by ID. + # + # Supports both: + # + # - Polling IDs (litellm*poll*\*): Returns cumulative cached content from + # background responses + # - Provider response IDs: Passes through to provider API + # + # Follows the OpenAI Responses API spec: + # https://platform.openai.com/docs/api-reference/responses/get + # + # ```bash + # # Get polling response + # curl -X GET http://localhost:4000/v1/responses/litellm_poll_abc123 -H "Authorization: Bearer sk-1234" + # + # # Get provider response + # curl -X GET http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" + # ``` + sig do + params( + response_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(response_id, request_options: {}) + end + + # Delete a response by ID. + # + # Supports both: + # + # - Polling IDs (litellm*poll*\*): Deletes from Redis cache + # - Provider response IDs: Passes through to provider API + # + # Follows the OpenAI Responses API spec: + # https://platform.openai.com/docs/api-reference/responses/delete + # + # ```bash + # curl -X DELETE http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" + # ``` + sig do + params( + response_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(response_id, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/responses/input_items.rbi b/rbi/hanzoai/resources/responses/input_items.rbi new file mode 100644 index 00000000..5b944cac --- /dev/null +++ b/rbi/hanzoai/resources/responses/input_items.rbi @@ -0,0 +1,24 @@ +# typed: strong + +module Hanzoai + module Resources + class Responses + class InputItems + # List input items for a response. + sig do + params( + response_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list(response_id, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/routes.rbi b/rbi/hanzoai/resources/routes.rbi new file mode 100644 index 00000000..2a864e67 --- /dev/null +++ b/rbi/hanzoai/resources/routes.rbi @@ -0,0 +1,21 @@ +# typed: strong + +module Hanzoai + module Resources + class Routes + # Get a list of available routes in the FastAPI application. + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def list(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/settings.rbi b/rbi/hanzoai/resources/settings.rbi new file mode 100644 index 00000000..7ee45422 --- /dev/null +++ b/rbi/hanzoai/resources/settings.rbi @@ -0,0 +1,43 @@ +# typed: strong + +module Hanzoai + module Resources + class Settings + # Returns a list of litellm level settings + # + # This is useful for debugging and ensuring the proxy server is configured + # correctly. + # + # Response schema: + # + # ``` + # { + # "alerting": _alerting, + # "litellm.callbacks": litellm_callbacks, + # "litellm.input_callback": litellm_input_callbacks, + # "litellm.failure_callback": litellm_failure_callbacks, + # "litellm.success_callback": litellm_success_callbacks, + # "litellm._async_success_callback": litellm_async_success_callbacks, + # "litellm._async_failure_callback": litellm_async_failure_callbacks, + # "litellm._async_input_callback": litellm_async_input_callbacks, + # "all_litellm_callbacks": all_litellm_callbacks, + # "num_callbacks": len(all_litellm_callbacks), + # "num_alerting": _num_alerting, + # "litellm.request_timeout": litellm.request_timeout, + # } + # ``` + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def retrieve(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/spend.rbi b/rbi/hanzoai/resources/spend.rbi new file mode 100644 index 00000000..2a684c2e --- /dev/null +++ b/rbi/hanzoai/resources/spend.rbi @@ -0,0 +1,175 @@ +# typed: strong + +module Hanzoai + module Resources + class Spend + # Accepts all the params of completion_cost. + # + # Calculate spend **before** making call: + # + # Note: If you see a spend of $0.0 you need to set custom_pricing for your model: + # https://docs.litellm.ai/docs/proxy/custom_pricing + # + # ``` + # curl --location 'http://localhost:4000/spend/calculate' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "model": "anthropic.claude-v2", + # "messages": [{"role": "user", "content": "Hey, how'''s it going?"}] + # }' + # ``` + # + # Calculate spend **after** making call: + # + # ``` + # curl --location 'http://localhost:4000/spend/calculate' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data '{ + # "completion_response": { + # "id": "chatcmpl-123", + # "object": "chat.completion", + # "created": 1677652288, + # "model": "gpt-3.5-turbo-0125", + # "system_fingerprint": "fp_44709d6fcb", + # "choices": [{ + # "index": 0, + # "message": { + # "role": "assistant", + # "content": "Hello there, how may I assist you today?" + # }, + # "logprobs": null, + # "finish_reason": "stop" + # }] + # "usage": { + # "prompt_tokens": 9, + # "completion_tokens": 12, + # "total_tokens": 21 + # } + # } + # }' + # ``` + sig do + params( + completion_response: T.nilable(T::Hash[Symbol, T.anything]), + messages: T.nilable(T::Array[T.anything]), + model: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def calculate_spend( + completion_response: nil, + messages: nil, + model: nil, + request_options: {} + ) + end + + # [DEPRECATED] This endpoint is not paginated and can cause performance issues. + # Please use `/spend/logs/v2` instead for paginated access to spend logs. + # + # View all spend logs, if request_id is provided, only logs for that request_id + # will be returned + # + # When start_date and end_date are provided: + # + # - summarize=true (default): Returns aggregated spend data grouped by date + # (maintains backward compatibility) + # - summarize=false: Returns filtered individual log entries within the date range + # + # Example Request for all logs + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs" -H "Authorization: Bearer sk-1234" + # ``` + # + # Example Request for specific request_id + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?request_id=chatcmpl-6dcb2540-d3d7-4e49-bb27-291f863f112e" -H "Authorization: Bearer sk-1234" + # ``` + # + # Example Request for specific api_key + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?api_key=sk-test-example-key-123" -H "Authorization: Bearer sk-1234" + # ``` + # + # Example Request for specific user_id + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?user_id=ishaan@berri.ai" -H "Authorization: Bearer sk-1234" + # ``` + # + # Example Request for date range with individual logs (unsummarized) + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/logs?start_date=2024-01-01&end_date=2024-01-02&summarize=false" -H "Authorization: Bearer sk-1234" + # ``` + sig do + params( + api_key: T.nilable(String), + end_date: T.nilable(String), + request_id: T.nilable(String), + start_date: T.nilable(String), + summarize: T::Boolean, + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T::Array[Hanzoai::Models::SpendListLogsResponseItem]) + end + def list_logs( + # Get spend logs based on api key + api_key: nil, + # Time till which to view key spend + end_date: nil, + # request_id to get spend logs for specific request_id. If none passed then pass + # spend logs for all requests + request_id: nil, + # Time from which to start viewing key spend + start_date: nil, + # When start_date and end_date are provided, summarize=true returns aggregated + # data by date (legacy behavior), summarize=false returns filtered individual logs + summarize: nil, + # Get spend logs based on user_id + user_id: nil, + request_options: {} + ) + end + + # LiteLLM Enterprise - View Spend Per Request Tag + # + # Example Request: + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/tags" -H "Authorization: Bearer sk-1234" + # ``` + # + # Spend with Start Date and End Date + # + # ``` + # curl -X GET "http://0.0.0.0:8000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" + # ``` + sig do + params( + end_date: T.nilable(String), + start_date: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T::Array[Hanzoai::Models::SpendListTagsResponseItem]) + end + def list_tags( + # Time till which to view key spend + end_date: nil, + # Time from which to start viewing key spend + start_date: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/team.rbi b/rbi/hanzoai/resources/team.rbi new file mode 100644 index 00000000..91b95d4e --- /dev/null +++ b/rbi/hanzoai/resources/team.rbi @@ -0,0 +1,682 @@ +# typed: strong + +module Hanzoai + module Resources + class Team + sig { returns(Hanzoai::Resources::Team::Model) } + attr_reader :model + + sig { returns(Hanzoai::Resources::Team::Callback) } + attr_reader :callback + + # Allow users to create a new team. Apply user permissions to their team. + # + # 👉 + # [Detailed Doc on setting team budgets](https://docs.litellm.ai/docs/proxy/team_budgets) + # + # Parameters: + # + # - team_alias: Optional[str] - User defined team alias + # - team_id: Optional[str] - The team id of the user. If none passed, we'll + # generate it. + # - members_with_roles: List[{"role": "admin" or "user", "user_id": + # ""}] - A list of users and their roles in the team. Get user_id when + # making a new user via `/user/new`. + # - team_member_permissions: Optional[List[str]] - A list of routes that non-admin + # team members can access. example: ["/key/generate", "/key/update", + # "/key/delete"] + # - metadata: Optional[dict] - Metadata for team, store information for team. + # Example metadata = {"extra_info": "some info"} + # - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) + # limit for this team - applied across all keys for this team. + # - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit + # for this team - applied across all keys for this team. + # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - + # all keys with this team_id will have at max this TPM limit + # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - + # all keys associated with this team_id will have at max this RPM limit + # - rpm_limit_type: Optional[Literal["guaranteed_throughput", + # "best_effort_throughput"]] - The type of RPM limit enforcement. Use + # "guaranteed_throughput" to raise an error if overallocating RPM, or + # "best_effort_throughput" for best effort enforcement. + # - tpm_limit_type: Optional[Literal["guaranteed_throughput", + # "best_effort_throughput"]] - The type of TPM limit enforcement. Use + # "guaranteed_throughput" to raise an error if overallocating TPM, or + # "best_effort_throughput" for best effort enforcement. + # - max_budget: Optional[float] - The maximum budget allocated to the team - all + # keys for this team_id will have at max this max_budget + # - budget_duration: Optional[str] - The duration of the budget for the team. Doc + # [here](https://docs.litellm.ai/docs/proxy/team_budgets) + # - models: Optional[list] - A list of models associated with the team - all keys + # for this team_id will have at most, these models. If empty, assumes all models + # are allowed. + # - blocked: bool - Flag indicating if the team is blocked or not - will stop all + # calls from keys with this team_id. + # - members: Optional[List] - Control team members via `/team/member/add` and + # `/team/member/delete`. + # - tags: Optional[List[str]] - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - prompts: Optional[List[str]] - List of prompts that the team is allowed to + # use. + # - organization_id: Optional[str] - The organization id of the team. Default is + # None. Create via `/organization/new`. + # - model_aliases: Optional[dict] - Model aliases for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) + # - guardrails: Optional[List[str]] - Guardrails for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/guardrails) + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - team_member_budget: Optional[float] - The maximum budget allocated to an + # individual team member. + # - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for + # individual team members. + # - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for + # individual team members. + # - team_member_key_duration: Optional[str] - The duration for a team member's + # key. e.g. "1d", "1w", "1mo" + # - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through + # routes for the team. + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - secret_manager_settings: Optional[dict] - Secret manager settings for the + # team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) + # - router_settings: Optional[UpdateRouterConfig] - team-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # Returns: + # + # - team_id: (str) Unique team id - used for tracking spend across multiple keys + # for same team id. + # + # \_deprecated_params: + # + # - admins: list - A list of user_id's for the admin role + # - users: list - A list of user_id's for the user role + # + # Example Request: + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_alias": "my-new-team_2", + # "members_with_roles": [{"role": "admin", "user_id": "user-1234"}, + # {"role": "user", "user_id": "user-2434"}] + # }' + # + # ``` + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_alias": "QA Prod Bot", + # "max_budget": 0.000000001, + # "budget_duration": "1d" + # }' + # ``` + sig do + params( + admins: T::Array[T.anything], + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::TeamCreateParams::AllowedVectorStoreIndex::OrHash + ] + ), + blocked: T::Boolean, + budget_duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + max_budget: T.nilable(Float), + members: T::Array[T.anything], + members_with_roles: T::Array[Hanzoai::Member::OrHash], + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T::Array[T.anything], + object_permission: + T.nilable(Hanzoai::TeamCreateParams::ObjectPermission::OrHash), + organization_id: T.nilable(String), + prompts: T.nilable(T::Array[String]), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + rpm_limit_type: + T.nilable(Hanzoai::TeamCreateParams::RpmLimitType::OrSymbol), + secret_manager_settings: T.nilable(T::Hash[Symbol, T.anything]), + tags: T.nilable(T::Array[T.anything]), + team_alias: T.nilable(String), + team_id: T.nilable(String), + team_member_budget: T.nilable(Float), + team_member_key_duration: T.nilable(String), + team_member_permissions: T.nilable(T::Array[String]), + team_member_rpm_limit: T.nilable(Integer), + team_member_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + tpm_limit_type: + T.nilable(Hanzoai::TeamCreateParams::TpmLimitType::OrSymbol), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::TeamCreateResponse) + end + def create( + # Body param + admins: nil, + # Body param + allowed_passthrough_routes: nil, + # Body param + allowed_vector_store_indexes: nil, + # Body param + blocked: nil, + # Body param + budget_duration: nil, + # Body param + guardrails: nil, + # Body param + max_budget: nil, + # Body param + members: nil, + # Body param + members_with_roles: nil, + # Body param + metadata: nil, + # Body param + model_aliases: nil, + # Body param + model_rpm_limit: nil, + # Body param + model_tpm_limit: nil, + # Body param + models: nil, + # Body param + object_permission: nil, + # Body param + organization_id: nil, + # Body param + prompts: nil, + # Body param + router_settings: nil, + # Body param + rpm_limit: nil, + # Body param + rpm_limit_type: nil, + # Body param + secret_manager_settings: nil, + # Body param + tags: nil, + # Body param + team_alias: nil, + # Body param + team_id: nil, + # Body param + team_member_budget: nil, + # Body param + team_member_key_duration: nil, + # Body param + team_member_permissions: nil, + # Body param + team_member_rpm_limit: nil, + # Body param + team_member_tpm_limit: nil, + # Body param + tpm_limit: nil, + # Body param + tpm_limit_type: nil, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # Use `/team/member_add` AND `/team/member/delete` to add/remove new team members + # + # You can now update team budget / rate limits via /team/update + # + # Parameters: + # + # - team_id: str - The team id of the user. Required param. + # - team_alias: Optional[str] - User defined team alias + # - team_member_permissions: Optional[List[str]] - A list of routes that non-admin + # team members can access. example: ["/key/generate", "/key/update", + # "/key/delete"] + # - metadata: Optional[dict] - Metadata for team, store information for team. + # Example metadata = {"team": "core-infra", "app": "app2", "email": + # "ishaan@berri.ai" } + # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - + # all keys with this team_id will have at max this TPM limit + # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - + # all keys associated with this team_id will have at max this RPM limit + # - max_budget: Optional[float] - The maximum budget allocated to the team - all + # keys for this team_id will have at max this max_budget + # - budget_duration: Optional[str] - The duration of the budget for the team. Doc + # [here](https://docs.litellm.ai/docs/proxy/team_budgets) + # - models: Optional[list] - A list of models associated with the team - all keys + # for this team_id will have at most, these models. If empty, assumes all models + # are allowed. + # - prompts: Optional[List[str]] - List of prompts that the team is allowed to + # use. + # - blocked: bool - Flag indicating if the team is blocked or not - will stop all + # calls from keys with this team_id. + # - tags: Optional[List[str]] - Tags for + # [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) + # and/or doing + # [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). + # - organization_id: Optional[str] - The organization id of the team. Default is + # None. Create via `/organization/new`. + # - model_aliases: Optional[dict] - Model aliases for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) + # - guardrails: Optional[List[str]] - Guardrails for the team. + # [Docs](https://docs.litellm.ai/docs/proxy/guardrails) + # - disable_global_guardrails: Optional[bool] - Whether to disable global + # guardrails for the key. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific + # object permission. Example - {"vector_stores": ["vector_store_1", + # "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": + # ["dev_group"]}. IF null or {} then no object permission. + # - team_member_budget: Optional[float] - The maximum budget allocated to an + # individual team member. + # - team_member_budget_duration: Optional[str] - The duration of the budget for + # the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) + # - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for + # individual team members. + # - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for + # individual team members. + # - team_member_key_duration: Optional[str] - The duration for a team member's + # key. e.g. "1d", "1w", "1mo" + # - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through + # routes for the team. + # - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) + # limit per model for this team. Example: {"gpt-4": 100, "gpt-3.5-turbo": 200} + # - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit + # per model for this team. Example: {"gpt-4": 10000, "gpt-3.5-turbo": 20000} + # Example - update team TPM Limit + # - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector + # store indexes for the key. Example - [{"index_name": "my-index", + # "index_permissions": ["write", "read"]}]. If specified, the key will only be + # able to use these specific vector store indexes. Create index, using + # `/v1/indexes` endpoint. + # - secret_manager_settings: Optional[dict] - Secret manager settings for the + # team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) + # - router_settings: Optional[UpdateRouterConfig] - team-specific router settings. + # Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then + # no router settings. + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", + # "tpm_limit": 100 + # }' + # ``` + # + # Example - Update Team `max_budget` budget + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", + # "max_budget": 10 + # }' + # ``` + sig do + params( + team_id: String, + allowed_passthrough_routes: T.nilable(T::Array[T.anything]), + allowed_vector_store_indexes: + T.nilable( + T::Array[ + Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex::OrHash + ] + ), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + max_budget: T.nilable(Float), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_aliases: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, Integer]), + model_tpm_limit: T.nilable(T::Hash[Symbol, Integer]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::TeamUpdateParams::ObjectPermission::OrHash), + organization_id: T.nilable(String), + prompts: T.nilable(T::Array[String]), + router_settings: T.nilable(T::Hash[Symbol, T.anything]), + rpm_limit: T.nilable(Integer), + secret_manager_settings: T.nilable(T::Hash[Symbol, T.anything]), + tags: T.nilable(T::Array[T.anything]), + team_alias: T.nilable(String), + team_member_budget: T.nilable(Float), + team_member_budget_duration: T.nilable(String), + team_member_key_duration: T.nilable(String), + team_member_rpm_limit: T.nilable(Integer), + team_member_tpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update( + # Body param + team_id:, + # Body param + allowed_passthrough_routes: nil, + # Body param + allowed_vector_store_indexes: nil, + # Body param + blocked: nil, + # Body param + budget_duration: nil, + # Body param + guardrails: nil, + # Body param + max_budget: nil, + # Body param + metadata: nil, + # Body param + model_aliases: nil, + # Body param + model_rpm_limit: nil, + # Body param + model_tpm_limit: nil, + # Body param + models: nil, + # Body param + object_permission: nil, + # Body param + organization_id: nil, + # Body param + prompts: nil, + # Body param + router_settings: nil, + # Body param + rpm_limit: nil, + # Body param + secret_manager_settings: nil, + # Body param + tags: nil, + # Body param + team_alias: nil, + # Body param + team_member_budget: nil, + # Body param + team_member_budget_duration: nil, + # Body param + team_member_key_duration: nil, + # Body param + team_member_rpm_limit: nil, + # Body param + team_member_tpm_limit: nil, + # Body param + tpm_limit: nil, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # ``` + # curl --location --request GET 'http://0.0.0.0:4000/team/list' --header 'Authorization: Bearer sk-1234' + # ``` + # + # Parameters: + # + # - user_id: str - Optional. If passed will only return teams that the user_id is + # a member of. + # - organization_id: str - Optional. If passed will only return teams that belong + # to the organization_id. Pass 'default_organization' to get all teams without + # organization_id. + sig do + params( + organization_id: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list( + organization_id: nil, + # Only return teams which this 'user_id' belongs to + user_id: nil, + request_options: {} + ) + end + + # delete team and associated team keys + # + # Parameters: + # + # - team_ids: List[str] - Required. List of team IDs to delete. Example: + # ["team-1234", "team-5678"] + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ + # "team_ids": ["8d916b1c-510d-4894-a334-1c16a93344f5"] + # }' + # ``` + sig do + params( + team_ids: T::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete( + # Body param + team_ids:, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # Add new members (either via user_email or user_id) to a team + # + # If user doesn't exist, new user row will also be added to User Table + # + # Only proxy_admin or admin of team, allowed to access this endpoint. + # + # ``` + # + # curl -X POST 'http://0.0.0.0:4000/team/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{"team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", "member": {"role": "user", "user_id": "krrish247652@berri.ai"}}' + # + # ``` + sig do + params( + member: + T.any(T::Array[Hanzoai::Member::OrHash], Hanzoai::Member::OrHash), + team_id: String, + max_budget_in_team: T.nilable(Float), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::TeamAddMemberResponse) + end + def add_member( + # Member object or list of member objects to add. Each member must include either + # user_id or user_email, and a role + member:, + # The ID of the team to add the member to + team_id:, + # Maximum budget allocated to this user within the team. If not set, user has + # unlimited budget within team limits + max_budget_in_team: nil, + request_options: {} + ) + end + + # Blocks all calls from keys with this team id. + # + # Parameters: + # + # - team_id: str - Required. The unique identifier of the team to block. + # + # Example: + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234" + # }' + # ``` + # + # Returns: + # + # - The updated team record with blocked=True + sig do + params( + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def block(team_id:, request_options: {}) + end + + # Disable all logging callbacks for a team + # + # Parameters: + # + # - team_id (str, required): The unique identifier for the team + # + # Example curl: + # + # ``` + # curl -X POST 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/disable_logging' -H 'Authorization: Bearer sk-1234' + # ``` + sig do + params( + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def disable_logging(team_id, request_options: {}) + end + + # List Available Teams + sig do + params( + response_model: T.anything, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list_available(response_model: nil, request_options: {}) + end + + # [BETA] + # + # delete members (either via user_email or user_id) from a team + # + # If user doesn't exist, an exception will be raised + # + # ``` + # curl -X POST 'http://0.0.0.0:8000/team/member_delete' + # -H 'Authorization: Bearer sk-1234' + # -H 'Content-Type: application/json' + # -d '{ + # "team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", + # "user_id": "krrish247652@berri.ai" + # }' + # ``` + sig do + params( + team_id: String, + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def remove_member( + team_id:, + user_email: nil, + user_id: nil, + request_options: {} + ) + end + + # get info on team + related keys + # + # Parameters: + # + # - team_id: str - Required. The unique identifier of the team to get info on. + # + # ``` + # curl --location 'http://localhost:4000/team/info?team_id=your_team_id_here' --header 'Authorization: Bearer your_api_key_here' + # ``` + sig do + params( + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve_info( + # Team ID in the request parameters + team_id: nil, + request_options: {} + ) + end + + # Blocks all calls from keys with this team id. + # + # Parameters: + # + # - team_id: str - Required. The unique identifier of the team to unblock. + # + # Example: + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234" + # }' + # ``` + sig do + params( + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def unblock(team_id:, request_options: {}) + end + + # [BETA] + # + # Update team member budgets and team member role + sig do + params( + team_id: String, + max_budget_in_team: T.nilable(Float), + role: T.nilable(Hanzoai::TeamUpdateMemberParams::Role::OrSymbol), + rpm_limit: T.nilable(Integer), + tpm_limit: T.nilable(Integer), + user_email: T.nilable(String), + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::TeamUpdateMemberResponse) + end + def update_member( + team_id:, + max_budget_in_team: nil, + role: nil, + # Requests per minute limit for this team member + rpm_limit: nil, + # Tokens per minute limit for this team member + tpm_limit: nil, + user_email: nil, + user_id: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/team/callback.rbi b/rbi/hanzoai/resources/team/callback.rbi new file mode 100644 index 00000000..670a09ec --- /dev/null +++ b/rbi/hanzoai/resources/team/callback.rbi @@ -0,0 +1,112 @@ +# typed: strong + +module Hanzoai + module Resources + class Team + class Callback + # Get the success/failure callbacks and variables for a team + # + # Parameters: + # + # - team_id (str, required): The unique identifier for the team + # + # Example curl: + # + # ``` + # curl -X GET 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Authorization: Bearer sk-1234' + # ``` + # + # This will return the callback settings for the team with id + # dbe2f686-a686-4896-864a-4c3924458709 + # + # Returns { "status": "success", "data": { "team_id": team_id, + # "success_callbacks": team_callback_settings_obj.success_callback, + # "failure_callbacks": team_callback_settings_obj.failure_callback, + # "callback_vars": team_callback_settings_obj.callback_vars, }, } + sig do + params( + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(team_id, request_options: {}) + end + + # Add a success/failure callback to a team + # + # Use this if if you want different teams to have different success/failure + # callbacks + # + # Parameters: + # + # - callback_name (Literal["langfuse", "langsmith", "gcs"], required): The name of + # the callback to add + # - callback_type (Literal["success", "failure", "success_and_failure"], + # required): The type of callback to add. One of: + # - "success": Callback for successful LLM calls + # - "failure": Callback for failed LLM calls + # - "success_and_failure": Callback for both successful and failed LLM calls + # - callback_vars (StandardCallbackDynamicParams, required): A dictionary of + # variables to pass to the callback + # - langfuse_public_key: The public key for the Langfuse callback + # - langfuse_secret_key: The secret key for the Langfuse callback + # - langfuse_secret: The secret for the Langfuse callback + # - langfuse_host: The host for the Langfuse callback + # - gcs_bucket_name: The name of the GCS bucket + # - gcs_path_service_account: The path to the GCS service account + # - langsmith_api_key: The API key for the Langsmith callback + # - langsmith_project: The project for the Langsmith callback + # - langsmith_base_url: The base URL for the Langsmith callback + # + # Example curl: + # + # ``` + # curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{ + # "callback_name": "langfuse", + # "callback_type": "success", + # "callback_vars": {"langfuse_public_key": "pk-lf-xxxx1", "langfuse_secret_key": "sk-xxxxx"} + # + # }' + # ``` + # + # This means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, + # all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and + # the secret key sk-xxxxx + sig do + params( + team_id: String, + callback_name: String, + callback_vars: T::Hash[Symbol, String], + callback_type: + T.nilable( + Hanzoai::Team::CallbackAddParams::CallbackType::OrSymbol + ), + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def add( + # Path param + team_id, + # Body param + callback_name:, + # Body param + callback_vars:, + # Body param + callback_type: nil, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/team/model.rbi b/rbi/hanzoai/resources/team/model.rbi new file mode 100644 index 00000000..9e28cc22 --- /dev/null +++ b/rbi/hanzoai/resources/team/model.rbi @@ -0,0 +1,66 @@ +# typed: strong + +module Hanzoai + module Resources + class Team + class Model + # Add models to a team's allowed model list. Only proxy admin or team admin can + # add models. + # + # Parameters: + # + # - team_id: str - Required. The team to add models to + # - models: List[str] - Required. List of models to add to the team + # + # Example Request: + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/model/add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234", + # "models": ["gpt-4", "claude-2"] + # }' + # ``` + sig do + params( + models: T::Array[String], + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def add(models:, team_id:, request_options: {}) + end + + # Remove models from a team's allowed model list. Only proxy admin or team admin + # can remove models. + # + # Parameters: + # + # - team_id: str - Required. The team to remove models from + # - models: List[str] - Required. List of models to remove from the team + # + # Example Request: + # + # ``` + # curl --location 'http://0.0.0.0:4000/team/model/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "team_id": "team-1234", + # "models": ["gpt-4"] + # }' + # ``` + sig do + params( + models: T::Array[String], + team_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def remove(models:, team_id:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/test.rbi b/rbi/hanzoai/resources/test.rbi new file mode 100644 index 00000000..869a19c2 --- /dev/null +++ b/rbi/hanzoai/resources/test.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module Hanzoai + module Resources + class Test + # [DEPRECATED] use `/health/liveliness` instead. + # + # A test endpoint that pings the proxy server to check if it's healthy. + # + # Parameters: request (Request): The incoming request. + # + # Returns: dict: A dictionary containing the route of the request URL. + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def ping(request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/threads.rbi b/rbi/hanzoai/resources/threads.rbi new file mode 100644 index 00000000..31956140 --- /dev/null +++ b/rbi/hanzoai/resources/threads.rbi @@ -0,0 +1,42 @@ +# typed: strong + +module Hanzoai + module Resources + class Threads + sig { returns(Hanzoai::Resources::Threads::Messages) } + attr_reader :messages + + sig { returns(Hanzoai::Resources::Threads::Runs) } + attr_reader :runs + + # Create a thread. + # + # API Reference - + # https://platform.openai.com/docs/api-reference/threads/createThread + sig do + params(request_options: Hanzoai::RequestOptions::OrHash).returns( + T.anything + ) + end + def create(request_options: {}) + end + + # Retrieves a thread. + # + # API Reference - https://platform.openai.com/docs/api-reference/threads/getThread + sig do + params( + thread_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(thread_id, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/threads/messages.rbi b/rbi/hanzoai/resources/threads/messages.rbi new file mode 100644 index 00000000..0f30541b --- /dev/null +++ b/rbi/hanzoai/resources/threads/messages.rbi @@ -0,0 +1,40 @@ +# typed: strong + +module Hanzoai + module Resources + class Threads + class Messages + # Create a message. + # + # API Reference - + # https://platform.openai.com/docs/api-reference/messages/createMessage + sig do + params( + thread_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(thread_id, request_options: {}) + end + + # Returns a list of messages for a given thread. + # + # API Reference - + # https://platform.openai.com/docs/api-reference/messages/listMessages + sig do + params( + thread_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def list(thread_id, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/threads/runs.rbi b/rbi/hanzoai/resources/threads/runs.rbi new file mode 100644 index 00000000..ededbce5 --- /dev/null +++ b/rbi/hanzoai/resources/threads/runs.rbi @@ -0,0 +1,26 @@ +# typed: strong + +module Hanzoai + module Resources + class Threads + class Runs + # Create a run. + # + # API Reference: https://platform.openai.com/docs/api-reference/runs/createRun + sig do + params( + thread_id: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(thread_id, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end + end +end diff --git a/rbi/hanzoai/resources/user.rbi b/rbi/hanzoai/resources/user.rbi new file mode 100644 index 00000000..e8d43666 --- /dev/null +++ b/rbi/hanzoai/resources/user.rbi @@ -0,0 +1,352 @@ +# typed: strong + +module Hanzoai + module Resources + class User + # Use this to create a new INTERNAL user with a budget. Internal Users can access + # LiteLLM Admin UI to make keys, request access to models. This creates a new user + # and generates a new api key for the new user. The new api key is returned. + # + # Returns user id, budget + new key. + # + # Parameters: + # + # - user_id: Optional[str] - Specify a user id. If not set, a unique id will be + # generated. + # - user_alias: Optional[str] - A descriptive name for you to know who this user + # id refers to. + # - teams: Optional[list] - specify a list of team id's a user belongs to. + # - user_email: Optional[str] - Specify a user email. + # - send_invite_email: Optional[bool] - Specify if an invite email should be sent. + # - user_role: Optional[str] - Specify a user role - "proxy_admin", + # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", + # "customer". Info about each role here: + # `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` + # - max_budget: Optional[float] - Specify max budget for a given user. + # - budget_duration: Optional[str] - Budget is reset at the end of specified + # duration. If not set, budget is never reset. You can set duration as seconds + # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). + # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, + # key is allowed to call all models). Set to ['no-default-models'] to block all + # model access. Restricting user to only team-based model access. + # - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per + # minute) + # - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per + # minute) + # - auto_create_key: bool - Default=True. Flag used for returning a key as part of + # the /user/new response + # - aliases: Optional[dict] - Model aliases for the user - + # [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) + # - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. + # - allowed_cache_controls: Optional[list] - List of allowed cache control values. + # Example - ["no-cache", "no-store"]. See all values - + # https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- + # - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. + # - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active + # guardrails for the user + # - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, + # eg. turning off pii masking. + # - metadata: Optional[dict] - Metadata for user, store information for user. + # Example metadata = {"team": "core-infra", "app": "app2", "email": + # "ishaan@berri.ai" } + # - max_parallel_requests: Optional[int] - Rate limit a user based on the number + # of parallel requests. Raises 429 error, if user's parallel requests > x. + # - soft_budget: Optional[float] - Get alerts when user crosses given budget, + # doesn't block requests. + # - model_max_budget: Optional[dict] - Model-specific max budget for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) + # - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) + # - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) + # - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated + # by proxy whenever user is used. You can set duration as seconds ("30s"), + # minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). + # - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default + # is None. + # - duration: Optional[str] - Duration for the key auto-created on `/user/new`. + # Default is None. + # - key_alias: Optional[str] - Alias for the key auto-created on `/user/new`. + # Default is None. + # - sso_user_id: Optional[str] - The id of the user in the SSO provider. + # - object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal + # user-specific object permission. Example - {"vector_stores": + # ["vector_store_1", "vector_store_2"]}. IF null or {} then no object + # permission. + # - prompts: Optional[List[str]] - List of allowed prompts for the user. If + # specified, the user will only be able to use these specific prompts. + # - organizations: List[str] - List of organization id's the user is a member of + # Returns: + # - key: (str) The generated api key for the user + # - expires: (datetime) Datetime object for when key expires. + # - user_id: (str) Unique user id - used for tracking spend across multiple keys + # for same user id. + # - max_budget: (float|None) Max budget for given user. + # + # Usage Example + # + # ```shell + # curl -X POST "http://localhost:4000/user/new" -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ + # "username": "new_user", + # "email": "new_user@example.com" + # }' + # ``` + sig do + params( + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + auto_create_key: T::Boolean, + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::UserCreateParams::ObjectPermission::OrHash), + organizations: T.nilable(T::Array[String]), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rpm_limit: T.nilable(Integer), + send_invite_email: T.nilable(T::Boolean), + spend: T.nilable(Float), + sso_user_id: T.nilable(String), + team_id: T.nilable(String), + teams: T.nilable(Hanzoai::UserCreateParams::Teams::Variants), + tpm_limit: T.nilable(Integer), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: T.nilable(Hanzoai::UserCreateParams::UserRole::OrSymbol), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::UserCreateResponse) + end + def create( + aliases: nil, + allowed_cache_controls: nil, + auto_create_key: nil, + blocked: nil, + budget_duration: nil, + config: nil, + duration: nil, + guardrails: nil, + key_alias: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + organizations: nil, + permissions: nil, + prompts: nil, + rpm_limit: nil, + send_invite_email: nil, + spend: nil, + sso_user_id: nil, + team_id: nil, + teams: nil, + tpm_limit: nil, + user_alias: nil, + user_email: nil, + user_id: nil, + user_role: nil, + request_options: {} + ) + end + + # Example curl + # + # ``` + # curl --location 'http://0.0.0.0:4000/user/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + # "user_id": "test-litellm-user-4", + # "user_role": "proxy_admin_viewer" + # }' + # ``` + # + # Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique + # id will be generated. - user_email: Optional[str] - Specify a user email. - + # password: Optional[str] - Specify a user password. - user_alias: Optional[str] - + # A descriptive name for you to know who this user id refers to. - teams: + # Optional[list] - specify a list of team id's a user belongs to. - + # send_invite_email: Optional[bool] - Specify if an invite email should be sent. - + # user_role: Optional[str] - Specify a user role - "proxy_admin", + # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", + # "customer". Info about each role here: + # `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` - max_budget: + # Optional[float] - Specify max budget for a given user. - budget_duration: + # Optional[str] - Budget is reset at the end of specified duration. If not set, + # budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), + # hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - + # Model_name's a user is allowed to call. (if empty, key is allowed to call all + # models) - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens + # per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user + # (Requests per minute) - auto_create_key: bool - Default=True. Flag used for + # returning a key as part of the /user/new response - aliases: Optional[dict] - + # Model aliases for the user - + # [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - + # config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - + # allowed_cache_controls: Optional[list] - List of allowed cache control values. + # Example - ["no-cache", "no-store"]. See all values - + # https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- - + # blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - + # guardrails: Optional[List[str]] - [Not Implemented Yet] List of active + # guardrails for the user - permissions: Optional[dict] - [Not Implemented Yet] + # User-specific permissions, eg. turning off pii masking. - metadata: + # Optional[dict] - Metadata for user, store information for user. Example metadata + # = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - + # max_parallel_requests: Optional[int] - Rate limit a user based on the number of + # parallel requests. Raises 429 error, if user's parallel requests > x. - + # soft_budget: Optional[float] - Get alerts when user crosses given budget, + # doesn't block requests. - model_max_budget: Optional[dict] - Model-specific max + # budget for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - + # model_rpm_limit: Optional[float] - Model-specific rpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - + # model_tpm_limit: Optional[float] - Model-specific tpm limit for user. + # [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - + # spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by + # proxy whenever user is used. You can set duration as seconds ("30s"), minutes + # ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - team_id: Optional[str] - + # [DEPRECATED PARAM] The team id of the user. Default is None. - duration: + # Optional[str] - [NOT IMPLEMENTED]. - key_alias: Optional[str] - [NOT + # IMPLEMENTED]. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - + # internal user-specific object permission. Example - {"vector_stores": + # ["vector_store_1", "vector_store_2"]}. IF null or {} then no object + # permission. - prompts: Optional[List[str]] - List of allowed prompts for the + # user. If specified, the user will only be able to use these specific prompts. + sig do + params( + aliases: T.nilable(T::Hash[Symbol, T.anything]), + allowed_cache_controls: T.nilable(T::Array[T.anything]), + blocked: T.nilable(T::Boolean), + budget_duration: T.nilable(String), + config: T.nilable(T::Hash[Symbol, T.anything]), + duration: T.nilable(String), + guardrails: T.nilable(T::Array[String]), + key_alias: T.nilable(String), + max_budget: T.nilable(Float), + max_parallel_requests: T.nilable(Integer), + metadata: T.nilable(T::Hash[Symbol, T.anything]), + model_max_budget: T.nilable(T::Hash[Symbol, T.anything]), + model_rpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + model_tpm_limit: T.nilable(T::Hash[Symbol, T.anything]), + models: T.nilable(T::Array[T.anything]), + object_permission: + T.nilable(Hanzoai::UserUpdateParams::ObjectPermission::OrHash), + password: T.nilable(String), + permissions: T.nilable(T::Hash[Symbol, T.anything]), + prompts: T.nilable(T::Array[String]), + rpm_limit: T.nilable(Integer), + spend: T.nilable(Float), + team_id: T.nilable(String), + tpm_limit: T.nilable(Integer), + user_alias: T.nilable(String), + user_email: T.nilable(String), + user_id: T.nilable(String), + user_role: T.nilable(Hanzoai::UserUpdateParams::UserRole::OrSymbol), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update( + aliases: nil, + allowed_cache_controls: nil, + blocked: nil, + budget_duration: nil, + config: nil, + duration: nil, + guardrails: nil, + key_alias: nil, + max_budget: nil, + max_parallel_requests: nil, + metadata: nil, + model_max_budget: nil, + model_rpm_limit: nil, + model_tpm_limit: nil, + models: nil, + object_permission: nil, + password: nil, + permissions: nil, + prompts: nil, + rpm_limit: nil, + spend: nil, + team_id: nil, + tpm_limit: nil, + user_alias: nil, + user_email: nil, + user_id: nil, + user_role: nil, + request_options: {} + ) + end + + # delete user and associated user keys + # + # ``` + # curl --location 'http://0.0.0.0:4000/user/delete' + # --header 'Authorization: Bearer sk-1234' + # --header 'Content-Type: application/json' + # --data-raw '{ + # "user_ids": ["45e3e396-ee08-4a61-a88e-16b3ce7e0849"] + # }' + # ``` + # + # Parameters: + # + # - user_ids: List[str] - The list of user id's to be deleted. + sig do + params( + user_ids: T::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete( + # Body param + user_ids:, + # Header param: The litellm-changed-by header enables tracking of actions + # performed by authorized users on behalf of other users, providing an audit trail + # for accountability + litellm_changed_by: nil, + request_options: {} + ) + end + + # [10/07/2024] Note: To get all users (+pagination), use `/user/list` endpoint. + # + # Use this to get user information. (user row + all user key info) + # + # Example request + # + # ``` + # curl -X GET 'http://localhost:4000/user/info?user_id=krrish7%40berri.ai' --header 'Authorization: Bearer sk-1234' + # ``` + sig do + params( + user_id: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve_info( + # User ID in the request parameters + user_id: nil, + request_options: {} + ) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/utils.rbi b/rbi/hanzoai/resources/utils.rbi new file mode 100644 index 00000000..cb41fb4c --- /dev/null +++ b/rbi/hanzoai/resources/utils.rbi @@ -0,0 +1,71 @@ +# typed: strong + +module Hanzoai + module Resources + class Utils + # Returns supported openai params for a given litellm model name + # + # e.g. `gpt-4` vs `gpt-3.5-turbo` + # + # Example curl: + # + # ``` + # curl -X GET --location 'http://localhost:4000/utils/supported_openai_params?model=gpt-3.5-turbo-16k' --header 'Authorization: Bearer sk-1234' + # ``` + sig do + params( + model: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def get_supported_openai_params(model:, request_options: {}) + end + + # Args: request: TokenCountRequest call_endpoint: bool - When set to "True" it + # will call the token counting endpoint - e.g Anthropic or Google AI Studio Token + # Counting APIs. + # + # Returns: TokenCountResponse + sig do + params( + model: String, + call_endpoint: T::Boolean, + contents: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + messages: T.nilable(T::Array[T::Hash[Symbol, T.anything]]), + prompt: T.nilable(String), + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::UtilTokenCounterResponse) + end + def token_counter( + # Body param + model:, + # Query param + call_endpoint: nil, + # Body param + contents: nil, + # Body param + messages: nil, + # Body param + prompt: nil, + request_options: {} + ) + end + + # Transform Request + sig do + params( + call_type: Hanzoai::UtilTransformRequestParams::CallType::OrSymbol, + request_body: T::Hash[Symbol, T.anything], + request_options: Hanzoai::RequestOptions::OrHash + ).returns(Hanzoai::Models::UtilTransformRequestResponse) + end + def transform_request(call_type:, request_body:, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/hanzoai/resources/vertex_ai.rbi b/rbi/hanzoai/resources/vertex_ai.rbi new file mode 100644 index 00000000..ace2346c --- /dev/null +++ b/rbi/hanzoai/resources/vertex_ai.rbi @@ -0,0 +1,72 @@ +# typed: strong + +module Hanzoai + module Resources + class VertexAI + # Call LiteLLM proxy via Vertex AI SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def create(endpoint, request_options: {}) + end + + # Call LiteLLM proxy via Vertex AI SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def retrieve(endpoint, request_options: {}) + end + + # Call LiteLLM proxy via Vertex AI SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def update(endpoint, request_options: {}) + end + + # Call LiteLLM proxy via Vertex AI SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def delete(endpoint, request_options: {}) + end + + # Call LiteLLM proxy via Vertex AI SDK. + # + # [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + sig do + params( + endpoint: String, + request_options: Hanzoai::RequestOptions::OrHash + ).returns(T.anything) + end + def patch(endpoint, request_options: {}) + end + + # @api private + sig { params(client: Hanzoai::Client).returns(T.attached_class) } + def self.new(client:) + end + end + end +end diff --git a/rbi/lib/hanzoai/version.rbi b/rbi/hanzoai/version.rbi similarity index 100% rename from rbi/lib/hanzoai/version.rbi rename to rbi/hanzoai/version.rbi diff --git a/rbi/lib/hanzoai/errors.rbi b/rbi/lib/hanzoai/errors.rbi deleted file mode 100644 index 2acfcc0a..00000000 --- a/rbi/lib/hanzoai/errors.rbi +++ /dev/null @@ -1,146 +0,0 @@ -# typed: strong - -module Hanzoai - module Errors - class Error < StandardError - sig { returns(T.nilable(StandardError)) } - attr_accessor :cause - end - - class ConversionError < Hanzoai::Errors::Error - end - - class APIError < Hanzoai::Errors::Error - sig { returns(URI::Generic) } - attr_accessor :url - - sig { returns(T.nilable(Integer)) } - attr_accessor :status - - sig { returns(T.nilable(T.anything)) } - attr_accessor :body - - # @api private - sig do - params( - url: URI::Generic, - status: T.nilable(Integer), - body: T.nilable(Object), - request: NilClass, - response: NilClass, - message: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new(url:, status: nil, body: nil, request: nil, response: nil, message: nil) - end - end - - class APIConnectionError < Hanzoai::Errors::APIError - sig { void } - attr_accessor :status - - sig { void } - attr_accessor :body - - # @api private - sig do - params( - url: URI::Generic, - status: NilClass, - body: NilClass, - request: NilClass, - response: NilClass, - message: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new(url:, status: nil, body: nil, request: nil, response: nil, message: "Connection error.") - end - end - - class APITimeoutError < Hanzoai::Errors::APIConnectionError - # @api private - sig do - params( - url: URI::Generic, - status: NilClass, - body: NilClass, - request: NilClass, - response: NilClass, - message: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new(url:, status: nil, body: nil, request: nil, response: nil, message: "Request timed out.") - end - end - - class APIStatusError < Hanzoai::Errors::APIError - # @api private - sig do - params( - url: URI::Generic, - status: Integer, - 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) - end - - sig { returns(Integer) } - attr_accessor :status - - # @api private - sig do - params( - url: URI::Generic, - status: Integer, - 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) - end - end - - class BadRequestError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = 400 - end - - class AuthenticationError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = 401 - end - - class PermissionDeniedError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = 403 - end - - class NotFoundError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = 404 - end - - class ConflictError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = 409 - end - - class UnprocessableEntityError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = 422 - end - - class RateLimitError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = 429 - end - - class InternalServerError < Hanzoai::Errors::APIStatusError - HTTP_STATUS = T.let((500..), T::Range[Integer]) - end - end -end diff --git a/rbi/lib/hanzoai/internal.rbi b/rbi/lib/hanzoai/internal.rbi deleted file mode 100644 index d9498974..00000000 --- a/rbi/lib/hanzoai/internal.rbi +++ /dev/null @@ -1,12 +0,0 @@ -# typed: strong - -module Hanzoai - # @api private - module Internal - # Due to the current WIP status of Shapes support in Sorbet, types referencing - # this alias might be refined in the future. - AnyHash = T.type_alias { T::Hash[Symbol, T.anything] } - - OMIT = T.let(T.anything, T.anything) - end -end diff --git a/rbi/lib/hanzoai/internal/transport/base_client.rbi b/rbi/lib/hanzoai/internal/transport/base_client.rbi deleted file mode 100644 index 26a798c8..00000000 --- a/rbi/lib/hanzoai/internal/transport/base_client.rbi +++ /dev/null @@ -1,212 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Transport - # @api private - class BaseClient - abstract! - - RequestComponentsShape = - T.type_alias do - { - method: Symbol, - path: T.any(String, T::Array[String]), - query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]), - headers: T.nilable( - T::Hash[String, - T.nilable( - T.any( - String, - Integer, - T::Array[T.nilable(T.any(String, Integer))] - ) - )] - ), - body: T.nilable(T.anything), - unwrap: T.nilable(Symbol), - page: T.nilable(T::Class[Hanzoai::Internal::Type::BasePage[Hanzoai::Internal::Type::BaseModel]]), - stream: T.nilable(T::Class[T.anything]), - model: T.nilable(Hanzoai::Internal::Type::Converter::Input), - options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - } - end - - RequestInputShape = - T.type_alias do - { - method: Symbol, - url: URI::Generic, - headers: T::Hash[String, String], - body: T.anything, - max_retries: Integer, - timeout: Float - } - end - - # from whatwg fetch spec - MAX_REDIRECTS = 20 - - PLATFORM_HEADERS = T::Hash[String, String] - - class << self - # @api private - sig { params(req: Hanzoai::Internal::Transport::BaseClient::RequestComponentsShape).void } - def validate!(req) - end - - # @api private - sig do - params( - status: Integer, - headers: T.any( - T::Hash[String, String], - Net::HTTPHeader - ) - ).returns(T::Boolean) - end - def should_retry?(status, headers:) - end - - # @api private - sig do - params( - request: Hanzoai::Internal::Transport::BaseClient::RequestInputShape, - status: Integer, - response_headers: T.any(T::Hash[String, String], Net::HTTPHeader) - ) - .returns(Hanzoai::Internal::Transport::BaseClient::RequestInputShape) - end - def follow_redirect(request, status:, response_headers:) - end - - # @api private - sig do - params( - status: T.any(Integer, Hanzoai::Errors::APIConnectionError), - stream: T.nilable(T::Enumerable[String]) - ) - .void - end - def reap_connection!(status, stream:) - end - end - - # @api private - sig { returns(Hanzoai::Internal::Transport::PooledNetRequester) } - attr_accessor :requester - - # @api private - sig do - params( - base_url: String, - timeout: Float, - max_retries: Integer, - initial_retry_delay: Float, - max_retry_delay: Float, - headers: T::Hash[String, - T.nilable(T.any(String, Integer, T::Array[T.nilable(T.any(String, Integer))]))], - idempotency_header: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - base_url:, - timeout: 0.0, - max_retries: 0, - initial_retry_delay: 0.0, - max_retry_delay: 0.0, - headers: {}, - idempotency_header: nil - ) - end - - # @api private - sig { overridable.returns(T::Hash[String, String]) } - private def auth_headers - end - - # @api private - sig { returns(String) } - private def generate_idempotency_key - end - - # @api private - sig do - overridable - .params( - req: Hanzoai::Internal::Transport::BaseClient::RequestComponentsShape, - opts: Hanzoai::Internal::AnyHash - ) - .returns(Hanzoai::Internal::Transport::BaseClient::RequestInputShape) - end - private def build_request(req, opts) - end - - # @api private - sig { params(headers: T::Hash[String, String], retry_count: Integer).returns(Float) } - private def retry_delay(headers, retry_count:) - end - - # @api private - sig do - params( - request: Hanzoai::Internal::Transport::BaseClient::RequestInputShape, - redirect_count: Integer, - retry_count: Integer, - send_retry_header: T::Boolean - ) - .returns([Integer, Net::HTTPResponse, T::Enumerable[String]]) - end - private def send_request(request, redirect_count:, retry_count:, send_retry_header:) - end - - # Execute the request specified by `req`. This is the method that all resource - # methods call into. - # - # @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: Hanzoai::Internal::Type::Unknown, options: {}) - sig do - params( - method: Symbol, - path: T.any(String, T::Array[String]), - query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))]), - headers: T.nilable( - T::Hash[String, - T.nilable( - T.any( - String, - Integer, - T::Array[T.nilable(T.any(String, Integer))] - ) - )] - ), - body: T.nilable(T.anything), - unwrap: T.nilable(Symbol), - page: T.nilable(T::Class[Hanzoai::Internal::Type::BasePage[Hanzoai::Internal::Type::BaseModel]]), - stream: T.nilable(T::Class[T.anything]), - model: T.nilable(Hanzoai::Internal::Type::Converter::Input), - options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def request( - method, - path, - query: {}, - headers: {}, - body: nil, - unwrap: nil, - page: nil, - stream: nil, - model: Hanzoai::Internal::Type::Unknown, - options: {} - ) - end - - sig { returns(String) } - def inspect - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/transport/pooled_net_requester.rbi b/rbi/lib/hanzoai/internal/transport/pooled_net_requester.rbi deleted file mode 100644 index ec5f3361..00000000 --- a/rbi/lib/hanzoai/internal/transport/pooled_net_requester.rbi +++ /dev/null @@ -1,66 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Transport - # @api private - class PooledNetRequester - RequestShape = - T.type_alias do - { - method: Symbol, - url: URI::Generic, - headers: T::Hash[String, String], - body: T.anything, - deadline: Float - } - end - - # from the golang stdlib - # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49 - KEEP_ALIVE_TIMEOUT = 30 - - class << self - # @api private - sig { params(url: URI::Generic).returns(Net::HTTP) } - def connect(url) - end - - # @api private - sig { params(conn: Net::HTTP, deadline: Float).void } - def calibrate_socket_timeout(conn, deadline) - end - - # @api private - sig do - params( - request: Hanzoai::Internal::Transport::PooledNetRequester::RequestShape, - blk: T.proc.params(arg0: String).void - ) - .returns(Net::HTTPGenericRequest) - end - def build_request(request, &blk) - end - end - - # @api private - sig { params(url: URI::Generic, deadline: Float, blk: T.proc.params(arg0: Net::HTTP).void).void } - private def with_pool(url, deadline:, &blk) - end - - # @api private - sig do - params(request: Hanzoai::Internal::Transport::PooledNetRequester::RequestShape) - .returns([Integer, Net::HTTPResponse, T::Enumerable[String]]) - end - def execute(request) - end - - # @api private - sig { params(size: Integer).returns(T.attached_class) } - def self.new(size: Etc.nprocessors) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/array_of.rbi b/rbi/lib/hanzoai/internal/type/array_of.rbi deleted file mode 100644 index 064ceac2..00000000 --- a/rbi/lib/hanzoai/internal/type/array_of.rbi +++ /dev/null @@ -1,88 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - # - # Array of items of a given type. - class ArrayOf - include Hanzoai::Internal::Type::Converter - - abstract! - final! - - Elem = type_member(:out) - - sig(:final) do - params( - type_info: T.any( - Hanzoai::Internal::AnyHash, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ), - spec: Hanzoai::Internal::AnyHash - ) - .returns(T.attached_class) - end - def self.[](type_info, spec = {}) - end - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def ===(other) - end - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def ==(other) - end - - # @api private - sig(:final) do - override - .params(value: T.any( - T::Array[T.anything], - T.anything - ), - state: Hanzoai::Internal::Type::Converter::State) - .returns(T.any(T::Array[T.anything], T.anything)) - end - def coerce(value, state:) - end - - # @api private - sig(:final) do - override - .params(value: T.any(T::Array[T.anything], T.anything)) - .returns(T.any(T::Array[T.anything], T.anything)) - end - def dump(value) - end - - # @api private - sig(:final) { returns(Elem) } - protected def item_type - end - - # @api private - sig(:final) { returns(T::Boolean) } - protected def nilable? - end - - # @api private - sig(:final) do - params( - type_info: T.any( - Hanzoai::Internal::AnyHash, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ), - spec: Hanzoai::Internal::AnyHash - ) - .void - end - def initialize(type_info, spec = {}) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/base_model.rbi b/rbi/lib/hanzoai/internal/type/base_model.rbi deleted file mode 100644 index 6ed1fee3..00000000 --- a/rbi/lib/hanzoai/internal/type/base_model.rbi +++ /dev/null @@ -1,208 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - class BaseModel - extend Hanzoai::Internal::Type::Converter - - abstract! - - KnownFieldShape = T.type_alias do - {mode: T.nilable(Symbol), required: T::Boolean, nilable: T::Boolean} - end - - class << self - # @api private - # - # Assumes superclass fields are totally defined before fields are accessed / - # defined on subclasses. - sig do - returns( - T::Hash[ - Symbol, - T.all( - Hanzoai::Internal::Type::BaseModel::KnownFieldShape, - {type_fn: T.proc.returns(Hanzoai::Internal::Type::Converter::Input)} - ) - ] - ) - end - def known_fields - end - - # @api private - sig do - returns( - T::Hash[ - Symbol, - T.all( - Hanzoai::Internal::Type::BaseModel::KnownFieldShape, - {type: Hanzoai::Internal::Type::Converter::Input} - ) - ] - ) - end - def fields - end - - # @api private - sig do - params( - name_sym: Symbol, - required: T::Boolean, - type_info: T.any( - { - const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)), - enum: T.nilable(T.proc.returns(Hanzoai::Internal::Type::Converter::Input)), - union: T.nilable(T.proc.returns(Hanzoai::Internal::Type::Converter::Input)), - api_name: Symbol, - nil?: T::Boolean - }, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ), - spec: Hanzoai::Internal::AnyHash - ) - .void - end - private def add_field(name_sym, required:, type_info:, spec:) - end - - # @api private - sig do - params( - name_sym: Symbol, - type_info: T.any( - Hanzoai::Internal::AnyHash, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ), - spec: Hanzoai::Internal::AnyHash - ) - .void - end - def required(name_sym, type_info, spec = {}) - end - - # @api private - sig do - params( - name_sym: Symbol, - type_info: T.any( - Hanzoai::Internal::AnyHash, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ), - spec: Hanzoai::Internal::AnyHash - ) - .void - end - def optional(name_sym, type_info, spec = {}) - end - - # @api private - # - # `request_only` attributes not excluded from `.#coerce` when receiving responses - # even if well behaved servers should not send them - sig { params(blk: T.proc.void).void } - private def request_only(&blk) - end - - # @api private - # - # `response_only` attributes are omitted from `.#dump` when making requests - sig { params(blk: T.proc.void).void } - private def response_only(&blk) - end - - sig { params(other: T.anything).returns(T::Boolean) } - def ==(other) - end - end - - sig { params(other: T.anything).returns(T::Boolean) } - def ==(other) - end - - class << self - # @api private - sig do - override - .params( - value: T.any(Hanzoai::Internal::Type::BaseModel, T::Hash[T.anything, T.anything], T.anything), - state: Hanzoai::Internal::Type::Converter::State - ) - .returns(T.any(T.attached_class, T.anything)) - end - def coerce(value, state:) - end - - # @api private - sig do - override - .params(value: T.any(T.attached_class, T.anything)) - .returns(T.any(T::Hash[T.anything, T.anything], T.anything)) - end - def dump(value) - end - end - - # Returns the raw value associated with the given key, if found. Otherwise, nil is - # returned. - # - # It is valid to lookup keys that are not in the API spec, for example to access - # undocumented features. This method does not parse response data into - # higher-level types. Lookup by anything other than a Symbol is an ArgumentError. - sig { params(key: Symbol).returns(T.nilable(T.anything)) } - def [](key) - end - - # Returns a Hash of the data underlying this object. O(1) - # - # Keys are Symbols and values are the raw values from the response. The return - # value indicates which values were ever set on the object. i.e. there will be a - # key in this hash if they ever were, even if the set value was nil. - # - # This method is not recursive. The returned value is shared by the object, so it - # should not be mutated. - sig { overridable.returns(Hanzoai::Internal::AnyHash) } - def to_h - end - - # Returns a Hash of the data underlying this object. O(1) - # - # Keys are Symbols and values are the raw values from the response. The return - # value indicates which values were ever set on the object. i.e. there will be a - # key in this hash if they ever were, even if the set value was nil. - # - # This method is not recursive. The returned value is shared by the object, so it - # should not be mutated. - sig { overridable.returns(Hanzoai::Internal::AnyHash) } - def to_hash - end - - sig { params(keys: T.nilable(T::Array[Symbol])).returns(Hanzoai::Internal::AnyHash) } - def deconstruct_keys(keys) - end - - sig { params(a: T.anything).returns(String) } - def to_json(*a) - end - - sig { params(a: T.anything).returns(String) } - def to_yaml(*a) - end - - # Create a new instance of a model. - sig { params(data: T.any(T::Hash[Symbol, T.anything], T.self_type)).returns(T.attached_class) } - def self.new(data = {}) - end - - sig { returns(String) } - def inspect - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/boolean_model.rbi b/rbi/lib/hanzoai/internal/type/boolean_model.rbi deleted file mode 100644 index 249f236f..00000000 --- a/rbi/lib/hanzoai/internal/type/boolean_model.rbi +++ /dev/null @@ -1,43 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - # - # Ruby has no Boolean class; this is something for models to refer to. - class BooleanModel - extend Hanzoai::Internal::Type::Converter - - abstract! - final! - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def self.===(other) - end - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def self.==(other) - end - - class << self - # @api private - sig(:final) do - override - .params(value: T.any(T::Boolean, T.anything), state: Hanzoai::Internal::Type::Converter::State) - .returns(T.any(T::Boolean, T.anything)) - end - def coerce(value, state:) - end - - # @api private - sig(:final) do - override.params(value: T.any(T::Boolean, T.anything)).returns(T.any(T::Boolean, T.anything)) - end - def dump(value) - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/converter.rbi b/rbi/lib/hanzoai/internal/type/converter.rbi deleted file mode 100644 index fad47785..00000000 --- a/rbi/lib/hanzoai/internal/type/converter.rbi +++ /dev/null @@ -1,108 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - module Converter - Input = T.type_alias { T.any(Hanzoai::Internal::Type::Converter, T::Class[T.anything]) } - - State = - T.type_alias do - { - strictness: T.any(T::Boolean, Symbol), - exactness: {yes: Integer, no: Integer, maybe: Integer}, - branched: Integer - } - end - - # @api private - sig do - overridable.params( - value: T.anything, - state: Hanzoai::Internal::Type::Converter::State - ).returns(T.anything) - end - def coerce(value, state:) - end - - # @api private - sig { overridable.params(value: T.anything).returns(T.anything) } - def dump(value) - end - - class << self - # @api private - sig do - params( - spec: T.any( - { - const: T.nilable(T.any(NilClass, T::Boolean, Integer, Float, Symbol)), - enum: T.nilable(T.proc.returns(Hanzoai::Internal::Type::Converter::Input)), - union: T.nilable(T.proc.returns(Hanzoai::Internal::Type::Converter::Input)) - }, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ) - ) - .returns(T.proc.returns(T.anything)) - end - def self.type_info(spec) - end - - # @api private - # - # Based on `target`, transform `value` into `target`, to the extent possible: - # - # 1. if the given `value` conforms to `target` already, return the given `value` - # 2. if it's possible and safe to convert the given `value` to `target`, then the - # converted value - # 3. otherwise, the given `value` unaltered - # - # The coercion process is subject to improvement between minor release versions. - # See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode - sig do - params( - target: Hanzoai::Internal::Type::Converter::Input, - value: T.anything, - state: Hanzoai::Internal::Type::Converter::State - ) - .returns(T.anything) - end - def self.coerce( - target, - value, - # The `strictness` is one of `true`, `false`, or `:strong`. This informs the - # coercion strategy when we have to decide between multiple possible conversion - # targets: - # - # - `true`: the conversion must be exact, with minimum coercion. - # - `false`: the conversion can be approximate, with some coercion. - # - `:strong`: the conversion must be exact, with no coercion, and raise an error - # if not possible. - # - # The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For - # any given conversion attempt, the exactness will be updated based on how closely - # the value recursively matches the target type: - # - # - `yes`: the value can be converted to the target type with minimum coercion. - # - `maybe`: the value can be converted to the target type with some reasonable - # coercion. - # - `no`: the value cannot be converted to the target type. - # - # See implementation below for more details. - state: {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} - ) - end - - # @api private - sig do - params(target: Hanzoai::Internal::Type::Converter::Input, value: T.anything).returns(T.anything) - end - def self.dump(target, value) - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/enum.rbi b/rbi/lib/hanzoai/internal/type/enum.rbi deleted file mode 100644 index 5a97e155..00000000 --- a/rbi/lib/hanzoai/internal/type/enum.rbi +++ /dev/null @@ -1,65 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - # - # A value from among a specified list of options. OpenAPI enum values map to Ruby - # values in the SDK as follows: - # - # 1. boolean => true | false - # 2. integer => Integer - # 3. float => Float - # 4. string => Symbol - # - # We can therefore convert string values to Symbols, but can't convert other - # values safely. - module Enum - include Hanzoai::Internal::Type::Converter - - # All of the valid Symbol values for this enum. - sig { overridable.returns(T::Array[T.any(NilClass, T::Boolean, Integer, Float, Symbol)]) } - def values - end - - # @api private - # - # Guard against thread safety issues by instantiating `@values`. - sig { void } - private def finalize! - end - - sig { params(other: T.anything).returns(T::Boolean) } - def ===(other) - end - - sig { params(other: T.anything).returns(T::Boolean) } - def ==(other) - end - - # @api private - # - # Unlike with primitives, `Enum` additionally validates that the value is a member - # of the enum. - sig do - override - .params(value: T.any( - String, - Symbol, - T.anything - ), - state: Hanzoai::Internal::Type::Converter::State) - .returns(T.any(Symbol, T.anything)) - end - def coerce(value, state:) - end - - # @api private - sig { override.params(value: T.any(Symbol, T.anything)).returns(T.any(Symbol, T.anything)) } - def dump(value) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/hash_of.rbi b/rbi/lib/hanzoai/internal/type/hash_of.rbi deleted file mode 100644 index 974b8c77..00000000 --- a/rbi/lib/hanzoai/internal/type/hash_of.rbi +++ /dev/null @@ -1,87 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - # - # Hash of items of a given type. - class HashOf - include Hanzoai::Internal::Type::Converter - - abstract! - final! - - Elem = type_member(:out) - - sig(:final) do - params( - type_info: T.any( - Hanzoai::Internal::AnyHash, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ), - spec: Hanzoai::Internal::AnyHash - ) - .returns(T.attached_class) - end - def self.[](type_info, spec = {}) - end - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def ===(other) - end - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def ==(other) - end - - # @api private - sig(:final) do - override - .params( - value: T.any(T::Hash[T.anything, T.anything], T.anything), - state: Hanzoai::Internal::Type::Converter::State - ) - .returns(T.any(Hanzoai::Internal::AnyHash, T.anything)) - end - def coerce(value, state:) - end - - # @api private - sig(:final) do - override - .params(value: T.any(T::Hash[T.anything, T.anything], T.anything)) - .returns(T.any(Hanzoai::Internal::AnyHash, T.anything)) - end - def dump(value) - end - - # @api private - sig(:final) { returns(Elem) } - protected def item_type - end - - # @api private - sig(:final) { returns(T::Boolean) } - protected def nilable? - end - - # @api private - sig(:final) do - params( - type_info: T.any( - Hanzoai::Internal::AnyHash, - T.proc.returns(Hanzoai::Internal::Type::Converter::Input), - Hanzoai::Internal::Type::Converter::Input - ), - spec: Hanzoai::Internal::AnyHash - ) - .void - end - def initialize(type_info, spec = {}) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/request_parameters.rbi b/rbi/lib/hanzoai/internal/type/request_parameters.rbi deleted file mode 100644 index 6f19a8dc..00000000 --- a/rbi/lib/hanzoai/internal/type/request_parameters.rbi +++ /dev/null @@ -1,22 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - module RequestParameters - # Options to specify HTTP behaviour for this request. - sig { returns(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) } - attr_accessor :request_options - - # @api private - module Converter - # @api private - sig { params(params: T.anything).returns([T.anything, Hanzoai::Internal::AnyHash]) } - def dump_request(params) - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/union.rbi b/rbi/lib/hanzoai/internal/type/union.rbi deleted file mode 100644 index ec1df27f..00000000 --- a/rbi/lib/hanzoai/internal/type/union.rbi +++ /dev/null @@ -1,75 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - module Union - include Hanzoai::Internal::Type::Converter - - # @api private - # - # All of the specified variant info for this union. - sig do - returns(T::Array[[T.nilable(Symbol), T.proc.returns(Hanzoai::Internal::Type::Converter::Input)]]) - end - private def known_variants - end - - # @api private - sig { returns(T::Array[[T.nilable(Symbol), T.anything]]) } - protected def derefed_variants - end - - # All of the specified variants for this union. - sig { overridable.returns(T::Array[T.anything]) } - def variants - end - - # @api private - sig { params(property: Symbol).void } - private def discriminator(property) - end - - # @api private - sig do - params( - key: T.any(Symbol, Hanzoai::Internal::AnyHash, T.proc.returns(T.anything), T.anything), - spec: T.any(Hanzoai::Internal::AnyHash, T.proc.returns(T.anything), T.anything) - ) - .void - end - private def variant(key, spec = nil) - end - - # @api private - sig { params(value: T.anything).returns(T.nilable(T.anything)) } - private def resolve_variant(value) - end - - sig { params(other: T.anything).returns(T::Boolean) } - def ===(other) - end - - sig { params(other: T.anything).returns(T::Boolean) } - def ==(other) - end - - # @api private - sig do - override.params( - value: T.anything, - state: Hanzoai::Internal::Type::Converter::State - ).returns(T.anything) - end - def coerce(value, state:) - end - - # @api private - sig { override.params(value: T.anything).returns(T.anything) } - def dump(value) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/type/unknown.rbi b/rbi/lib/hanzoai/internal/type/unknown.rbi deleted file mode 100644 index c68ed913..00000000 --- a/rbi/lib/hanzoai/internal/type/unknown.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - module Type - # @api private - # - # When we don't know what to expect for the value. - class Unknown - extend Hanzoai::Internal::Type::Converter - - abstract! - final! - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def self.===(other) - end - - sig(:final) { params(other: T.anything).returns(T::Boolean) } - def self.==(other) - end - - class << self - # @api private - sig(:final) do - override.params( - value: T.anything, - state: Hanzoai::Internal::Type::Converter::State - ).returns(T.anything) - end - def coerce(value, state:) - end - - # @api private - sig(:final) { override.params(value: T.anything).returns(T.anything) } - def dump(value) - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/internal/util.rbi b/rbi/lib/hanzoai/internal/util.rbi deleted file mode 100644 index 16fe9ef3..00000000 --- a/rbi/lib/hanzoai/internal/util.rbi +++ /dev/null @@ -1,282 +0,0 @@ -# typed: strong - -module Hanzoai - module Internal - # @api private - module Util - # @api private - sig { returns(Float) } - def self.monotonic_secs - end - - class << self - # @api private - sig { returns(String) } - def arch - end - - # @api private - sig { returns(String) } - def os - end - end - - class << self - # @api private - sig { params(input: T.anything).returns(T::Boolean) } - def primitive?(input) - end - - # @api private - sig { params(input: T.any(String, T::Boolean)).returns(T.any(T::Boolean, T.anything)) } - def coerce_boolean(input) - end - - # @api private - sig { params(input: T.any(String, T::Boolean)).returns(T.nilable(T::Boolean)) } - def coerce_boolean!(input) - end - - # @api private - sig { params(input: T.any(String, Integer)).returns(T.any(Integer, T.anything)) } - def coerce_integer(input) - end - - # @api private - sig { params(input: T.any(String, Integer, Float)).returns(T.any(Float, T.anything)) } - def coerce_float(input) - end - - # @api private - sig { params(input: T.anything).returns(T.any(T::Hash[T.anything, T.anything], T.anything)) } - def coerce_hash(input) - end - end - - class << self - # @api private - sig { params(lhs: T.anything, rhs: T.anything, concat: T::Boolean).returns(T.anything) } - private def deep_merge_lr(lhs, rhs, concat: false) - end - - # @api private - # - # Recursively merge one hash with another. If the values at a given key are not - # both hashes, just take the new value. - sig do - params(values: T::Array[T.anything], sentinel: T.nilable(T.anything), concat: T::Boolean) - .returns(T.anything) - end - def deep_merge( - *values, - # the value to return if no values are provided. - sentinel: nil, - # whether to merge sequences by concatenation. - concat: false - ) - end - - # @api private - sig do - params( - data: T.any(Hanzoai::Internal::AnyHash, T::Array[T.anything], T.anything), - pick: T.nilable(T.any(Symbol, Integer, T::Array[T.any(Symbol, Integer)])), - sentinel: T.nilable(T.anything), - blk: T.nilable(T.proc.returns(T.anything)) - ) - .returns(T.nilable(T.anything)) - end - def dig(data, pick, sentinel = nil, &blk) - end - end - - class << self - # @api private - sig { params(uri: URI::Generic).returns(String) } - def uri_origin(uri) - end - - # @api private - sig { params(path: T.any(String, T::Array[String])).returns(String) } - def interpolate_path(path) - end - end - - class << self - # @api private - sig { params(query: T.nilable(String)).returns(T::Hash[String, T::Array[String]]) } - def decode_query(query) - end - - # @api private - sig do - params(query: T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])) - .returns(T.nilable(String)) - end - def encode_query(query) - end - end - - ParsedUriShape = - T.type_alias do - { - scheme: T.nilable(String), - host: T.nilable(String), - port: T.nilable(Integer), - path: T.nilable(String), - query: T::Hash[String, T::Array[String]] - } - end - - class << self - # @api private - sig { params(url: T.any(URI::Generic, String)).returns(Hanzoai::Internal::Util::ParsedUriShape) } - def parse_uri(url) - end - - # @api private - sig { params(parsed: Hanzoai::Internal::Util::ParsedUriShape).returns(URI::Generic) } - def unparse_uri(parsed) - end - - # @api private - sig do - params(lhs: Hanzoai::Internal::Util::ParsedUriShape, rhs: Hanzoai::Internal::Util::ParsedUriShape) - .returns(URI::Generic) - end - def join_parsed_uri(lhs, rhs) - end - end - - class << self - # @api private - sig do - params( - headers: T::Hash[String, - T.nilable(T.any(String, Integer, T::Array[T.nilable(T.any(String, Integer))]))] - ) - .returns(T::Hash[String, String]) - end - def normalized_headers(*headers) - end - end - - # @api private - # - # An adapter that satisfies the IO interface required by `::IO.copy_stream` - class ReadIOAdapter - # @api private - sig { params(max_len: T.nilable(Integer)).returns(String) } - private def read_enum(max_len) - end - - # @api private - sig { params(max_len: T.nilable(Integer), out_string: T.nilable(String)).returns(T.nilable(String)) } - def read(max_len = nil, out_string = nil) - end - - # @api private - sig do - params( - stream: T.any(String, IO, StringIO, T::Enumerable[String]), - blk: T.proc.params(arg0: String).void - ) - .returns(T.attached_class) - end - def self.new(stream, &blk) - end - end - - class << self - sig { params(blk: T.proc.params(y: Enumerator::Yielder).void).returns(T::Enumerable[String]) } - def writable_enum(&blk) - end - end - - class << self - # @api private - sig do - params(y: Enumerator::Yielder, boundary: String, key: T.any(Symbol, String), val: T.anything).void - end - private def write_multipart_chunk(y, boundary:, key:, val:) - end - - # @api private - sig { params(body: T.anything).returns([String, T::Enumerable[String]]) } - private def encode_multipart_streaming(body) - end - - # @api private - sig { params(headers: T::Hash[String, String], body: T.anything).returns(T.anything) } - def encode_content(headers, body) - end - - # @api private - sig do - params( - headers: T.any(T::Hash[String, String], Net::HTTPHeader), - stream: T::Enumerable[String], - suppress_error: T::Boolean - ) - .returns(T.anything) - end - def decode_content(headers, stream:, suppress_error: false) - end - end - - class << self - # @api private - # - # https://doc.rust-lang.org/std/iter/trait.FusedIterator.html - sig do - params(enum: T::Enumerable[T.anything], external: T::Boolean, close: T.proc.void) - .returns(T::Enumerable[T.anything]) - end - def fused_enum(enum, external: false, &close) - end - - # @api private - sig { params(enum: T.nilable(T::Enumerable[T.anything])).void } - def close_fused!(enum) - end - - # @api private - sig do - params( - enum: T.nilable(T::Enumerable[T.anything]), - blk: T.proc.params(arg0: Enumerator::Yielder).void - ) - .returns(T::Enumerable[T.anything]) - end - def chain_fused(enum, &blk) - end - end - - ServerSentEvent = - T.type_alias do - { - event: T.nilable(String), - data: T.nilable(String), - id: T.nilable(String), - retry: T.nilable(Integer) - } - end - - class << self - # @api private - sig { params(enum: T::Enumerable[String]).returns(T::Enumerable[String]) } - def decode_lines(enum) - end - - # @api private - # - # https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream - sig do - params(lines: T::Enumerable[String]).returns(T::Enumerable[Hanzoai::Internal::Util::ServerSentEvent]) - end - def decode_sse(lines) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/active_list_callbacks_params.rbi b/rbi/lib/hanzoai/models/active_list_callbacks_params.rbi deleted file mode 100644 index 87c30d59..00000000 --- a/rbi/lib/hanzoai/models/active_list_callbacks_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ActiveListCallbacksParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/add_add_allowed_ip_params.rbi b/rbi/lib/hanzoai/models/add_add_allowed_ip_params.rbi deleted file mode 100644 index 2242b6e7..00000000 --- a/rbi/lib/hanzoai/models/add_add_allowed_ip_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AddAddAllowedIPParams < Hanzoai::Models::IPAddress - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/anthropic_create_params.rbi b/rbi/lib/hanzoai/models/anthropic_create_params.rbi deleted file mode 100644 index 67c2fb04..00000000 --- a/rbi/lib/hanzoai/models/anthropic_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AnthropicCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/anthropic_delete_params.rbi b/rbi/lib/hanzoai/models/anthropic_delete_params.rbi deleted file mode 100644 index b0e29e80..00000000 --- a/rbi/lib/hanzoai/models/anthropic_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AnthropicDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/anthropic_modify_params.rbi b/rbi/lib/hanzoai/models/anthropic_modify_params.rbi deleted file mode 100644 index 3e7e16e4..00000000 --- a/rbi/lib/hanzoai/models/anthropic_modify_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AnthropicModifyParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/anthropic_retrieve_params.rbi b/rbi/lib/hanzoai/models/anthropic_retrieve_params.rbi deleted file mode 100644 index b3b59f1e..00000000 --- a/rbi/lib/hanzoai/models/anthropic_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AnthropicRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/anthropic_update_params.rbi b/rbi/lib/hanzoai/models/anthropic_update_params.rbi deleted file mode 100644 index b99451d9..00000000 --- a/rbi/lib/hanzoai/models/anthropic_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AnthropicUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assemblyai_create_params.rbi b/rbi/lib/hanzoai/models/assemblyai_create_params.rbi deleted file mode 100644 index 03c64810..00000000 --- a/rbi/lib/hanzoai/models/assemblyai_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssemblyaiCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assemblyai_delete_params.rbi b/rbi/lib/hanzoai/models/assemblyai_delete_params.rbi deleted file mode 100644 index acc65532..00000000 --- a/rbi/lib/hanzoai/models/assemblyai_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssemblyaiDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assemblyai_patch_params.rbi b/rbi/lib/hanzoai/models/assemblyai_patch_params.rbi deleted file mode 100644 index 8da77efd..00000000 --- a/rbi/lib/hanzoai/models/assemblyai_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssemblyaiPatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assemblyai_retrieve_params.rbi b/rbi/lib/hanzoai/models/assemblyai_retrieve_params.rbi deleted file mode 100644 index 0892129d..00000000 --- a/rbi/lib/hanzoai/models/assemblyai_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssemblyaiRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assemblyai_update_params.rbi b/rbi/lib/hanzoai/models/assemblyai_update_params.rbi deleted file mode 100644 index 506744d9..00000000 --- a/rbi/lib/hanzoai/models/assemblyai_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssemblyaiUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assistant_create_params.rbi b/rbi/lib/hanzoai/models/assistant_create_params.rbi deleted file mode 100644 index a19adbb7..00000000 --- a/rbi/lib/hanzoai/models/assistant_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssistantCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assistant_delete_params.rbi b/rbi/lib/hanzoai/models/assistant_delete_params.rbi deleted file mode 100644 index a537a99c..00000000 --- a/rbi/lib/hanzoai/models/assistant_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssistantDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/assistant_list_params.rbi b/rbi/lib/hanzoai/models/assistant_list_params.rbi deleted file mode 100644 index f96e5f07..00000000 --- a/rbi/lib/hanzoai/models/assistant_list_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AssistantListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/audio/speech_create_params.rbi b/rbi/lib/hanzoai/models/audio/speech_create_params.rbi deleted file mode 100644 index 5ad8427a..00000000 --- a/rbi/lib/hanzoai/models/audio/speech_create_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Audio - class SpeechCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/audio/transcription_create_params.rbi b/rbi/lib/hanzoai/models/audio/transcription_create_params.rbi deleted file mode 100644 index 9f9cd905..00000000 --- a/rbi/lib/hanzoai/models/audio/transcription_create_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Audio - class TranscriptionCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.any(IO, StringIO)) } - attr_accessor :file - - sig do - params( - file: T.any(IO, StringIO), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(file:, request_options: {}) - end - - sig { override.returns({file: T.any(IO, StringIO), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/azure_call_params.rbi b/rbi/lib/hanzoai/models/azure_call_params.rbi deleted file mode 100644 index d87ec04c..00000000 --- a/rbi/lib/hanzoai/models/azure_call_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AzureCallParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/azure_create_params.rbi b/rbi/lib/hanzoai/models/azure_create_params.rbi deleted file mode 100644 index 1cac62b5..00000000 --- a/rbi/lib/hanzoai/models/azure_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AzureCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/azure_delete_params.rbi b/rbi/lib/hanzoai/models/azure_delete_params.rbi deleted file mode 100644 index a636f105..00000000 --- a/rbi/lib/hanzoai/models/azure_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AzureDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/azure_patch_params.rbi b/rbi/lib/hanzoai/models/azure_patch_params.rbi deleted file mode 100644 index de829dbd..00000000 --- a/rbi/lib/hanzoai/models/azure_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AzurePatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/azure_update_params.rbi b/rbi/lib/hanzoai/models/azure_update_params.rbi deleted file mode 100644 index a2b0a37c..00000000 --- a/rbi/lib/hanzoai/models/azure_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class AzureUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batch_cancel_with_provider_params.rbi b/rbi/lib/hanzoai/models/batch_cancel_with_provider_params.rbi deleted file mode 100644 index 869446fe..00000000 --- a/rbi/lib/hanzoai/models/batch_cancel_with_provider_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BatchCancelWithProviderParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :provider - - sig do - params(provider: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(provider:, request_options: {}) - end - - sig { override.returns({provider: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batch_create_params.rbi b/rbi/lib/hanzoai/models/batch_create_params.rbi deleted file mode 100644 index 51154a95..00000000 --- a/rbi/lib/hanzoai/models/batch_create_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BatchCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :provider - - sig do - params( - provider: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(provider: nil, request_options: {}) - end - - sig { override.returns({provider: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batch_create_with_provider_params.rbi b/rbi/lib/hanzoai/models/batch_create_with_provider_params.rbi deleted file mode 100644 index b0360415..00000000 --- a/rbi/lib/hanzoai/models/batch_create_with_provider_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BatchCreateWithProviderParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batch_list_params.rbi b/rbi/lib/hanzoai/models/batch_list_params.rbi deleted file mode 100644 index 964cabe1..00000000 --- a/rbi/lib/hanzoai/models/batch_list_params.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BatchListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :after - - sig { returns(T.nilable(Integer)) } - attr_accessor :limit - - sig { returns(T.nilable(String)) } - attr_accessor :provider - - sig do - params( - after: T.nilable(String), - limit: T.nilable(Integer), - provider: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(after: nil, limit: nil, provider: nil, request_options: {}) - end - - sig do - override - .returns( - { - after: T.nilable(String), - limit: T.nilable(Integer), - provider: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batch_list_with_provider_params.rbi b/rbi/lib/hanzoai/models/batch_list_with_provider_params.rbi deleted file mode 100644 index e27e9274..00000000 --- a/rbi/lib/hanzoai/models/batch_list_with_provider_params.rbi +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BatchListWithProviderParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :after - - sig { returns(T.nilable(Integer)) } - attr_accessor :limit - - sig do - params( - after: T.nilable(String), - limit: T.nilable(Integer), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(after: nil, limit: nil, request_options: {}) - end - - sig do - override - .returns({ - after: T.nilable(String), - limit: T.nilable(Integer), - request_options: Hanzoai::RequestOptions - }) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batch_retrieve_params.rbi b/rbi/lib/hanzoai/models/batch_retrieve_params.rbi deleted file mode 100644 index 47edaee6..00000000 --- a/rbi/lib/hanzoai/models/batch_retrieve_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BatchRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :provider - - sig do - params( - provider: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(provider: nil, request_options: {}) - end - - sig { override.returns({provider: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batch_retrieve_with_provider_params.rbi b/rbi/lib/hanzoai/models/batch_retrieve_with_provider_params.rbi deleted file mode 100644 index 61969d70..00000000 --- a/rbi/lib/hanzoai/models/batch_retrieve_with_provider_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BatchRetrieveWithProviderParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :provider - - sig do - params(provider: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(provider:, request_options: {}) - end - - sig { override.returns({provider: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/batches/cancel_cancel_params.rbi b/rbi/lib/hanzoai/models/batches/cancel_cancel_params.rbi deleted file mode 100644 index 18209f2b..00000000 --- a/rbi/lib/hanzoai/models/batches/cancel_cancel_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Batches - class CancelCancelParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :provider - - sig do - params( - provider: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(provider: nil, request_options: {}) - end - - sig { override.returns({provider: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/bedrock_create_params.rbi b/rbi/lib/hanzoai/models/bedrock_create_params.rbi deleted file mode 100644 index b448d308..00000000 --- a/rbi/lib/hanzoai/models/bedrock_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BedrockCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/bedrock_delete_params.rbi b/rbi/lib/hanzoai/models/bedrock_delete_params.rbi deleted file mode 100644 index f2ea6948..00000000 --- a/rbi/lib/hanzoai/models/bedrock_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BedrockDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/bedrock_patch_params.rbi b/rbi/lib/hanzoai/models/bedrock_patch_params.rbi deleted file mode 100644 index 633ec3a5..00000000 --- a/rbi/lib/hanzoai/models/bedrock_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BedrockPatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/bedrock_retrieve_params.rbi b/rbi/lib/hanzoai/models/bedrock_retrieve_params.rbi deleted file mode 100644 index e4b2fc93..00000000 --- a/rbi/lib/hanzoai/models/bedrock_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BedrockRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/bedrock_update_params.rbi b/rbi/lib/hanzoai/models/bedrock_update_params.rbi deleted file mode 100644 index a24de227..00000000 --- a/rbi/lib/hanzoai/models/bedrock_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BedrockUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/block_key_request.rbi b/rbi/lib/hanzoai/models/block_key_request.rbi deleted file mode 100644 index 2ca6f67c..00000000 --- a/rbi/lib/hanzoai/models/block_key_request.rbi +++ /dev/null @@ -1,18 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BlockKeyRequest < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :key - - sig { params(key: String).returns(T.attached_class) } - def self.new(key:) - end - - sig { override.returns({key: String}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/block_team_request.rbi b/rbi/lib/hanzoai/models/block_team_request.rbi deleted file mode 100644 index d9353c19..00000000 --- a/rbi/lib/hanzoai/models/block_team_request.rbi +++ /dev/null @@ -1,18 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BlockTeamRequest < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { params(team_id: String).returns(T.attached_class) } - def self.new(team_id:) - end - - sig { override.returns({team_id: String}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/block_users.rbi b/rbi/lib/hanzoai/models/block_users.rbi deleted file mode 100644 index 6aa77e31..00000000 --- a/rbi/lib/hanzoai/models/block_users.rbi +++ /dev/null @@ -1,18 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BlockUsers < Hanzoai::Internal::Type::BaseModel - sig { returns(T::Array[String]) } - attr_accessor :user_ids - - sig { params(user_ids: T::Array[String]).returns(T.attached_class) } - def self.new(user_ids:) - end - - sig { override.returns({user_ids: T::Array[String]}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/budget_create_params.rbi b/rbi/lib/hanzoai/models/budget_create_params.rbi deleted file mode 100644 index f87fcf6d..00000000 --- a/rbi/lib/hanzoai/models/budget_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BudgetCreateParams < Hanzoai::Models::BudgetNew - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/budget_delete_params.rbi b/rbi/lib/hanzoai/models/budget_delete_params.rbi deleted file mode 100644 index 89c983ce..00000000 --- a/rbi/lib/hanzoai/models/budget_delete_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BudgetDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :id - - sig do - params(id: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(id:, request_options: {}) - end - - sig { override.returns({id: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/budget_info_params.rbi b/rbi/lib/hanzoai/models/budget_info_params.rbi deleted file mode 100644 index 4375f8b3..00000000 --- a/rbi/lib/hanzoai/models/budget_info_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BudgetInfoParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T::Array[String]) } - attr_accessor :budgets - - sig do - params( - budgets: T::Array[String], - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(budgets:, request_options: {}) - end - - sig { override.returns({budgets: T::Array[String], request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/budget_list_params.rbi b/rbi/lib/hanzoai/models/budget_list_params.rbi deleted file mode 100644 index 1ebeb9af..00000000 --- a/rbi/lib/hanzoai/models/budget_list_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BudgetListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/budget_new.rbi b/rbi/lib/hanzoai/models/budget_new.rbi deleted file mode 100644 index 49830ca1..00000000 --- a/rbi/lib/hanzoai/models/budget_new.rbi +++ /dev/null @@ -1,123 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BudgetNew < Hanzoai::Internal::Type::BaseModel - # Max duration budget should be set for (e.g. '1hr', '1d', '28d') - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - # The unique budget id. - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Requests will fail if this budget (in USD) is exceeded. - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - # Max concurrent requests allowed for this budget id. - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', - # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) - sig { returns(T.nilable(T::Hash[Symbol, Hanzoai::Models::BudgetNew::ModelMaxBudget])) } - attr_accessor :model_max_budget - - # Max requests per minute, allowed for this budget id. - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - # Requests will NOT fail if this is exceeded. Will fire alerting though. - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - # Max tokens per minute, allowed for this budget id. - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T::Hash[Symbol, T.any(Hanzoai::Models::BudgetNew::ModelMaxBudget, Hanzoai::Internal::AnyHash)]), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - budget_id: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T::Hash[Symbol, Hanzoai::Models::BudgetNew::ModelMaxBudget]), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - rpm_limit: T.nilable(Integer), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new(budget_duration: nil, max_budget: nil, rpm_limit: nil, tpm_limit: nil) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - rpm_limit: T.nilable(Integer), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/budget_settings_params.rbi b/rbi/lib/hanzoai/models/budget_settings_params.rbi deleted file mode 100644 index c5042f50..00000000 --- a/rbi/lib/hanzoai/models/budget_settings_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BudgetSettingsParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :budget_id - - sig do - params(budget_id: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(budget_id:, request_options: {}) - end - - sig { override.returns({budget_id: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/budget_update_params.rbi b/rbi/lib/hanzoai/models/budget_update_params.rbi deleted file mode 100644 index f5e4730b..00000000 --- a/rbi/lib/hanzoai/models/budget_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class BudgetUpdateParams < Hanzoai::Models::BudgetNew - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cache/redi_retrieve_info_params.rbi b/rbi/lib/hanzoai/models/cache/redi_retrieve_info_params.rbi deleted file mode 100644 index 84ddb1ae..00000000 --- a/rbi/lib/hanzoai/models/cache/redi_retrieve_info_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Cache - class RediRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cache_delete_params.rbi b/rbi/lib/hanzoai/models/cache_delete_params.rbi deleted file mode 100644 index 79de27ab..00000000 --- a/rbi/lib/hanzoai/models/cache_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CacheDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cache_flush_all_params.rbi b/rbi/lib/hanzoai/models/cache_flush_all_params.rbi deleted file mode 100644 index 80b3b250..00000000 --- a/rbi/lib/hanzoai/models/cache_flush_all_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CacheFlushAllParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cache_ping_params.rbi b/rbi/lib/hanzoai/models/cache_ping_params.rbi deleted file mode 100644 index e09a1093..00000000 --- a/rbi/lib/hanzoai/models/cache_ping_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CachePingParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cache_ping_response.rbi b/rbi/lib/hanzoai/models/cache_ping_response.rbi deleted file mode 100644 index 7713be4c..00000000 --- a/rbi/lib/hanzoai/models/cache_ping_response.rbi +++ /dev/null @@ -1,62 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CachePingResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :cache_type - - sig { returns(String) } - attr_accessor :status - - sig { returns(T.nilable(T.anything)) } - attr_accessor :health_check_cache_params - - sig { returns(T.nilable(String)) } - attr_accessor :llm_cache_params - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :ping_response - - sig { returns(T.nilable(String)) } - attr_accessor :set_cache_response - - sig do - params( - cache_type: String, - status: String, - health_check_cache_params: T.nilable(T.anything), - llm_cache_params: T.nilable(String), - ping_response: T.nilable(T::Boolean), - set_cache_response: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - cache_type:, - status:, - health_check_cache_params: nil, - llm_cache_params: nil, - ping_response: nil, - set_cache_response: nil - ) - end - - sig do - override - .returns( - { - cache_type: String, - status: String, - health_check_cache_params: T.nilable(T.anything), - llm_cache_params: T.nilable(String), - ping_response: T.nilable(T::Boolean), - set_cache_response: T.nilable(String) - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/chat/completion_create_params.rbi b/rbi/lib/hanzoai/models/chat/completion_create_params.rbi deleted file mode 100644 index 2e3457a3..00000000 --- a/rbi/lib/hanzoai/models/chat/completion_create_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Chat - class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig do - params( - model: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(model: nil, request_options: {}) - end - - sig { override.returns({model: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/client_get_home_params.rbi b/rbi/lib/hanzoai/models/client_get_home_params.rbi deleted file mode 100644 index fd63ecf8..00000000 --- a/rbi/lib/hanzoai/models/client_get_home_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ClientGetHomeParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cohere_create_params.rbi b/rbi/lib/hanzoai/models/cohere_create_params.rbi deleted file mode 100644 index cbb03831..00000000 --- a/rbi/lib/hanzoai/models/cohere_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CohereCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cohere_delete_params.rbi b/rbi/lib/hanzoai/models/cohere_delete_params.rbi deleted file mode 100644 index 115c2ace..00000000 --- a/rbi/lib/hanzoai/models/cohere_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CohereDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cohere_modify_params.rbi b/rbi/lib/hanzoai/models/cohere_modify_params.rbi deleted file mode 100644 index d5438ca5..00000000 --- a/rbi/lib/hanzoai/models/cohere_modify_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CohereModifyParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cohere_retrieve_params.rbi b/rbi/lib/hanzoai/models/cohere_retrieve_params.rbi deleted file mode 100644 index 39514925..00000000 --- a/rbi/lib/hanzoai/models/cohere_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CohereRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/cohere_update_params.rbi b/rbi/lib/hanzoai/models/cohere_update_params.rbi deleted file mode 100644 index f0b26fd3..00000000 --- a/rbi/lib/hanzoai/models/cohere_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CohereUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/completion_create_params.rbi b/rbi/lib/hanzoai/models/completion_create_params.rbi deleted file mode 100644 index 4aac8a30..00000000 --- a/rbi/lib/hanzoai/models/completion_create_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig do - params( - model: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(model: nil, request_options: {}) - end - - sig { override.returns({model: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/config/pass_through_endpoint_create_params.rbi b/rbi/lib/hanzoai/models/config/pass_through_endpoint_create_params.rbi deleted file mode 100644 index 71fa7afe..00000000 --- a/rbi/lib/hanzoai/models/config/pass_through_endpoint_create_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Config - class PassThroughEndpointCreateParams < Hanzoai::Models::Config::PassThroughGenericEndpoint - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/config/pass_through_endpoint_delete_params.rbi b/rbi/lib/hanzoai/models/config/pass_through_endpoint_delete_params.rbi deleted file mode 100644 index bd5c1189..00000000 --- a/rbi/lib/hanzoai/models/config/pass_through_endpoint_delete_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Config - class PassThroughEndpointDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :endpoint_id - - sig do - params( - endpoint_id: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(endpoint_id:, request_options: {}) - end - - sig { override.returns({endpoint_id: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/config/pass_through_endpoint_list_params.rbi b/rbi/lib/hanzoai/models/config/pass_through_endpoint_list_params.rbi deleted file mode 100644 index 3be67082..00000000 --- a/rbi/lib/hanzoai/models/config/pass_through_endpoint_list_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Config - class PassThroughEndpointListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :endpoint_id - - sig do - params( - endpoint_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(endpoint_id: nil, request_options: {}) - end - - sig { override.returns({endpoint_id: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/config/pass_through_endpoint_response.rbi b/rbi/lib/hanzoai/models/config/pass_through_endpoint_response.rbi deleted file mode 100644 index a7c4e44b..00000000 --- a/rbi/lib/hanzoai/models/config/pass_through_endpoint_response.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Config - class PassThroughEndpointResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T::Array[Hanzoai::Models::Config::PassThroughGenericEndpoint]) } - attr_accessor :endpoints - - sig do - params( - endpoints: T::Array[T.any(Hanzoai::Models::Config::PassThroughGenericEndpoint, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new(endpoints:) - end - - sig { override.returns({endpoints: T::Array[Hanzoai::Models::Config::PassThroughGenericEndpoint]}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/config/pass_through_endpoint_update_params.rbi b/rbi/lib/hanzoai/models/config/pass_through_endpoint_update_params.rbi deleted file mode 100644 index 7eef34c4..00000000 --- a/rbi/lib/hanzoai/models/config/pass_through_endpoint_update_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Config - class PassThroughEndpointUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/config/pass_through_generic_endpoint.rbi b/rbi/lib/hanzoai/models/config/pass_through_generic_endpoint.rbi deleted file mode 100644 index 475f5ef4..00000000 --- a/rbi/lib/hanzoai/models/config/pass_through_generic_endpoint.rbi +++ /dev/null @@ -1,30 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Config - class PassThroughGenericEndpoint < Hanzoai::Internal::Type::BaseModel - # Key-value pairs of headers to be forwarded with the request. You can set any key - # value pair here and it will be forwarded to your target endpoint - sig { returns(T.anything) } - attr_accessor :headers - - # The route to be added to the LLM Proxy Server. - sig { returns(String) } - attr_accessor :path - - # The URL to which requests for this path should be forwarded. - sig { returns(String) } - attr_accessor :target - - sig { params(headers: T.anything, path: String, target: String).returns(T.attached_class) } - def self.new(headers:, path:, target:) - end - - sig { override.returns({headers: T.anything, path: String, target: String}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/configurable_clientside_params_custom_auth.rbi b/rbi/lib/hanzoai/models/configurable_clientside_params_custom_auth.rbi deleted file mode 100644 index 9cfe8653..00000000 --- a/rbi/lib/hanzoai/models/configurable_clientside_params_custom_auth.rbi +++ /dev/null @@ -1,18 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ConfigurableClientsideParamsCustomAuth < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :api_base - - sig { params(api_base: String).returns(T.attached_class) } - def self.new(api_base:) - end - - sig { override.returns({api_base: String}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/credential_create_params.rbi b/rbi/lib/hanzoai/models/credential_create_params.rbi deleted file mode 100644 index 6ee653ea..00000000 --- a/rbi/lib/hanzoai/models/credential_create_params.rbi +++ /dev/null @@ -1,56 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CredentialCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.anything) } - attr_accessor :credential_info - - sig { returns(String) } - attr_accessor :credential_name - - sig { returns(T.nilable(T.anything)) } - attr_accessor :credential_values - - sig { returns(T.nilable(String)) } - attr_accessor :model_id - - sig do - params( - credential_info: T.anything, - credential_name: String, - credential_values: T.nilable(T.anything), - model_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - credential_info:, - credential_name:, - credential_values: nil, - model_id: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - credential_info: T.anything, - credential_name: String, - credential_values: T.nilable(T.anything), - model_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/credential_delete_params.rbi b/rbi/lib/hanzoai/models/credential_delete_params.rbi deleted file mode 100644 index 322086c3..00000000 --- a/rbi/lib/hanzoai/models/credential_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CredentialDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/credential_item.rbi b/rbi/lib/hanzoai/models/credential_item.rbi deleted file mode 100644 index 10236b53..00000000 --- a/rbi/lib/hanzoai/models/credential_item.rbi +++ /dev/null @@ -1,35 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CredentialItem < Hanzoai::Internal::Type::BaseModel - sig { returns(T.anything) } - attr_accessor :credential_info - - sig { returns(String) } - attr_accessor :credential_name - - sig { returns(T.anything) } - attr_accessor :credential_values - - sig do - params(credential_info: T.anything, credential_name: String, credential_values: T.anything) - .returns(T.attached_class) - end - def self.new(credential_info:, credential_name:, credential_values:) - end - - sig do - override.returns( - { - credential_info: T.anything, - credential_name: String, - credential_values: T.anything - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/credential_list_params.rbi b/rbi/lib/hanzoai/models/credential_list_params.rbi deleted file mode 100644 index 5db0f430..00000000 --- a/rbi/lib/hanzoai/models/credential_list_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CredentialListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_block_params.rbi b/rbi/lib/hanzoai/models/customer_block_params.rbi deleted file mode 100644 index c3c0c64e..00000000 --- a/rbi/lib/hanzoai/models/customer_block_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerBlockParams < Hanzoai::Models::BlockUsers - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_create_params.rbi b/rbi/lib/hanzoai/models/customer_create_params.rbi deleted file mode 100644 index 5df08c44..00000000 --- a/rbi/lib/hanzoai/models/customer_create_params.rbi +++ /dev/null @@ -1,178 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig { returns(T.nilable(Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::OrSymbol)) } - attr_accessor :allowed_model_region - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - # Max duration budget should be set for (e.g. '1hr', '1d', '28d') - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(String)) } - attr_accessor :default_model - - # Requests will fail if this budget (in USD) is exceeded. - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - # Max concurrent requests allowed for this budget id. - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', - # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) - sig { returns(T.nilable(T::Hash[Symbol, Hanzoai::Models::CustomerCreateParams::ModelMaxBudget])) } - attr_accessor :model_max_budget - - # Max requests per minute, allowed for this budget id. - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - # Requests will NOT fail if this is exceeded. Will fire alerting though. - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - # Max tokens per minute, allowed for this budget id. - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::OrSymbol), - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - default_model: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable( - T::Hash[Symbol, T.any(Hanzoai::Models::CustomerCreateParams::ModelMaxBudget, Hanzoai::Internal::AnyHash)] - ), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - user_id:, - alias_: nil, - allowed_model_region: nil, - blocked: nil, - budget_duration: nil, - budget_id: nil, - default_model: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::OrSymbol), - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - default_model: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T::Hash[Symbol, Hanzoai::Models::CustomerCreateParams::ModelMaxBudget]), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::TaggedSymbol) } - - EU = T.let(:eu, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::TaggedSymbol) - US = T.let(:us, Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::TaggedSymbol]) } - def self.values - end - end - - class ModelMaxBudget < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - rpm_limit: T.nilable(Integer), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new(budget_duration: nil, max_budget: nil, rpm_limit: nil, tpm_limit: nil) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - rpm_limit: T.nilable(Integer), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_delete_params.rbi b/rbi/lib/hanzoai/models/customer_delete_params.rbi deleted file mode 100644 index 7901802a..00000000 --- a/rbi/lib/hanzoai/models/customer_delete_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T::Array[String]) } - attr_accessor :user_ids - - sig do - params( - user_ids: T::Array[String], - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(user_ids:, request_options: {}) - end - - sig { override.returns({user_ids: T::Array[String], request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_list_params.rbi b/rbi/lib/hanzoai/models/customer_list_params.rbi deleted file mode 100644 index 98aae8df..00000000 --- a/rbi/lib/hanzoai/models/customer_list_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_list_response.rbi b/rbi/lib/hanzoai/models/customer_list_response.rbi deleted file mode 100644 index 30edfdf1..00000000 --- a/rbi/lib/hanzoai/models/customer_list_response.rbi +++ /dev/null @@ -1,166 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerListResponseItem < Hanzoai::Internal::Type::BaseModel - sig { returns(T::Boolean) } - attr_accessor :blocked - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig { returns(T.nilable(Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion::TaggedSymbol)) } - attr_accessor :allowed_model_region - - sig { returns(T.nilable(String)) } - attr_accessor :default_model - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable(T.any(Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable, Hanzoai::Internal::AnyHash)) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig do - params( - blocked: T::Boolean, - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion::OrSymbol), - default_model: T.nilable(String), - llm_budget_table: T.nilable(T.any(Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable, Hanzoai::Internal::AnyHash)), - spend: Float - ) - .returns(T.attached_class) - end - def self.new( - blocked:, - user_id:, - alias_: nil, - allowed_model_region: nil, - default_model: nil, - llm_budget_table: nil, - spend: nil - ) - end - - sig do - override - .returns( - { - blocked: T::Boolean, - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion::TaggedSymbol), - default_model: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable), - spend: Float - } - ) - end - def to_hash - end - - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion::TaggedSymbol) } - - EU = T.let(:eu, Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion::TaggedSymbol) - US = T.let(:us, Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::CustomerListResponseItem::AllowedModelRegion::TaggedSymbol]) } - def self.values - end - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - - CustomerListResponse = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::CustomerListResponseItem], - Hanzoai::Internal::Type::Converter - ) - end -end diff --git a/rbi/lib/hanzoai/models/customer_retrieve_info_params.rbi b/rbi/lib/hanzoai/models/customer_retrieve_info_params.rbi deleted file mode 100644 index 6ee732ad..00000000 --- a/rbi/lib/hanzoai/models/customer_retrieve_info_params.rbi +++ /dev/null @@ -1,28 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # End User ID in the request parameters - sig { returns(String) } - attr_accessor :end_user_id - - sig do - params( - end_user_id: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(end_user_id:, request_options: {}) - end - - sig { override.returns({end_user_id: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_retrieve_info_response.rbi b/rbi/lib/hanzoai/models/customer_retrieve_info_response.rbi deleted file mode 100644 index b13f411f..00000000 --- a/rbi/lib/hanzoai/models/customer_retrieve_info_response.rbi +++ /dev/null @@ -1,166 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerRetrieveInfoResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T::Boolean) } - attr_accessor :blocked - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig { returns(T.nilable(Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion::TaggedSymbol)) } - attr_accessor :allowed_model_region - - sig { returns(T.nilable(String)) } - attr_accessor :default_model - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig do - params( - blocked: T::Boolean, - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion::OrSymbol), - default_model: T.nilable(String), - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - spend: Float - ) - .returns(T.attached_class) - end - def self.new( - blocked:, - user_id:, - alias_: nil, - allowed_model_region: nil, - default_model: nil, - llm_budget_table: nil, - spend: nil - ) - end - - sig do - override - .returns( - { - blocked: T::Boolean, - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion::TaggedSymbol), - default_model: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable), - spend: Float - } - ) - end - def to_hash - end - - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion::TaggedSymbol) } - - EU = T.let(:eu, Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion::TaggedSymbol) - US = T.let(:us, Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion::TaggedSymbol) - - sig do - override.returns(T::Array[Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion::TaggedSymbol]) - end - def self.values - end - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_unblock_params.rbi b/rbi/lib/hanzoai/models/customer_unblock_params.rbi deleted file mode 100644 index 9cadf3f6..00000000 --- a/rbi/lib/hanzoai/models/customer_unblock_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerUnblockParams < Hanzoai::Models::BlockUsers - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/customer_update_params.rbi b/rbi/lib/hanzoai/models/customer_update_params.rbi deleted file mode 100644 index c014c5ea..00000000 --- a/rbi/lib/hanzoai/models/customer_update_params.rbi +++ /dev/null @@ -1,92 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class CustomerUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :alias_ - - sig { returns(T.nilable(Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::OrSymbol)) } - attr_accessor :allowed_model_region - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(String)) } - attr_accessor :default_model - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig do - params( - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::OrSymbol), - blocked: T::Boolean, - budget_id: T.nilable(String), - default_model: T.nilable(String), - max_budget: T.nilable(Float), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - user_id:, - alias_: nil, - allowed_model_region: nil, - blocked: nil, - budget_id: nil, - default_model: nil, - max_budget: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::OrSymbol), - blocked: T::Boolean, - budget_id: T.nilable(String), - default_model: T.nilable(String), - max_budget: T.nilable(Float), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::TaggedSymbol) } - - EU = T.let(:eu, Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::TaggedSymbol) - US = T.let(:us, Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/delete_create_allowed_ip_params.rbi b/rbi/lib/hanzoai/models/delete_create_allowed_ip_params.rbi deleted file mode 100644 index d742eed6..00000000 --- a/rbi/lib/hanzoai/models/delete_create_allowed_ip_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class DeleteCreateAllowedIPParams < Hanzoai::Models::IPAddress - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/embedding_create_params.rbi b/rbi/lib/hanzoai/models/embedding_create_params.rbi deleted file mode 100644 index 65857746..00000000 --- a/rbi/lib/hanzoai/models/embedding_create_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EmbeddingCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig do - params( - model: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(model: nil, request_options: {}) - end - - sig { override.returns({model: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/engine_complete_params.rbi b/rbi/lib/hanzoai/models/engine_complete_params.rbi deleted file mode 100644 index 05ce5a6f..00000000 --- a/rbi/lib/hanzoai/models/engine_complete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EngineCompleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/engine_embed_params.rbi b/rbi/lib/hanzoai/models/engine_embed_params.rbi deleted file mode 100644 index 434a058f..00000000 --- a/rbi/lib/hanzoai/models/engine_embed_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EngineEmbedParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/engines/chat_complete_params.rbi b/rbi/lib/hanzoai/models/engines/chat_complete_params.rbi deleted file mode 100644 index 66a05445..00000000 --- a/rbi/lib/hanzoai/models/engines/chat_complete_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Engines - class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/eu_assemblyai_create_params.rbi b/rbi/lib/hanzoai/models/eu_assemblyai_create_params.rbi deleted file mode 100644 index f2cc90b4..00000000 --- a/rbi/lib/hanzoai/models/eu_assemblyai_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EuAssemblyaiCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/eu_assemblyai_delete_params.rbi b/rbi/lib/hanzoai/models/eu_assemblyai_delete_params.rbi deleted file mode 100644 index 4cb7e9c5..00000000 --- a/rbi/lib/hanzoai/models/eu_assemblyai_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EuAssemblyaiDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/eu_assemblyai_patch_params.rbi b/rbi/lib/hanzoai/models/eu_assemblyai_patch_params.rbi deleted file mode 100644 index b8438f0a..00000000 --- a/rbi/lib/hanzoai/models/eu_assemblyai_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EuAssemblyaiPatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/eu_assemblyai_retrieve_params.rbi b/rbi/lib/hanzoai/models/eu_assemblyai_retrieve_params.rbi deleted file mode 100644 index 33ed691d..00000000 --- a/rbi/lib/hanzoai/models/eu_assemblyai_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EuAssemblyaiRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/eu_assemblyai_update_params.rbi b/rbi/lib/hanzoai/models/eu_assemblyai_update_params.rbi deleted file mode 100644 index 44248feb..00000000 --- a/rbi/lib/hanzoai/models/eu_assemblyai_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class EuAssemblyaiUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/file_create_params.rbi b/rbi/lib/hanzoai/models/file_create_params.rbi deleted file mode 100644 index aba5b98c..00000000 --- a/rbi/lib/hanzoai/models/file_create_params.rbi +++ /dev/null @@ -1,48 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class FileCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.any(IO, StringIO)) } - attr_accessor :file - - sig { returns(String) } - attr_accessor :purpose - - sig { returns(T.nilable(String)) } - attr_reader :custom_llm_provider - - sig { params(custom_llm_provider: String).void } - attr_writer :custom_llm_provider - - sig do - params( - file: T.any(IO, StringIO), - purpose: String, - custom_llm_provider: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(file:, purpose:, custom_llm_provider: nil, request_options: {}) - end - - sig do - override - .returns( - { - file: T.any(IO, StringIO), - purpose: String, - custom_llm_provider: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/file_delete_params.rbi b/rbi/lib/hanzoai/models/file_delete_params.rbi deleted file mode 100644 index cf7b965e..00000000 --- a/rbi/lib/hanzoai/models/file_delete_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class FileDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :provider - - sig do - params(provider: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(provider:, request_options: {}) - end - - sig { override.returns({provider: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/file_list_params.rbi b/rbi/lib/hanzoai/models/file_list_params.rbi deleted file mode 100644 index 51733961..00000000 --- a/rbi/lib/hanzoai/models/file_list_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class FileListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :purpose - - sig do - params( - purpose: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(purpose: nil, request_options: {}) - end - - sig { override.returns({purpose: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/file_retrieve_params.rbi b/rbi/lib/hanzoai/models/file_retrieve_params.rbi deleted file mode 100644 index 2e4d4e67..00000000 --- a/rbi/lib/hanzoai/models/file_retrieve_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class FileRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :provider - - sig do - params(provider: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(provider:, request_options: {}) - end - - sig { override.returns({provider: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/files/content_retrieve_params.rbi b/rbi/lib/hanzoai/models/files/content_retrieve_params.rbi deleted file mode 100644 index 3441ee1d..00000000 --- a/rbi/lib/hanzoai/models/files/content_retrieve_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Files - class ContentRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :provider - - sig do - params( - provider: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(provider:, request_options: {}) - end - - sig { override.returns({provider: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/fine_tuning/job_create_params.rbi b/rbi/lib/hanzoai/models/fine_tuning/job_create_params.rbi deleted file mode 100644 index cf33d50a..00000000 --- a/rbi/lib/hanzoai/models/fine_tuning/job_create_params.rbi +++ /dev/null @@ -1,171 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module FineTuning - class JobCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::OrSymbol) } - attr_accessor :custom_llm_provider - - sig { returns(String) } - attr_accessor :model - - sig { returns(String) } - attr_accessor :training_file - - sig { returns(T.nilable(Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters)) } - attr_reader :hyperparameters - - sig do - params( - hyperparameters: T.nilable( - T.any(Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :hyperparameters - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :integrations - - sig { returns(T.nilable(Integer)) } - attr_accessor :seed - - sig { returns(T.nilable(String)) } - attr_accessor :suffix - - sig { returns(T.nilable(String)) } - attr_accessor :validation_file - - sig do - params( - custom_llm_provider: Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::OrSymbol, - model: String, - training_file: String, - hyperparameters: T.nilable( - T.any(Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters, Hanzoai::Internal::AnyHash) - ), - integrations: T.nilable(T::Array[String]), - seed: T.nilable(Integer), - suffix: T.nilable(String), - validation_file: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - custom_llm_provider:, - model:, - training_file:, - hyperparameters: nil, - integrations: nil, - seed: nil, - suffix: nil, - validation_file: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - custom_llm_provider: Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::OrSymbol, - model: String, - training_file: String, - hyperparameters: T.nilable(Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters), - integrations: T.nilable(T::Array[String]), - seed: T.nilable(Integer), - suffix: T.nilable(String), - validation_file: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module CustomLlmProvider - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::TaggedSymbol) } - - OPENAI = T.let(:openai, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::TaggedSymbol) - AZURE = T.let(:azure, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::TaggedSymbol) - VERTEX_AI = - T.let(:vertex_ai, Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::TaggedSymbol]) } - def self.values - end - end - - class Hyperparameters < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(T.any(String, Integer))) } - attr_accessor :batch_size - - sig { returns(T.nilable(T.any(String, Float))) } - attr_accessor :learning_rate_multiplier - - sig { returns(T.nilable(T.any(String, Integer))) } - attr_accessor :n_epochs - - sig do - params( - batch_size: T.nilable(T.any(String, Integer)), - learning_rate_multiplier: T.nilable(T.any(String, Float)), - n_epochs: T.nilable(T.any(String, Integer)) - ) - .returns(T.attached_class) - end - def self.new(batch_size: nil, learning_rate_multiplier: nil, n_epochs: nil) - end - - sig do - override - .returns( - { - batch_size: T.nilable(T.any(String, Integer)), - learning_rate_multiplier: T.nilable(T.any(String, Float)), - n_epochs: T.nilable(T.any(String, Integer)) - } - ) - end - def to_hash - end - - module BatchSize - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Integer]) } - def self.variants - end - end - - module LearningRateMultiplier - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Float]) } - def self.variants - end - end - - module NEpochs - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Integer]) } - def self.variants - end - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/fine_tuning/job_list_params.rbi b/rbi/lib/hanzoai/models/fine_tuning/job_list_params.rbi deleted file mode 100644 index 23c9d001..00000000 --- a/rbi/lib/hanzoai/models/fine_tuning/job_list_params.rbi +++ /dev/null @@ -1,63 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module FineTuning - class JobListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::OrSymbol) } - attr_accessor :custom_llm_provider - - sig { returns(T.nilable(String)) } - attr_accessor :after - - sig { returns(T.nilable(Integer)) } - attr_accessor :limit - - sig do - params( - custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::OrSymbol, - after: T.nilable(String), - limit: T.nilable(Integer), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(custom_llm_provider:, after: nil, limit: nil, request_options: {}) - end - - sig do - override - .returns( - { - custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::OrSymbol, - after: T.nilable(String), - limit: T.nilable(Integer), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module CustomLlmProvider - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::TaggedSymbol) } - - OPENAI = T.let(:openai, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::TaggedSymbol) - AZURE = T.let(:azure, Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::TaggedSymbol]) } - def self.values - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/fine_tuning/job_retrieve_params.rbi b/rbi/lib/hanzoai/models/fine_tuning/job_retrieve_params.rbi deleted file mode 100644 index 8200c2bb..00000000 --- a/rbi/lib/hanzoai/models/fine_tuning/job_retrieve_params.rbi +++ /dev/null @@ -1,55 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module FineTuning - class JobRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol) } - attr_accessor :custom_llm_provider - - sig do - params( - custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(custom_llm_provider:, request_options: {}) - end - - sig do - override - .returns( - { - custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module CustomLlmProvider - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::TaggedSymbol) } - - OPENAI = T.let(:openai, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::TaggedSymbol) - AZURE = T.let(:azure, Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::TaggedSymbol) - - sig do - override.returns(T::Array[Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::TaggedSymbol]) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbi b/rbi/lib/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbi deleted file mode 100644 index 1afc8eb3..00000000 --- a/rbi/lib/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module FineTuning - module Jobs - class CancelCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/gemini_create_params.rbi b/rbi/lib/hanzoai/models/gemini_create_params.rbi deleted file mode 100644 index fddb79ec..00000000 --- a/rbi/lib/hanzoai/models/gemini_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GeminiCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/gemini_delete_params.rbi b/rbi/lib/hanzoai/models/gemini_delete_params.rbi deleted file mode 100644 index b6073e72..00000000 --- a/rbi/lib/hanzoai/models/gemini_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GeminiDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/gemini_patch_params.rbi b/rbi/lib/hanzoai/models/gemini_patch_params.rbi deleted file mode 100644 index 92251050..00000000 --- a/rbi/lib/hanzoai/models/gemini_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GeminiPatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/gemini_retrieve_params.rbi b/rbi/lib/hanzoai/models/gemini_retrieve_params.rbi deleted file mode 100644 index 7c23117e..00000000 --- a/rbi/lib/hanzoai/models/gemini_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GeminiRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/gemini_update_params.rbi b/rbi/lib/hanzoai/models/gemini_update_params.rbi deleted file mode 100644 index b8b73e09..00000000 --- a/rbi/lib/hanzoai/models/gemini_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GeminiUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/generate_key_response.rbi b/rbi/lib/hanzoai/models/generate_key_response.rbi deleted file mode 100644 index 27af0521..00000000 --- a/rbi/lib/hanzoai/models/generate_key_response.rbi +++ /dev/null @@ -1,221 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(Time)) } - attr_accessor :expires - - sig { returns(String) } - attr_accessor :key - - sig { returns(T.nilable(String)) } - attr_accessor :token - - sig { returns(T.nilable(T.anything)) } - attr_accessor :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(T.anything)) } - attr_accessor :config - - sig { returns(T.nilable(String)) } - attr_accessor :created_by - - sig { returns(T.nilable(String)) } - attr_accessor :duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :enforced_params - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(String)) } - attr_accessor :key_name - - sig { returns(T.nilable(T.anything)) } - attr_reader :llm_budget_table - - sig { params(llm_budget_table: T.anything).void } - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_rpm_limit - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_tpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(T.anything)) } - attr_accessor :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :tags - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(String)) } - attr_accessor :token_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :updated_by - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - expires: T.nilable(Time), - key: String, - token: T.nilable(String), - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - created_by: T.nilable(String), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - key_name: T.nilable(String), - llm_budget_table: T.anything, - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - token_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - updated_by: T.nilable(String), - user_id: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - expires:, - key:, - token: nil, - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - budget_id: nil, - config: nil, - created_by: nil, - duration: nil, - enforced_params: nil, - guardrails: nil, - key_alias: nil, - key_name: nil, - llm_budget_table: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - permissions: nil, - rpm_limit: nil, - spend: nil, - tags: nil, - team_id: nil, - token_id: nil, - tpm_limit: nil, - updated_by: nil, - user_id: nil - ) - end - - sig do - override - .returns( - { - expires: T.nilable(Time), - key: String, - token: T.nilable(String), - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - created_by: T.nilable(String), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - key_name: T.nilable(String), - llm_budget_table: T.anything, - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - token_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - updated_by: T.nilable(String), - user_id: T.nilable(String) - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/global/spend_list_tags_params.rbi b/rbi/lib/hanzoai/models/global/spend_list_tags_params.rbi deleted file mode 100644 index 57980551..00000000 --- a/rbi/lib/hanzoai/models/global/spend_list_tags_params.rbi +++ /dev/null @@ -1,50 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Global - class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Time till which to view key spend - sig { returns(T.nilable(String)) } - attr_accessor :end_date - - # Time from which to start viewing key spend - sig { returns(T.nilable(String)) } - attr_accessor :start_date - - # comman separated tags to filter on - sig { returns(T.nilable(String)) } - attr_accessor :tags - - sig do - params( - end_date: T.nilable(String), - start_date: T.nilable(String), - tags: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(end_date: nil, start_date: nil, tags: nil, request_options: {}) - end - - sig do - override - .returns( - { - end_date: T.nilable(String), - start_date: T.nilable(String), - tags: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/global/spend_list_tags_response.rbi b/rbi/lib/hanzoai/models/global/spend_list_tags_response.rbi deleted file mode 100644 index ac4aa56f..00000000 --- a/rbi/lib/hanzoai/models/global/spend_list_tags_response.rbi +++ /dev/null @@ -1,198 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Global - class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :api_key - - sig { returns(String) } - attr_accessor :call_type - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :end_time - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :messages - - sig { returns(String) } - attr_accessor :request_id - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :response - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :start_time - - sig { returns(T.nilable(String)) } - attr_accessor :api_base - - sig { returns(T.nilable(String)) } - attr_accessor :cache_hit - - sig { returns(T.nilable(String)) } - attr_accessor :cache_key - - sig { returns(T.nilable(Integer)) } - attr_accessor :completion_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :metadata - - sig { params(metadata: T.anything).void } - attr_writer :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig { returns(T.nilable(Integer)) } - attr_accessor :prompt_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :request_tags - - sig { params(request_tags: T.anything).void } - attr_writer :request_tags - - sig { returns(T.nilable(String)) } - attr_accessor :requester_ip_address - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(Integer)) } - attr_accessor :total_tokens - - sig { returns(T.nilable(String)) } - attr_accessor :user - - sig do - params( - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - api_key:, - call_type:, - end_time:, - messages:, - request_id:, - response:, - start_time:, - api_base: nil, - cache_hit: nil, - cache_key: nil, - completion_tokens: nil, - metadata: nil, - model: nil, - prompt_tokens: nil, - request_tags: nil, - requester_ip_address: nil, - spend: nil, - total_tokens: nil, - user: nil - ) - end - - sig do - override - .returns( - { - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - } - ) - end - def to_hash - end - - module EndTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - - module Messages - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module Response - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module StartTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - end - - SpendListTagsResponse = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Global::SpendListTagsResponseItem], - Hanzoai::Internal::Type::Converter - ) - end - end -end diff --git a/rbi/lib/hanzoai/models/global/spend_reset_params.rbi b/rbi/lib/hanzoai/models/global/spend_reset_params.rbi deleted file mode 100644 index c11cab5f..00000000 --- a/rbi/lib/hanzoai/models/global/spend_reset_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Global - class SpendResetParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/global/spend_retrieve_report_params.rbi b/rbi/lib/hanzoai/models/global/spend_retrieve_report_params.rbi deleted file mode 100644 index 5f5039ca..00000000 --- a/rbi/lib/hanzoai/models/global/spend_retrieve_report_params.rbi +++ /dev/null @@ -1,102 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Global - class SpendRetrieveReportParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # View spend for a specific api_key. Example api_key='sk-1234 - sig { returns(T.nilable(String)) } - attr_accessor :api_key - - # View spend for a specific customer_id. Example customer_id='1234. Can be used in - # conjunction with team_id as well. - sig { returns(T.nilable(String)) } - attr_accessor :customer_id - - # Time till which to view spend - sig { returns(T.nilable(String)) } - attr_accessor :end_date - - # Group spend by internal team or customer or api_key - sig { returns(T.nilable(Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::OrSymbol)) } - attr_accessor :group_by - - # View spend for a specific internal_user_id. Example internal_user_id='1234 - sig { returns(T.nilable(String)) } - attr_accessor :internal_user_id - - # Time from which to start viewing spend - sig { returns(T.nilable(String)) } - attr_accessor :start_date - - # View spend for a specific team_id. Example team_id='1234 - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig do - params( - api_key: T.nilable(String), - customer_id: T.nilable(String), - end_date: T.nilable(String), - group_by: T.nilable(Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::OrSymbol), - internal_user_id: T.nilable(String), - start_date: T.nilable(String), - team_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - api_key: nil, - customer_id: nil, - end_date: nil, - group_by: nil, - internal_user_id: nil, - start_date: nil, - team_id: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - api_key: T.nilable(String), - customer_id: T.nilable(String), - end_date: T.nilable(String), - group_by: T.nilable(Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::OrSymbol), - internal_user_id: T.nilable(String), - start_date: T.nilable(String), - team_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - # Group spend by internal team or customer or api_key - module GroupBy - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol) } - - TEAM = T.let(:team, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol) - CUSTOMER = T.let(:customer, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol) - API_KEY = T.let(:api_key, Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::TaggedSymbol]) } - def self.values - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/global/spend_retrieve_report_response.rbi b/rbi/lib/hanzoai/models/global/spend_retrieve_report_response.rbi deleted file mode 100644 index 8a29f3a7..00000000 --- a/rbi/lib/hanzoai/models/global/spend_retrieve_report_response.rbi +++ /dev/null @@ -1,198 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Global - class SpendRetrieveReportResponseItem < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :api_key - - sig { returns(String) } - attr_accessor :call_type - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :end_time - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :messages - - sig { returns(String) } - attr_accessor :request_id - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :response - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :start_time - - sig { returns(T.nilable(String)) } - attr_accessor :api_base - - sig { returns(T.nilable(String)) } - attr_accessor :cache_hit - - sig { returns(T.nilable(String)) } - attr_accessor :cache_key - - sig { returns(T.nilable(Integer)) } - attr_accessor :completion_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :metadata - - sig { params(metadata: T.anything).void } - attr_writer :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig { returns(T.nilable(Integer)) } - attr_accessor :prompt_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :request_tags - - sig { params(request_tags: T.anything).void } - attr_writer :request_tags - - sig { returns(T.nilable(String)) } - attr_accessor :requester_ip_address - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(Integer)) } - attr_accessor :total_tokens - - sig { returns(T.nilable(String)) } - attr_accessor :user - - sig do - params( - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - api_key:, - call_type:, - end_time:, - messages:, - request_id:, - response:, - start_time:, - api_base: nil, - cache_hit: nil, - cache_key: nil, - completion_tokens: nil, - metadata: nil, - model: nil, - prompt_tokens: nil, - request_tags: nil, - requester_ip_address: nil, - spend: nil, - total_tokens: nil, - user: nil - ) - end - - sig do - override - .returns( - { - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - } - ) - end - def to_hash - end - - module EndTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - - module Messages - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module Response - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module StartTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - end - - SpendRetrieveReportResponse = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Global::SpendRetrieveReportResponseItem], - Hanzoai::Internal::Type::Converter - ) - end - end -end diff --git a/rbi/lib/hanzoai/models/guardrail_list_params.rbi b/rbi/lib/hanzoai/models/guardrail_list_params.rbi deleted file mode 100644 index 6c52f212..00000000 --- a/rbi/lib/hanzoai/models/guardrail_list_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GuardrailListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/guardrail_list_response.rbi b/rbi/lib/hanzoai/models/guardrail_list_response.rbi deleted file mode 100644 index da995efe..00000000 --- a/rbi/lib/hanzoai/models/guardrail_list_response.rbi +++ /dev/null @@ -1,111 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class GuardrailListResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T::Array[Hanzoai::Models::GuardrailListResponse::Guardrail]) } - attr_accessor :guardrails - - sig do - params( - guardrails: T::Array[T.any(Hanzoai::Models::GuardrailListResponse::Guardrail, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new(guardrails:) - end - - sig { override.returns({guardrails: T::Array[Hanzoai::Models::GuardrailListResponse::Guardrail]}) } - def to_hash - end - - class Guardrail < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(T.anything)) } - attr_accessor :guardrail_info - - sig { returns(String) } - attr_accessor :guardrail_name - - # The returned LLM Params object for /guardrails/list - sig { returns(Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams) } - attr_reader :llm_params - - sig do - params( - llm_params: T.any(Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams, Hanzoai::Internal::AnyHash) - ) - .void - end - attr_writer :llm_params - - sig do - params( - guardrail_info: T.nilable(T.anything), - guardrail_name: String, - llm_params: T.any(Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(guardrail_info:, guardrail_name:, llm_params:) - end - - sig do - override - .returns( - { - guardrail_info: T.nilable(T.anything), - guardrail_name: String, - llm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams - } - ) - end - def to_hash - end - - class LlmParams < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :guardrail - - sig { returns(T.any(String, T::Array[String])) } - attr_accessor :mode - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :default_on - - sig { params(default_on: T::Boolean).void } - attr_writer :default_on - - # The returned LLM Params object for /guardrails/list - sig do - params(guardrail: String, mode: T.any(String, T::Array[String]), default_on: T::Boolean) - .returns(T.attached_class) - end - def self.new(guardrail:, mode:, default_on: nil) - end - - sig do - override.returns( - { - guardrail: String, - mode: T.any(String, T::Array[String]), - default_on: T::Boolean - } - ) - end - def to_hash - end - - module Mode - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[String]]) } - def self.variants - end - - StringArray = T.let(Hanzoai::Internal::Type::ArrayOf[String], Hanzoai::Internal::Type::Converter) - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/health_check_all_params.rbi b/rbi/lib/hanzoai/models/health_check_all_params.rbi deleted file mode 100644 index 4ba8d5b2..00000000 --- a/rbi/lib/hanzoai/models/health_check_all_params.rbi +++ /dev/null @@ -1,28 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class HealthCheckAllParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Specify the model name (optional) - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig do - params( - model: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(model: nil, request_options: {}) - end - - sig { override.returns({model: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/health_check_liveliness_params.rbi b/rbi/lib/hanzoai/models/health_check_liveliness_params.rbi deleted file mode 100644 index 3b42c2ea..00000000 --- a/rbi/lib/hanzoai/models/health_check_liveliness_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class HealthCheckLivelinessParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/health_check_liveness_params.rbi b/rbi/lib/hanzoai/models/health_check_liveness_params.rbi deleted file mode 100644 index 0b4c43ae..00000000 --- a/rbi/lib/hanzoai/models/health_check_liveness_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class HealthCheckLivenessParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/health_check_readiness_params.rbi b/rbi/lib/hanzoai/models/health_check_readiness_params.rbi deleted file mode 100644 index b33a3418..00000000 --- a/rbi/lib/hanzoai/models/health_check_readiness_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class HealthCheckReadinessParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/health_check_services_params.rbi b/rbi/lib/hanzoai/models/health_check_services_params.rbi deleted file mode 100644 index 62263128..00000000 --- a/rbi/lib/hanzoai/models/health_check_services_params.rbi +++ /dev/null @@ -1,59 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class HealthCheckServicesParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Specify the service being hit. - sig { returns(T.any(Hanzoai::Models::HealthCheckServicesParams::Service::OrSymbol, String)) } - attr_accessor :service - - sig do - params( - service: T.any(Hanzoai::Models::HealthCheckServicesParams::Service::OrSymbol, String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(service:, request_options: {}) - end - - sig do - override - .returns( - { - service: T.any(Hanzoai::Models::HealthCheckServicesParams::Service::OrSymbol, String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - # Specify the service being hit. - module Service - extend Hanzoai::Internal::Type::Union - - sig { override.returns([Hanzoai::Models::HealthCheckServicesParams::Service::OrSymbol, String]) } - def self.variants - end - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::HealthCheckServicesParams::Service) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) } - - SLACK_BUDGET_ALERTS = - T.let(:slack_budget_alerts, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - LANGFUSE = T.let(:langfuse, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - SLACK = T.let(:slack, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - OPENMETER = T.let(:openmeter, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - WEBHOOK = T.let(:webhook, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - EMAIL = T.let(:email, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - BRAINTRUST = T.let(:braintrust, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - DATADOG = T.let(:datadog, Hanzoai::Models::HealthCheckServicesParams::Service::TaggedSymbol) - end - end - end -end diff --git a/rbi/lib/hanzoai/models/images/generation_create_params.rbi b/rbi/lib/hanzoai/models/images/generation_create_params.rbi deleted file mode 100644 index 2992d22b..00000000 --- a/rbi/lib/hanzoai/models/images/generation_create_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Images - class GenerationCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/ip_address.rbi b/rbi/lib/hanzoai/models/ip_address.rbi deleted file mode 100644 index d70d6409..00000000 --- a/rbi/lib/hanzoai/models/ip_address.rbi +++ /dev/null @@ -1,18 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class IPAddress < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :ip - - sig { params(ip: String).returns(T.attached_class) } - def self.new(ip:) - end - - sig { override.returns({ip: String}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key/regenerate_key_request.rbi b/rbi/lib/hanzoai/models/key/regenerate_key_request.rbi deleted file mode 100644 index fa1ee656..00000000 --- a/rbi/lib/hanzoai/models/key/regenerate_key_request.rbi +++ /dev/null @@ -1,196 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Key - class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(T.anything)) } - attr_accessor :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(T.anything)) } - attr_accessor :config - - sig { returns(T.nilable(String)) } - attr_accessor :duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :enforced_params - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(String)) } - attr_accessor :key - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_rpm_limit - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_tpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(String)) } - attr_accessor :new_master_key - - sig { returns(T.nilable(T.anything)) } - attr_accessor :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :send_invite_email - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :tags - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key: T.nilable(String), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - new_master_key: T.nilable(String), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - soft_budget: T.nilable(Float), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - budget_id: nil, - config: nil, - duration: nil, - enforced_params: nil, - guardrails: nil, - key: nil, - key_alias: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - new_master_key: nil, - permissions: nil, - rpm_limit: nil, - send_invite_email: nil, - soft_budget: nil, - spend: nil, - tags: nil, - team_id: nil, - tpm_limit: nil, - user_id: nil - ) - end - - sig do - override - .returns( - { - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key: T.nilable(String), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - new_master_key: T.nilable(String), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - soft_budget: T.nilable(Float), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String) - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_block_params.rbi b/rbi/lib/hanzoai/models/key_block_params.rbi deleted file mode 100644 index 5e1fed0d..00000000 --- a/rbi/lib/hanzoai/models/key_block_params.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyBlockParams < Hanzoai::Models::BlockKeyRequest - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(llm_changed_by: nil, request_options: {}) - end - - sig { override.returns({llm_changed_by: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_block_response.rbi b/rbi/lib/hanzoai/models/key_block_response.rbi deleted file mode 100644 index bfdd4645..00000000 --- a/rbi/lib/hanzoai/models/key_block_response.rbi +++ /dev/null @@ -1,235 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :token - - sig { returns(T.nilable(T.anything)) } - attr_reader :aliases - - sig { params(aliases: T.anything).void } - attr_writer :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(T.anything)) } - attr_reader :config - - sig { params(config: T.anything).void } - attr_writer :config - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(String)) } - attr_accessor :created_by - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :expires - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(String)) } - attr_accessor :key_name - - sig { returns(T.nilable(T.anything)) } - attr_accessor :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_reader :metadata - - sig { params(metadata: T.anything).void } - attr_writer :metadata - - sig { returns(T.nilable(T.anything)) } - attr_reader :model_max_budget - - sig { params(model_max_budget: T.anything).void } - attr_writer :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_reader :model_spend - - sig { params(model_spend: T.anything).void } - attr_writer :model_spend - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :org_id - - sig { returns(T.nilable(T.anything)) } - attr_reader :permissions - - sig { params(permissions: T.anything).void } - attr_writer :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :soft_budget_cooldown - - sig { params(soft_budget_cooldown: T::Boolean).void } - attr_writer :soft_budget_cooldown - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(Time)) } - attr_accessor :updated_at - - sig { returns(T.nilable(String)) } - attr_accessor :updated_by - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - token: T.nilable(String), - aliases: T.anything, - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - config: T.anything, - created_at: T.nilable(Time), - created_by: T.nilable(String), - expires: T.nilable(T.any(String, Time)), - key_alias: T.nilable(String), - key_name: T.nilable(String), - llm_budget_table: T.nilable(T.anything), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.anything, - model_max_budget: T.anything, - model_spend: T.anything, - models: T::Array[T.anything], - org_id: T.nilable(String), - permissions: T.anything, - rpm_limit: T.nilable(Integer), - soft_budget_cooldown: T::Boolean, - spend: Float, - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - updated_at: T.nilable(Time), - updated_by: T.nilable(String), - user_id: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - token: nil, - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - config: nil, - created_at: nil, - created_by: nil, - expires: nil, - key_alias: nil, - key_name: nil, - llm_budget_table: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_spend: nil, - models: nil, - org_id: nil, - permissions: nil, - rpm_limit: nil, - soft_budget_cooldown: nil, - spend: nil, - team_id: nil, - tpm_limit: nil, - updated_at: nil, - updated_by: nil, - user_id: nil - ) - end - - sig do - override - .returns( - { - token: T.nilable(String), - aliases: T.anything, - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - config: T.anything, - created_at: T.nilable(Time), - created_by: T.nilable(String), - expires: T.nilable(T.any(String, Time)), - key_alias: T.nilable(String), - key_name: T.nilable(String), - llm_budget_table: T.nilable(T.anything), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.anything, - model_max_budget: T.anything, - model_spend: T.anything, - models: T::Array[T.anything], - org_id: T.nilable(String), - permissions: T.anything, - rpm_limit: T.nilable(Integer), - soft_budget_cooldown: T::Boolean, - spend: Float, - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - updated_at: T.nilable(Time), - updated_by: T.nilable(String), - user_id: T.nilable(String) - } - ) - end - def to_hash - end - - module Expires - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_check_health_params.rbi b/rbi/lib/hanzoai/models/key_check_health_params.rbi deleted file mode 100644 index 9d2e46ea..00000000 --- a/rbi/lib/hanzoai/models/key_check_health_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyCheckHealthParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_check_health_response.rbi b/rbi/lib/hanzoai/models/key_check_health_response.rbi deleted file mode 100644 index bd75a7e5..00000000 --- a/rbi/lib/hanzoai/models/key_check_health_response.rbi +++ /dev/null @@ -1,122 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyCheckHealthResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol)) } - attr_reader :key - - sig { params(key: Hanzoai::Models::KeyCheckHealthResponse::Key::OrSymbol).void } - attr_writer :key - - sig { returns(T.nilable(Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks)) } - attr_reader :logging_callbacks - - sig do - params( - logging_callbacks: T.nilable(T.any(Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks, Hanzoai::Internal::AnyHash)) - ) - .void - end - attr_writer :logging_callbacks - - sig do - params( - key: Hanzoai::Models::KeyCheckHealthResponse::Key::OrSymbol, - logging_callbacks: T.nilable(T.any(Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks, Hanzoai::Internal::AnyHash)) - ) - .returns(T.attached_class) - end - def self.new(key: nil, logging_callbacks: nil) - end - - sig do - override - .returns( - { - key: Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol, - logging_callbacks: T.nilable(Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks) - } - ) - end - def to_hash - end - - module Key - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::KeyCheckHealthResponse::Key) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol) } - - HEALTHY = T.let(:healthy, Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol) - UNHEALTHY = T.let(:unhealthy, Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::KeyCheckHealthResponse::Key::TaggedSymbol]) } - def self.values - end - end - - class LoggingCallbacks < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(T::Array[String])) } - attr_reader :callbacks - - sig { params(callbacks: T::Array[String]).void } - attr_writer :callbacks - - sig { returns(T.nilable(String)) } - attr_accessor :details - - sig { returns(T.nilable(Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol)) } - attr_reader :status - - sig { params(status: Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::OrSymbol).void } - attr_writer :status - - sig do - params( - callbacks: T::Array[String], - details: T.nilable(String), - status: Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::OrSymbol - ) - .returns(T.attached_class) - end - def self.new(callbacks: nil, details: nil, status: nil) - end - - sig do - override - .returns( - { - callbacks: T::Array[String], - details: T.nilable(String), - status: Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol - } - ) - end - def to_hash - end - - module Status - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol) } - - HEALTHY = - T.let(:healthy, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol) - UNHEALTHY = - T.let(:unhealthy, Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol) - - sig do - override.returns(T::Array[Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::Status::TaggedSymbol]) - end - def self.values - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_delete_params.rbi b/rbi/lib/hanzoai/models/key_delete_params.rbi deleted file mode 100644 index e245f429..00000000 --- a/rbi/lib/hanzoai/models/key_delete_params.rbi +++ /dev/null @@ -1,50 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :key_aliases - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :keys - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - key_aliases: T.nilable(T::Array[String]), - keys: T.nilable(T::Array[String]), - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(key_aliases: nil, keys: nil, llm_changed_by: nil, request_options: {}) - end - - sig do - override - .returns( - { - key_aliases: T.nilable(T::Array[String]), - keys: T.nilable(T::Array[String]), - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_generate_params.rbi b/rbi/lib/hanzoai/models/key_generate_params.rbi deleted file mode 100644 index a37b3b36..00000000 --- a/rbi/lib/hanzoai/models/key_generate_params.rbi +++ /dev/null @@ -1,205 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyGenerateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T.anything)) } - attr_accessor :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(T.anything)) } - attr_accessor :config - - sig { returns(T.nilable(String)) } - attr_accessor :duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :enforced_params - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(String)) } - attr_accessor :key - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_rpm_limit - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_tpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(T.anything)) } - attr_accessor :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :send_invite_email - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :tags - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key: T.nilable(String), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - soft_budget: T.nilable(Float), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String), - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - budget_id: nil, - config: nil, - duration: nil, - enforced_params: nil, - guardrails: nil, - key: nil, - key_alias: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - permissions: nil, - rpm_limit: nil, - send_invite_email: nil, - soft_budget: nil, - spend: nil, - tags: nil, - team_id: nil, - tpm_limit: nil, - user_id: nil, - llm_changed_by: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key: T.nilable(String), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - soft_budget: T.nilable(Float), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String), - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_list_params.rbi b/rbi/lib/hanzoai/models/key_list_params.rbi deleted file mode 100644 index a67f0925..00000000 --- a/rbi/lib/hanzoai/models/key_list_params.rbi +++ /dev/null @@ -1,100 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Include all keys for teams that user is an admin of. - sig { returns(T.nilable(T::Boolean)) } - attr_reader :include_team_keys - - sig { params(include_team_keys: T::Boolean).void } - attr_writer :include_team_keys - - # Filter keys by key alias - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - # Filter keys by organization ID - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - # Page number - sig { returns(T.nilable(Integer)) } - attr_reader :page - - sig { params(page: Integer).void } - attr_writer :page - - # Return full key object - sig { returns(T.nilable(T::Boolean)) } - attr_reader :return_full_object - - sig { params(return_full_object: T::Boolean).void } - attr_writer :return_full_object - - # Page size - sig { returns(T.nilable(Integer)) } - attr_reader :size - - sig { params(size: Integer).void } - attr_writer :size - - # Filter keys by team ID - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - # Filter keys by user ID - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - include_team_keys: T::Boolean, - key_alias: T.nilable(String), - organization_id: T.nilable(String), - page: Integer, - return_full_object: T::Boolean, - size: Integer, - team_id: T.nilable(String), - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - include_team_keys: nil, - key_alias: nil, - organization_id: nil, - page: nil, - return_full_object: nil, - size: nil, - team_id: nil, - user_id: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - include_team_keys: T::Boolean, - key_alias: T.nilable(String), - organization_id: T.nilable(String), - page: Integer, - return_full_object: T::Boolean, - size: Integer, - team_id: T.nilable(String), - user_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_list_response.rbi b/rbi/lib/hanzoai/models/key_list_response.rbi deleted file mode 100644 index f56e1559..00000000 --- a/rbi/lib/hanzoai/models/key_list_response.rbi +++ /dev/null @@ -1,542 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyListResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(Integer)) } - attr_accessor :current_page - - sig { returns(T.nilable(T::Array[T.any(String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth)])) } - attr_reader :keys - - sig do - params( - keys: T::Array[T.any(String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :keys - - sig { returns(T.nilable(Integer)) } - attr_accessor :total_count - - sig { returns(T.nilable(Integer)) } - attr_accessor :total_pages - - sig do - params( - current_page: T.nilable(Integer), - keys: T::Array[T.any(String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth, Hanzoai::Internal::AnyHash)], - total_count: T.nilable(Integer), - total_pages: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new(current_page: nil, keys: nil, total_count: nil, total_pages: nil) - end - - sig do - override - .returns( - { - current_page: T.nilable(Integer), - keys: T::Array[T.any(String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth)], - total_count: T.nilable(Integer), - total_pages: T.nilable(Integer) - } - ) - end - def to_hash - end - - # Return the row in the db - module Key - extend Hanzoai::Internal::Type::Union - - class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :token - - sig { returns(T.nilable(T.anything)) } - attr_reader :aliases - - sig { params(aliases: T.anything).void } - attr_writer :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig do - returns( - T.nilable(Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol) - ) - end - attr_accessor :allowed_model_region - - sig { returns(T.nilable(String)) } - attr_accessor :api_key - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(T.anything)) } - attr_reader :config - - sig { params(config: T.anything).void } - attr_writer :config - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(String)) } - attr_accessor :created_by - - sig { returns(T.nilable(String)) } - attr_accessor :end_user_id - - sig { returns(T.nilable(Float)) } - attr_accessor :end_user_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :end_user_rpm_limit - - sig { returns(T.nilable(Integer)) } - attr_accessor :end_user_tpm_limit - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :expires - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(String)) } - attr_accessor :key_name - - sig { returns(T.nilable(Float)) } - attr_accessor :last_refreshed_at - - sig { returns(T.nilable(T.anything)) } - attr_accessor :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_reader :metadata - - sig { params(metadata: T.anything).void } - attr_writer :metadata - - sig { returns(T.nilable(T.anything)) } - attr_reader :model_max_budget - - sig { params(model_max_budget: T.anything).void } - attr_writer :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_reader :model_spend - - sig { params(model_spend: T.anything).void } - attr_writer :model_spend - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :org_id - - sig { returns(T.nilable(T.anything)) } - attr_reader :parent_otel_span - - sig { params(parent_otel_span: T.anything).void } - attr_writer :parent_otel_span - - sig { returns(T.nilable(T.anything)) } - attr_reader :permissions - - sig { params(permissions: T.anything).void } - attr_writer :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(T::Hash[Symbol, Integer])) } - attr_accessor :rpm_limit_per_model - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :soft_budget_cooldown - - sig { params(soft_budget_cooldown: T::Boolean).void } - attr_writer :soft_budget_cooldown - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :team_blocked - - sig { params(team_blocked: T::Boolean).void } - attr_writer :team_blocked - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(Float)) } - attr_accessor :team_max_budget - - sig { returns(T.nilable(Hanzoai::Models::Member)) } - attr_reader :team_member - - sig { params(team_member: T.nilable(T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash))).void } - attr_writer :team_member - - sig { returns(T.nilable(Float)) } - attr_accessor :team_member_spend - - sig { returns(T.nilable(T.anything)) } - attr_accessor :team_metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :team_model_aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :team_models - - sig { params(team_models: T::Array[T.anything]).void } - attr_writer :team_models - - sig { returns(T.nilable(Integer)) } - attr_accessor :team_rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :team_spend - - sig { returns(T.nilable(Integer)) } - attr_accessor :team_tpm_limit - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(T::Hash[Symbol, Integer])) } - attr_accessor :tpm_limit_per_model - - sig { returns(T.nilable(Time)) } - attr_accessor :updated_at - - sig { returns(T.nilable(String)) } - attr_accessor :updated_by - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization - # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend - # - # Team Roles: TEAM: used for JWT auth - # - # Customer Roles: CUSTOMER: External users -> these are customers - sig { returns(T.nilable(Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol)) } - attr_accessor :user_role - - sig { returns(T.nilable(Integer)) } - attr_accessor :user_rpm_limit - - sig { returns(T.nilable(Integer)) } - attr_accessor :user_tpm_limit - - # Return the row in the db - sig do - params( - token: T.nilable(String), - aliases: T.anything, - allowed_cache_controls: T.nilable(T::Array[T.anything]), - allowed_model_region: T.nilable(Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::OrSymbol), - api_key: T.nilable(String), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - config: T.anything, - created_at: T.nilable(Time), - created_by: T.nilable(String), - end_user_id: T.nilable(String), - end_user_max_budget: T.nilable(Float), - end_user_rpm_limit: T.nilable(Integer), - end_user_tpm_limit: T.nilable(Integer), - expires: T.nilable(T.any(String, Time)), - key_alias: T.nilable(String), - key_name: T.nilable(String), - last_refreshed_at: T.nilable(Float), - llm_budget_table: T.nilable(T.anything), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.anything, - model_max_budget: T.anything, - model_spend: T.anything, - models: T::Array[T.anything], - org_id: T.nilable(String), - parent_otel_span: T.anything, - permissions: T.anything, - rpm_limit: T.nilable(Integer), - rpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), - soft_budget: T.nilable(Float), - soft_budget_cooldown: T::Boolean, - spend: Float, - team_alias: T.nilable(String), - team_blocked: T::Boolean, - team_id: T.nilable(String), - team_max_budget: T.nilable(Float), - team_member: T.nilable(T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)), - team_member_spend: T.nilable(Float), - team_metadata: T.nilable(T.anything), - team_model_aliases: T.nilable(T.anything), - team_models: T::Array[T.anything], - team_rpm_limit: T.nilable(Integer), - team_spend: T.nilable(Float), - team_tpm_limit: T.nilable(Integer), - tpm_limit: T.nilable(Integer), - tpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), - updated_at: T.nilable(Time), - updated_by: T.nilable(String), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::OrSymbol), - user_rpm_limit: T.nilable(Integer), - user_tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - token: nil, - aliases: nil, - allowed_cache_controls: nil, - allowed_model_region: nil, - api_key: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - config: nil, - created_at: nil, - created_by: nil, - end_user_id: nil, - end_user_max_budget: nil, - end_user_rpm_limit: nil, - end_user_tpm_limit: nil, - expires: nil, - key_alias: nil, - key_name: nil, - last_refreshed_at: nil, - llm_budget_table: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_spend: nil, - models: nil, - org_id: nil, - parent_otel_span: nil, - permissions: nil, - rpm_limit: nil, - rpm_limit_per_model: nil, - soft_budget: nil, - soft_budget_cooldown: nil, - spend: nil, - team_alias: nil, - team_blocked: nil, - team_id: nil, - team_max_budget: nil, - team_member: nil, - team_member_spend: nil, - team_metadata: nil, - team_model_aliases: nil, - team_models: nil, - team_rpm_limit: nil, - team_spend: nil, - team_tpm_limit: nil, - tpm_limit: nil, - tpm_limit_per_model: nil, - updated_at: nil, - updated_by: nil, - user_email: nil, - user_id: nil, - user_role: nil, - user_rpm_limit: nil, - user_tpm_limit: nil - ) - end - - sig do - override - .returns( - { - token: T.nilable(String), - aliases: T.anything, - allowed_cache_controls: T.nilable(T::Array[T.anything]), - allowed_model_region: T.nilable(Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol), - api_key: T.nilable(String), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - config: T.anything, - created_at: T.nilable(Time), - created_by: T.nilable(String), - end_user_id: T.nilable(String), - end_user_max_budget: T.nilable(Float), - end_user_rpm_limit: T.nilable(Integer), - end_user_tpm_limit: T.nilable(Integer), - expires: T.nilable(T.any(String, Time)), - key_alias: T.nilable(String), - key_name: T.nilable(String), - last_refreshed_at: T.nilable(Float), - llm_budget_table: T.nilable(T.anything), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.anything, - model_max_budget: T.anything, - model_spend: T.anything, - models: T::Array[T.anything], - org_id: T.nilable(String), - parent_otel_span: T.anything, - permissions: T.anything, - rpm_limit: T.nilable(Integer), - rpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), - soft_budget: T.nilable(Float), - soft_budget_cooldown: T::Boolean, - spend: Float, - team_alias: T.nilable(String), - team_blocked: T::Boolean, - team_id: T.nilable(String), - team_max_budget: T.nilable(Float), - team_member: T.nilable(Hanzoai::Models::Member), - team_member_spend: T.nilable(Float), - team_metadata: T.nilable(T.anything), - team_model_aliases: T.nilable(T.anything), - team_models: T::Array[T.anything], - team_rpm_limit: T.nilable(Integer), - team_spend: T.nilable(Float), - team_tpm_limit: T.nilable(Integer), - tpm_limit: T.nilable(Integer), - tpm_limit_per_model: T.nilable(T::Hash[Symbol, Integer]), - updated_at: T.nilable(Time), - updated_by: T.nilable(String), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol), - user_rpm_limit: T.nilable(Integer), - user_tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion) } - OrSymbol = - T.type_alias do - T.any( - Symbol, - String, - Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol - ) - end - - EU = T.let(:eu, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol) - US = T.let(:us, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol) - - sig do - override - .returns(T::Array[Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::AllowedModelRegion::TaggedSymbol]) - end - def self.values - end - end - - module Expires - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - - # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization - # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend - # - # Team Roles: TEAM: used for JWT auth - # - # Customer Roles: CUSTOMER: External users -> these are customers - module UserRole - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = - T.type_alias { T.all(Symbol, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol) } - - PROXY_ADMIN = - T.let(:proxy_admin, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol) - PROXY_ADMIN_VIEWER = - T.let(:proxy_admin_viewer, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol) - ORG_ADMIN = - T.let(:org_admin, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol) - INTERNAL_USER = - T.let(:internal_user, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol) - INTERNAL_USER_VIEWER = - T.let( - :internal_user_viewer, - Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol - ) - TEAM = T.let(:team, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol) - CUSTOMER = - T.let(:customer, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::UserRole::TaggedSymbol]) } - def self.values - end - end - end - - sig { override.returns([String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth]) } - def self.variants - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_regenerate_by_key_params.rbi b/rbi/lib/hanzoai/models/key_regenerate_by_key_params.rbi deleted file mode 100644 index 6a8a5966..00000000 --- a/rbi/lib/hanzoai/models/key_regenerate_by_key_params.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyRegenerateByKeyParams < Hanzoai::Models::Key::RegenerateKeyRequest - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(llm_changed_by: nil, request_options: {}) - end - - sig { override.returns({llm_changed_by: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_retrieve_info_params.rbi b/rbi/lib/hanzoai/models/key_retrieve_info_params.rbi deleted file mode 100644 index 279081d7..00000000 --- a/rbi/lib/hanzoai/models/key_retrieve_info_params.rbi +++ /dev/null @@ -1,28 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Key in the request parameters - sig { returns(T.nilable(String)) } - attr_accessor :key - - sig do - params( - key: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(key: nil, request_options: {}) - end - - sig { override.returns({key: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_unblock_params.rbi b/rbi/lib/hanzoai/models/key_unblock_params.rbi deleted file mode 100644 index 23056372..00000000 --- a/rbi/lib/hanzoai/models/key_unblock_params.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyUnblockParams < Hanzoai::Models::BlockKeyRequest - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(llm_changed_by: nil, request_options: {}) - end - - sig { override.returns({llm_changed_by: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/key_update_params.rbi b/rbi/lib/hanzoai/models/key_update_params.rbi deleted file mode 100644 index 8629c64a..00000000 --- a/rbi/lib/hanzoai/models/key_update_params.rbi +++ /dev/null @@ -1,205 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class KeyUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :key - - sig { returns(T.nilable(T.anything)) } - attr_accessor :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(T.anything)) } - attr_accessor :config - - sig { returns(T.nilable(String)) } - attr_accessor :duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :enforced_params - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_rpm_limit - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_tpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(T.anything)) } - attr_accessor :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :tags - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(Time)) } - attr_accessor :temp_budget_expiry - - sig { returns(T.nilable(Float)) } - attr_accessor :temp_budget_increase - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - key: String, - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - temp_budget_expiry: T.nilable(Time), - temp_budget_increase: T.nilable(Float), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String), - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - key:, - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - budget_id: nil, - config: nil, - duration: nil, - enforced_params: nil, - guardrails: nil, - key_alias: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - permissions: nil, - rpm_limit: nil, - spend: nil, - tags: nil, - team_id: nil, - temp_budget_expiry: nil, - temp_budget_increase: nil, - tpm_limit: nil, - user_id: nil, - llm_changed_by: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - key: String, - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - temp_budget_expiry: T.nilable(Time), - temp_budget_increase: T.nilable(Float), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String), - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/langfuse_create_params.rbi b/rbi/lib/hanzoai/models/langfuse_create_params.rbi deleted file mode 100644 index 2c9c952e..00000000 --- a/rbi/lib/hanzoai/models/langfuse_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class LangfuseCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/langfuse_delete_params.rbi b/rbi/lib/hanzoai/models/langfuse_delete_params.rbi deleted file mode 100644 index c6f8c3a7..00000000 --- a/rbi/lib/hanzoai/models/langfuse_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class LangfuseDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/langfuse_patch_params.rbi b/rbi/lib/hanzoai/models/langfuse_patch_params.rbi deleted file mode 100644 index b4a0be18..00000000 --- a/rbi/lib/hanzoai/models/langfuse_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class LangfusePatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/langfuse_retrieve_params.rbi b/rbi/lib/hanzoai/models/langfuse_retrieve_params.rbi deleted file mode 100644 index 719adbbe..00000000 --- a/rbi/lib/hanzoai/models/langfuse_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class LangfuseRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/langfuse_update_params.rbi b/rbi/lib/hanzoai/models/langfuse_update_params.rbi deleted file mode 100644 index f2cf0128..00000000 --- a/rbi/lib/hanzoai/models/langfuse_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class LangfuseUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/member.rbi b/rbi/lib/hanzoai/models/member.rbi deleted file mode 100644 index 343803db..00000000 --- a/rbi/lib/hanzoai/models/member.rbi +++ /dev/null @@ -1,50 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class Member < Hanzoai::Internal::Type::BaseModel - sig { returns(Hanzoai::Models::Member::Role::OrSymbol) } - attr_accessor :role - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - role: Hanzoai::Models::Member::Role::OrSymbol, - user_email: T.nilable(String), - user_id: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new(role:, user_email: nil, user_id: nil) - end - - sig do - override - .returns( - {role: Hanzoai::Models::Member::Role::OrSymbol, user_email: T.nilable(String), user_id: T.nilable(String)} - ) - end - def to_hash - end - - module Role - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::Member::Role) } - OrSymbol = T.type_alias { T.any(Symbol, String, Hanzoai::Models::Member::Role::TaggedSymbol) } - - ADMIN = T.let(:admin, Hanzoai::Models::Member::Role::TaggedSymbol) - USER = T.let(:user, Hanzoai::Models::Member::Role::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::Member::Role::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model/info_list_params.rbi b/rbi/lib/hanzoai/models/model/info_list_params.rbi deleted file mode 100644 index f1f34a3b..00000000 --- a/rbi/lib/hanzoai/models/model/info_list_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Model - class InfoListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :llm_model_id - - sig do - params( - llm_model_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(llm_model_id: nil, request_options: {}) - end - - sig { override.returns({llm_model_id: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model/update_deployment.rbi b/rbi/lib/hanzoai/models/model/update_deployment.rbi deleted file mode 100644 index b89a68cf..00000000 --- a/rbi/lib/hanzoai/models/model/update_deployment.rbi +++ /dev/null @@ -1,294 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Model - class UpdateDeployment < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(Hanzoai::Models::Model::UpdateDeployment::LlmParams)) } - attr_reader :llm_params - - sig do - params( - llm_params: T.nilable(T.any(Hanzoai::Models::Model::UpdateDeployment::LlmParams, Hanzoai::Internal::AnyHash)) - ) - .void - end - attr_writer :llm_params - - sig { returns(T.nilable(Hanzoai::Models::ModelInfo)) } - attr_reader :model_info - - sig { params(model_info: T.nilable(T.any(Hanzoai::Models::ModelInfo, Hanzoai::Internal::AnyHash))).void } - attr_writer :model_info - - sig { returns(T.nilable(String)) } - attr_accessor :model_name - - sig do - params( - llm_params: T.nilable(T.any(Hanzoai::Models::Model::UpdateDeployment::LlmParams, Hanzoai::Internal::AnyHash)), - model_info: T.nilable(T.any(Hanzoai::Models::ModelInfo, Hanzoai::Internal::AnyHash)), - model_name: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new(llm_params: nil, model_info: nil, model_name: nil) - end - - sig do - override - .returns( - { - llm_params: T.nilable(Hanzoai::Models::Model::UpdateDeployment::LlmParams), - model_info: T.nilable(Hanzoai::Models::ModelInfo), - model_name: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmParams < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :api_base - - sig { returns(T.nilable(String)) } - attr_accessor :api_key - - sig { returns(T.nilable(String)) } - attr_accessor :api_version - - sig { returns(T.nilable(String)) } - attr_accessor :aws_access_key_id - - sig { returns(T.nilable(String)) } - attr_accessor :aws_region_name - - sig { returns(T.nilable(String)) } - attr_accessor :aws_secret_access_key - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(T::Array[T.any(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth)])) } - attr_accessor :configurable_clientside_auth_params - - sig { returns(T.nilable(String)) } - attr_accessor :custom_llm_provider - - sig { returns(T.nilable(Float)) } - attr_accessor :input_cost_per_second - - sig { returns(T.nilable(Float)) } - attr_accessor :input_cost_per_token - - sig { returns(T.nilable(String)) } - attr_accessor :llm_trace_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Float)) } - attr_accessor :max_file_size_mb - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_retries - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :merge_reasoning_content_in_choices - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_info - - sig { returns(T.nilable(String)) } - attr_accessor :organization - - sig { returns(T.nilable(Float)) } - attr_accessor :output_cost_per_second - - sig { returns(T.nilable(Float)) } - attr_accessor :output_cost_per_token - - sig { returns(T.nilable(String)) } - attr_accessor :region_name - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm - - sig { returns(T.nilable(T.any(Float, String))) } - attr_accessor :stream_timeout - - sig { returns(T.nilable(T.any(Float, String))) } - attr_accessor :timeout - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :use_in_pass_through - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :vertex_credentials - - sig { returns(T.nilable(String)) } - attr_accessor :vertex_location - - sig { returns(T.nilable(String)) } - attr_accessor :vertex_project - - sig { returns(T.nilable(String)) } - attr_accessor :watsonx_region_name - - sig do - params( - api_base: T.nilable(String), - api_key: T.nilable(String), - api_version: T.nilable(String), - aws_access_key_id: T.nilable(String), - aws_region_name: T.nilable(String), - aws_secret_access_key: T.nilable(String), - budget_duration: T.nilable(String), - configurable_clientside_auth_params: T.nilable( - T::Array[T.any(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth, Hanzoai::Internal::AnyHash)] - ), - custom_llm_provider: T.nilable(String), - input_cost_per_second: T.nilable(Float), - input_cost_per_token: T.nilable(Float), - llm_trace_id: T.nilable(String), - max_budget: T.nilable(Float), - max_file_size_mb: T.nilable(Float), - max_retries: T.nilable(Integer), - merge_reasoning_content_in_choices: T.nilable(T::Boolean), - model: T.nilable(String), - model_info: T.nilable(T.anything), - organization: T.nilable(String), - output_cost_per_second: T.nilable(Float), - output_cost_per_token: T.nilable(Float), - region_name: T.nilable(String), - rpm: T.nilable(Integer), - stream_timeout: T.nilable(T.any(Float, String)), - timeout: T.nilable(T.any(Float, String)), - tpm: T.nilable(Integer), - use_in_pass_through: T.nilable(T::Boolean), - vertex_credentials: T.nilable(T.any(T.anything, String)), - vertex_location: T.nilable(String), - vertex_project: T.nilable(String), - watsonx_region_name: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - api_base: nil, - api_key: nil, - api_version: nil, - aws_access_key_id: nil, - aws_region_name: nil, - aws_secret_access_key: nil, - budget_duration: nil, - configurable_clientside_auth_params: nil, - custom_llm_provider: nil, - input_cost_per_second: nil, - input_cost_per_token: nil, - llm_trace_id: nil, - max_budget: nil, - max_file_size_mb: nil, - max_retries: nil, - merge_reasoning_content_in_choices: nil, - model: nil, - model_info: nil, - organization: nil, - output_cost_per_second: nil, - output_cost_per_token: nil, - region_name: nil, - rpm: nil, - stream_timeout: nil, - timeout: nil, - tpm: nil, - use_in_pass_through: nil, - vertex_credentials: nil, - vertex_location: nil, - vertex_project: nil, - watsonx_region_name: nil - ) - end - - sig do - override - .returns( - { - api_base: T.nilable(String), - api_key: T.nilable(String), - api_version: T.nilable(String), - aws_access_key_id: T.nilable(String), - aws_region_name: T.nilable(String), - aws_secret_access_key: T.nilable(String), - budget_duration: T.nilable(String), - configurable_clientside_auth_params: T.nilable(T::Array[T.any(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth)]), - custom_llm_provider: T.nilable(String), - input_cost_per_second: T.nilable(Float), - input_cost_per_token: T.nilable(Float), - llm_trace_id: T.nilable(String), - max_budget: T.nilable(Float), - max_file_size_mb: T.nilable(Float), - max_retries: T.nilable(Integer), - merge_reasoning_content_in_choices: T.nilable(T::Boolean), - model: T.nilable(String), - model_info: T.nilable(T.anything), - organization: T.nilable(String), - output_cost_per_second: T.nilable(Float), - output_cost_per_token: T.nilable(Float), - region_name: T.nilable(String), - rpm: T.nilable(Integer), - stream_timeout: T.nilable(T.any(Float, String)), - timeout: T.nilable(T.any(Float, String)), - tpm: T.nilable(Integer), - use_in_pass_through: T.nilable(T::Boolean), - vertex_credentials: T.nilable(T.any(T.anything, String)), - vertex_location: T.nilable(String), - vertex_project: T.nilable(String), - watsonx_region_name: T.nilable(String) - } - ) - end - def to_hash - end - - module ConfigurableClientsideAuthParam - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth]) } - def self.variants - end - end - - module StreamTimeout - extend Hanzoai::Internal::Type::Union - - sig { override.returns([Float, String]) } - def self.variants - end - end - - module Timeout - extend Hanzoai::Internal::Type::Union - - sig { override.returns([Float, String]) } - def self.variants - end - end - - module VertexCredentials - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model/update_full_params.rbi b/rbi/lib/hanzoai/models/model/update_full_params.rbi deleted file mode 100644 index 3dddfbe7..00000000 --- a/rbi/lib/hanzoai/models/model/update_full_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Model - class UpdateFullParams < Hanzoai::Models::Model::UpdateDeployment - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model/update_partial_params.rbi b/rbi/lib/hanzoai/models/model/update_partial_params.rbi deleted file mode 100644 index 5e658df6..00000000 --- a/rbi/lib/hanzoai/models/model/update_partial_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Model - class UpdatePartialParams < Hanzoai::Models::Model::UpdateDeployment - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model_create_params.rbi b/rbi/lib/hanzoai/models/model_create_params.rbi deleted file mode 100644 index 8fb15934..00000000 --- a/rbi/lib/hanzoai/models/model_create_params.rbi +++ /dev/null @@ -1,294 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ModelCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # LLM Params with 'model' requirement - used for completions - sig { returns(Hanzoai::Models::ModelCreateParams::LlmParams) } - attr_reader :llm_params - - sig { params(llm_params: T.any(Hanzoai::Models::ModelCreateParams::LlmParams, Hanzoai::Internal::AnyHash)).void } - attr_writer :llm_params - - sig { returns(Hanzoai::Models::ModelInfo) } - attr_reader :model_info - - sig { params(model_info: T.any(Hanzoai::Models::ModelInfo, Hanzoai::Internal::AnyHash)).void } - attr_writer :model_info - - sig { returns(String) } - attr_accessor :model_name - - sig do - params( - llm_params: T.any(Hanzoai::Models::ModelCreateParams::LlmParams, Hanzoai::Internal::AnyHash), - model_info: T.any(Hanzoai::Models::ModelInfo, Hanzoai::Internal::AnyHash), - model_name: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(llm_params:, model_info:, model_name:, request_options: {}) - end - - sig do - override - .returns( - { - llm_params: Hanzoai::Models::ModelCreateParams::LlmParams, - model_info: Hanzoai::Models::ModelInfo, - model_name: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - class LlmParams < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :model - - sig { returns(T.nilable(String)) } - attr_accessor :api_base - - sig { returns(T.nilable(String)) } - attr_accessor :api_key - - sig { returns(T.nilable(String)) } - attr_accessor :api_version - - sig { returns(T.nilable(String)) } - attr_accessor :aws_access_key_id - - sig { returns(T.nilable(String)) } - attr_accessor :aws_region_name - - sig { returns(T.nilable(String)) } - attr_accessor :aws_secret_access_key - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(T::Array[T.any(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth)])) } - attr_accessor :configurable_clientside_auth_params - - sig { returns(T.nilable(String)) } - attr_accessor :custom_llm_provider - - sig { returns(T.nilable(Float)) } - attr_accessor :input_cost_per_second - - sig { returns(T.nilable(Float)) } - attr_accessor :input_cost_per_token - - sig { returns(T.nilable(String)) } - attr_accessor :llm_trace_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Float)) } - attr_accessor :max_file_size_mb - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_retries - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :merge_reasoning_content_in_choices - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_info - - sig { returns(T.nilable(String)) } - attr_accessor :organization - - sig { returns(T.nilable(Float)) } - attr_accessor :output_cost_per_second - - sig { returns(T.nilable(Float)) } - attr_accessor :output_cost_per_token - - sig { returns(T.nilable(String)) } - attr_accessor :region_name - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm - - sig { returns(T.nilable(T.any(Float, String))) } - attr_accessor :stream_timeout - - sig { returns(T.nilable(T.any(Float, String))) } - attr_accessor :timeout - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :use_in_pass_through - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :vertex_credentials - - sig { returns(T.nilable(String)) } - attr_accessor :vertex_location - - sig { returns(T.nilable(String)) } - attr_accessor :vertex_project - - sig { returns(T.nilable(String)) } - attr_accessor :watsonx_region_name - - # LLM Params with 'model' requirement - used for completions - sig do - params( - model: String, - api_base: T.nilable(String), - api_key: T.nilable(String), - api_version: T.nilable(String), - aws_access_key_id: T.nilable(String), - aws_region_name: T.nilable(String), - aws_secret_access_key: T.nilable(String), - budget_duration: T.nilable(String), - configurable_clientside_auth_params: T.nilable( - T::Array[T.any(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth, Hanzoai::Internal::AnyHash)] - ), - custom_llm_provider: T.nilable(String), - input_cost_per_second: T.nilable(Float), - input_cost_per_token: T.nilable(Float), - llm_trace_id: T.nilable(String), - max_budget: T.nilable(Float), - max_file_size_mb: T.nilable(Float), - max_retries: T.nilable(Integer), - merge_reasoning_content_in_choices: T.nilable(T::Boolean), - model_info: T.nilable(T.anything), - organization: T.nilable(String), - output_cost_per_second: T.nilable(Float), - output_cost_per_token: T.nilable(Float), - region_name: T.nilable(String), - rpm: T.nilable(Integer), - stream_timeout: T.nilable(T.any(Float, String)), - timeout: T.nilable(T.any(Float, String)), - tpm: T.nilable(Integer), - use_in_pass_through: T.nilable(T::Boolean), - vertex_credentials: T.nilable(T.any(T.anything, String)), - vertex_location: T.nilable(String), - vertex_project: T.nilable(String), - watsonx_region_name: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - model:, - api_base: nil, - api_key: nil, - api_version: nil, - aws_access_key_id: nil, - aws_region_name: nil, - aws_secret_access_key: nil, - budget_duration: nil, - configurable_clientside_auth_params: nil, - custom_llm_provider: nil, - input_cost_per_second: nil, - input_cost_per_token: nil, - llm_trace_id: nil, - max_budget: nil, - max_file_size_mb: nil, - max_retries: nil, - merge_reasoning_content_in_choices: nil, - model_info: nil, - organization: nil, - output_cost_per_second: nil, - output_cost_per_token: nil, - region_name: nil, - rpm: nil, - stream_timeout: nil, - timeout: nil, - tpm: nil, - use_in_pass_through: nil, - vertex_credentials: nil, - vertex_location: nil, - vertex_project: nil, - watsonx_region_name: nil - ) - end - - sig do - override - .returns( - { - model: String, - api_base: T.nilable(String), - api_key: T.nilable(String), - api_version: T.nilable(String), - aws_access_key_id: T.nilable(String), - aws_region_name: T.nilable(String), - aws_secret_access_key: T.nilable(String), - budget_duration: T.nilable(String), - configurable_clientside_auth_params: T.nilable(T::Array[T.any(String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth)]), - custom_llm_provider: T.nilable(String), - input_cost_per_second: T.nilable(Float), - input_cost_per_token: T.nilable(Float), - llm_trace_id: T.nilable(String), - max_budget: T.nilable(Float), - max_file_size_mb: T.nilable(Float), - max_retries: T.nilable(Integer), - merge_reasoning_content_in_choices: T.nilable(T::Boolean), - model_info: T.nilable(T.anything), - organization: T.nilable(String), - output_cost_per_second: T.nilable(Float), - output_cost_per_token: T.nilable(Float), - region_name: T.nilable(String), - rpm: T.nilable(Integer), - stream_timeout: T.nilable(T.any(Float, String)), - timeout: T.nilable(T.any(Float, String)), - tpm: T.nilable(Integer), - use_in_pass_through: T.nilable(T::Boolean), - vertex_credentials: T.nilable(T.any(T.anything, String)), - vertex_location: T.nilable(String), - vertex_project: T.nilable(String), - watsonx_region_name: T.nilable(String) - } - ) - end - def to_hash - end - - module ConfigurableClientsideAuthParam - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth]) } - def self.variants - end - end - - module StreamTimeout - extend Hanzoai::Internal::Type::Union - - sig { override.returns([Float, String]) } - def self.variants - end - end - - module Timeout - extend Hanzoai::Internal::Type::Union - - sig { override.returns([Float, String]) } - def self.variants - end - end - - module VertexCredentials - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model_delete_params.rbi b/rbi/lib/hanzoai/models/model_delete_params.rbi deleted file mode 100644 index a60d5f5e..00000000 --- a/rbi/lib/hanzoai/models/model_delete_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ModelDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :id - - sig do - params(id: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(id:, request_options: {}) - end - - sig { override.returns({id: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model_group_retrieve_info_params.rbi b/rbi/lib/hanzoai/models/model_group_retrieve_info_params.rbi deleted file mode 100644 index 6b7ee0b0..00000000 --- a/rbi/lib/hanzoai/models/model_group_retrieve_info_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ModelGroupRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :model_group - - sig do - params( - model_group: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(model_group: nil, request_options: {}) - end - - sig { override.returns({model_group: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model_info.rbi b/rbi/lib/hanzoai/models/model_info.rbi deleted file mode 100644 index 3f884656..00000000 --- a/rbi/lib/hanzoai/models/model_info.rbi +++ /dev/null @@ -1,103 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ModelInfo < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :id - - sig { returns(T.nilable(String)) } - attr_accessor :base_model - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(String)) } - attr_accessor :created_by - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :db_model - - sig { params(db_model: T::Boolean).void } - attr_writer :db_model - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(String)) } - attr_accessor :team_public_model_name - - sig { returns(T.nilable(Hanzoai::Models::ModelInfo::Tier::OrSymbol)) } - attr_accessor :tier - - sig { returns(T.nilable(Time)) } - attr_accessor :updated_at - - sig { returns(T.nilable(String)) } - attr_accessor :updated_by - - sig do - params( - id: T.nilable(String), - base_model: T.nilable(String), - created_at: T.nilable(Time), - created_by: T.nilable(String), - db_model: T::Boolean, - team_id: T.nilable(String), - team_public_model_name: T.nilable(String), - tier: T.nilable(Hanzoai::Models::ModelInfo::Tier::OrSymbol), - updated_at: T.nilable(Time), - updated_by: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - id:, - base_model: nil, - created_at: nil, - created_by: nil, - db_model: nil, - team_id: nil, - team_public_model_name: nil, - tier: nil, - updated_at: nil, - updated_by: nil - ) - end - - sig do - override - .returns( - { - id: T.nilable(String), - base_model: T.nilable(String), - created_at: T.nilable(Time), - created_by: T.nilable(String), - db_model: T::Boolean, - team_id: T.nilable(String), - team_public_model_name: T.nilable(String), - tier: T.nilable(Hanzoai::Models::ModelInfo::Tier::OrSymbol), - updated_at: T.nilable(Time), - updated_by: T.nilable(String) - } - ) - end - def to_hash - end - - module Tier - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::ModelInfo::Tier) } - OrSymbol = T.type_alias { T.any(Symbol, String, Hanzoai::Models::ModelInfo::Tier::TaggedSymbol) } - - FREE = T.let(:free, Hanzoai::Models::ModelInfo::Tier::TaggedSymbol) - PAID = T.let(:paid, Hanzoai::Models::ModelInfo::Tier::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::ModelInfo::Tier::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/model_list_params.rbi b/rbi/lib/hanzoai/models/model_list_params.rbi deleted file mode 100644 index ea1a2ace..00000000 --- a/rbi/lib/hanzoai/models/model_list_params.rbi +++ /dev/null @@ -1,40 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ModelListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :return_wildcard_routes - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig do - params( - return_wildcard_routes: T.nilable(T::Boolean), - team_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(return_wildcard_routes: nil, team_id: nil, request_options: {}) - end - - sig do - override - .returns( - { - return_wildcard_routes: T.nilable(T::Boolean), - team_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/moderation_create_params.rbi b/rbi/lib/hanzoai/models/moderation_create_params.rbi deleted file mode 100644 index d7a2da1d..00000000 --- a/rbi/lib/hanzoai/models/moderation_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ModerationCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai/deployment_complete_params.rbi b/rbi/lib/hanzoai/models/openai/deployment_complete_params.rbi deleted file mode 100644 index 6e35c0e2..00000000 --- a/rbi/lib/hanzoai/models/openai/deployment_complete_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module OpenAI - class DeploymentCompleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai/deployment_embed_params.rbi b/rbi/lib/hanzoai/models/openai/deployment_embed_params.rbi deleted file mode 100644 index d543af66..00000000 --- a/rbi/lib/hanzoai/models/openai/deployment_embed_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module OpenAI - class DeploymentEmbedParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai/deployments/chat_complete_params.rbi b/rbi/lib/hanzoai/models/openai/deployments/chat_complete_params.rbi deleted file mode 100644 index 24056c67..00000000 --- a/rbi/lib/hanzoai/models/openai/deployments/chat_complete_params.rbi +++ /dev/null @@ -1,25 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module OpenAI - module Deployments - class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai_create_params.rbi b/rbi/lib/hanzoai/models/openai_create_params.rbi deleted file mode 100644 index 248bacfd..00000000 --- a/rbi/lib/hanzoai/models/openai_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OpenAICreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai_delete_params.rbi b/rbi/lib/hanzoai/models/openai_delete_params.rbi deleted file mode 100644 index eac8396b..00000000 --- a/rbi/lib/hanzoai/models/openai_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OpenAIDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai_patch_params.rbi b/rbi/lib/hanzoai/models/openai_patch_params.rbi deleted file mode 100644 index 5edec312..00000000 --- a/rbi/lib/hanzoai/models/openai_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OpenAIPatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai_retrieve_params.rbi b/rbi/lib/hanzoai/models/openai_retrieve_params.rbi deleted file mode 100644 index eacc0a4b..00000000 --- a/rbi/lib/hanzoai/models/openai_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OpenAIRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/openai_update_params.rbi b/rbi/lib/hanzoai/models/openai_update_params.rbi deleted file mode 100644 index e40e0e24..00000000 --- a/rbi/lib/hanzoai/models/openai_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OpenAIUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/org_member.rbi b/rbi/lib/hanzoai/models/org_member.rbi deleted file mode 100644 index f77e85ee..00000000 --- a/rbi/lib/hanzoai/models/org_member.rbi +++ /dev/null @@ -1,51 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrgMember < Hanzoai::Internal::Type::BaseModel - sig { returns(Hanzoai::Models::OrgMember::Role::OrSymbol) } - attr_accessor :role - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - role: Hanzoai::Models::OrgMember::Role::OrSymbol, - user_email: T.nilable(String), - user_id: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new(role:, user_email: nil, user_id: nil) - end - - sig do - override - .returns( - {role: Hanzoai::Models::OrgMember::Role::OrSymbol, user_email: T.nilable(String), user_id: T.nilable(String)} - ) - end - def to_hash - end - - module Role - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::OrgMember::Role) } - OrSymbol = T.type_alias { T.any(Symbol, String, Hanzoai::Models::OrgMember::Role::TaggedSymbol) } - - ORG_ADMIN = T.let(:org_admin, Hanzoai::Models::OrgMember::Role::TaggedSymbol) - INTERNAL_USER = T.let(:internal_user, Hanzoai::Models::OrgMember::Role::TaggedSymbol) - INTERNAL_USER_VIEWER = T.let(:internal_user_viewer, Hanzoai::Models::OrgMember::Role::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::OrgMember::Role::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization/info_deprecated_params.rbi b/rbi/lib/hanzoai/models/organization/info_deprecated_params.rbi deleted file mode 100644 index c8e3d49c..00000000 --- a/rbi/lib/hanzoai/models/organization/info_deprecated_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Organization - class InfoDeprecatedParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T::Array[String]) } - attr_accessor :organizations - - sig do - params( - organizations: T::Array[String], - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(organizations:, request_options: {}) - end - - sig { override.returns({organizations: T::Array[String], request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization/info_retrieve_params.rbi b/rbi/lib/hanzoai/models/organization/info_retrieve_params.rbi deleted file mode 100644 index d6de71d2..00000000 --- a/rbi/lib/hanzoai/models/organization/info_retrieve_params.rbi +++ /dev/null @@ -1,29 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Organization - class InfoRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :organization_id - - sig do - params( - organization_id: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(organization_id:, request_options: {}) - end - - sig { override.returns({organization_id: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization/info_retrieve_response.rbi b/rbi/lib/hanzoai/models/organization/info_retrieve_response.rbi deleted file mode 100644 index 8f95fa66..00000000 --- a/rbi/lib/hanzoai/models/organization/info_retrieve_response.rbi +++ /dev/null @@ -1,578 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Organization - class InfoRetrieveResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :budget_id - - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :created_by - - sig { returns(T::Array[String]) } - attr_accessor :models - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :updated_by - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Member])) } - attr_reader :members - - sig do - params( - members: T::Array[T.any(Hanzoai::Models::Organization::InfoRetrieveResponse::Member, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :members - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :organization_alias - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Team])) } - attr_reader :teams - - sig do - params( - teams: T::Array[T.any(Hanzoai::Models::Organization::InfoRetrieveResponse::Team, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :teams - - # Returned by the /organization/info endpoint and /organization/list endpoint - sig do - params( - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - members: T::Array[T.any(Hanzoai::Models::Organization::InfoRetrieveResponse::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[T.any(Hanzoai::Models::Organization::InfoRetrieveResponse::Team, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new( - budget_id:, - created_at:, - created_by:, - models:, - updated_at:, - updated_by:, - llm_budget_table: nil, - members: nil, - metadata: nil, - organization_alias: nil, - organization_id: nil, - spend: nil, - teams: nil - ) - end - - sig do - override - .returns( - { - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable(Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable), - members: T::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Member], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Team] - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - - class Member < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :admins - - sig { params(admins: T::Array[T.anything]).void } - attr_writer :admins - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable)) } - attr_reader :llm_model_table - - sig do - params( - llm_model_table: T.nilable( - T.any( - Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable, - Hanzoai::Internal::AnyHash - ) - ) - ) - .void - end - attr_writer :llm_model_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :members - - sig { params(members: T::Array[T.anything]).void } - attr_writer :members - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Member])) } - attr_reader :members_with_roles - - sig { params(members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)]).void } - attr_writer :members_with_roles - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(Integer)) } - attr_accessor :model_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable( - T.any( - Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable, - Hanzoai::Internal::AnyHash - ) - ), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - admins: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - created_at: nil, - llm_model_table: nil, - max_budget: nil, - max_parallel_requests: nil, - members: nil, - members_with_roles: nil, - metadata: nil, - model_id: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - spend: nil, - team_alias: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[Hanzoai::Models::Member], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :created_by - - sig { returns(String) } - attr_accessor :updated_by - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :model_aliases - - sig do - params( - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - ) - .returns(T.attached_class) - end - def self.new(created_by:, updated_by:, model_aliases: nil) - end - - sig do - override - .returns({ - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - }) - end - def to_hash - end - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_add_member_params.rbi b/rbi/lib/hanzoai/models/organization_add_member_params.rbi deleted file mode 100644 index 66b65cf6..00000000 --- a/rbi/lib/hanzoai/models/organization_add_member_params.rbi +++ /dev/null @@ -1,60 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationAddMemberParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.any(T::Array[Hanzoai::Models::OrgMember], Hanzoai::Models::OrgMember)) } - attr_accessor :member - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget_in_organization - - sig do - params( - member: T.any( - T::Array[T.any(Hanzoai::Models::OrgMember, Hanzoai::Internal::AnyHash)], - Hanzoai::Models::OrgMember, - Hanzoai::Internal::AnyHash - ), - organization_id: String, - max_budget_in_organization: T.nilable(Float), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(member:, organization_id:, max_budget_in_organization: nil, request_options: {}) - end - - sig do - override - .returns( - { - member: T.any(T::Array[Hanzoai::Models::OrgMember], Hanzoai::Models::OrgMember), - organization_id: String, - max_budget_in_organization: T.nilable(Float), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module Member - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T::Array[Hanzoai::Models::OrgMember], Hanzoai::Models::OrgMember]) } - def self.variants - end - - OrgMemberArray = - T.let(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrgMember], Hanzoai::Internal::Type::Converter) - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_add_member_response.rbi b/rbi/lib/hanzoai/models/organization_add_member_response.rbi deleted file mode 100644 index 2d4d84c9..00000000 --- a/rbi/lib/hanzoai/models/organization_add_member_response.rbi +++ /dev/null @@ -1,526 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationAddMemberResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(T::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership]) } - attr_accessor :updated_organization_memberships - - sig { returns(T::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser]) } - attr_accessor :updated_users - - sig do - params( - organization_id: String, - updated_organization_memberships: T::Array[ - T.any( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership, - Hanzoai::Internal::AnyHash - ) - ], - updated_users: T::Array[T.any(Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new(organization_id:, updated_organization_memberships:, updated_users:) - end - - sig do - override - .returns( - { - organization_id: String, - updated_organization_memberships: T::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership], - updated_users: T::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser] - } - ) - end - def to_hash - end - - class UpdatedOrganizationMembership < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - returns( - T.nilable(Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable) - ) - end - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - - class UpdatedUser < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_spend - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig do - returns( - T.nilable(T::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership]) - ) - end - attr_accessor :organization_memberships - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(String)) } - attr_accessor :sso_user_id - - sig { returns(T.nilable(T::Array[String])) } - attr_reader :teams - - sig { params(teams: T::Array[String]).void } - attr_writer :teams - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - sig do - params( - user_id: String, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - max_budget: T.nilable(Float), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_spend: T.nilable(T.anything), - models: T::Array[T.anything], - organization_memberships: T.nilable( - T::Array[ - T.any( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership, - Hanzoai::Internal::AnyHash - ) - ] - ), - rpm_limit: T.nilable(Integer), - spend: Float, - sso_user_id: T.nilable(String), - teams: T::Array[String], - tpm_limit: T.nilable(Integer), - user_email: T.nilable(String), - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - user_id:, - budget_duration: nil, - budget_reset_at: nil, - max_budget: nil, - metadata: nil, - model_max_budget: nil, - model_spend: nil, - models: nil, - organization_memberships: nil, - rpm_limit: nil, - spend: nil, - sso_user_id: nil, - teams: nil, - tpm_limit: nil, - user_email: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - user_id: String, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - max_budget: T.nilable(Float), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_spend: T.nilable(T.anything), - models: T::Array[T.anything], - organization_memberships: T.nilable(T::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership]), - rpm_limit: T.nilable(Integer), - spend: Float, - sso_user_id: T.nilable(String), - teams: T::Array[String], - tpm_limit: T.nilable(Integer), - user_email: T.nilable(String), - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class OrganizationMembership < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - returns( - T.nilable( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable - ) - ) - end - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_create_params.rbi b/rbi/lib/hanzoai/models/organization_create_params.rbi deleted file mode 100644 index bd46e799..00000000 --- a/rbi/lib/hanzoai/models/organization_create_params.rbi +++ /dev/null @@ -1,107 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :organization_alias - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - organization_alias: String, - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - organization_alias:, - budget_duration: nil, - budget_id: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - organization_alias: String, - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_create_response.rbi b/rbi/lib/hanzoai/models/organization_create_response.rbi deleted file mode 100644 index be1fab76..00000000 --- a/rbi/lib/hanzoai/models/organization_create_response.rbi +++ /dev/null @@ -1,89 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationCreateResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :budget_id - - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :created_by - - sig { returns(T::Array[String]) } - attr_accessor :models - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :updated_by - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :organization_alias - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig do - params( - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - organization_id: String, - updated_at: Time, - updated_by: String, - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - spend: Float - ) - .returns(T.attached_class) - end - def self.new( - budget_id:, - created_at:, - created_by:, - models:, - organization_id:, - updated_at:, - updated_by:, - metadata: nil, - organization_alias: nil, - spend: nil - ) - end - - sig do - override - .returns( - { - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - organization_id: String, - updated_at: Time, - updated_by: String, - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - spend: Float - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_delete_member_params.rbi b/rbi/lib/hanzoai/models/organization_delete_member_params.rbi deleted file mode 100644 index 6f85546c..00000000 --- a/rbi/lib/hanzoai/models/organization_delete_member_params.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationDeleteMemberParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - organization_id: String, - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(organization_id:, user_email: nil, user_id: nil, request_options: {}) - end - - sig do - override - .returns( - { - organization_id: String, - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_delete_params.rbi b/rbi/lib/hanzoai/models/organization_delete_params.rbi deleted file mode 100644 index 929f545e..00000000 --- a/rbi/lib/hanzoai/models/organization_delete_params.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T::Array[String]) } - attr_accessor :organization_ids - - sig do - params( - organization_ids: T::Array[String], - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(organization_ids:, request_options: {}) - end - - sig { override.returns({organization_ids: T::Array[String], request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_delete_response.rbi b/rbi/lib/hanzoai/models/organization_delete_response.rbi deleted file mode 100644 index 4ad74446..00000000 --- a/rbi/lib/hanzoai/models/organization_delete_response.rbi +++ /dev/null @@ -1,570 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationDeleteResponseItem < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :budget_id - - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :created_by - - sig { returns(T::Array[String]) } - attr_accessor :models - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :updated_by - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(T::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Member])) } - attr_reader :members - - sig do - params( - members: T::Array[T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Member, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :members - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :organization_alias - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Team])) } - attr_reader :teams - - sig do - params( - teams: T::Array[T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Team, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :teams - - # Returned by the /organization/info endpoint and /organization/list endpoint - sig do - params( - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - members: T::Array[T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Team, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new( - budget_id:, - created_at:, - created_by:, - models:, - updated_at:, - updated_by:, - llm_budget_table: nil, - members: nil, - metadata: nil, - organization_alias: nil, - organization_id: nil, - spend: nil, - teams: nil - ) - end - - sig do - override - .returns( - { - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable), - members: T::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Member], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Team] - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - - class Member < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :admins - - sig { params(admins: T::Array[T.anything]).void } - attr_writer :admins - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable)) } - attr_reader :llm_model_table - - sig do - params( - llm_model_table: T.nilable( - T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_model_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :members - - sig { params(members: T::Array[T.anything]).void } - attr_writer :members - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Member])) } - attr_reader :members_with_roles - - sig { params(members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)]).void } - attr_writer :members_with_roles - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(Integer)) } - attr_accessor :model_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable( - T.any(Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable, Hanzoai::Internal::AnyHash) - ), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - admins: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - created_at: nil, - llm_model_table: nil, - max_budget: nil, - max_parallel_requests: nil, - members: nil, - members_with_roles: nil, - metadata: nil, - model_id: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - spend: nil, - team_alias: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[Hanzoai::Models::Member], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :created_by - - sig { returns(String) } - attr_accessor :updated_by - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :model_aliases - - sig do - params( - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - ) - .returns(T.attached_class) - end - def self.new(created_by:, updated_by:, model_aliases: nil) - end - - sig do - override - .returns({ - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - }) - end - def to_hash - end - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end - - OrganizationDeleteResponse = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationDeleteResponseItem], - Hanzoai::Internal::Type::Converter - ) - end -end diff --git a/rbi/lib/hanzoai/models/organization_list_params.rbi b/rbi/lib/hanzoai/models/organization_list_params.rbi deleted file mode 100644 index fc752041..00000000 --- a/rbi/lib/hanzoai/models/organization_list_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_list_response.rbi b/rbi/lib/hanzoai/models/organization_list_response.rbi deleted file mode 100644 index 0adf648b..00000000 --- a/rbi/lib/hanzoai/models/organization_list_response.rbi +++ /dev/null @@ -1,570 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationListResponseItem < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :budget_id - - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :created_by - - sig { returns(T::Array[String]) } - attr_accessor :models - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :updated_by - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(T::Array[Hanzoai::Models::OrganizationListResponseItem::Member])) } - attr_reader :members - - sig do - params( - members: T::Array[T.any(Hanzoai::Models::OrganizationListResponseItem::Member, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :members - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :organization_alias - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T::Array[Hanzoai::Models::OrganizationListResponseItem::Team])) } - attr_reader :teams - - sig do - params( - teams: T::Array[T.any(Hanzoai::Models::OrganizationListResponseItem::Team, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :teams - - # Returned by the /organization/info endpoint and /organization/list endpoint - sig do - params( - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - members: T::Array[T.any(Hanzoai::Models::OrganizationListResponseItem::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[T.any(Hanzoai::Models::OrganizationListResponseItem::Team, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new( - budget_id:, - created_at:, - created_by:, - models:, - updated_at:, - updated_by:, - llm_budget_table: nil, - members: nil, - metadata: nil, - organization_alias: nil, - organization_id: nil, - spend: nil, - teams: nil - ) - end - - sig do - override - .returns( - { - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable), - members: T::Array[Hanzoai::Models::OrganizationListResponseItem::Member], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[Hanzoai::Models::OrganizationListResponseItem::Team] - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - - class Member < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :admins - - sig { params(admins: T::Array[T.anything]).void } - attr_writer :admins - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable)) } - attr_reader :llm_model_table - - sig do - params( - llm_model_table: T.nilable( - T.any(Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_model_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :members - - sig { params(members: T::Array[T.anything]).void } - attr_writer :members - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Member])) } - attr_reader :members_with_roles - - sig { params(members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)]).void } - attr_writer :members_with_roles - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(Integer)) } - attr_accessor :model_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable( - T.any(Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable, Hanzoai::Internal::AnyHash) - ), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - admins: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - created_at: nil, - llm_model_table: nil, - max_budget: nil, - max_parallel_requests: nil, - members: nil, - members_with_roles: nil, - metadata: nil, - model_id: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - spend: nil, - team_alias: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[Hanzoai::Models::Member], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :created_by - - sig { returns(String) } - attr_accessor :updated_by - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :model_aliases - - sig do - params( - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - ) - .returns(T.attached_class) - end - def self.new(created_by:, updated_by:, model_aliases: nil) - end - - sig do - override - .returns({ - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - }) - end - def to_hash - end - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end - - OrganizationListResponse = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationListResponseItem], - Hanzoai::Internal::Type::Converter - ) - end -end diff --git a/rbi/lib/hanzoai/models/organization_update_member_params.rbi b/rbi/lib/hanzoai/models/organization_update_member_params.rbi deleted file mode 100644 index 8dc63cbb..00000000 --- a/rbi/lib/hanzoai/models/organization_update_member_params.rbi +++ /dev/null @@ -1,107 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationUpdateMemberParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget_in_organization - - # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization - # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend - # - # Team Roles: TEAM: used for JWT auth - # - # Customer Roles: CUSTOMER: External users -> these are customers - sig { returns(T.nilable(Hanzoai::Models::OrganizationUpdateMemberParams::Role::OrSymbol)) } - attr_accessor :role - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - organization_id: String, - max_budget_in_organization: T.nilable(Float), - role: T.nilable(Hanzoai::Models::OrganizationUpdateMemberParams::Role::OrSymbol), - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - organization_id:, - max_budget_in_organization: nil, - role: nil, - user_email: nil, - user_id: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - organization_id: String, - max_budget_in_organization: T.nilable(Float), - role: T.nilable(Hanzoai::Models::OrganizationUpdateMemberParams::Role::OrSymbol), - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization - # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend - # - # Team Roles: TEAM: used for JWT auth - # - # Customer Roles: CUSTOMER: External users -> these are customers - module Role - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::OrganizationUpdateMemberParams::Role) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) } - - PROXY_ADMIN = T.let(:proxy_admin, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) - PROXY_ADMIN_VIEWER = - T.let(:proxy_admin_viewer, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) - ORG_ADMIN = T.let(:org_admin, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) - INTERNAL_USER = - T.let(:internal_user, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) - INTERNAL_USER_VIEWER = - T.let(:internal_user_viewer, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) - TEAM = T.let(:team, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) - CUSTOMER = T.let(:customer, Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::OrganizationUpdateMemberParams::Role::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_update_member_response.rbi b/rbi/lib/hanzoai/models/organization_update_member_response.rbi deleted file mode 100644 index 75ddd9e7..00000000 --- a/rbi/lib/hanzoai/models/organization_update_member_response.rbi +++ /dev/null @@ -1,165 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationUpdateMemberResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_update_params.rbi b/rbi/lib/hanzoai/models/organization_update_params.rbi deleted file mode 100644 index 5433a20f..00000000 --- a/rbi/lib/hanzoai/models/organization_update_params.rbi +++ /dev/null @@ -1,74 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_alias - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :updated_by - - sig do - params( - budget_id: T.nilable(String), - metadata: T.nilable(T.anything), - models: T.nilable(T::Array[String]), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: T.nilable(Float), - updated_by: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - budget_id: nil, - metadata: nil, - models: nil, - organization_alias: nil, - organization_id: nil, - spend: nil, - updated_by: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - budget_id: T.nilable(String), - metadata: T.nilable(T.anything), - models: T.nilable(T::Array[String]), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: T.nilable(Float), - updated_by: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/organization_update_response.rbi b/rbi/lib/hanzoai/models/organization_update_response.rbi deleted file mode 100644 index fb7e4f72..00000000 --- a/rbi/lib/hanzoai/models/organization_update_response.rbi +++ /dev/null @@ -1,560 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class OrganizationUpdateResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :budget_id - - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :created_by - - sig { returns(T::Array[String]) } - attr_accessor :models - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :updated_by - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable(T.any(Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash)) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(T::Array[Hanzoai::Models::OrganizationUpdateResponse::Member])) } - attr_reader :members - - sig do - params( - members: T::Array[T.any(Hanzoai::Models::OrganizationUpdateResponse::Member, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :members - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :organization_alias - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T::Array[Hanzoai::Models::OrganizationUpdateResponse::Team])) } - attr_reader :teams - - sig do - params( - teams: T::Array[T.any(Hanzoai::Models::OrganizationUpdateResponse::Team, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :teams - - # Returned by the /organization/info endpoint and /organization/list endpoint - sig do - params( - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable(T.any(Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable, Hanzoai::Internal::AnyHash)), - members: T::Array[T.any(Hanzoai::Models::OrganizationUpdateResponse::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[T.any(Hanzoai::Models::OrganizationUpdateResponse::Team, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new( - budget_id:, - created_at:, - created_by:, - models:, - updated_at:, - updated_by:, - llm_budget_table: nil, - members: nil, - metadata: nil, - organization_alias: nil, - organization_id: nil, - spend: nil, - teams: nil - ) - end - - sig do - override - .returns( - { - budget_id: String, - created_at: Time, - created_by: String, - models: T::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable), - members: T::Array[Hanzoai::Models::OrganizationUpdateResponse::Member], - metadata: T.nilable(T.anything), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: Float, - teams: T::Array[Hanzoai::Models::OrganizationUpdateResponse::Team] - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - - class Member < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any(Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable, Hanzoai::Internal::AnyHash) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - - class Team < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :admins - - sig { params(admins: T::Array[T.anything]).void } - attr_writer :admins - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable)) } - attr_reader :llm_model_table - - sig do - params( - llm_model_table: T.nilable( - T.any(Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable, Hanzoai::Internal::AnyHash) - ) - ) - .void - end - attr_writer :llm_model_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :members - - sig { params(members: T::Array[T.anything]).void } - attr_writer :members - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Member])) } - attr_reader :members_with_roles - - sig { params(members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)]).void } - attr_writer :members_with_roles - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(Integer)) } - attr_accessor :model_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable( - T.any(Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable, Hanzoai::Internal::AnyHash) - ), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - admins: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - created_at: nil, - llm_model_table: nil, - max_budget: nil, - max_parallel_requests: nil, - members: nil, - members_with_roles: nil, - metadata: nil, - model_id: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - spend: nil, - team_alias: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[Hanzoai::Models::Member], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :created_by - - sig { returns(String) } - attr_accessor :updated_by - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :model_aliases - - sig do - params( - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - ) - .returns(T.attached_class) - end - def self.new(created_by:, updated_by:, model_aliases: nil) - end - - sig do - override - .returns({ - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - }) - end - def to_hash - end - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/provider_list_budgets_params.rbi b/rbi/lib/hanzoai/models/provider_list_budgets_params.rbi deleted file mode 100644 index ff54c46e..00000000 --- a/rbi/lib/hanzoai/models/provider_list_budgets_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ProviderListBudgetsParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/provider_list_budgets_response.rbi b/rbi/lib/hanzoai/models/provider_list_budgets_response.rbi deleted file mode 100644 index 862fb1d9..00000000 --- a/rbi/lib/hanzoai/models/provider_list_budgets_response.rbi +++ /dev/null @@ -1,74 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ProviderListBudgetsResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(T::Hash[Symbol, Hanzoai::Models::ProviderListBudgetsResponse::Provider])) } - attr_reader :providers - - sig do - params( - providers: T::Hash[Symbol, T.any(Hanzoai::Models::ProviderListBudgetsResponse::Provider, Hanzoai::Internal::AnyHash)] - ) - .void - end - attr_writer :providers - - # Complete provider budget configuration and status. Maps provider names to their - # budget configs. - sig do - params( - providers: T::Hash[Symbol, T.any(Hanzoai::Models::ProviderListBudgetsResponse::Provider, Hanzoai::Internal::AnyHash)] - ) - .returns(T.attached_class) - end - def self.new(providers: nil) - end - - sig { override.returns({providers: T::Hash[Symbol, Hanzoai::Models::ProviderListBudgetsResponse::Provider]}) } - def to_hash - end - - class Provider < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(Float)) } - attr_accessor :budget_limit - - sig { returns(T.nilable(String)) } - attr_accessor :time_period - - sig { returns(T.nilable(String)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - # Configuration for a single provider's budget settings - sig do - params( - budget_limit: T.nilable(Float), - time_period: T.nilable(String), - budget_reset_at: T.nilable(String), - spend: T.nilable(Float) - ) - .returns(T.attached_class) - end - def self.new(budget_limit:, time_period:, budget_reset_at: nil, spend: nil) - end - - sig do - override - .returns( - { - budget_limit: T.nilable(Float), - time_period: T.nilable(String), - budget_reset_at: T.nilable(String), - spend: T.nilable(Float) - } - ) - end - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/rerank_create_params.rbi b/rbi/lib/hanzoai/models/rerank_create_params.rbi deleted file mode 100644 index 370c6248..00000000 --- a/rbi/lib/hanzoai/models/rerank_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class RerankCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/rerank_create_v1_params.rbi b/rbi/lib/hanzoai/models/rerank_create_v1_params.rbi deleted file mode 100644 index 5e7feaa4..00000000 --- a/rbi/lib/hanzoai/models/rerank_create_v1_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class RerankCreateV1Params < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/rerank_create_v2_params.rbi b/rbi/lib/hanzoai/models/rerank_create_v2_params.rbi deleted file mode 100644 index 6b3217d2..00000000 --- a/rbi/lib/hanzoai/models/rerank_create_v2_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class RerankCreateV2Params < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/response_create_params.rbi b/rbi/lib/hanzoai/models/response_create_params.rbi deleted file mode 100644 index a5950352..00000000 --- a/rbi/lib/hanzoai/models/response_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ResponseCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/response_delete_params.rbi b/rbi/lib/hanzoai/models/response_delete_params.rbi deleted file mode 100644 index 7e02f105..00000000 --- a/rbi/lib/hanzoai/models/response_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ResponseDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/response_retrieve_params.rbi b/rbi/lib/hanzoai/models/response_retrieve_params.rbi deleted file mode 100644 index eec8bf00..00000000 --- a/rbi/lib/hanzoai/models/response_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ResponseRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/responses/input_item_list_params.rbi b/rbi/lib/hanzoai/models/responses/input_item_list_params.rbi deleted file mode 100644 index c7baf5bf..00000000 --- a/rbi/lib/hanzoai/models/responses/input_item_list_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Responses - class InputItemListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/route_list_params.rbi b/rbi/lib/hanzoai/models/route_list_params.rbi deleted file mode 100644 index 8f45b3c0..00000000 --- a/rbi/lib/hanzoai/models/route_list_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class RouteListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/setting_retrieve_params.rbi b/rbi/lib/hanzoai/models/setting_retrieve_params.rbi deleted file mode 100644 index 62b33a76..00000000 --- a/rbi/lib/hanzoai/models/setting_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class SettingRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/spend_calculate_spend_params.rbi b/rbi/lib/hanzoai/models/spend_calculate_spend_params.rbi deleted file mode 100644 index 8e8ba167..00000000 --- a/rbi/lib/hanzoai/models/spend_calculate_spend_params.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class SpendCalculateSpendParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T.anything)) } - attr_accessor :completion_response - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :messages - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig do - params( - completion_response: T.nilable(T.anything), - messages: T.nilable(T::Array[T.anything]), - model: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(completion_response: nil, messages: nil, model: nil, request_options: {}) - end - - sig do - override - .returns( - { - completion_response: T.nilable(T.anything), - messages: T.nilable(T::Array[T.anything]), - model: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/spend_list_logs_params.rbi b/rbi/lib/hanzoai/models/spend_list_logs_params.rbi deleted file mode 100644 index 982671de..00000000 --- a/rbi/lib/hanzoai/models/spend_list_logs_params.rbi +++ /dev/null @@ -1,68 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class SpendListLogsParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Get spend logs based on api key - sig { returns(T.nilable(String)) } - attr_accessor :api_key - - # Time till which to view key spend - sig { returns(T.nilable(String)) } - attr_accessor :end_date - - # request_id to get spend logs for specific request_id. If none passed then pass - # spend logs for all requests - sig { returns(T.nilable(String)) } - attr_accessor :request_id - - # Time from which to start viewing key spend - sig { returns(T.nilable(String)) } - attr_accessor :start_date - - # Get spend logs based on user_id - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - api_key: T.nilable(String), - end_date: T.nilable(String), - request_id: T.nilable(String), - start_date: T.nilable(String), - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - api_key: nil, - end_date: nil, - request_id: nil, - start_date: nil, - user_id: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - api_key: T.nilable(String), - end_date: T.nilable(String), - request_id: T.nilable(String), - start_date: T.nilable(String), - user_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/spend_list_logs_response.rbi b/rbi/lib/hanzoai/models/spend_list_logs_response.rbi deleted file mode 100644 index 6759f44b..00000000 --- a/rbi/lib/hanzoai/models/spend_list_logs_response.rbi +++ /dev/null @@ -1,196 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class SpendListLogsResponseItem < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :api_key - - sig { returns(String) } - attr_accessor :call_type - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :end_time - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :messages - - sig { returns(String) } - attr_accessor :request_id - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :response - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :start_time - - sig { returns(T.nilable(String)) } - attr_accessor :api_base - - sig { returns(T.nilable(String)) } - attr_accessor :cache_hit - - sig { returns(T.nilable(String)) } - attr_accessor :cache_key - - sig { returns(T.nilable(Integer)) } - attr_accessor :completion_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :metadata - - sig { params(metadata: T.anything).void } - attr_writer :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig { returns(T.nilable(Integer)) } - attr_accessor :prompt_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :request_tags - - sig { params(request_tags: T.anything).void } - attr_writer :request_tags - - sig { returns(T.nilable(String)) } - attr_accessor :requester_ip_address - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(Integer)) } - attr_accessor :total_tokens - - sig { returns(T.nilable(String)) } - attr_accessor :user - - sig do - params( - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - api_key:, - call_type:, - end_time:, - messages:, - request_id:, - response:, - start_time:, - api_base: nil, - cache_hit: nil, - cache_key: nil, - completion_tokens: nil, - metadata: nil, - model: nil, - prompt_tokens: nil, - request_tags: nil, - requester_ip_address: nil, - spend: nil, - total_tokens: nil, - user: nil - ) - end - - sig do - override - .returns( - { - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - } - ) - end - def to_hash - end - - module EndTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - - module Messages - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module Response - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module StartTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - end - - SpendListLogsResponse = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::SpendListLogsResponseItem], - Hanzoai::Internal::Type::Converter - ) - end -end diff --git a/rbi/lib/hanzoai/models/spend_list_tags_params.rbi b/rbi/lib/hanzoai/models/spend_list_tags_params.rbi deleted file mode 100644 index cc206875..00000000 --- a/rbi/lib/hanzoai/models/spend_list_tags_params.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class SpendListTagsParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Time till which to view key spend - sig { returns(T.nilable(String)) } - attr_accessor :end_date - - # Time from which to start viewing key spend - sig { returns(T.nilable(String)) } - attr_accessor :start_date - - sig do - params( - end_date: T.nilable(String), - start_date: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(end_date: nil, start_date: nil, request_options: {}) - end - - sig do - override - .returns( - { - end_date: T.nilable(String), - start_date: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/spend_list_tags_response.rbi b/rbi/lib/hanzoai/models/spend_list_tags_response.rbi deleted file mode 100644 index 8d56f315..00000000 --- a/rbi/lib/hanzoai/models/spend_list_tags_response.rbi +++ /dev/null @@ -1,196 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class SpendListTagsResponseItem < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :api_key - - sig { returns(String) } - attr_accessor :call_type - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :end_time - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :messages - - sig { returns(String) } - attr_accessor :request_id - - sig { returns(T.nilable(T.any(String, T::Array[T.anything], T.anything))) } - attr_accessor :response - - sig { returns(T.nilable(T.any(String, Time))) } - attr_accessor :start_time - - sig { returns(T.nilable(String)) } - attr_accessor :api_base - - sig { returns(T.nilable(String)) } - attr_accessor :cache_hit - - sig { returns(T.nilable(String)) } - attr_accessor :cache_key - - sig { returns(T.nilable(Integer)) } - attr_accessor :completion_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :metadata - - sig { params(metadata: T.anything).void } - attr_writer :metadata - - sig { returns(T.nilable(String)) } - attr_accessor :model - - sig { returns(T.nilable(Integer)) } - attr_accessor :prompt_tokens - - sig { returns(T.nilable(T.anything)) } - attr_reader :request_tags - - sig { params(request_tags: T.anything).void } - attr_writer :request_tags - - sig { returns(T.nilable(String)) } - attr_accessor :requester_ip_address - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(Integer)) } - attr_accessor :total_tokens - - sig { returns(T.nilable(String)) } - attr_accessor :user - - sig do - params( - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - api_key:, - call_type:, - end_time:, - messages:, - request_id:, - response:, - start_time:, - api_base: nil, - cache_hit: nil, - cache_key: nil, - completion_tokens: nil, - metadata: nil, - model: nil, - prompt_tokens: nil, - request_tags: nil, - requester_ip_address: nil, - spend: nil, - total_tokens: nil, - user: nil - ) - end - - sig do - override - .returns( - { - api_key: String, - call_type: String, - end_time: T.nilable(T.any(String, Time)), - messages: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - request_id: String, - response: T.nilable(T.any(String, T::Array[T.anything], T.anything)), - start_time: T.nilable(T.any(String, Time)), - api_base: T.nilable(String), - cache_hit: T.nilable(String), - cache_key: T.nilable(String), - completion_tokens: T.nilable(Integer), - metadata: T.anything, - model: T.nilable(String), - prompt_tokens: T.nilable(Integer), - request_tags: T.anything, - requester_ip_address: T.nilable(String), - spend: T.nilable(Float), - total_tokens: T.nilable(Integer), - user: T.nilable(String) - } - ) - end - def to_hash - end - - module EndTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - - module Messages - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module Response - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, T::Array[T.anything], T.anything]) } - def self.variants - end - - UnionMember1Array = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown], - Hanzoai::Internal::Type::Converter - ) - end - - module StartTime - extend Hanzoai::Internal::Type::Union - - sig { override.returns([String, Time]) } - def self.variants - end - end - end - - SpendListTagsResponse = - T.let( - Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::SpendListTagsResponseItem], - Hanzoai::Internal::Type::Converter - ) - end -end diff --git a/rbi/lib/hanzoai/models/team/callback_add_params.rbi b/rbi/lib/hanzoai/models/team/callback_add_params.rbi deleted file mode 100644 index 5234c977..00000000 --- a/rbi/lib/hanzoai/models/team/callback_add_params.rbi +++ /dev/null @@ -1,80 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Team - class CallbackAddParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :callback_name - - sig { returns(T::Hash[Symbol, String]) } - attr_accessor :callback_vars - - sig { returns(T.nilable(Hanzoai::Models::Team::CallbackAddParams::CallbackType::OrSymbol)) } - attr_accessor :callback_type - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - callback_name: String, - callback_vars: T::Hash[Symbol, String], - callback_type: T.nilable(Hanzoai::Models::Team::CallbackAddParams::CallbackType::OrSymbol), - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - callback_name:, - callback_vars:, - callback_type: nil, - llm_changed_by: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - callback_name: String, - callback_vars: T::Hash[Symbol, String], - callback_type: T.nilable(Hanzoai::Models::Team::CallbackAddParams::CallbackType::OrSymbol), - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module CallbackType - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::Team::CallbackAddParams::CallbackType) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::Team::CallbackAddParams::CallbackType::TaggedSymbol) } - - SUCCESS = T.let(:success, Hanzoai::Models::Team::CallbackAddParams::CallbackType::TaggedSymbol) - FAILURE = T.let(:failure, Hanzoai::Models::Team::CallbackAddParams::CallbackType::TaggedSymbol) - SUCCESS_AND_FAILURE = - T.let(:success_and_failure, Hanzoai::Models::Team::CallbackAddParams::CallbackType::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::Team::CallbackAddParams::CallbackType::TaggedSymbol]) } - def self.values - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team/callback_retrieve_params.rbi b/rbi/lib/hanzoai/models/team/callback_retrieve_params.rbi deleted file mode 100644 index 67d736bf..00000000 --- a/rbi/lib/hanzoai/models/team/callback_retrieve_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Team - class CallbackRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_add_member_params.rbi b/rbi/lib/hanzoai/models/team_add_member_params.rbi deleted file mode 100644 index bacaa2c9..00000000 --- a/rbi/lib/hanzoai/models/team_add_member_params.rbi +++ /dev/null @@ -1,60 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamAddMemberParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.any(T::Array[Hanzoai::Models::Member], Hanzoai::Models::Member)) } - attr_accessor :member - - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget_in_team - - sig do - params( - member: T.any( - T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - Hanzoai::Models::Member, - Hanzoai::Internal::AnyHash - ), - team_id: String, - max_budget_in_team: T.nilable(Float), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(member:, team_id:, max_budget_in_team: nil, request_options: {}) - end - - sig do - override - .returns( - { - member: T.any(T::Array[Hanzoai::Models::Member], Hanzoai::Models::Member), - team_id: String, - max_budget_in_team: T.nilable(Float), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module Member - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T::Array[Hanzoai::Models::Member], Hanzoai::Models::Member]) } - def self.variants - end - - MemberArray = - T.let(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member], Hanzoai::Internal::Type::Converter) - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_add_member_response.rbi b/rbi/lib/hanzoai/models/team_add_member_response.rbi deleted file mode 100644 index 581701bd..00000000 --- a/rbi/lib/hanzoai/models/team_add_member_response.rbi +++ /dev/null @@ -1,638 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamAddMemberResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership]) } - attr_accessor :updated_team_memberships - - sig { returns(T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser]) } - attr_accessor :updated_users - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :admins - - sig { params(admins: T::Array[T.anything]).void } - attr_writer :admins - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(Hanzoai::Models::TeamAddMemberResponse::LlmModelTable)) } - attr_reader :llm_model_table - - sig do - params( - llm_model_table: T.nilable(T.any(Hanzoai::Models::TeamAddMemberResponse::LlmModelTable, Hanzoai::Internal::AnyHash)) - ) - .void - end - attr_writer :llm_model_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :members - - sig { params(members: T::Array[T.anything]).void } - attr_writer :members - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Member])) } - attr_reader :members_with_roles - - sig { params(members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)]).void } - attr_writer :members_with_roles - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(Integer)) } - attr_accessor :model_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - team_id: String, - updated_team_memberships: T::Array[T.any(Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership, Hanzoai::Internal::AnyHash)], - updated_users: T::Array[T.any(Hanzoai::Models::TeamAddMemberResponse::UpdatedUser, Hanzoai::Internal::AnyHash)], - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(T.any(Hanzoai::Models::TeamAddMemberResponse::LlmModelTable, Hanzoai::Internal::AnyHash)), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - updated_team_memberships:, - updated_users:, - admins: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - created_at: nil, - llm_model_table: nil, - max_budget: nil, - max_parallel_requests: nil, - members: nil, - members_with_roles: nil, - metadata: nil, - model_id: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - spend: nil, - team_alias: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - team_id: String, - updated_team_memberships: T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership], - updated_users: T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser], - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(Hanzoai::Models::TeamAddMemberResponse::LlmModelTable), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[Hanzoai::Models::Member], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - class UpdatedTeamMembership < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig { returns(T.nilable(Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable)) } - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(String) } - attr_accessor :team_id - - sig { returns(String) } - attr_accessor :user_id - - sig do - params( - budget_id: String, - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ), - team_id: String, - user_id: String - ) - .returns(T.attached_class) - end - def self.new(budget_id:, llm_budget_table:, team_id:, user_id:) - end - - sig do - override - .returns( - { - budget_id: String, - llm_budget_table: T.nilable(Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable), - team_id: String, - user_id: String - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - - class UpdatedUser < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_spend - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership])) } - attr_accessor :organization_memberships - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(String)) } - attr_accessor :sso_user_id - - sig { returns(T.nilable(T::Array[String])) } - attr_reader :teams - - sig { params(teams: T::Array[String]).void } - attr_writer :teams - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - sig do - params( - user_id: String, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - max_budget: T.nilable(Float), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_spend: T.nilable(T.anything), - models: T::Array[T.anything], - organization_memberships: T.nilable( - T::Array[ - T.any( - Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership, - Hanzoai::Internal::AnyHash - ) - ] - ), - rpm_limit: T.nilable(Integer), - spend: Float, - sso_user_id: T.nilable(String), - teams: T::Array[String], - tpm_limit: T.nilable(Integer), - user_email: T.nilable(String), - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - user_id:, - budget_duration: nil, - budget_reset_at: nil, - max_budget: nil, - metadata: nil, - model_max_budget: nil, - model_spend: nil, - models: nil, - organization_memberships: nil, - rpm_limit: nil, - spend: nil, - sso_user_id: nil, - teams: nil, - tpm_limit: nil, - user_email: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - user_id: String, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - max_budget: T.nilable(Float), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_spend: T.nilable(T.anything), - models: T::Array[T.anything], - organization_memberships: T.nilable(T::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership]), - rpm_limit: T.nilable(Integer), - spend: Float, - sso_user_id: T.nilable(String), - teams: T::Array[String], - tpm_limit: T.nilable(Integer), - user_email: T.nilable(String), - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class OrganizationMembership < Hanzoai::Internal::Type::BaseModel - sig { returns(Time) } - attr_accessor :created_at - - sig { returns(String) } - attr_accessor :organization_id - - sig { returns(Time) } - attr_accessor :updated_at - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - returns( - T.nilable(Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable) - ) - end - attr_reader :llm_budget_table - - sig do - params( - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ) - ) - .void - end - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_reader :spend - - sig { params(spend: Float).void } - attr_writer :spend - - sig { returns(T.nilable(T.anything)) } - attr_reader :user - - sig { params(user: T.anything).void } - attr_writer :user - - sig { returns(T.nilable(String)) } - attr_accessor :user_role - - # This is the table that track what organizations a user belongs to and users - # spend within the organization - sig do - params( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable( - T.any( - Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable, - Hanzoai::Internal::AnyHash - ) - ), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new( - created_at:, - organization_id:, - updated_at:, - user_id:, - budget_id: nil, - llm_budget_table: nil, - spend: nil, - user: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: T.nilable(String), - llm_budget_table: T.nilable(Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable), - spend: Float, - user: T.anything, - user_role: T.nilable(String) - } - ) - end - def to_hash - end - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :soft_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # Represents user-controllable params for a LLM_BudgetTable record - sig do - params( - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - budget_duration: nil, - max_budget: nil, - max_parallel_requests: nil, - model_max_budget: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - budget_duration: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - end - end - end - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :created_by - - sig { returns(String) } - attr_accessor :updated_by - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :model_aliases - - sig do - params(created_by: String, updated_by: String, model_aliases: T.nilable(T.any(T.anything, String))) - .returns(T.attached_class) - end - def self.new(created_by:, updated_by:, model_aliases: nil) - end - - sig do - override - .returns({ - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - }) - end - def to_hash - end - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_block_params.rbi b/rbi/lib/hanzoai/models/team_block_params.rbi deleted file mode 100644 index f593d079..00000000 --- a/rbi/lib/hanzoai/models/team_block_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamBlockParams < Hanzoai::Models::BlockTeamRequest - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_create_params.rbi b/rbi/lib/hanzoai/models/team_create_params.rbi deleted file mode 100644 index 825b1a95..00000000 --- a/rbi/lib/hanzoai/models/team_create_params.rbi +++ /dev/null @@ -1,154 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :admins - - sig { params(admins: T::Array[T.anything]).void } - attr_writer :admins - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :members - - sig { params(members: T::Array[T.anything]).void } - attr_writer :members - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Member])) } - attr_reader :members_with_roles - - sig { params(members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)]).void } - attr_writer :members_with_roles - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :tags - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - max_budget: T.nilable(Float), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_aliases: T.nilable(T.anything), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - tags: T.nilable(T::Array[T.anything]), - team_alias: T.nilable(String), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - admins: nil, - blocked: nil, - budget_duration: nil, - guardrails: nil, - max_budget: nil, - members: nil, - members_with_roles: nil, - metadata: nil, - model_aliases: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - tags: nil, - team_alias: nil, - team_id: nil, - tpm_limit: nil, - llm_changed_by: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - max_budget: T.nilable(Float), - members: T::Array[T.anything], - members_with_roles: T::Array[Hanzoai::Models::Member], - metadata: T.nilable(T.anything), - model_aliases: T.nilable(T.anything), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - tags: T.nilable(T::Array[T.anything]), - team_alias: T.nilable(String), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_create_response.rbi b/rbi/lib/hanzoai/models/team_create_response.rbi deleted file mode 100644 index 5561877d..00000000 --- a/rbi/lib/hanzoai/models/team_create_response.rbi +++ /dev/null @@ -1,200 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamCreateResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :admins - - sig { params(admins: T::Array[T.anything]).void } - attr_writer :admins - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :blocked - - sig { params(blocked: T::Boolean).void } - attr_writer :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(Time)) } - attr_accessor :budget_reset_at - - sig { returns(T.nilable(Time)) } - attr_accessor :created_at - - sig { returns(T.nilable(Hanzoai::Models::TeamCreateResponse::LlmModelTable)) } - attr_reader :llm_model_table - - sig do - params( - llm_model_table: T.nilable(T.any(Hanzoai::Models::TeamCreateResponse::LlmModelTable, Hanzoai::Internal::AnyHash)) - ) - .void - end - attr_writer :llm_model_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :members - - sig { params(members: T::Array[T.anything]).void } - attr_writer :members - - sig { returns(T.nilable(T::Array[Hanzoai::Models::Member])) } - attr_reader :members_with_roles - - sig { params(members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)]).void } - attr_writer :members_with_roles - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(Integer)) } - attr_accessor :model_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_reader :models - - sig { params(models: T::Array[T.anything]).void } - attr_writer :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig do - params( - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(T.any(Hanzoai::Models::TeamCreateResponse::LlmModelTable, Hanzoai::Internal::AnyHash)), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - admins: nil, - blocked: nil, - budget_duration: nil, - budget_reset_at: nil, - created_at: nil, - llm_model_table: nil, - max_budget: nil, - max_parallel_requests: nil, - members: nil, - members_with_roles: nil, - metadata: nil, - model_id: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - spend: nil, - team_alias: nil, - tpm_limit: nil - ) - end - - sig do - override - .returns( - { - team_id: String, - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_reset_at: T.nilable(Time), - created_at: T.nilable(Time), - llm_model_table: T.nilable(Hanzoai::Models::TeamCreateResponse::LlmModelTable), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - members: T::Array[T.anything], - members_with_roles: T::Array[Hanzoai::Models::Member], - metadata: T.nilable(T.anything), - model_id: T.nilable(Integer), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer) - } - ) - end - def to_hash - end - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :created_by - - sig { returns(String) } - attr_accessor :updated_by - - sig { returns(T.nilable(T.any(T.anything, String))) } - attr_accessor :model_aliases - - sig do - params(created_by: String, updated_by: String, model_aliases: T.nilable(T.any(T.anything, String))) - .returns(T.attached_class) - end - def self.new(created_by:, updated_by:, model_aliases: nil) - end - - sig do - override - .returns({ - created_by: String, - updated_by: String, - model_aliases: T.nilable(T.any(T.anything, String)) - }) - end - def to_hash - end - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - sig { override.returns([T.anything, String]) } - def self.variants - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_delete_params.rbi b/rbi/lib/hanzoai/models/team_delete_params.rbi deleted file mode 100644 index 77e2f778..00000000 --- a/rbi/lib/hanzoai/models/team_delete_params.rbi +++ /dev/null @@ -1,43 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T::Array[String]) } - attr_accessor :team_ids - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - team_ids: T::Array[String], - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(team_ids:, llm_changed_by: nil, request_options: {}) - end - - sig do - override - .returns({ - team_ids: T::Array[String], - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - }) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_disable_logging_params.rbi b/rbi/lib/hanzoai/models/team_disable_logging_params.rbi deleted file mode 100644 index 86a6d1c8..00000000 --- a/rbi/lib/hanzoai/models/team_disable_logging_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamDisableLoggingParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_list_available_params.rbi b/rbi/lib/hanzoai/models/team_list_available_params.rbi deleted file mode 100644 index 4a342a69..00000000 --- a/rbi/lib/hanzoai/models/team_list_available_params.rbi +++ /dev/null @@ -1,30 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamListAvailableParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T.anything)) } - attr_reader :response_model - - sig { params(response_model: T.anything).void } - attr_writer :response_model - - sig do - params( - response_model: T.anything, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(response_model: nil, request_options: {}) - end - - sig { override.returns({response_model: T.anything, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_list_params.rbi b/rbi/lib/hanzoai/models/team_list_params.rbi deleted file mode 100644 index b9b538e2..00000000 --- a/rbi/lib/hanzoai/models/team_list_params.rbi +++ /dev/null @@ -1,41 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - # Only return teams which this 'user_id' belongs to - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - organization_id: T.nilable(String), - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(organization_id: nil, user_id: nil, request_options: {}) - end - - sig do - override - .returns( - { - organization_id: T.nilable(String), - user_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_remove_member_params.rbi b/rbi/lib/hanzoai/models/team_remove_member_params.rbi deleted file mode 100644 index 725bd8f3..00000000 --- a/rbi/lib/hanzoai/models/team_remove_member_params.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamRemoveMemberParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - team_id: String, - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(team_id:, user_email: nil, user_id: nil, request_options: {}) - end - - sig do - override - .returns( - { - team_id: String, - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_retrieve_info_params.rbi b/rbi/lib/hanzoai/models/team_retrieve_info_params.rbi deleted file mode 100644 index 397d18de..00000000 --- a/rbi/lib/hanzoai/models/team_retrieve_info_params.rbi +++ /dev/null @@ -1,28 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Team ID in the request parameters - sig { returns(T.nilable(String)) } - attr_reader :team_id - - sig { params(team_id: String).void } - attr_writer :team_id - - sig do - params(team_id: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(team_id: nil, request_options: {}) - end - - sig { override.returns({team_id: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_unblock_params.rbi b/rbi/lib/hanzoai/models/team_unblock_params.rbi deleted file mode 100644 index 01d32cc1..00000000 --- a/rbi/lib/hanzoai/models/team_unblock_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamUnblockParams < Hanzoai::Models::BlockTeamRequest - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_update_member_params.rbi b/rbi/lib/hanzoai/models/team_update_member_params.rbi deleted file mode 100644 index 0ed8ff5f..00000000 --- a/rbi/lib/hanzoai/models/team_update_member_params.rbi +++ /dev/null @@ -1,77 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamUpdateMemberParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget_in_team - - sig { returns(T.nilable(Hanzoai::Models::TeamUpdateMemberParams::Role::OrSymbol)) } - attr_accessor :role - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - team_id: String, - max_budget_in_team: T.nilable(Float), - role: T.nilable(Hanzoai::Models::TeamUpdateMemberParams::Role::OrSymbol), - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - max_budget_in_team: nil, - role: nil, - user_email: nil, - user_id: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - team_id: String, - max_budget_in_team: T.nilable(Float), - role: T.nilable(Hanzoai::Models::TeamUpdateMemberParams::Role::OrSymbol), - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module Role - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::TeamUpdateMemberParams::Role) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::TeamUpdateMemberParams::Role::TaggedSymbol) } - - ADMIN = T.let(:admin, Hanzoai::Models::TeamUpdateMemberParams::Role::TaggedSymbol) - USER = T.let(:user, Hanzoai::Models::TeamUpdateMemberParams::Role::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::TeamUpdateMemberParams::Role::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_update_member_response.rbi b/rbi/lib/hanzoai/models/team_update_member_response.rbi deleted file mode 100644 index 489f4a83..00000000 --- a/rbi/lib/hanzoai/models/team_update_member_response.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamUpdateMemberResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :team_id - - sig { returns(String) } - attr_accessor :user_id - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget_in_team - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig do - params( - team_id: String, - user_id: String, - max_budget_in_team: T.nilable(Float), - user_email: T.nilable(String) - ) - .returns(T.attached_class) - end - def self.new(team_id:, user_id:, max_budget_in_team: nil, user_email: nil) - end - - sig do - override - .returns( - { - team_id: String, - user_id: String, - max_budget_in_team: T.nilable(Float), - user_email: T.nilable(String) - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/team_update_params.rbi b/rbi/lib/hanzoai/models/team_update_params.rbi deleted file mode 100644 index d55bb5c1..00000000 --- a/rbi/lib/hanzoai/models/team_update_params.rbi +++ /dev/null @@ -1,121 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TeamUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(String)) } - attr_accessor :organization_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :tags - - sig { returns(T.nilable(String)) } - attr_accessor :team_alias - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - team_id: String, - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - max_budget: T.nilable(Float), - metadata: T.nilable(T.anything), - model_aliases: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - tags: T.nilable(T::Array[T.anything]), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer), - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - team_id:, - blocked: nil, - budget_duration: nil, - guardrails: nil, - max_budget: nil, - metadata: nil, - model_aliases: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - tags: nil, - team_alias: nil, - tpm_limit: nil, - llm_changed_by: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - team_id: String, - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - max_budget: T.nilable(Float), - metadata: T.nilable(T.anything), - model_aliases: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - tags: T.nilable(T::Array[T.anything]), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer), - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/test_ping_params.rbi b/rbi/lib/hanzoai/models/test_ping_params.rbi deleted file mode 100644 index 3159fecb..00000000 --- a/rbi/lib/hanzoai/models/test_ping_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class TestPingParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/thread_create_params.rbi b/rbi/lib/hanzoai/models/thread_create_params.rbi deleted file mode 100644 index a4893885..00000000 --- a/rbi/lib/hanzoai/models/thread_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ThreadCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/thread_retrieve_params.rbi b/rbi/lib/hanzoai/models/thread_retrieve_params.rbi deleted file mode 100644 index 266a8345..00000000 --- a/rbi/lib/hanzoai/models/thread_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class ThreadRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/threads/message_create_params.rbi b/rbi/lib/hanzoai/models/threads/message_create_params.rbi deleted file mode 100644 index a54c889f..00000000 --- a/rbi/lib/hanzoai/models/threads/message_create_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Threads - class MessageCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/threads/message_list_params.rbi b/rbi/lib/hanzoai/models/threads/message_list_params.rbi deleted file mode 100644 index 9158d368..00000000 --- a/rbi/lib/hanzoai/models/threads/message_list_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Threads - class MessageListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/threads/run_create_params.rbi b/rbi/lib/hanzoai/models/threads/run_create_params.rbi deleted file mode 100644 index fcd63252..00000000 --- a/rbi/lib/hanzoai/models/threads/run_create_params.rbi +++ /dev/null @@ -1,23 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - module Threads - class RunCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/user_create_params.rbi b/rbi/lib/hanzoai/models/user_create_params.rbi deleted file mode 100644 index 40726c2e..00000000 --- a/rbi/lib/hanzoai/models/user_create_params.rbi +++ /dev/null @@ -1,216 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UserCreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T.anything)) } - attr_accessor :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_reader :auto_create_key - - sig { params(auto_create_key: T::Boolean).void } - attr_writer :auto_create_key - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(T.anything)) } - attr_accessor :config - - sig { returns(T.nilable(String)) } - attr_accessor :duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_rpm_limit - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_tpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(T.anything)) } - attr_accessor :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :send_invite_email - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :teams - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :user_alias - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig { returns(T.nilable(Hanzoai::Models::UserCreateParams::UserRole::OrSymbol)) } - attr_accessor :user_role - - sig do - params( - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - auto_create_key: T::Boolean, - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - spend: T.nilable(Float), - team_id: T.nilable(String), - teams: T.nilable(T::Array[T.anything]), - tpm_limit: T.nilable(Integer), - user_alias: T.nilable(String), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserCreateParams::UserRole::OrSymbol), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - aliases: nil, - allowed_cache_controls: nil, - auto_create_key: nil, - blocked: nil, - budget_duration: nil, - config: nil, - duration: nil, - guardrails: nil, - key_alias: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - permissions: nil, - rpm_limit: nil, - send_invite_email: nil, - spend: nil, - team_id: nil, - teams: nil, - tpm_limit: nil, - user_alias: nil, - user_email: nil, - user_id: nil, - user_role: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - auto_create_key: T::Boolean, - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - spend: T.nilable(Float), - team_id: T.nilable(String), - teams: T.nilable(T::Array[T.anything]), - tpm_limit: T.nilable(Integer), - user_alias: T.nilable(String), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserCreateParams::UserRole::OrSymbol), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module UserRole - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::UserCreateParams::UserRole) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::UserCreateParams::UserRole::TaggedSymbol) } - - PROXY_ADMIN = T.let(:proxy_admin, Hanzoai::Models::UserCreateParams::UserRole::TaggedSymbol) - PROXY_ADMIN_VIEWER = - T.let(:proxy_admin_viewer, Hanzoai::Models::UserCreateParams::UserRole::TaggedSymbol) - INTERNAL_USER = T.let(:internal_user, Hanzoai::Models::UserCreateParams::UserRole::TaggedSymbol) - INTERNAL_USER_VIEWER = - T.let(:internal_user_viewer, Hanzoai::Models::UserCreateParams::UserRole::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::UserCreateParams::UserRole::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/user_create_response.rbi b/rbi/lib/hanzoai/models/user_create_response.rbi deleted file mode 100644 index f78641b0..00000000 --- a/rbi/lib/hanzoai/models/user_create_response.rbi +++ /dev/null @@ -1,264 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UserCreateResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(Time)) } - attr_accessor :expires - - sig { returns(String) } - attr_accessor :key - - sig { returns(T.nilable(String)) } - attr_accessor :token - - sig { returns(T.nilable(T.anything)) } - attr_accessor :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(String)) } - attr_accessor :budget_id - - sig { returns(T.nilable(T.anything)) } - attr_accessor :config - - sig { returns(T.nilable(String)) } - attr_accessor :created_by - - sig { returns(T.nilable(String)) } - attr_accessor :duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :enforced_params - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(String)) } - attr_accessor :key_name - - sig { returns(T.nilable(T.anything)) } - attr_reader :llm_budget_table - - sig { params(llm_budget_table: T.anything).void } - attr_writer :llm_budget_table - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_rpm_limit - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_tpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(T.anything)) } - attr_accessor :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :tags - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :teams - - sig { returns(T.nilable(String)) } - attr_accessor :token_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :updated_by - - sig { returns(T.nilable(String)) } - attr_accessor :user_alias - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig { returns(T.nilable(Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol)) } - attr_accessor :user_role - - sig do - params( - expires: T.nilable(Time), - key: String, - token: T.nilable(String), - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - created_by: T.nilable(String), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - key_name: T.nilable(String), - llm_budget_table: T.anything, - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - teams: T.nilable(T::Array[T.anything]), - token_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - updated_by: T.nilable(String), - user_alias: T.nilable(String), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserCreateResponse::UserRole::OrSymbol) - ) - .returns(T.attached_class) - end - def self.new( - expires:, - key:, - token: nil, - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - budget_id: nil, - config: nil, - created_by: nil, - duration: nil, - enforced_params: nil, - guardrails: nil, - key_alias: nil, - key_name: nil, - llm_budget_table: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - permissions: nil, - rpm_limit: nil, - spend: nil, - tags: nil, - team_id: nil, - teams: nil, - token_id: nil, - tpm_limit: nil, - updated_by: nil, - user_alias: nil, - user_email: nil, - user_id: nil, - user_role: nil - ) - end - - sig do - override - .returns( - { - expires: T.nilable(Time), - key: String, - token: T.nilable(String), - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - created_by: T.nilable(String), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - key_name: T.nilable(String), - llm_budget_table: T.anything, - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - teams: T.nilable(T::Array[T.anything]), - token_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - updated_by: T.nilable(String), - user_alias: T.nilable(String), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol) - } - ) - end - def to_hash - end - - module UserRole - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::UserCreateResponse::UserRole) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol) } - - PROXY_ADMIN = T.let(:proxy_admin, Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol) - PROXY_ADMIN_VIEWER = - T.let(:proxy_admin_viewer, Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol) - INTERNAL_USER = T.let(:internal_user, Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol) - INTERNAL_USER_VIEWER = - T.let(:internal_user_viewer, Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::UserCreateResponse::UserRole::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/user_delete_params.rbi b/rbi/lib/hanzoai/models/user_delete_params.rbi deleted file mode 100644 index 162929ce..00000000 --- a/rbi/lib/hanzoai/models/user_delete_params.rbi +++ /dev/null @@ -1,43 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UserDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T::Array[String]) } - attr_accessor :user_ids - - # The llm-changed-by header enables tracking of actions performed by authorized - # users on behalf of other users, providing an audit trail for accountability - sig { returns(T.nilable(String)) } - attr_reader :llm_changed_by - - sig { params(llm_changed_by: String).void } - attr_writer :llm_changed_by - - sig do - params( - user_ids: T::Array[String], - llm_changed_by: String, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(user_ids:, llm_changed_by: nil, request_options: {}) - end - - sig do - override - .returns({ - user_ids: T::Array[String], - llm_changed_by: String, - request_options: Hanzoai::RequestOptions - }) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/user_list_params.rbi b/rbi/lib/hanzoai/models/user_list_params.rbi deleted file mode 100644 index 114bc136..00000000 --- a/rbi/lib/hanzoai/models/user_list_params.rbi +++ /dev/null @@ -1,60 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UserListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # Page number - sig { returns(T.nilable(Integer)) } - attr_reader :page - - sig { params(page: Integer).void } - attr_writer :page - - # Number of items per page - sig { returns(T.nilable(Integer)) } - attr_reader :page_size - - sig { params(page_size: Integer).void } - attr_writer :page_size - - # Filter users by role - sig { returns(T.nilable(String)) } - attr_accessor :role - - # Get list of users by user_ids - sig { returns(T.nilable(String)) } - attr_accessor :user_ids - - sig do - params( - page: Integer, - page_size: Integer, - role: T.nilable(String), - user_ids: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(page: nil, page_size: nil, role: nil, user_ids: nil, request_options: {}) - end - - sig do - override - .returns( - { - page: Integer, - page_size: Integer, - role: T.nilable(String), - user_ids: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/user_retrieve_info_params.rbi b/rbi/lib/hanzoai/models/user_retrieve_info_params.rbi deleted file mode 100644 index 3d8f4d03..00000000 --- a/rbi/lib/hanzoai/models/user_retrieve_info_params.rbi +++ /dev/null @@ -1,28 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UserRetrieveInfoParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - # User ID in the request parameters - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig do - params( - user_id: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(user_id: nil, request_options: {}) - end - - sig { override.returns({user_id: T.nilable(String), request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/user_update_params.rbi b/rbi/lib/hanzoai/models/user_update_params.rbi deleted file mode 100644 index c2d2b1c5..00000000 --- a/rbi/lib/hanzoai/models/user_update_params.rbi +++ /dev/null @@ -1,195 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UserUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(T.nilable(T.anything)) } - attr_accessor :aliases - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :allowed_cache_controls - - sig { returns(T.nilable(T::Boolean)) } - attr_accessor :blocked - - sig { returns(T.nilable(String)) } - attr_accessor :budget_duration - - sig { returns(T.nilable(T.anything)) } - attr_accessor :config - - sig { returns(T.nilable(String)) } - attr_accessor :duration - - sig { returns(T.nilable(T::Array[String])) } - attr_accessor :guardrails - - sig { returns(T.nilable(String)) } - attr_accessor :key_alias - - sig { returns(T.nilable(Float)) } - attr_accessor :max_budget - - sig { returns(T.nilable(Integer)) } - attr_accessor :max_parallel_requests - - sig { returns(T.nilable(T.anything)) } - attr_accessor :metadata - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_max_budget - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_rpm_limit - - sig { returns(T.nilable(T.anything)) } - attr_accessor :model_tpm_limit - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :models - - sig { returns(T.nilable(String)) } - attr_accessor :password - - sig { returns(T.nilable(T.anything)) } - attr_accessor :permissions - - sig { returns(T.nilable(Integer)) } - attr_accessor :rpm_limit - - sig { returns(T.nilable(Float)) } - attr_accessor :spend - - sig { returns(T.nilable(String)) } - attr_accessor :team_id - - sig { returns(T.nilable(Integer)) } - attr_accessor :tpm_limit - - sig { returns(T.nilable(String)) } - attr_accessor :user_email - - sig { returns(T.nilable(String)) } - attr_accessor :user_id - - sig { returns(T.nilable(Hanzoai::Models::UserUpdateParams::UserRole::OrSymbol)) } - attr_accessor :user_role - - sig do - params( - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - password: T.nilable(String), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserUpdateParams::UserRole::OrSymbol), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new( - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - config: nil, - duration: nil, - guardrails: nil, - key_alias: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - password: nil, - permissions: nil, - rpm_limit: nil, - spend: nil, - team_id: nil, - tpm_limit: nil, - user_email: nil, - user_id: nil, - user_role: nil, - request_options: {} - ) - end - - sig do - override - .returns( - { - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - password: T.nilable(String), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserUpdateParams::UserRole::OrSymbol), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module UserRole - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::UserUpdateParams::UserRole) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::UserUpdateParams::UserRole::TaggedSymbol) } - - PROXY_ADMIN = T.let(:proxy_admin, Hanzoai::Models::UserUpdateParams::UserRole::TaggedSymbol) - PROXY_ADMIN_VIEWER = - T.let(:proxy_admin_viewer, Hanzoai::Models::UserUpdateParams::UserRole::TaggedSymbol) - INTERNAL_USER = T.let(:internal_user, Hanzoai::Models::UserUpdateParams::UserRole::TaggedSymbol) - INTERNAL_USER_VIEWER = - T.let(:internal_user_viewer, Hanzoai::Models::UserUpdateParams::UserRole::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::UserUpdateParams::UserRole::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/util_get_supported_openai_params_params.rbi b/rbi/lib/hanzoai/models/util_get_supported_openai_params_params.rbi deleted file mode 100644 index 48c4f510..00000000 --- a/rbi/lib/hanzoai/models/util_get_supported_openai_params_params.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UtilGetSupportedOpenAIParamsParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :model - - sig do - params(model: String, request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(model:, request_options: {}) - end - - sig { override.returns({model: String, request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/util_token_counter_params.rbi b/rbi/lib/hanzoai/models/util_token_counter_params.rbi deleted file mode 100644 index 2d07a2c8..00000000 --- a/rbi/lib/hanzoai/models/util_token_counter_params.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UtilTokenCounterParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(String) } - attr_accessor :model - - sig { returns(T.nilable(T::Array[T.anything])) } - attr_accessor :messages - - sig { returns(T.nilable(String)) } - attr_accessor :prompt - - sig do - params( - model: String, - messages: T.nilable(T::Array[T.anything]), - prompt: T.nilable(String), - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(model:, messages: nil, prompt: nil, request_options: {}) - end - - sig do - override - .returns( - { - model: String, - messages: T.nilable(T::Array[T.anything]), - prompt: T.nilable(String), - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/util_token_counter_response.rbi b/rbi/lib/hanzoai/models/util_token_counter_response.rbi deleted file mode 100644 index c6500b4c..00000000 --- a/rbi/lib/hanzoai/models/util_token_counter_response.rbi +++ /dev/null @@ -1,33 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UtilTokenCounterResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(String) } - attr_accessor :model_used - - sig { returns(String) } - attr_accessor :request_model - - sig { returns(String) } - attr_accessor :tokenizer_type - - sig { returns(Integer) } - attr_accessor :total_tokens - - sig do - params(model_used: String, request_model: String, tokenizer_type: String, total_tokens: Integer) - .returns(T.attached_class) - end - def self.new(model_used:, request_model:, tokenizer_type:, total_tokens:) - end - - sig do - override - .returns({model_used: String, request_model: String, tokenizer_type: String, total_tokens: Integer}) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/util_transform_request_params.rbi b/rbi/lib/hanzoai/models/util_transform_request_params.rbi deleted file mode 100644 index e084d2cc..00000000 --- a/rbi/lib/hanzoai/models/util_transform_request_params.rbi +++ /dev/null @@ -1,148 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UtilTransformRequestParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig { returns(Hanzoai::Models::UtilTransformRequestParams::CallType::OrSymbol) } - attr_accessor :call_type - - sig { returns(T.anything) } - attr_accessor :request_body - - sig do - params( - call_type: Hanzoai::Models::UtilTransformRequestParams::CallType::OrSymbol, - request_body: T.anything, - request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash) - ) - .returns(T.attached_class) - end - def self.new(call_type:, request_body:, request_options: {}) - end - - sig do - override - .returns( - { - call_type: Hanzoai::Models::UtilTransformRequestParams::CallType::OrSymbol, - request_body: T.anything, - request_options: Hanzoai::RequestOptions - } - ) - end - def to_hash - end - - module CallType - extend Hanzoai::Internal::Type::Enum - - TaggedSymbol = T.type_alias { T.all(Symbol, Hanzoai::Models::UtilTransformRequestParams::CallType) } - OrSymbol = - T.type_alias { T.any(Symbol, String, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) } - - EMBEDDING = T.let(:embedding, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AEMBEDDING = T.let(:aembedding, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - COMPLETION = T.let(:completion, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ACOMPLETION = T.let(:acompletion, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ATEXT_COMPLETION = - T.let(:atext_completion, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - TEXT_COMPLETION = - T.let(:text_completion, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - IMAGE_GENERATION = - T.let(:image_generation, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AIMAGE_GENERATION = - T.let(:aimage_generation, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - MODERATION = T.let(:moderation, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AMODERATION = T.let(:amoderation, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ATRANSCRIPTION = - T.let(:atranscription, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - TRANSCRIPTION = - T.let(:transcription, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ASPEECH = T.let(:aspeech, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - SPEECH = T.let(:speech, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - RERANK = T.let(:rerank, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ARERANK = T.let(:arerank, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AREALTIME = T.let(:_arealtime, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - CREATE_BATCH = T.let(:create_batch, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ACREATE_BATCH = - T.let(:acreate_batch, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ARETRIEVE_BATCH = - T.let(:aretrieve_batch, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - RETRIEVE_BATCH = - T.let(:retrieve_batch, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - PASS_THROUGH_ENDPOINT = - T.let(:pass_through_endpoint, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ANTHROPIC_MESSAGES = - T.let(:anthropic_messages, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - GET_ASSISTANTS = - T.let(:get_assistants, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AGET_ASSISTANTS = - T.let(:aget_assistants, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - CREATE_ASSISTANTS = - T.let(:create_assistants, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ACREATE_ASSISTANTS = - T.let(:acreate_assistants, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - DELETE_ASSISTANT = - T.let(:delete_assistant, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ADELETE_ASSISTANT = - T.let(:adelete_assistant, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ACREATE_THREAD = - T.let(:acreate_thread, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - CREATE_THREAD = - T.let(:create_thread, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AGET_THREAD = T.let(:aget_thread, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - GET_THREAD = T.let(:get_thread, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - A_ADD_MESSAGE = - T.let(:a_add_message, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ADD_MESSAGE = T.let(:add_message, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AGET_MESSAGES = - T.let(:aget_messages, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - GET_MESSAGES = T.let(:get_messages, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ARUN_THREAD = T.let(:arun_thread, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - RUN_THREAD = T.let(:run_thread, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ARUN_THREAD_STREAM = - T.let(:arun_thread_stream, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - RUN_THREAD_STREAM = - T.let(:run_thread_stream, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AFILE_RETRIEVE = - T.let(:afile_retrieve, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - FILE_RETRIEVE = - T.let(:file_retrieve, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AFILE_DELETE = T.let(:afile_delete, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - FILE_DELETE = T.let(:file_delete, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AFILE_LIST = T.let(:afile_list, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - FILE_LIST = T.let(:file_list, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ACREATE_FILE = T.let(:acreate_file, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - CREATE_FILE = T.let(:create_file, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - AFILE_CONTENT = - T.let(:afile_content, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - FILE_CONTENT = T.let(:file_content, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - CREATE_FINE_TUNING_JOB = - T.let(:create_fine_tuning_job, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ACREATE_FINE_TUNING_JOB = - T.let(:acreate_fine_tuning_job, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ACANCEL_FINE_TUNING_JOB = - T.let(:acancel_fine_tuning_job, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - CANCEL_FINE_TUNING_JOB = - T.let(:cancel_fine_tuning_job, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ALIST_FINE_TUNING_JOBS = - T.let(:alist_fine_tuning_jobs, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - LIST_FINE_TUNING_JOBS = - T.let(:list_fine_tuning_jobs, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ARETRIEVE_FINE_TUNING_JOB = - T.let(:aretrieve_fine_tuning_job, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - RETRIEVE_FINE_TUNING_JOB = - T.let(:retrieve_fine_tuning_job, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - RESPONSES = T.let(:responses, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - ARESPONSES = T.let(:aresponses, Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol) - - sig { override.returns(T::Array[Hanzoai::Models::UtilTransformRequestParams::CallType::TaggedSymbol]) } - def self.values - end - end - end - end -end diff --git a/rbi/lib/hanzoai/models/util_transform_request_response.rbi b/rbi/lib/hanzoai/models/util_transform_request_response.rbi deleted file mode 100644 index e5f03985..00000000 --- a/rbi/lib/hanzoai/models/util_transform_request_response.rbi +++ /dev/null @@ -1,45 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class UtilTransformRequestResponse < Hanzoai::Internal::Type::BaseModel - sig { returns(T.nilable(String)) } - attr_accessor :error - - sig { returns(T.nilable(String)) } - attr_accessor :raw_request_api_base - - sig { returns(T.nilable(T.anything)) } - attr_accessor :raw_request_body - - sig { returns(T.nilable(T.anything)) } - attr_accessor :raw_request_headers - - sig do - params( - error: T.nilable(String), - raw_request_api_base: T.nilable(String), - raw_request_body: T.nilable(T.anything), - raw_request_headers: T.nilable(T.anything) - ) - .returns(T.attached_class) - end - def self.new(error: nil, raw_request_api_base: nil, raw_request_body: nil, raw_request_headers: nil) - end - - sig do - override - .returns( - { - error: T.nilable(String), - raw_request_api_base: T.nilable(String), - raw_request_body: T.nilable(T.anything), - raw_request_headers: T.nilable(T.anything) - } - ) - end - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/vertex_ai_create_params.rbi b/rbi/lib/hanzoai/models/vertex_ai_create_params.rbi deleted file mode 100644 index 071edd40..00000000 --- a/rbi/lib/hanzoai/models/vertex_ai_create_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class VertexAICreateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/vertex_ai_delete_params.rbi b/rbi/lib/hanzoai/models/vertex_ai_delete_params.rbi deleted file mode 100644 index 515359be..00000000 --- a/rbi/lib/hanzoai/models/vertex_ai_delete_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class VertexAIDeleteParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/vertex_ai_patch_params.rbi b/rbi/lib/hanzoai/models/vertex_ai_patch_params.rbi deleted file mode 100644 index b084bfc8..00000000 --- a/rbi/lib/hanzoai/models/vertex_ai_patch_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class VertexAIPatchParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/vertex_ai_retrieve_params.rbi b/rbi/lib/hanzoai/models/vertex_ai_retrieve_params.rbi deleted file mode 100644 index 8c53ba96..00000000 --- a/rbi/lib/hanzoai/models/vertex_ai_retrieve_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class VertexAIRetrieveParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/models/vertex_ai_update_params.rbi b/rbi/lib/hanzoai/models/vertex_ai_update_params.rbi deleted file mode 100644 index 94d89800..00000000 --- a/rbi/lib/hanzoai/models/vertex_ai_update_params.rbi +++ /dev/null @@ -1,21 +0,0 @@ -# typed: strong - -module Hanzoai - module Models - class VertexAIUpdateParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - sig do - params(request_options: T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - .returns(T.attached_class) - end - def self.new(request_options: {}) - end - - sig { override.returns({request_options: Hanzoai::RequestOptions}) } - def to_hash - end - end - end -end diff --git a/rbi/lib/hanzoai/request_options.rbi b/rbi/lib/hanzoai/request_options.rbi deleted file mode 100644 index 1873f541..00000000 --- a/rbi/lib/hanzoai/request_options.rbi +++ /dev/null @@ -1,48 +0,0 @@ -# typed: strong - -module Hanzoai - # Specify HTTP behaviour to use for a specific request. These options supplement - # or override those provided at the client level. - # - # When making a request, you can pass an actual {RequestOptions} instance, or - # simply pass a Hash with symbol keys matching the attributes on this class. - class RequestOptions < Hanzoai::Internal::Type::BaseModel - # @api private - sig { params(opts: T.any(T.self_type, T::Hash[Symbol, T.anything])).void } - def self.validate!(opts) - end - - # Idempotency key to send with request and all associated retries. Will only be - # sent for write requests. - sig { returns(T.nilable(String)) } - attr_accessor :idempotency_key - - # Extra query params to send with the request. These are `.merge`’d into any - # `query` given at the client level. - sig { returns(T.nilable(T::Hash[String, T.nilable(T.any(T::Array[String], String))])) } - attr_accessor :extra_query - - # Extra headers to send with the request. These are `.merged`’d into any - # `extra_headers` given at the client level. - sig { returns(T.nilable(T::Hash[String, T.nilable(String)])) } - attr_accessor :extra_headers - - # Extra data to send with the request. These are deep merged into any data - # generated as part of the normal request. - sig { returns(T.nilable(T.anything)) } - attr_accessor :extra_body - - # Maximum number of retries to attempt after a failed initial request. - sig { returns(T.nilable(Integer)) } - attr_accessor :max_retries - - # Request timeout in seconds. - sig { returns(T.nilable(Float)) } - attr_accessor :timeout - - # Returns a new instance of RequestOptions. - sig { params(values: Hanzoai::Internal::AnyHash).returns(T.attached_class) } - def self.new(values = {}) - end - end -end diff --git a/rbi/lib/hanzoai/resources/active.rbi b/rbi/lib/hanzoai/resources/active.rbi deleted file mode 100644 index 19cff5fc..00000000 --- a/rbi/lib/hanzoai/resources/active.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Active - # Returns a list of llm level settings - # - # This is useful for debugging and ensuring the proxy server is configured - # correctly. - # - # Response schema: - # - # ``` - # { - # "alerting": _alerting, - # "llm.callbacks": llm_callbacks, - # "llm.input_callback": llm_input_callbacks, - # "llm.failure_callback": llm_failure_callbacks, - # "llm.success_callback": llm_success_callbacks, - # "llm._async_success_callback": llm_async_success_callbacks, - # "llm._async_failure_callback": llm_async_failure_callbacks, - # "llm._async_input_callback": llm_async_input_callbacks, - # "all_llm_callbacks": all_llm_callbacks, - # "num_callbacks": len(all_llm_callbacks), - # "num_alerting": _num_alerting, - # "llm.request_timeout": llm.request_timeout, - # } - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def list_callbacks(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/add.rbi b/rbi/lib/hanzoai/resources/add.rbi deleted file mode 100644 index 18776834..00000000 --- a/rbi/lib/hanzoai/resources/add.rbi +++ /dev/null @@ -1,28 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Add - # Add Allowed Ip - sig do - params( - ip: String, - request_options: T.nilable( - T.any( - Hanzoai::RequestOptions, - Hanzoai::Internal::AnyHash - ) - ) - ) - .returns(T.anything) - end - def add_allowed_ip(ip:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/anthropic.rbi b/rbi/lib/hanzoai/resources/anthropic.rbi deleted file mode 100644 index 11a835a7..00000000 --- a/rbi/lib/hanzoai/resources/anthropic.rbi +++ /dev/null @@ -1,67 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Anthropic - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/anthropic_completion) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def modify(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/assemblyai.rbi b/rbi/lib/hanzoai/resources/assemblyai.rbi deleted file mode 100644 index bb834751..00000000 --- a/rbi/lib/hanzoai/resources/assemblyai.rbi +++ /dev/null @@ -1,67 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Assemblyai - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/assistants.rbi b/rbi/lib/hanzoai/resources/assistants.rbi deleted file mode 100644 index c50e9982..00000000 --- a/rbi/lib/hanzoai/resources/assistants.rbi +++ /dev/null @@ -1,48 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Assistants - # Create assistant - # - # API Reference docs - - # https://platform.openai.com/docs/api-reference/assistants/createAssistant - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create(request_options: {}) - end - - # Returns a list of assistants. - # - # API Reference docs - - # https://platform.openai.com/docs/api-reference/assistants/listAssistants - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def list(request_options: {}) - end - - # Delete assistant - # - # API Reference docs - - # https://platform.openai.com/docs/api-reference/assistants/createAssistant - sig do - params( - assistant_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(assistant_id, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/audio/speech.rbi b/rbi/lib/hanzoai/resources/audio/speech.rbi deleted file mode 100644 index ba29948d..00000000 --- a/rbi/lib/hanzoai/resources/audio/speech.rbi +++ /dev/null @@ -1,24 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Audio - class Speech - # Same params as: - # - # https://platform.openai.com/docs/api-reference/audio/createSpeech - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/audio/transcriptions.rbi b/rbi/lib/hanzoai/resources/audio/transcriptions.rbi deleted file mode 100644 index 4ce6b210..00000000 --- a/rbi/lib/hanzoai/resources/audio/transcriptions.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Audio - class Transcriptions - # Same params as: - # - # https://platform.openai.com/docs/api-reference/audio/createTranscription?lang=curl - sig do - params( - file: T.any(IO, StringIO), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(file:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/azure.rbi b/rbi/lib/hanzoai/resources/azure.rbi deleted file mode 100644 index 445e308e..00000000 --- a/rbi/lib/hanzoai/resources/azure.rbi +++ /dev/null @@ -1,77 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Azure - # Call any azure endpoint using the proxy. - # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # Call any azure endpoint using the proxy. - # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # Call any azure endpoint using the proxy. - # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # Call any azure endpoint using the proxy. - # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def call(endpoint, request_options: {}) - end - - # Call any azure endpoint using the proxy. - # - # Just use `{PROXY_BASE_URL}/azure/{endpoint:path}` - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/batches.rbi b/rbi/lib/hanzoai/resources/batches.rbi deleted file mode 100644 index 8d982a57..00000000 --- a/rbi/lib/hanzoai/resources/batches.rbi +++ /dev/null @@ -1,174 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Batches - sig { returns(Hanzoai::Resources::Batches::Cancel) } - attr_reader :cancel - - # Create large batches of API requests for asynchronous processing. This is the - # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ - # "input_file_id": "file-abc123", - # "endpoint": "/v1/chat/completions", - # "completion_window": "24h" - # }' - # ``` - sig do - params( - provider: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(provider: nil, request_options: {}) - end - - # Retrieves a batch. This is the equivalent of GET - # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/retrieve - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` - sig do - params( - batch_id: String, - provider: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve( - # The ID of the batch to retrieve - batch_id, - provider: nil, - request_options: {} - ) - end - - # Lists This is the equivalent of GET https://api.openai.com/v1/batches/ Supports - # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` - sig do - params( - after: T.nilable(String), - limit: T.nilable(Integer), - provider: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list(after: nil, limit: nil, provider: nil, request_options: {}) - end - - # Cancel a batch. This is the equivalent of POST - # https://api.openai.com/v1/batches/{batch_id}/cancel - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/cancel - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST - # - # ``` - sig do - params( - batch_id: String, - provider: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def cancel_with_provider(batch_id, provider:, request_options: {}) - end - - # Create large batches of API requests for asynchronous processing. This is the - # equivalent of POST https://api.openai.com/v1/batch Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -d '{ - # "input_file_id": "file-abc123", - # "endpoint": "/v1/chat/completions", - # "completion_window": "24h" - # }' - # ``` - sig do - params( - provider: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create_with_provider(provider, request_options: {}) - end - - # Lists This is the equivalent of GET https://api.openai.com/v1/batches/ Supports - # Identical Params as: https://platform.openai.com/docs/api-reference/batch/list - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches?limit=2 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` - sig do - params( - provider: String, - after: T.nilable(String), - limit: T.nilable(Integer), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list_with_provider(provider, after: nil, limit: nil, request_options: {}) - end - - # Retrieves a batch. This is the equivalent of GET - # https://api.openai.com/v1/batches/{batch_id} Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/retrieve - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123 -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` - sig do - params( - batch_id: String, - provider: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve_with_provider( - # The ID of the batch to retrieve - batch_id, - provider:, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/batches/cancel.rbi b/rbi/lib/hanzoai/resources/batches/cancel.rbi deleted file mode 100644 index 71b6f78e..00000000 --- a/rbi/lib/hanzoai/resources/batches/cancel.rbi +++ /dev/null @@ -1,37 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Batches - class Cancel - # Cancel a batch. This is the equivalent of POST - # https://api.openai.com/v1/batches/{batch_id}/cancel - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/batch/cancel - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/batches/batch_abc123/cancel -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" -X POST - # - # ``` - sig do - params( - batch_id: String, - provider: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def cancel(batch_id, provider: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/bedrock.rbi b/rbi/lib/hanzoai/resources/bedrock.rbi deleted file mode 100644 index 4f9cf603..00000000 --- a/rbi/lib/hanzoai/resources/bedrock.rbi +++ /dev/null @@ -1,67 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Bedrock - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/bedrock) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/budget.rbi b/rbi/lib/hanzoai/resources/budget.rbi deleted file mode 100644 index 730df4c7..00000000 --- a/rbi/lib/hanzoai/resources/budget.rbi +++ /dev/null @@ -1,177 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Budget - # Create a new budget object. Can apply this to teams, orgs, end-users, keys. - # - # Parameters: - # - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - budget_id: Optional[str] - The id of the budget. If not provided, a new id - # will be generated. - # - max_budget: Optional[float] - The max budget for the budget. - # - soft_budget: Optional[float] - The soft budget for the budget. - # - max_parallel_requests: Optional[int] - The max number of parallel requests for - # the budget. - # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. - # - rpm_limit: Optional[int] - The requests per minute limit for the budget. - # - model_max_budget: Optional[dict] - Specify max budget for a given model. - # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", - # "tpm_limit": 100000, "rpm_limit": 100000}} - sig do - params( - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T::Hash[Symbol, T.any(Hanzoai::Models::BudgetNew::ModelMaxBudget, Hanzoai::Internal::AnyHash)]), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create( - # Max duration budget should be set for (e.g. '1hr', '1d', '28d') - budget_duration: nil, - # The unique budget id. - budget_id: nil, - # Requests will fail if this budget (in USD) is exceeded. - max_budget: nil, - # Max concurrent requests allowed for this budget id. - max_parallel_requests: nil, - # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', - # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) - model_max_budget: nil, - # Max requests per minute, allowed for this budget id. - rpm_limit: nil, - # Requests will NOT fail if this is exceeded. Will fire alerting though. - soft_budget: nil, - # Max tokens per minute, allowed for this budget id. - tpm_limit: nil, - request_options: {} - ) - end - - # Update an existing budget object. - # - # Parameters: - # - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - budget_id: Optional[str] - The id of the budget. If not provided, a new id - # will be generated. - # - max_budget: Optional[float] - The max budget for the budget. - # - soft_budget: Optional[float] - The soft budget for the budget. - # - max_parallel_requests: Optional[int] - The max number of parallel requests for - # the budget. - # - tpm_limit: Optional[int] - The tokens per minute limit for the budget. - # - rpm_limit: Optional[int] - The requests per minute limit for the budget. - # - model_max_budget: Optional[dict] - Specify max budget for a given model. - # Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d", - # "tpm_limit": 100000, "rpm_limit": 100000}} - sig do - params( - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable(T::Hash[Symbol, T.any(Hanzoai::Models::BudgetNew::ModelMaxBudget, Hanzoai::Internal::AnyHash)]), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update( - # Max duration budget should be set for (e.g. '1hr', '1d', '28d') - budget_duration: nil, - # The unique budget id. - budget_id: nil, - # Requests will fail if this budget (in USD) is exceeded. - max_budget: nil, - # Max concurrent requests allowed for this budget id. - max_parallel_requests: nil, - # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', - # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) - model_max_budget: nil, - # Max requests per minute, allowed for this budget id. - rpm_limit: nil, - # Requests will NOT fail if this is exceeded. Will fire alerting though. - soft_budget: nil, - # Max tokens per minute, allowed for this budget id. - tpm_limit: nil, - request_options: {} - ) - end - - # List all the created budgets in proxy db. Used on Admin UI. - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def list(request_options: {}) - end - - # Delete budget - # - # Parameters: - # - # - id: str - The budget id to delete - sig do - params( - id: String, - request_options: T.nilable( - T.any( - Hanzoai::RequestOptions, - Hanzoai::Internal::AnyHash - ) - ) - ) - .returns(T.anything) - end - def delete(id:, request_options: {}) - end - - # Get the budget id specific information - # - # Parameters: - # - # - budgets: List[str] - The list of budget ids to get information for - sig do - params( - budgets: T::Array[String], - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def info(budgets:, request_options: {}) - end - - # Get list of configurable params + current value for a budget item + description - # of each field - # - # Used on Admin UI. - # - # Query Parameters: - # - # - budget_id: str - The budget id to get information for - sig do - params( - budget_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def settings(budget_id:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/cache.rbi b/rbi/lib/hanzoai/resources/cache.rbi deleted file mode 100644 index 93b6ab08..00000000 --- a/rbi/lib/hanzoai/resources/cache.rbi +++ /dev/null @@ -1,58 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Cache - sig { returns(Hanzoai::Resources::Cache::Redis) } - attr_reader :redis - - # Endpoint for deleting a key from the cache. All responses from llm proxy have - # `x-llm-cache-key` in the headers - # - # Parameters: - # - # - **keys**: _Optional[List[str]]_ - A list of keys to delete from the cache. - # Example {"keys": ["key1", "key2"]} - # - # ```shell - # curl -X POST "http://0.0.0.0:4000/cache/delete" -H "Authorization: Bearer sk-1234" -d '{"keys": ["key1", "key2"]}' - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def delete(request_options: {}) - end - - # A function to flush all items from the cache. (All items will be deleted from - # the cache with this) Raises HTTPException if the cache is not initialized or if - # the cache type does not support flushing. Returns a dictionary with the status - # of the operation. - # - # Usage: - # - # ``` - # curl -X POST http://0.0.0.0:4000/cache/flushall -H "Authorization: Bearer sk-1234" - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def flush_all(request_options: {}) - end - - # Endpoint for checking if cache can be pinged - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(Hanzoai::Models::CachePingResponse) - end - def ping(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/cache/redis.rbi b/rbi/lib/hanzoai/resources/cache/redis.rbi deleted file mode 100644 index 94b355fc..00000000 --- a/rbi/lib/hanzoai/resources/cache/redis.rbi +++ /dev/null @@ -1,22 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Cache - class Redis - # Endpoint for getting /redis/info - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def retrieve_info(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/chat/completions.rbi b/rbi/lib/hanzoai/resources/chat/completions.rbi deleted file mode 100644 index 5a8e252f..00000000 --- a/rbi/lib/hanzoai/resources/chat/completions.rbi +++ /dev/null @@ -1,41 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Chat - class Completions - # Follows the exact same API spec as - # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` - # - # ```bash - # curl -X POST http://localhost:4000/v1/chat/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-4o", - # "messages": [ - # { - # "role": "user", - # "content": "Hello!" - # } - # ] - # }' - # ``` - sig do - params( - model: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(model: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/cohere.rbi b/rbi/lib/hanzoai/resources/cohere.rbi deleted file mode 100644 index 137b4875..00000000 --- a/rbi/lib/hanzoai/resources/cohere.rbi +++ /dev/null @@ -1,67 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Cohere - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/cohere) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def modify(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/completions.rbi b/rbi/lib/hanzoai/resources/completions.rbi deleted file mode 100644 index c3bd92d3..00000000 --- a/rbi/lib/hanzoai/resources/completions.rbi +++ /dev/null @@ -1,36 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Completions - # Follows the exact same API spec as - # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` - # - # ```bash - # curl -X POST http://localhost:4000/v1/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-3.5-turbo-instruct", - # "prompt": "Once upon a time", - # "max_tokens": 50, - # "temperature": 0.7 - # }' - # ``` - sig do - params( - model: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(model: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/config/pass_through_endpoint.rbi b/rbi/lib/hanzoai/resources/config/pass_through_endpoint.rbi deleted file mode 100644 index 0753875b..00000000 --- a/rbi/lib/hanzoai/resources/config/pass_through_endpoint.rbi +++ /dev/null @@ -1,73 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Config - class PassThroughEndpoint - # Create new pass-through endpoint - sig do - params( - headers: T.anything, - path: String, - target: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create( - # Key-value pairs of headers to be forwarded with the request. You can set any key - # value pair here and it will be forwarded to your target endpoint - headers:, - # The route to be added to the LLM Proxy Server. - path:, - # The URL to which requests for this path should be forwarded. - target:, - request_options: {} - ) - end - - # Update a pass-through endpoint - sig do - params( - endpoint_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint_id, request_options: {}) - end - - # GET configured pass through endpoint. - # - # If no endpoint_id given, return all configured endpoints. - sig do - params( - endpoint_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::Config::PassThroughEndpointResponse) - end - def list(endpoint_id: nil, request_options: {}) - end - - # Delete a pass-through endpoint - # - # Returns - the deleted endpoint - sig do - params( - endpoint_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::Config::PassThroughEndpointResponse) - end - def delete(endpoint_id:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/credentials.rbi b/rbi/lib/hanzoai/resources/credentials.rbi deleted file mode 100644 index 5598fe79..00000000 --- a/rbi/lib/hanzoai/resources/credentials.rbi +++ /dev/null @@ -1,52 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Credentials - # [BETA] endpoint. This might change unexpectedly. Stores credential in DB. - # Reloads credentials in memory. - sig do - params( - credential_info: T.anything, - credential_name: String, - credential_values: T.nilable(T.anything), - model_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create( - credential_info:, - credential_name:, - credential_values: nil, - model_id: nil, - request_options: {} - ) - end - - # [BETA] endpoint. This might change unexpectedly. - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def list(request_options: {}) - end - - # [BETA] endpoint. This might change unexpectedly. - sig do - params( - credential_name: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(credential_name, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/customer.rbi b/rbi/lib/hanzoai/resources/customer.rbi deleted file mode 100644 index b6d8ef86..00000000 --- a/rbi/lib/hanzoai/resources/customer.rbi +++ /dev/null @@ -1,271 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Customer - # Allow creating a new Customer - # - # Parameters: - # - # - user_id: str - The unique identifier for the user. - # - alias: Optional[str] - A human-friendly alias for the user. - # - blocked: bool - Flag to allow or disallow requests for this end-user. Default - # is False. - # - max_budget: Optional[float] - The maximum budget allocated to the user. Either - # 'max_budget' or 'budget_id' should be provided, not both. - # - budget_id: Optional[str] - The identifier for an existing budget allocated to - # the user. Either 'max_budget' or 'budget_id' should be provided, not both. - # - allowed_model_region: Optional[Union[Literal["eu"], Literal["us"]]] - Require - # all user requests to use models in this specific region. - # - default_model: Optional[str] - If no equivalent model in the allowed region, - # default all requests to this model. - # - metadata: Optional[dict] = Metadata for customer, store information for - # customer. Example metadata = {"data_training_opt_out": True} - # - budget_duration: Optional[str] - Budget is reset at the end of specified - # duration. If not set, budget is never reset. You can set duration as seconds - # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - # - tpm_limit: Optional[int] - [Not Implemented Yet] Specify tpm limit for a given - # customer (Tokens per minute) - # - rpm_limit: Optional[int] - [Not Implemented Yet] Specify rpm limit for a given - # customer (Requests per minute) - # - model_max_budget: Optional[dict] - [Not Implemented Yet] Specify max budget - # for a given model. Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, - # "budget_duration": "1d"}} - # - max_parallel_requests: Optional[int] - [Not Implemented Yet] Specify max - # parallel requests for a given customer. - # - soft_budget: Optional[float] - [Not Implemented Yet] Get alerts when customer - # crosses given budget, doesn't block requests. - # - # - Allow specifying allowed regions - # - Allow specifying default model - # - # Example curl: - # - # ``` - # curl --location 'http://0.0.0.0:4000/customer/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_id" : "z-jaff-3", - # "allowed_region": "eu", - # "budget_id": "free_tier", - # "default_model": "azure/gpt-3.5-turbo-eu" <- all calls from this user, use this model? - # }' - # - # # return end-user object - # ``` - # - # NOTE: This used to be called `/end_user/new`, we will still be maintaining - # compatibility for /end_user/XXX for these endpoints - sig do - params( - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerCreateParams::AllowedModelRegion::OrSymbol), - blocked: T::Boolean, - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - default_model: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - model_max_budget: T.nilable( - T::Hash[Symbol, T.any(Hanzoai::Models::CustomerCreateParams::ModelMaxBudget, Hanzoai::Internal::AnyHash)] - ), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create( - user_id:, - alias_: nil, - allowed_model_region: nil, - blocked: nil, - # Max duration budget should be set for (e.g. '1hr', '1d', '28d') - budget_duration: nil, - budget_id: nil, - default_model: nil, - # Requests will fail if this budget (in USD) is exceeded. - max_budget: nil, - # Max concurrent requests allowed for this budget id. - max_parallel_requests: nil, - # Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', - # 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}}) - model_max_budget: nil, - # Max requests per minute, allowed for this budget id. - rpm_limit: nil, - # Requests will NOT fail if this is exceeded. Will fire alerting though. - soft_budget: nil, - # Max tokens per minute, allowed for this budget id. - tpm_limit: nil, - request_options: {} - ) - end - - # Example curl - # - # Parameters: - # - # - user_id: str - # - alias: Optional[str] = None # human-friendly alias - # - blocked: bool = False # allow/disallow requests for this end-user - # - max_budget: Optional[float] = None - # - budget_id: Optional[str] = None # give either a budget_id or max_budget - # - allowed_model_region: Optional[AllowedModelRegion] = ( None # require all user - # requests to use models in this specific region ) - # - default_model: Optional[str] = ( None # if no equivalent model in allowed - # region - default all requests to this model ) - # - # Example curl: - # - # ``` - # curl --location 'http://0.0.0.0:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_id": "test-llm-user-4", - # "budget_id": "paid_tier" - # }' - # - # See below for all params - # ``` - sig do - params( - user_id: String, - alias_: T.nilable(String), - allowed_model_region: T.nilable(Hanzoai::Models::CustomerUpdateParams::AllowedModelRegion::OrSymbol), - blocked: T::Boolean, - budget_id: T.nilable(String), - default_model: T.nilable(String), - max_budget: T.nilable(Float), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update( - user_id:, - alias_: nil, - allowed_model_region: nil, - blocked: nil, - budget_id: nil, - default_model: nil, - max_budget: nil, - request_options: {} - ) - end - - # [Admin-only] List all available customers - # - # Example curl: - # - # ``` - # curl --location --request GET 'http://0.0.0.0:4000/customer/list' --header 'Authorization: Bearer sk-1234' - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T::Array[Hanzoai::Models::CustomerListResponseItem]) - end - def list(request_options: {}) - end - - # Delete multiple end-users. - # - # Parameters: - # - # - user_ids (List[str], required): The unique `user_id`s for the users to delete - # - # Example curl: - # - # ``` - # curl --location 'http://0.0.0.0:4000/customer/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_ids" :["z-jaff-5"] - # }' - # - # See below for all params - # ``` - sig do - params( - user_ids: T::Array[String], - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(user_ids:, request_options: {}) - end - - # [BETA] Reject calls with this end-user id - # - # Parameters: - # - # - user_ids (List[str], required): The unique `user_id`s for the users to block - # - # (any /chat/completion call with this user={end-user-id} param, will be - # rejected.) - # - # ``` - # curl -X POST "http://0.0.0.0:8000/user/block" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "user_ids": [, ...] - # }' - # ``` - sig do - params( - user_ids: T::Array[String], - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def block(user_ids:, request_options: {}) - end - - # Get information about an end-user. An `end_user` is a customer (external user) - # of the proxy. - # - # Parameters: - # - # - end_user_id (str, required): The unique identifier for the end-user - # - # Example curl: - # - # ``` - # curl -X GET 'http://localhost:4000/customer/info?end_user_id=test-llm-user-4' -H 'Authorization: Bearer sk-1234' - # ``` - sig do - params( - end_user_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::CustomerRetrieveInfoResponse) - end - def retrieve_info( - # End User ID in the request parameters - end_user_id:, - request_options: {} - ) - end - - # [BETA] Unblock calls with this user id - # - # Example - # - # ``` - # curl -X POST "http://0.0.0.0:8000/user/unblock" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "user_ids": [, ...] - # }' - # ``` - sig do - params( - user_ids: T::Array[String], - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def unblock(user_ids:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/delete.rbi b/rbi/lib/hanzoai/resources/delete.rbi deleted file mode 100644 index 8c6e6742..00000000 --- a/rbi/lib/hanzoai/resources/delete.rbi +++ /dev/null @@ -1,28 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Delete - # Delete Allowed Ip - sig do - params( - ip: String, - request_options: T.nilable( - T.any( - Hanzoai::RequestOptions, - Hanzoai::Internal::AnyHash - ) - ) - ) - .returns(T.anything) - end - def create_allowed_ip(ip:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/embeddings.rbi b/rbi/lib/hanzoai/resources/embeddings.rbi deleted file mode 100644 index 78947275..00000000 --- a/rbi/lib/hanzoai/resources/embeddings.rbi +++ /dev/null @@ -1,34 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Embeddings - # Follows the exact same API spec as - # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` - # - # ```bash - # curl -X POST http://localhost:4000/v1/embeddings - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "text-embedding-ada-002", - # "input": "The quick brown fox jumps over the lazy dog" - # }' - # ``` - sig do - params( - model: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(model: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/engines.rbi b/rbi/lib/hanzoai/resources/engines.rbi deleted file mode 100644 index 33123b33..00000000 --- a/rbi/lib/hanzoai/resources/engines.rbi +++ /dev/null @@ -1,61 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Engines - sig { returns(Hanzoai::Resources::Engines::Chat) } - attr_reader :chat - - # Follows the exact same API spec as - # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` - # - # ```bash - # curl -X POST http://localhost:4000/v1/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-3.5-turbo-instruct", - # "prompt": "Once upon a time", - # "max_tokens": 50, - # "temperature": 0.7 - # }' - # ``` - sig do - params( - model: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def complete(model, request_options: {}) - end - - # Follows the exact same API spec as - # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` - # - # ```bash - # curl -X POST http://localhost:4000/v1/embeddings - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "text-embedding-ada-002", - # "input": "The quick brown fox jumps over the lazy dog" - # }' - # ``` - sig do - params( - model: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def embed(model, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/engines/chat.rbi b/rbi/lib/hanzoai/resources/engines/chat.rbi deleted file mode 100644 index 54aa4cd7..00000000 --- a/rbi/lib/hanzoai/resources/engines/chat.rbi +++ /dev/null @@ -1,41 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Engines - class Chat - # Follows the exact same API spec as - # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` - # - # ```bash - # curl -X POST http://localhost:4000/v1/chat/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-4o", - # "messages": [ - # { - # "role": "user", - # "content": "Hello!" - # } - # ] - # }' - # ``` - sig do - params( - model: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def complete(model, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/eu_assemblyai.rbi b/rbi/lib/hanzoai/resources/eu_assemblyai.rbi deleted file mode 100644 index b6ad53cb..00000000 --- a/rbi/lib/hanzoai/resources/eu_assemblyai.rbi +++ /dev/null @@ -1,67 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class EuAssemblyai - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # Assemblyai Proxy Route - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/files.rbi b/rbi/lib/hanzoai/resources/files.rbi deleted file mode 100644 index f533d3cc..00000000 --- a/rbi/lib/hanzoai/resources/files.rbi +++ /dev/null @@ -1,110 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Files - sig { returns(Hanzoai::Resources::Files::Content) } - attr_reader :content - - # Upload a file that can be used across - Assistants API, Batch API This is the - # equivalent of POST https://api.openai.com/v1/files - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/create - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" -F purpose="batch" -F file="@mydata.jsonl" - # - # ``` - sig do - params( - provider: String, - file: T.any(IO, StringIO), - purpose: String, - custom_llm_provider: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(provider, file:, purpose:, custom_llm_provider: nil, request_options: {}) - end - - # Returns information about a specific file. that can be used across - Assistants - # API, Batch API This is the equivalent of GET - # https://api.openai.com/v1/files/{file_id} - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/retrieve - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/files/file-abc123 -H "Authorization: Bearer sk-1234" - # - # ``` - sig do - params( - file_id: String, - provider: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(file_id, provider:, request_options: {}) - end - - # Returns information about a specific file. that can be used across - Assistants - # API, Batch API This is the equivalent of GET https://api.openai.com/v1/files/ - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/list - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/files -H "Authorization: Bearer sk-1234" - # - # ``` - sig do - params( - provider: String, - purpose: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list(provider, purpose: nil, request_options: {}) - end - - # Deletes a specified file. that can be used across - Assistants API, Batch API - # This is the equivalent of DELETE https://api.openai.com/v1/files/{file_id} - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/delete - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/files/file-abc123 -X DELETE -H "Authorization: Bearer $OPENAI_API_KEY" - # - # ``` - sig do - params( - file_id: String, - provider: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(file_id, provider:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/files/content.rbi b/rbi/lib/hanzoai/resources/files/content.rbi deleted file mode 100644 index 6b4f77d0..00000000 --- a/rbi/lib/hanzoai/resources/files/content.rbi +++ /dev/null @@ -1,38 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Files - class Content - # Returns information about a specific file. that can be used across - Assistants - # API, Batch API This is the equivalent of GET - # https://api.openai.com/v1/files/{file_id}/content - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/files/retrieve-contents - # - # Example Curl - # - # ``` - # curl http://localhost:4000/v1/files/file-abc123/content -H "Authorization: Bearer sk-1234" - # - # ``` - sig do - params( - file_id: String, - provider: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(file_id, provider:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/fine_tuning/jobs.rbi b/rbi/lib/hanzoai/resources/fine_tuning/jobs.rbi deleted file mode 100644 index d00c9f43..00000000 --- a/rbi/lib/hanzoai/resources/fine_tuning/jobs.rbi +++ /dev/null @@ -1,102 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class FineTuning - class Jobs - sig { returns(Hanzoai::Resources::FineTuning::Jobs::Cancel) } - attr_reader :cancel - - # Creates a fine-tuning job which begins the process of creating a new model from - # a given dataset. This is the equivalent of POST - # https://api.openai.com/v1/fine_tuning/jobs - # - # Supports Identical Params as: - # https://platform.openai.com/docs/api-reference/fine-tuning/create - # - # Example Curl: - # - # ``` - # curl http://localhost:4000/v1/fine_tuning/jobs -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ - # "model": "gpt-3.5-turbo", - # "training_file": "file-abc123", - # "hyperparameters": { - # "n_epochs": 4 - # } - # }' - # ``` - sig do - params( - custom_llm_provider: Hanzoai::Models::FineTuning::JobCreateParams::CustomLlmProvider::OrSymbol, - model: String, - training_file: String, - hyperparameters: T.nilable( - T.any(Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters, Hanzoai::Internal::AnyHash) - ), - integrations: T.nilable(T::Array[String]), - seed: T.nilable(Integer), - suffix: T.nilable(String), - validation_file: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create( - custom_llm_provider:, - model:, - training_file:, - hyperparameters: nil, - integrations: nil, - seed: nil, - suffix: nil, - validation_file: nil, - request_options: {} - ) - end - - # Retrieves a fine-tuning job. This is the equivalent of GET - # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id} - # - # Supported Query Params: - # - # - `custom_llm_provider`: Name of the LLM provider - # - `fine_tuning_job_id`: The ID of the fine-tuning job to retrieve. - sig do - params( - fine_tuning_job_id: String, - custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::CustomLlmProvider::OrSymbol, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(fine_tuning_job_id, custom_llm_provider:, request_options: {}) - end - - # Lists fine-tuning jobs for the organization. This is the equivalent of GET - # https://api.openai.com/v1/fine_tuning/jobs - # - # Supported Query Params: - # - # - `custom_llm_provider`: Name of the LLM provider - # - `after`: Identifier for the last job from the previous pagination request. - # - `limit`: Number of fine-tuning jobs to retrieve (default is 20). - sig do - params( - custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::CustomLlmProvider::OrSymbol, - after: T.nilable(String), - limit: T.nilable(Integer), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list(custom_llm_provider:, after: nil, limit: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/fine_tuning/jobs/cancel.rbi b/rbi/lib/hanzoai/resources/fine_tuning/jobs/cancel.rbi deleted file mode 100644 index d28566dd..00000000 --- a/rbi/lib/hanzoai/resources/fine_tuning/jobs/cancel.rbi +++ /dev/null @@ -1,35 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class FineTuning - class Jobs - class Cancel - # Cancel a fine-tuning job. - # - # This is the equivalent of POST - # https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel - # - # Supported Query Params: - # - # - `custom_llm_provider`: Name of the LLM provider - # - `fine_tuning_job_id`: The ID of the fine-tuning job to cancel. - sig do - params( - fine_tuning_job_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(fine_tuning_job_id, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/gemini.rbi b/rbi/lib/hanzoai/resources/gemini.rbi deleted file mode 100644 index eff8215f..00000000 --- a/rbi/lib/hanzoai/resources/gemini.rbi +++ /dev/null @@ -1,67 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Gemini - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # [Docs](https://docs.hanzo.ai/docs/pass_through/google_ai_studio) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/global/spend.rbi b/rbi/lib/hanzoai/resources/global/spend.rbi deleted file mode 100644 index 16fe21b4..00000000 --- a/rbi/lib/hanzoai/resources/global/spend.rbi +++ /dev/null @@ -1,101 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Global - class Spend - # LLM Enterprise - View Spend Per Request Tag. Used by LLM UI - # - # Example Request: - # - # ``` - # curl -X GET "http://0.0.0.0:4000/spend/tags" -H "Authorization: Bearer sk-1234" - # ``` - # - # Spend with Start Date and End Date - # - # ``` - # curl -X GET "http://0.0.0.0:4000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" - # ``` - sig do - params( - end_date: T.nilable(String), - start_date: T.nilable(String), - tags: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T::Array[Hanzoai::Models::Global::SpendListTagsResponseItem]) - end - def list_tags( - # Time till which to view key spend - end_date: nil, - # Time from which to start viewing key spend - start_date: nil, - # comman separated tags to filter on - tags: nil, - request_options: {} - ) - end - - # ADMIN ONLY / MASTER KEY Only Endpoint - # - # Globally reset spend for All API Keys and Teams, maintain LLM_SpendLogs - # - # 1. LLM_SpendLogs will maintain the logs on spend, no data gets deleted from - # there - # 2. LLM_VerificationTokens spend will be set = 0 - # 3. LLM_TeamTable spend will be set = 0 - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def reset(request_options: {}) - end - - # Get Daily Spend per Team, based on specific startTime and endTime. Per team, - # view usage by each key, model [ { "group-by-day": "2024-05-10", "teams": [ { - # "team_name": "team-1" "spend": 10, "keys": [ "key": "1213", "usage": { - # "model-1": { "cost": 12.50, "input_tokens": 1000, "output_tokens": 5000, - # "requests": 100 }, "audio-modelname1": { "cost": 25.50, "seconds": 25, - # "requests": 50 }, } } ] ] } - sig do - params( - api_key: T.nilable(String), - customer_id: T.nilable(String), - end_date: T.nilable(String), - group_by: T.nilable(Hanzoai::Models::Global::SpendRetrieveReportParams::GroupBy::OrSymbol), - internal_user_id: T.nilable(String), - start_date: T.nilable(String), - team_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T::Array[Hanzoai::Models::Global::SpendRetrieveReportResponseItem]) - end - def retrieve_report( - # View spend for a specific api_key. Example api_key='sk-1234 - api_key: nil, - # View spend for a specific customer_id. Example customer_id='1234. Can be used in - # conjunction with team_id as well. - customer_id: nil, - # Time till which to view spend - end_date: nil, - # Group spend by internal team or customer or api_key - group_by: nil, - # View spend for a specific internal_user_id. Example internal_user_id='1234 - internal_user_id: nil, - # Time from which to start viewing spend - start_date: nil, - # View spend for a specific team_id. Example team_id='1234 - team_id: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/guardrails.rbi b/rbi/lib/hanzoai/resources/guardrails.rbi deleted file mode 100644 index ddde25a9..00000000 --- a/rbi/lib/hanzoai/resources/guardrails.rbi +++ /dev/null @@ -1,53 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Guardrails - # List the guardrails that are available on the proxy server - # - # 👉 [Guardrail docs](https://docs.hanzo.ai/docs/proxy/guardrails/quick_start) - # - # Example Request: - # - # ```bash - # curl -X GET "http://localhost:4000/guardrails/list" -H "Authorization: Bearer " - # ``` - # - # Example Response: - # - # ```json - # { - # "guardrails": [ - # { - # "guardrail_name": "bedrock-pre-guard", - # "guardrail_info": { - # "params": [ - # { - # "name": "toxicity_score", - # "type": "float", - # "description": "Score between 0-1 indicating content toxicity level" - # }, - # { - # "name": "pii_detection", - # "type": "boolean" - # } - # ] - # } - # } - # ] - # } - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(Hanzoai::Models::GuardrailListResponse) - end - def list(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/health.rbi b/rbi/lib/hanzoai/resources/health.rbi deleted file mode 100644 index 657912b6..00000000 --- a/rbi/lib/hanzoai/resources/health.rbi +++ /dev/null @@ -1,86 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Health - # 🚨 USE `/health/liveliness` to health check the proxy 🚨 - # - # See more 👉 https://docs.hanzo.ai/docs/proxy/health - # - # Check the health of all the endpoints in config.yaml - # - # To run health checks in the background, add this to config.yaml: - # - # ``` - # general_settings: - # # ... other settings - # background_health_checks: True - # ``` - # - # else, the health checks will be run on models when /health is called. - sig do - params( - model: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def check_all( - # Specify the model name (optional) - model: nil, - request_options: {} - ) - end - - # Unprotected endpoint for checking if worker is alive - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def check_liveliness(request_options: {}) - end - - # Unprotected endpoint for checking if worker is alive - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def check_liveness(request_options: {}) - end - - # Unprotected endpoint for checking if worker can receive requests - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def check_readiness(request_options: {}) - end - - # Use this admin-only endpoint to check if the service is healthy. - # - # Example: - # - # ``` - # curl -L -X GET 'http://0.0.0.0:4000/health/services?service=datadog' -H 'Authorization: Bearer sk-1234' - # ``` - sig do - params( - service: T.any(Hanzoai::Models::HealthCheckServicesParams::Service::OrSymbol, String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def check_services( - # Specify the service being hit. - service:, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/images/generations.rbi b/rbi/lib/hanzoai/resources/images/generations.rbi deleted file mode 100644 index 73d216b2..00000000 --- a/rbi/lib/hanzoai/resources/images/generations.rbi +++ /dev/null @@ -1,22 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Images - class Generations - # Image Generation - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/key.rbi b/rbi/lib/hanzoai/resources/key.rbi deleted file mode 100644 index ffb320e2..00000000 --- a/rbi/lib/hanzoai/resources/key.rbi +++ /dev/null @@ -1,735 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Key - sig { returns(Hanzoai::Resources::Key::Regenerate) } - attr_reader :regenerate - - # Update an existing API key's parameters. - # - # Parameters: - # - # - key: str - The key to update - # - key_alias: Optional[str] - User-friendly key alias - # - user_id: Optional[str] - User ID associated with key - # - team_id: Optional[str] - Team ID associated with key - # - budget_id: Optional[str] - The budget id associated with the key. Created by - # calling `/budget/new`. - # - models: Optional[list] - Model_name's a user is allowed to call - # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - # - enforced_params: Optional[List[str]] - List of enforced params for the key - # (Enterprise only). - # [Docs](https://docs.hanzo.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - # - spend: Optional[float] - Amount spent by key - # - max_budget: Optional[float] - Max budget for key - # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets - # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard - # stop). Will trigger a slack alert when this soft budget is reached. - # - max_parallel_requests: Optional[int] - Rate limit for parallel requests - # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", - # "app": "app2"} - # - tpm_limit: Optional[int] - Tokens per minute limit - # - rpm_limit: Optional[int] - Requests per minute limit - # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, - # "claude-v1": 200} - # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, - # "claude-v1": 200000} - # - allowed_cache_controls: Optional[list] - List of allowed cache control values - # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) - # - permissions: Optional[dict] - Key-specific permissions - # - send_invite_email: Optional[bool] - Send invite email to user_id - # - guardrails: Optional[List[str]] - List of active guardrails for the key - # - blocked: Optional[bool] - Whether the key is blocked - # - aliases: Optional[dict] - Model aliases for the key - - # [Docs](https://llm.vercel.app/docs/proxy/virtual_keys#model-aliases) - # - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. - # - temp_budget_increase: Optional[float] - Temporary budget increase for the key - # (Enterprise only). - # - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget - # increase (Enterprise only). - # - # Example: - # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "key": "sk-1234", - # "key_alias": "my-key", - # "user_id": "user-1234", - # "team_id": "team-1234", - # "max_budget": 100, - # "metadata": {"any_key": "any-val"}, - # }' - # ``` - sig do - params( - key: String, - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - temp_budget_expiry: T.nilable(Time), - temp_budget_increase: T.nilable(Float), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String), - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update( - # Body param: - key:, - # Body param: - aliases: nil, - # Body param: - allowed_cache_controls: nil, - # Body param: - blocked: nil, - # Body param: - budget_duration: nil, - # Body param: - budget_id: nil, - # Body param: - config: nil, - # Body param: - duration: nil, - # Body param: - enforced_params: nil, - # Body param: - guardrails: nil, - # Body param: - key_alias: nil, - # Body param: - max_budget: nil, - # Body param: - max_parallel_requests: nil, - # Body param: - metadata: nil, - # Body param: - model_max_budget: nil, - # Body param: - model_rpm_limit: nil, - # Body param: - model_tpm_limit: nil, - # Body param: - models: nil, - # Body param: - permissions: nil, - # Body param: - rpm_limit: nil, - # Body param: - spend: nil, - # Body param: - tags: nil, - # Body param: - team_id: nil, - # Body param: - temp_budget_expiry: nil, - # Body param: - temp_budget_increase: nil, - # Body param: - tpm_limit: nil, - # Body param: - user_id: nil, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # List all keys for a given user / team / organization. - # - # Returns: { "keys": List[str] or List[UserAPIKeyAuth], "total_count": int, - # "current_page": int, "total_pages": int, } - sig do - params( - include_team_keys: T::Boolean, - key_alias: T.nilable(String), - organization_id: T.nilable(String), - page: Integer, - return_full_object: T::Boolean, - size: Integer, - team_id: T.nilable(String), - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::KeyListResponse) - end - def list( - # Include all keys for teams that user is an admin of. - include_team_keys: nil, - # Filter keys by key alias - key_alias: nil, - # Filter keys by organization ID - organization_id: nil, - # Page number - page: nil, - # Return full key object - return_full_object: nil, - # Page size - size: nil, - # Filter keys by team ID - team_id: nil, - # Filter keys by user ID - user_id: nil, - request_options: {} - ) - end - - # Delete a key from the key management system. - # - # Parameters:: - # - # - keys (List[str]): A list of keys or hashed keys to delete. Example {"keys": - # ["sk-QWrxEynunsNpV1zT48HIrw", - # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} - # - key_aliases (List[str]): A list of key aliases to delete. Can be passed - # instead of `keys`.Example {"key_aliases": ["alias1", "alias2"]} - # - # Returns: - # - # - deleted_keys (List[str]): A list of deleted keys. Example {"deleted_keys": - # ["sk-QWrxEynunsNpV1zT48HIrw", - # "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} - # - # Example: - # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "keys": ["sk-QWrxEynunsNpV1zT48HIrw"] - # }' - # ``` - # - # Raises: HTTPException: If an error occurs during key deletion. - sig do - params( - key_aliases: T.nilable(T::Array[String]), - keys: T.nilable(T::Array[String]), - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete( - # Body param: - key_aliases: nil, - # Body param: - keys: nil, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # Block an Virtual key from making any requests. - # - # Parameters: - # - # - key: str - The key to block. Can be either the unhashed key (sk-...) or the - # hashed key value - # - # Example: - # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" - # }' - # ``` - # - # Note: This is an admin-only endpoint. Only proxy admins can block keys. - sig do - params( - key: String, - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.nilable(Hanzoai::Models::KeyBlockResponse)) - end - def block( - # Body param: - key:, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # Check the health of the key - # - # Checks: - # - # - If key based logging is configured correctly - sends a test log - # - # Usage - # - # Pass the key in the request header - # - # ```bash - # curl -X POST "http://localhost:4000/key/health" -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" - # ``` - # - # Response when logging callbacks are setup correctly: - # - # ```json - # { - # "key": "healthy", - # "logging_callbacks": { - # "callbacks": ["gcs_bucket"], - # "status": "healthy", - # "details": "No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']" - # } - # } - # ``` - # - # Response when logging callbacks are not setup correctly: - # - # ```json - # { - # "key": "unhealthy", - # "logging_callbacks": { - # "callbacks": ["gcs_bucket"], - # "status": "unhealthy", - # "details": "Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information." - # } - # } - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(Hanzoai::Models::KeyCheckHealthResponse) - end - def check_health(request_options: {}) - end - - # Generate an API key based on the provided data. - # - # Docs: https://docs.hanzo.ai/docs/proxy/virtual_keys - # - # Parameters: - # - # - duration: Optional[str] - Specify the length of time the token is valid for. - # You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days - # ("30d"). - # - key_alias: Optional[str] - User defined key alias - # - key: Optional[str] - User defined key value. If not set, a 16-digit unique - # sk-key is created for you. - # - team_id: Optional[str] - The team id of the key - # - user_id: Optional[str] - The user id of the key - # - budget_id: Optional[str] - The budget id associated with the key. Created by - # calling `/budget/new`. - # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, - # key is allowed to call all models) - # - aliases: Optional[dict] - Any alias mappings, on top of anything in the - # config.yaml model list. - - # https://docs.hanzo.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - # - config: Optional[dict] - any key-specific configs, overrides config in - # config.yaml - # - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by - # proxy whenever key is used. - # https://docs.hanzo.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - # - send_invite_email: Optional[bool] - Whether to send an invite email to the - # user_id, with the generate key - # - max_budget: Optional[float] - Specify max budget for a given key. - # - budget_duration: Optional[str] - Budget is reset at the end of specified - # duration. If not set, budget is never reset. You can set duration as seconds - # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - # - max_parallel_requests: Optional[int] - Rate limit a user based on the number - # of parallel requests. Raises 429 error, if user's parallel requests > x. - # - metadata: Optional[dict] - Metadata for key, store information for key. - # Example metadata = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" - # } - # - guardrails: Optional[List[str]] - List of active guardrails for the key - # - permissions: Optional[dict] - key-specific permissions. Currently just used - # for turning off pii masking (if connected). Example - {"pii": false} - # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets - # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then - # no model specific budget. - # - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - - # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model - # specific rpm limit. - # - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - - # {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model - # specific tpm limit. - # - allowed_cache_controls: Optional[list] - List of allowed cache control values. - # Example - ["no-cache", "no-store"]. See all values - - # https://docs.hanzo.ai/docs/proxy/caching#turn-on--off-caching-per-request - # - blocked: Optional[bool] - Whether the key is blocked. - # - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per - # minute) - # - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per - # minute) - # - soft_budget: Optional[float] - Specify soft budget for a given key. Will - # trigger a slack alert when this soft budget is reached. - # - tags: Optional[List[str]] - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - enforced_params: Optional[List[str]] - List of enforced params for the key - # (Enterprise only). - # [Docs](https://docs.hanzo.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - # - # Examples: - # - # 1. Allow users to turn on/off pii masking - # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "permissions": {"allow_pii_controls": true} - # }' - # ``` - # - # Returns: - # - # - key: (str) The generated api key - # - expires: (datetime) Datetime object for when key expires. - # - user_id: (str) Unique user id - used for tracking spend across multiple keys - # for same user id. - sig do - params( - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - key: T.nilable(String), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - soft_budget: T.nilable(Float), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String), - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::GenerateKeyResponse) - end - def generate( - # Body param: - aliases: nil, - # Body param: - allowed_cache_controls: nil, - # Body param: - blocked: nil, - # Body param: - budget_duration: nil, - # Body param: - budget_id: nil, - # Body param: - config: nil, - # Body param: - duration: nil, - # Body param: - enforced_params: nil, - # Body param: - guardrails: nil, - # Body param: - key: nil, - # Body param: - key_alias: nil, - # Body param: - max_budget: nil, - # Body param: - max_parallel_requests: nil, - # Body param: - metadata: nil, - # Body param: - model_max_budget: nil, - # Body param: - model_rpm_limit: nil, - # Body param: - model_tpm_limit: nil, - # Body param: - models: nil, - # Body param: - permissions: nil, - # Body param: - rpm_limit: nil, - # Body param: - send_invite_email: nil, - # Body param: - soft_budget: nil, - # Body param: - spend: nil, - # Body param: - tags: nil, - # Body param: - team_id: nil, - # Body param: - tpm_limit: nil, - # Body param: - user_id: nil, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # Regenerate an existing API key while optionally updating its parameters. - # - # Parameters: - # - # - key: str (path parameter) - The key to regenerate - # - data: Optional[RegenerateKeyRequest] - Request body containing optional - # parameters to update - # - key_alias: Optional[str] - User-friendly key alias - # - user_id: Optional[str] - User ID associated with key - # - team_id: Optional[str] - Team ID associated with key - # - models: Optional[list] - Model_name's a user is allowed to call - # - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - # - spend: Optional[float] - Amount spent by key - # - max_budget: Optional[float] - Max budget for key - # - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets - # {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - # - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - # - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). - # Will trigger a slack alert when this soft budget is reached. - # - max_parallel_requests: Optional[int] - Rate limit for parallel requests - # - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", - # "app": "app2"} - # - tpm_limit: Optional[int] - Tokens per minute limit - # - rpm_limit: Optional[int] - Requests per minute limit - # - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, - # "claude-v1": 200} - # - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": - # 100000, "claude-v1": 200000} - # - allowed_cache_controls: Optional[list] - List of allowed cache control - # values - # - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) - # - permissions: Optional[dict] - Key-specific permissions - # - guardrails: Optional[List[str]] - List of active guardrails for the key - # - blocked: Optional[bool] - Whether the key is blocked - # - # Returns: - # - # - GenerateKeyResponse containing the new key and its updated parameters - # - # Example: - # - # ```bash - # curl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "max_budget": 100, - # "metadata": {"team": "core-infra"}, - # "models": ["gpt-4", "gpt-3.5-turbo"] - # }' - # ``` - # - # Note: This is an Enterprise feature. It requires a premium license to use. - sig do - params( - path_key: String, - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - enforced_params: T.nilable(T::Array[String]), - guardrails: T.nilable(T::Array[String]), - body_key: T.nilable(String), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - new_master_key: T.nilable(String), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - soft_budget: T.nilable(Float), - spend: T.nilable(Float), - tags: T.nilable(T::Array[String]), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_id: T.nilable(String), - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.nilable(Hanzoai::Models::GenerateKeyResponse)) - end - def regenerate_by_key( - # Path param: - path_key, - # Body param: - aliases: nil, - # Body param: - allowed_cache_controls: nil, - # Body param: - blocked: nil, - # Body param: - budget_duration: nil, - # Body param: - budget_id: nil, - # Body param: - config: nil, - # Body param: - duration: nil, - # Body param: - enforced_params: nil, - # Body param: - guardrails: nil, - # Body param: - body_key: nil, - # Body param: - key_alias: nil, - # Body param: - max_budget: nil, - # Body param: - max_parallel_requests: nil, - # Body param: - metadata: nil, - # Body param: - model_max_budget: nil, - # Body param: - model_rpm_limit: nil, - # Body param: - model_tpm_limit: nil, - # Body param: - models: nil, - # Body param: - new_master_key: nil, - # Body param: - permissions: nil, - # Body param: - rpm_limit: nil, - # Body param: - send_invite_email: nil, - # Body param: - soft_budget: nil, - # Body param: - spend: nil, - # Body param: - tags: nil, - # Body param: - team_id: nil, - # Body param: - tpm_limit: nil, - # Body param: - user_id: nil, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # Retrieve information about a key. Parameters: key: Optional[str] = Query - # parameter representing the key in the request user_api_key_dict: UserAPIKeyAuth - # = Dependency representing the user's API key Returns: Dict containing the key - # and its associated information - # - # Example Curl: - # - # ``` - # curl -X GET "http://0.0.0.0:4000/key/info?key=sk-02Wr4IAlN3NvPXvL5JVvDA" -H "Authorization: Bearer sk-1234" - # ``` - # - # Example Curl - if no key is passed, it will use the Key Passed in Authorization - # Header - # - # ``` - # curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-02Wr4IAlN3NvPXvL5JVvDA" - # ``` - sig do - params( - key: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve_info( - # Key in the request parameters - key: nil, - request_options: {} - ) - end - - # Unblock a Virtual key to allow it to make requests again. - # - # Parameters: - # - # - key: str - The key to unblock. Can be either the unhashed key (sk-...) or the - # hashed key value - # - # Example: - # - # ```bash - # curl --location 'http://0.0.0.0:4000/key/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" - # }' - # ``` - # - # Note: This is an admin-only endpoint. Only proxy admins can unblock keys. - sig do - params( - key: String, - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def unblock( - # Body param: - key:, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/langfuse.rbi b/rbi/lib/hanzoai/resources/langfuse.rbi deleted file mode 100644 index 9d832452..00000000 --- a/rbi/lib/hanzoai/resources/langfuse.rbi +++ /dev/null @@ -1,77 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Langfuse - # Call Langfuse via LLM proxy. Works with Langfuse SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # Call Langfuse via LLM proxy. Works with Langfuse SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # Call Langfuse via LLM proxy. Works with Langfuse SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # Call Langfuse via LLM proxy. Works with Langfuse SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # Call Langfuse via LLM proxy. Works with Langfuse SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/langfuse) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/model.rbi b/rbi/lib/hanzoai/resources/model.rbi deleted file mode 100644 index 7cdcaa31..00000000 --- a/rbi/lib/hanzoai/resources/model.rbi +++ /dev/null @@ -1,53 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Model - sig { returns(Hanzoai::Resources::Model::Info) } - attr_reader :info - - sig { returns(Hanzoai::Resources::Model::Update) } - attr_reader :update - - # Allows adding new models to the model list in the config.yaml - sig do - params( - llm_params: T.any(Hanzoai::Models::ModelCreateParams::LlmParams, Hanzoai::Internal::AnyHash), - model_info: T.any(Hanzoai::Models::ModelInfo, Hanzoai::Internal::AnyHash), - model_name: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create( - # LLM Params with 'model' requirement - used for completions - llm_params:, - model_info:, - model_name:, - request_options: {} - ) - end - - # Allows deleting models in the model list in the config.yaml - sig do - params( - id: String, - request_options: T.nilable( - T.any( - Hanzoai::RequestOptions, - Hanzoai::Internal::AnyHash - ) - ) - ) - .returns(T.anything) - end - def delete(id:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/model/info.rbi b/rbi/lib/hanzoai/resources/model/info.rbi deleted file mode 100644 index 12b4dfea..00000000 --- a/rbi/lib/hanzoai/resources/model/info.rbi +++ /dev/null @@ -1,54 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Model - class Info - # Provides more info about each model in /models, including config.yaml - # descriptions (except api key and api base) - # - # Parameters: llm_model_id: Optional[str] = None (this is the value of - # `x-llm-model-id` returned in response headers) - # - # - When llm_model_id is passed, it will return the info for that specific model - # - When llm_model_id is not passed, it will return the info for all models - # - # Returns: Returns a dictionary containing information about each model. - # - # Example Response: - # - # ```json - # { - # "data": [ - # { - # "model_name": "fake-openai-endpoint", - # "llm_params": { - # "api_base": "https://exampleopenaiendpoint-production.up.railway.app/", - # "model": "openai/fake" - # }, - # "model_info": { - # "id": "112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af", - # "db_model": false - # } - # } - # ] - # } - # ``` - sig do - params( - llm_model_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list(llm_model_id: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/model/update.rbi b/rbi/lib/hanzoai/resources/model/update.rbi deleted file mode 100644 index 36059ea1..00000000 --- a/rbi/lib/hanzoai/resources/model/update.rbi +++ /dev/null @@ -1,52 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Model - class Update - # Edit existing model params - sig do - params( - llm_params: T.nilable(T.any(Hanzoai::Models::Model::UpdateDeployment::LlmParams, Hanzoai::Internal::AnyHash)), - model_info: T.nilable(T.any(Hanzoai::Models::ModelInfo, Hanzoai::Internal::AnyHash)), - model_name: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def full(llm_params: nil, model_info: nil, model_name: nil, request_options: {}) - end - - # PATCH Endpoint for partial model updates. - # - # Only updates the fields specified in the request while preserving other existing - # values. Follows proper PATCH semantics by only modifying provided fields. - # - # Args: model_id: The ID of the model to update patch_data: The fields to update - # and their new values user_api_key_dict: User authentication information - # - # Returns: Updated model information - # - # Raises: ProxyException: For various error conditions including authentication - # and database errors - sig do - params( - model_id: String, - llm_params: T.nilable(T.any(Hanzoai::Models::Model::UpdateDeployment::LlmParams, Hanzoai::Internal::AnyHash)), - model_info: T.nilable(T.any(Hanzoai::Models::ModelInfo, Hanzoai::Internal::AnyHash)), - model_name: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def partial(model_id, llm_params: nil, model_info: nil, model_name: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/model_group.rbi b/rbi/lib/hanzoai/resources/model_group.rbi deleted file mode 100644 index 6f5f33b5..00000000 --- a/rbi/lib/hanzoai/resources/model_group.rbi +++ /dev/null @@ -1,164 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class ModelGroup - # Get information about all the deployments on llm proxy, including config.yaml - # descriptions (except api key and api base) - # - # - /model_group/info returns all model groups. End users of proxy should use - # /model_group/info since those models will be used for /chat/completions, - # /embeddings, etc. - # - /model_group/info?model_group=rerank-english-v3.0 returns all model groups for - # a specific model group (`model_name` in config.yaml) - # - # Example Request (All Models): - # - # ```shell - # curl -X 'GET' 'http://localhost:4000/model_group/info' -H 'accept: application/json' -H 'x-api-key: sk-1234' - # ``` - # - # Example Request (Specific Model Group): - # - # ```shell - # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=rerank-english-v3.0' -H 'accept: application/json' -H 'Authorization: Bearer sk-1234' - # ``` - # - # Example Request (Specific Wildcard Model Group): (e.g. `model_name: openai/*` on - # config.yaml) - # - # ```shell - # curl -X 'GET' 'http://localhost:4000/model_group/info?model_group=openai/tts-1' - # -H 'accept: application/json' -H 'Authorization: Bearersk-1234' - # ``` - # - # Learn how to use and set wildcard models - # [here](https://docs.hanzo.ai/docs/wildcard_routing) - # - # Example Response: - # - # ```json - # { - # "data": [ - # { - # "model_group": "rerank-english-v3.0", - # "providers": ["cohere"], - # "max_input_tokens": null, - # "max_output_tokens": null, - # "input_cost_per_token": 0.0, - # "output_cost_per_token": 0.0, - # "mode": null, - # "tpm": null, - # "rpm": null, - # "supports_parallel_function_calling": false, - # "supports_vision": false, - # "supports_function_calling": false, - # "supported_openai_params": [ - # "stream", - # "temperature", - # "max_tokens", - # "logit_bias", - # "top_p", - # "frequency_penalty", - # "presence_penalty", - # "stop", - # "n", - # "extra_headers" - # ] - # }, - # { - # "model_group": "gpt-3.5-turbo", - # "providers": ["openai"], - # "max_input_tokens": 16385.0, - # "max_output_tokens": 4096.0, - # "input_cost_per_token": 1.5e-6, - # "output_cost_per_token": 2e-6, - # "mode": "chat", - # "tpm": null, - # "rpm": null, - # "supports_parallel_function_calling": false, - # "supports_vision": false, - # "supports_function_calling": true, - # "supported_openai_params": [ - # "frequency_penalty", - # "logit_bias", - # "logprobs", - # "top_logprobs", - # "max_tokens", - # "max_completion_tokens", - # "n", - # "presence_penalty", - # "seed", - # "stop", - # "stream", - # "stream_options", - # "temperature", - # "top_p", - # "tools", - # "tool_choice", - # "function_call", - # "functions", - # "max_retries", - # "extra_headers", - # "parallel_tool_calls", - # "response_format" - # ] - # }, - # { - # "model_group": "llava-hf", - # "providers": ["openai"], - # "max_input_tokens": null, - # "max_output_tokens": null, - # "input_cost_per_token": 0.0, - # "output_cost_per_token": 0.0, - # "mode": null, - # "tpm": null, - # "rpm": null, - # "supports_parallel_function_calling": false, - # "supports_vision": true, - # "supports_function_calling": false, - # "supported_openai_params": [ - # "frequency_penalty", - # "logit_bias", - # "logprobs", - # "top_logprobs", - # "max_tokens", - # "max_completion_tokens", - # "n", - # "presence_penalty", - # "seed", - # "stop", - # "stream", - # "stream_options", - # "temperature", - # "top_p", - # "tools", - # "tool_choice", - # "function_call", - # "functions", - # "max_retries", - # "extra_headers", - # "parallel_tool_calls", - # "response_format" - # ] - # } - # ] - # } - # ``` - sig do - params( - model_group: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve_info(model_group: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/models.rbi b/rbi/lib/hanzoai/resources/models.rbi deleted file mode 100644 index e098d884..00000000 --- a/rbi/lib/hanzoai/resources/models.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Models - # Use `/model/info` - to get detailed model information, example - pricing, mode, - # etc. - # - # This is just for compatibility with openai projects like aider. - sig do - params( - return_wildcard_routes: T.nilable(T::Boolean), - team_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list(return_wildcard_routes: nil, team_id: nil, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/moderations.rbi b/rbi/lib/hanzoai/resources/moderations.rbi deleted file mode 100644 index 9a81c79f..00000000 --- a/rbi/lib/hanzoai/resources/moderations.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Moderations - # The moderations endpoint is a tool you can use to check whether content complies - # with an LLM Providers policies. - # - # Quick Start - # - # ``` - # curl --location 'http://0.0.0.0:4000/moderations' --header 'Content-Type: application/json' --header 'Authorization: Bearer sk-1234' --data '{"input": "Sample text goes here", "model": "text-moderation-stable"}' - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/openai.rbi b/rbi/lib/hanzoai/resources/openai.rbi deleted file mode 100644 index d80697bf..00000000 --- a/rbi/lib/hanzoai/resources/openai.rbi +++ /dev/null @@ -1,75 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class OpenAI - sig { returns(Hanzoai::Resources::OpenAI::Deployments) } - attr_reader :deployments - - # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # Simple pass-through for OpenAI. Use this if you want to directly send a request - # to OpenAI. - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/openai/deployments.rbi b/rbi/lib/hanzoai/resources/openai/deployments.rbi deleted file mode 100644 index b3350b54..00000000 --- a/rbi/lib/hanzoai/resources/openai/deployments.rbi +++ /dev/null @@ -1,63 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class OpenAI - class Deployments - sig { returns(Hanzoai::Resources::OpenAI::Deployments::Chat) } - attr_reader :chat - - # Follows the exact same API spec as - # `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions` - # - # ```bash - # curl -X POST http://localhost:4000/v1/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-3.5-turbo-instruct", - # "prompt": "Once upon a time", - # "max_tokens": 50, - # "temperature": 0.7 - # }' - # ``` - sig do - params( - model: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def complete(model, request_options: {}) - end - - # Follows the exact same API spec as - # `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings` - # - # ```bash - # curl -X POST http://localhost:4000/v1/embeddings - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "text-embedding-ada-002", - # "input": "The quick brown fox jumps over the lazy dog" - # }' - # ``` - sig do - params( - model: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def embed(model, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/openai/deployments/chat.rbi b/rbi/lib/hanzoai/resources/openai/deployments/chat.rbi deleted file mode 100644 index 767652da..00000000 --- a/rbi/lib/hanzoai/resources/openai/deployments/chat.rbi +++ /dev/null @@ -1,43 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class OpenAI - class Deployments - class Chat - # Follows the exact same API spec as - # `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat` - # - # ```bash - # curl -X POST http://localhost:4000/v1/chat/completions - # -H "Content-Type: application/json" - # -H "Authorization: Bearer sk-1234" - # -d '{ - # "model": "gpt-4o", - # "messages": [ - # { - # "role": "user", - # "content": "Hello!" - # } - # ] - # }' - # ``` - sig do - params( - model: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def complete(model, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/organization.rbi b/rbi/lib/hanzoai/resources/organization.rbi deleted file mode 100644 index 0578cd46..00000000 --- a/rbi/lib/hanzoai/resources/organization.rbi +++ /dev/null @@ -1,264 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Organization - sig { returns(Hanzoai::Resources::Organization::Info) } - attr_reader :info - - # Allow orgs to own teams - # - # Set org level budgets + model access. - # - # Only admins can create orgs. - # - # # Parameters - # - # - organization_alias: _str_ - The name of the organization. - # - models: _List_ - The models the organization has access to. - # - budget_id: _Optional[str]_ - The id for a budget (tpm/rpm/max budget) for the - # organization. - # - # ### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS - # - # - max_budget: _Optional[float]_ - Max budget for org - # - tpm_limit: _Optional[int]_ - Max tpm limit for org - # - rpm_limit: _Optional[int]_ - Max rpm limit for org - # - max_parallel_requests: _Optional[int]_ - [Not Implemented Yet] Max parallel - # requests for org - # - soft_budget: _Optional[float]_ - [Not Implemented Yet] Get a slack alert when - # this soft budget is reached. Don't block requests. - # - model_max_budget: _Optional[dict]_ - Max budget for a specific model - # - budget_duration: _Optional[str]_ - Frequency of reseting org budget - # - metadata: _Optional[dict]_ - Metadata for organization, store information for - # organization. Example metadata - {"extra_info": "some info"} - # - blocked: _bool_ - Flag indicating if the org is blocked or not - will stop all - # calls from keys with this org_id. - # - tags: _Optional[List[str]]_ - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - organization_id: _Optional[str]_ - The organization id of the team. Default is - # None. Create via `/organization/new`. - # - model_aliases: Optional[dict] - Model aliases for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - # - # Case 1: Create new org **without** a budget_id - # - # ```bash - # curl --location 'http://0.0.0.0:4000/organization/new' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "organization_alias": "my-secret-org", - # "models": ["model1", "model2"], - # "max_budget": 100 - # }' - # - # - # ``` - # - # Case 2: Create new org **with** a budget_id - # - # ```bash - # curl --location 'http://0.0.0.0:4000/organization/new' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "organization_alias": "my-secret-org", - # "models": ["model1", "model2"], - # "budget_id": "428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689" - # }' - # ``` - sig do - params( - organization_alias: String, - budget_duration: T.nilable(String), - budget_id: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - soft_budget: T.nilable(Float), - tpm_limit: T.nilable(Integer), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::OrganizationCreateResponse) - end - def create( - organization_alias:, - budget_duration: nil, - budget_id: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - models: nil, - organization_id: nil, - rpm_limit: nil, - soft_budget: nil, - tpm_limit: nil, - request_options: {} - ) - end - - # Update an organization - sig do - params( - budget_id: T.nilable(String), - metadata: T.nilable(T.anything), - models: T.nilable(T::Array[String]), - organization_alias: T.nilable(String), - organization_id: T.nilable(String), - spend: T.nilable(Float), - updated_by: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::OrganizationUpdateResponse) - end - def update( - budget_id: nil, - metadata: nil, - models: nil, - organization_alias: nil, - organization_id: nil, - spend: nil, - updated_by: nil, - request_options: {} - ) - end - - # ``` - # curl --location --request GET 'http://0.0.0.0:4000/organization/list' --header 'Authorization: Bearer sk-1234' - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T::Array[Hanzoai::Models::OrganizationListResponseItem]) - end - def list(request_options: {}) - end - - # Delete an organization - # - # # Parameters: - # - # - organization_ids: List[str] - The organization ids to delete. - sig do - params( - organization_ids: T::Array[String], - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T::Array[Hanzoai::Models::OrganizationDeleteResponseItem]) - end - def delete(organization_ids:, request_options: {}) - end - - # [BETA] - # - # Add new members (either via user_email or user_id) to an organization - # - # If user doesn't exist, new user row will also be added to User Table - # - # Only proxy_admin or org_admin of organization, allowed to access this endpoint. - # - # # Parameters: - # - # - organization_id: str (required) - # - member: Union[List[Member], Member] (required) - # - role: Literal[LLMUserRoles] (required) - # - user_id: Optional[str] - # - user_email: Optional[str] - # - # Note: Either user_id or user_email must be provided for each member. - # - # Example: - # - # ``` - # curl -X POST 'http://0.0.0.0:4000/organization/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{ - # "organization_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", - # "member": { - # "role": "internal_user", - # "user_id": "dev247652@hanzo.ai" - # }, - # "max_budget_in_organization": 100.0 - # }' - # ``` - # - # The following is executed in this function: - # - # 1. Check if organization exists - # 2. Creates a new Internal User if the user_id or user_email is not found in - # LLM_UserTable - # 3. Add Internal User to the `LLM_OrganizationMembership` table - sig do - params( - member: T.any( - T::Array[T.any(Hanzoai::Models::OrgMember, Hanzoai::Internal::AnyHash)], - Hanzoai::Models::OrgMember, - Hanzoai::Internal::AnyHash - ), - organization_id: String, - max_budget_in_organization: T.nilable(Float), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::OrganizationAddMemberResponse) - end - def add_member(member:, organization_id:, max_budget_in_organization: nil, request_options: {}) - end - - # Delete a member from an organization - sig do - params( - organization_id: String, - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete_member(organization_id:, user_email: nil, user_id: nil, request_options: {}) - end - - # Update a member's role in an organization - sig do - params( - organization_id: String, - max_budget_in_organization: T.nilable(Float), - role: T.nilable(Hanzoai::Models::OrganizationUpdateMemberParams::Role::OrSymbol), - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::OrganizationUpdateMemberResponse) - end - def update_member( - organization_id:, - max_budget_in_organization: nil, - # Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can - # login, view all own keys, view all spend ORG_ADMIN: admin over a specific - # organization, can create teams, users only within their organization - # - # Internal User Roles: INTERNAL_USER: can login, view/create/delete their own - # keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, - # view their own spend - # - # Team Roles: TEAM: used for JWT auth - # - # Customer Roles: CUSTOMER: External users -> these are customers - role: nil, - user_email: nil, - user_id: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/organization/info.rbi b/rbi/lib/hanzoai/resources/organization/info.rbi deleted file mode 100644 index 3456b580..00000000 --- a/rbi/lib/hanzoai/resources/organization/info.rbi +++ /dev/null @@ -1,36 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Organization - class Info - # Get the org specific information - sig do - params( - organization_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::Organization::InfoRetrieveResponse) - end - def retrieve(organization_id:, request_options: {}) - end - - # DEPRECATED: Use GET /organization/info instead - sig do - params( - organizations: T::Array[String], - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def deprecated(organizations:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/provider.rbi b/rbi/lib/hanzoai/resources/provider.rbi deleted file mode 100644 index ab6d1d2c..00000000 --- a/rbi/lib/hanzoai/resources/provider.rbi +++ /dev/null @@ -1,63 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Provider - # Provider Budget Routing - Get Budget, Spend Details - # https://docs.hanzo.ai/docs/proxy/provider_budget_routing - # - # Use this endpoint to check current budget, spend and budget reset time for a - # provider - # - # Example Request - # - # ```bash - # curl -X GET http://localhost:4000/provider/budgets -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" - # ``` - # - # Example Response - # - # ```json - # { - # "providers": { - # "openai": { - # "budget_limit": 1e-12, - # "time_period": "1d", - # "spend": 0.0, - # "budget_reset_at": null - # }, - # "azure": { - # "budget_limit": 100.0, - # "time_period": "1d", - # "spend": 0.0, - # "budget_reset_at": null - # }, - # "anthropic": { - # "budget_limit": 100.0, - # "time_period": "10d", - # "spend": 0.0, - # "budget_reset_at": null - # }, - # "vertex_ai": { - # "budget_limit": 100.0, - # "time_period": "12d", - # "spend": 0.0, - # "budget_reset_at": null - # } - # } - # } - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(Hanzoai::Models::ProviderListBudgetsResponse) - end - def list_budgets(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/rerank.rbi b/rbi/lib/hanzoai/resources/rerank.rbi deleted file mode 100644 index 375acb38..00000000 --- a/rbi/lib/hanzoai/resources/rerank.rbi +++ /dev/null @@ -1,36 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Rerank - # Rerank - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create(request_options: {}) - end - - # Rerank - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create_v1(request_options: {}) - end - - # Rerank - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create_v2(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/responses.rbi b/rbi/lib/hanzoai/resources/responses.rbi deleted file mode 100644 index 0d367ed2..00000000 --- a/rbi/lib/hanzoai/resources/responses.rbi +++ /dev/null @@ -1,67 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Responses - sig { returns(Hanzoai::Resources::Responses::InputItems) } - attr_reader :input_items - - # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses - # - # ```bash - # curl -X POST http://localhost:4000/v1/responses -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ - # "model": "gpt-4o", - # "input": "Tell me about AI" - # }' - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create(request_options: {}) - end - - # Get a response by ID. - # - # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses/get - # - # ```bash - # curl -X GET http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" - # ``` - sig do - params( - response_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(response_id, request_options: {}) - end - - # Delete a response by ID. - # - # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses/delete - # - # ```bash - # curl -X DELETE http://localhost:4000/v1/responses/resp_abc123 -H "Authorization: Bearer sk-1234" - # ``` - sig do - params( - response_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(response_id, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/responses/input_items.rbi b/rbi/lib/hanzoai/resources/responses/input_items.rbi deleted file mode 100644 index c620f452..00000000 --- a/rbi/lib/hanzoai/resources/responses/input_items.rbi +++ /dev/null @@ -1,32 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Responses - class InputItems - # Get input items for a response. - # - # Follows the OpenAI Responses API spec: - # https://platform.openai.com/docs/api-reference/responses/input-items - # - # ```bash - # curl -X GET http://localhost:4000/v1/responses/resp_abc123/input_items -H "Authorization: Bearer sk-1234" - # ``` - sig do - params( - response_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list(response_id, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/routes.rbi b/rbi/lib/hanzoai/resources/routes.rbi deleted file mode 100644 index cdb7ee44..00000000 --- a/rbi/lib/hanzoai/resources/routes.rbi +++ /dev/null @@ -1,20 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Routes - # Get a list of available routes in the FastAPI application. - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def list(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/settings.rbi b/rbi/lib/hanzoai/resources/settings.rbi deleted file mode 100644 index 9a242582..00000000 --- a/rbi/lib/hanzoai/resources/settings.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Settings - # Returns a list of llm level settings - # - # This is useful for debugging and ensuring the proxy server is configured - # correctly. - # - # Response schema: - # - # ``` - # { - # "alerting": _alerting, - # "llm.callbacks": llm_callbacks, - # "llm.input_callback": llm_input_callbacks, - # "llm.failure_callback": llm_failure_callbacks, - # "llm.success_callback": llm_success_callbacks, - # "llm._async_success_callback": llm_async_success_callbacks, - # "llm._async_failure_callback": llm_async_failure_callbacks, - # "llm._async_input_callback": llm_async_input_callbacks, - # "all_llm_callbacks": all_llm_callbacks, - # "num_callbacks": len(all_llm_callbacks), - # "num_alerting": _num_alerting, - # "llm.request_timeout": llm.request_timeout, - # } - # ``` - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def retrieve(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/spend.rbi b/rbi/lib/hanzoai/resources/spend.rbi deleted file mode 100644 index e6868bf5..00000000 --- a/rbi/lib/hanzoai/resources/spend.rbi +++ /dev/null @@ -1,154 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Spend - # Accepts all the params of completion_cost. - # - # Calculate spend **before** making call: - # - # Note: If you see a spend of $0.0 you need to set custom_pricing for your model: - # https://docs.hanzo.ai/docs/proxy/custom_pricing - # - # ``` - # curl --location 'http://localhost:4000/spend/calculate' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "model": "anthropic.claude-v2", - # "messages": [{"role": "user", "content": "Hey, how'''s it going?"}] - # }' - # ``` - # - # Calculate spend **after** making call: - # - # ``` - # curl --location 'http://localhost:4000/spend/calculate' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data '{ - # "completion_response": { - # "id": "chatcmpl-123", - # "object": "chat.completion", - # "created": 1677652288, - # "model": "gpt-3.5-turbo-0125", - # "system_fingerprint": "fp_44709d6fcb", - # "choices": [{ - # "index": 0, - # "message": { - # "role": "assistant", - # "content": "Hello there, how may I assist you today?" - # }, - # "logprobs": null, - # "finish_reason": "stop" - # }] - # "usage": { - # "prompt_tokens": 9, - # "completion_tokens": 12, - # "total_tokens": 21 - # } - # } - # }' - # ``` - sig do - params( - completion_response: T.nilable(T.anything), - messages: T.nilable(T::Array[T.anything]), - model: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def calculate_spend(completion_response: nil, messages: nil, model: nil, request_options: {}) - end - - # View all spend logs, if request_id is provided, only logs for that request_id - # will be returned - # - # Example Request for all logs - # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs" -H "Authorization: Bearer sk-1234" - # ``` - # - # Example Request for specific request_id - # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs?request_id=chatcmpl-6dcb2540-d3d7-4e49-bb27-291f863f112e" -H "Authorization: Bearer sk-1234" - # ``` - # - # Example Request for specific api_key - # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs?api_key=sk-Fn8Ej39NkBQmUagFEoUWPQ" -H "Authorization: Bearer sk-1234" - # ``` - # - # Example Request for specific user_id - # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/logs?user_id=z@hanzo.ai" -H "Authorization: Bearer sk-1234" - # ``` - sig do - params( - api_key: T.nilable(String), - end_date: T.nilable(String), - request_id: T.nilable(String), - start_date: T.nilable(String), - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T::Array[Hanzoai::Models::SpendListLogsResponseItem]) - end - def list_logs( - # Get spend logs based on api key - api_key: nil, - # Time till which to view key spend - end_date: nil, - # request_id to get spend logs for specific request_id. If none passed then pass - # spend logs for all requests - request_id: nil, - # Time from which to start viewing key spend - start_date: nil, - # Get spend logs based on user_id - user_id: nil, - request_options: {} - ) - end - - # LLM Enterprise - View Spend Per Request Tag - # - # Example Request: - # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/tags" -H "Authorization: Bearer sk-1234" - # ``` - # - # Spend with Start Date and End Date - # - # ``` - # curl -X GET "http://0.0.0.0:8000/spend/tags?start_date=2022-01-01&end_date=2022-02-01" -H "Authorization: Bearer sk-1234" - # ``` - sig do - params( - end_date: T.nilable(String), - start_date: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T::Array[Hanzoai::Models::SpendListTagsResponseItem]) - end - def list_tags( - # Time till which to view key spend - end_date: nil, - # Time from which to start viewing key spend - start_date: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/team.rbi b/rbi/lib/hanzoai/resources/team.rbi deleted file mode 100644 index 6a293bba..00000000 --- a/rbi/lib/hanzoai/resources/team.rbi +++ /dev/null @@ -1,497 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Team - sig { returns(Hanzoai::Resources::Team::Model) } - attr_reader :model - - sig { returns(Hanzoai::Resources::Team::Callback) } - attr_reader :callback - - # Allow users to create a new team. Apply user permissions to their team. - # - # 👉 - # [Detailed Doc on setting team budgets](https://docs.hanzo.ai/docs/proxy/team_budgets) - # - # Parameters: - # - # - team_alias: Optional[str] - User defined team alias - # - team_id: Optional[str] - The team id of the user. If none passed, we'll - # generate it. - # - members_with_roles: List[{"role": "admin" or "user", "user_id": - # ""}] - A list of users and their roles in the team. Get user_id when - # making a new user via `/user/new`. - # - metadata: Optional[dict] - Metadata for team, store information for team. - # Example metadata = {"extra_info": "some info"} - # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - - # all keys with this team_id will have at max this TPM limit - # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - - # all keys associated with this team_id will have at max this RPM limit - # - max_budget: Optional[float] - The maximum budget allocated to the team - all - # keys for this team_id will have at max this max_budget - # - budget_duration: Optional[str] - The duration of the budget for the team. Doc - # [here](https://docs.hanzo.ai/docs/proxy/team_budgets) - # - models: Optional[list] - A list of models associated with the team - all keys - # for this team_id will have at most, these models. If empty, assumes all models - # are allowed. - # - blocked: bool - Flag indicating if the team is blocked or not - will stop all - # calls from keys with this team_id. - # - members: Optional[List] - Control team members via `/team/member/add` and - # `/team/member/delete`. - # - tags: Optional[List[str]] - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - organization_id: Optional[str] - The organization id of the team. Default is - # None. Create via `/organization/new`. - # - model_aliases: Optional[dict] - Model aliases for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - # - guardrails: Optional[List[str]] - Guardrails for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/guardrails) Returns: - # - team_id: (str) Unique team id - used for tracking spend across multiple keys - # for same team id. - # - # \_deprecated_params: - # - # - admins: list - A list of user_id's for the admin role - # - users: list - A list of user_id's for the user role - # - # Example Request: - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_alias": "my-new-team_2", - # "members_with_roles": [{"role": "admin", "user_id": "user-1234"}, - # {"role": "user", "user_id": "user-2434"}] - # }' - # - # ``` - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_alias": "QA Prod Bot", - # "max_budget": 0.000000001, - # "budget_duration": "1d" - # }' - # ``` - sig do - params( - admins: T::Array[T.anything], - blocked: T::Boolean, - budget_duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - max_budget: T.nilable(Float), - members: T::Array[T.anything], - members_with_roles: T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - metadata: T.nilable(T.anything), - model_aliases: T.nilable(T.anything), - models: T::Array[T.anything], - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - tags: T.nilable(T::Array[T.anything]), - team_alias: T.nilable(String), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::TeamCreateResponse) - end - def create( - # Body param: - admins: nil, - # Body param: - blocked: nil, - # Body param: - budget_duration: nil, - # Body param: - guardrails: nil, - # Body param: - max_budget: nil, - # Body param: - members: nil, - # Body param: - members_with_roles: nil, - # Body param: - metadata: nil, - # Body param: - model_aliases: nil, - # Body param: - models: nil, - # Body param: - organization_id: nil, - # Body param: - rpm_limit: nil, - # Body param: - tags: nil, - # Body param: - team_alias: nil, - # Body param: - team_id: nil, - # Body param: - tpm_limit: nil, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # Use `/team/member_add` AND `/team/member/delete` to add/remove new team members - # - # You can now update team budget / rate limits via /team/update - # - # Parameters: - # - # - team_id: str - The team id of the user. Required param. - # - team_alias: Optional[str] - User defined team alias - # - metadata: Optional[dict] - Metadata for team, store information for team. - # Example metadata = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" - # } - # - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - - # all keys with this team_id will have at max this TPM limit - # - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - - # all keys associated with this team_id will have at max this RPM limit - # - max_budget: Optional[float] - The maximum budget allocated to the team - all - # keys for this team_id will have at max this max_budget - # - budget_duration: Optional[str] - The duration of the budget for the team. Doc - # [here](https://docs.hanzo.ai/docs/proxy/team_budgets) - # - models: Optional[list] - A list of models associated with the team - all keys - # for this team_id will have at most, these models. If empty, assumes all models - # are allowed. - # - blocked: bool - Flag indicating if the team is blocked or not - will stop all - # calls from keys with this team_id. - # - tags: Optional[List[str]] - Tags for - # [tracking spend](https://llm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) - # and/or doing - # [tag-based routing](https://llm.vercel.app/docs/proxy/tag_routing). - # - organization_id: Optional[str] - The organization id of the team. Default is - # None. Create via `/organization/new`. - # - model_aliases: Optional[dict] - Model aliases for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - # - guardrails: Optional[List[str]] - Guardrails for the team. - # [Docs](https://docs.hanzo.ai/docs/proxy/guardrails) Example - update team TPM - # Limit - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", - # "tpm_limit": 100 - # }' - # ``` - # - # Example - Update Team `max_budget` budget - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", - # "max_budget": 10 - # }' - # ``` - sig do - params( - team_id: String, - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - max_budget: T.nilable(Float), - metadata: T.nilable(T.anything), - model_aliases: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - organization_id: T.nilable(String), - rpm_limit: T.nilable(Integer), - tags: T.nilable(T::Array[T.anything]), - team_alias: T.nilable(String), - tpm_limit: T.nilable(Integer), - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update( - # Body param: - team_id:, - # Body param: - blocked: nil, - # Body param: - budget_duration: nil, - # Body param: - guardrails: nil, - # Body param: - max_budget: nil, - # Body param: - metadata: nil, - # Body param: - model_aliases: nil, - # Body param: - models: nil, - # Body param: - organization_id: nil, - # Body param: - rpm_limit: nil, - # Body param: - tags: nil, - # Body param: - team_alias: nil, - # Body param: - tpm_limit: nil, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # ``` - # curl --location --request GET 'http://0.0.0.0:4000/team/list' --header 'Authorization: Bearer sk-1234' - # ``` - # - # Parameters: - # - # - user_id: str - Optional. If passed will only return teams that the user_id is - # a member of. - # - organization_id: str - Optional. If passed will only return teams that belong - # to the organization_id. Pass 'default_organization' to get all teams without - # organization_id. - sig do - params( - organization_id: T.nilable(String), - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list( - organization_id: nil, - # Only return teams which this 'user_id' belongs to - user_id: nil, - request_options: {} - ) - end - - # delete team and associated team keys - # - # Parameters: - # - # - team_ids: List[str] - Required. List of team IDs to delete. Example: - # ["team-1234", "team-5678"] - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ - # "team_ids": ["8d916b1c-510d-4894-a334-1c16a93344f5"] - # }' - # ``` - sig do - params( - team_ids: T::Array[String], - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete( - # Body param: - team_ids:, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # [BETA] - # - # Add new members (either via user_email or user_id) to a team - # - # If user doesn't exist, new user row will also be added to User Table - # - # Only proxy_admin or admin of team, allowed to access this endpoint. - # - # ``` - # - # curl -X POST 'http://0.0.0.0:4000/team/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{"team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", "member": {"role": "user", "user_id": "dev247652@hanzo.ai"}}' - # - # ``` - sig do - params( - member: T.any( - T::Array[T.any(Hanzoai::Models::Member, Hanzoai::Internal::AnyHash)], - Hanzoai::Models::Member, - Hanzoai::Internal::AnyHash - ), - team_id: String, - max_budget_in_team: T.nilable(Float), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::TeamAddMemberResponse) - end - def add_member(member:, team_id:, max_budget_in_team: nil, request_options: {}) - end - - # Blocks all calls from keys with this team id. - # - # Parameters: - # - # - team_id: str - Required. The unique identifier of the team to block. - # - # Example: - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234" - # }' - # ``` - # - # Returns: - # - # - The updated team record with blocked=True - sig do - params( - team_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def block(team_id:, request_options: {}) - end - - # Disable all logging callbacks for a team - # - # Parameters: - # - # - team_id (str, required): The unique identifier for the team - # - # Example curl: - # - # ``` - # curl -X POST 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/disable_logging' -H 'Authorization: Bearer sk-1234' - # ``` - sig do - params( - team_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def disable_logging(team_id, request_options: {}) - end - - # List Available Teams - sig do - params( - response_model: T.anything, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list_available(response_model: nil, request_options: {}) - end - - # [BETA] - # - # delete members (either via user_email or user_id) from a team - # - # If user doesn't exist, an exception will be raised - # - # ``` - # curl -X POST 'http://0.0.0.0:8000/team/member_delete' - # -H 'Authorization: Bearer sk-1234' - # -H 'Content-Type: application/json' - # -d '{ - # "team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", - # "user_id": "dev247652@hanzo.ai" - # }' - # ``` - sig do - params( - team_id: String, - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def remove_member(team_id:, user_email: nil, user_id: nil, request_options: {}) - end - - # get info on team + related keys - # - # Parameters: - # - # - team_id: str - Required. The unique identifier of the team to get info on. - # - # ``` - # curl --location 'http://localhost:4000/team/info?team_id=your_team_id_here' --header 'Authorization: Bearer your_api_key_here' - # ``` - sig do - params( - team_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve_info( - # Team ID in the request parameters - team_id: nil, - request_options: {} - ) - end - - # Blocks all calls from keys with this team id. - # - # Parameters: - # - # - team_id: str - Required. The unique identifier of the team to unblock. - # - # Example: - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234" - # }' - # ``` - sig do - params( - team_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def unblock(team_id:, request_options: {}) - end - - # [BETA] - # - # Update team member budgets and team member role - sig do - params( - team_id: String, - max_budget_in_team: T.nilable(Float), - role: T.nilable(Hanzoai::Models::TeamUpdateMemberParams::Role::OrSymbol), - user_email: T.nilable(String), - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::TeamUpdateMemberResponse) - end - def update_member( - team_id:, - max_budget_in_team: nil, - role: nil, - user_email: nil, - user_id: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/team/callback.rbi b/rbi/lib/hanzoai/resources/team/callback.rbi deleted file mode 100644 index 528a8a26..00000000 --- a/rbi/lib/hanzoai/resources/team/callback.rbi +++ /dev/null @@ -1,111 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Team - class Callback - # Get the success/failure callbacks and variables for a team - # - # Parameters: - # - # - team_id (str, required): The unique identifier for the team - # - # Example curl: - # - # ``` - # curl -X GET 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Authorization: Bearer sk-1234' - # ``` - # - # This will return the callback settings for the team with id - # dbe2f686-a686-4896-864a-4c3924458709 - # - # Returns { "status": "success", "data": { "team_id": team_id, - # "success_callbacks": team_callback_settings_obj.success_callback, - # "failure_callbacks": team_callback_settings_obj.failure_callback, - # "callback_vars": team_callback_settings_obj.callback_vars, }, } - sig do - params( - team_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(team_id, request_options: {}) - end - - # Add a success/failure callback to a team - # - # Use this if if you want different teams to have different success/failure - # callbacks - # - # Parameters: - # - # - callback_name (Literal["langfuse", "langsmith", "gcs"], required): The name of - # the callback to add - # - callback_type (Literal["success", "failure", "success_and_failure"], - # required): The type of callback to add. One of: - # - "success": Callback for successful LLM calls - # - "failure": Callback for failed LLM calls - # - "success_and_failure": Callback for both successful and failed LLM calls - # - callback_vars (StandardCallbackDynamicParams, required): A dictionary of - # variables to pass to the callback - # - langfuse_public_key: The public key for the Langfuse callback - # - langfuse_secret_key: The secret key for the Langfuse callback - # - langfuse_secret: The secret for the Langfuse callback - # - langfuse_host: The host for the Langfuse callback - # - gcs_bucket_name: The name of the GCS bucket - # - gcs_path_service_account: The path to the GCS service account - # - langsmith_api_key: The API key for the Langsmith callback - # - langsmith_project: The project for the Langsmith callback - # - langsmith_base_url: The base URL for the Langsmith callback - # - # Example curl: - # - # ``` - # curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{ - # "callback_name": "langfuse", - # "callback_type": "success", - # "callback_vars": {"langfuse_public_key": "pk-lf-xxxx1", "langfuse_secret_key": "sk-xxxxx"} - # - # }' - # ``` - # - # This means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, - # all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and - # the secret key sk-xxxxx - sig do - params( - team_id: String, - callback_name: String, - callback_vars: T::Hash[Symbol, String], - callback_type: T.nilable(Hanzoai::Models::Team::CallbackAddParams::CallbackType::OrSymbol), - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def add( - # Path param: - team_id, - # Body param: - callback_name:, - # Body param: - callback_vars:, - # Body param: - callback_type: nil, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/team/model.rbi b/rbi/lib/hanzoai/resources/team/model.rbi deleted file mode 100644 index c6a2fd8e..00000000 --- a/rbi/lib/hanzoai/resources/team/model.rbi +++ /dev/null @@ -1,68 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Team - class Model - # Add models to a team's allowed model list. Only proxy admin or team admin can - # add models. - # - # Parameters: - # - # - team_id: str - Required. The team to add models to - # - models: List[str] - Required. List of models to add to the team - # - # Example Request: - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/model/add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234", - # "models": ["gpt-4", "claude-2"] - # }' - # ``` - sig do - params( - models: T::Array[String], - team_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def add(models:, team_id:, request_options: {}) - end - - # Remove models from a team's allowed model list. Only proxy admin or team admin - # can remove models. - # - # Parameters: - # - # - team_id: str - Required. The team to remove models from - # - models: List[str] - Required. List of models to remove from the team - # - # Example Request: - # - # ``` - # curl --location 'http://0.0.0.0:4000/team/model/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "team_id": "team-1234", - # "models": ["gpt-4"] - # }' - # ``` - sig do - params( - models: T::Array[String], - team_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def remove(models:, team_id:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/test.rbi b/rbi/lib/hanzoai/resources/test.rbi deleted file mode 100644 index d32d3781..00000000 --- a/rbi/lib/hanzoai/resources/test.rbi +++ /dev/null @@ -1,26 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Test - # [DEPRECATED] use `/health/liveliness` instead. - # - # A test endpoint that pings the proxy server to check if it's healthy. - # - # Parameters: request (Request): The incoming request. - # - # Returns: dict: A dictionary containing the route of the request URL. - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def ping(request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/threads.rbi b/rbi/lib/hanzoai/resources/threads.rbi deleted file mode 100644 index 22c885ce..00000000 --- a/rbi/lib/hanzoai/resources/threads.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Threads - sig { returns(Hanzoai::Resources::Threads::Messages) } - attr_reader :messages - - sig { returns(Hanzoai::Resources::Threads::Runs) } - attr_reader :runs - - # Create a thread. - # - # API Reference - - # https://platform.openai.com/docs/api-reference/threads/createThread - sig do - params(request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash))) - .returns(T.anything) - end - def create(request_options: {}) - end - - # Retrieves a thread. - # - # API Reference - https://platform.openai.com/docs/api-reference/threads/getThread - sig do - params( - thread_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(thread_id, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/threads/messages.rbi b/rbi/lib/hanzoai/resources/threads/messages.rbi deleted file mode 100644 index ec4fb476..00000000 --- a/rbi/lib/hanzoai/resources/threads/messages.rbi +++ /dev/null @@ -1,42 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Threads - class Messages - # Create a message. - # - # API Reference - - # https://platform.openai.com/docs/api-reference/messages/createMessage - sig do - params( - thread_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(thread_id, request_options: {}) - end - - # Returns a list of messages for a given thread. - # - # API Reference - - # https://platform.openai.com/docs/api-reference/messages/listMessages - sig do - params( - thread_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list(thread_id, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/threads/runs.rbi b/rbi/lib/hanzoai/resources/threads/runs.rbi deleted file mode 100644 index 18316977..00000000 --- a/rbi/lib/hanzoai/resources/threads/runs.rbi +++ /dev/null @@ -1,27 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Threads - class Runs - # Create a run. - # - # API Reference: https://platform.openai.com/docs/api-reference/runs/createRun - sig do - params( - thread_id: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(thread_id, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/user.rbi b/rbi/lib/hanzoai/resources/user.rbi deleted file mode 100644 index dc2602c6..00000000 --- a/rbi/lib/hanzoai/resources/user.rbi +++ /dev/null @@ -1,370 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class User - # Use this to create a new INTERNAL user with a budget. Internal Users can access - # LLM Admin UI to make keys, request access to models. This creates a new user and - # generates a new api key for the new user. The new api key is returned. - # - # Returns user id, budget + new key. - # - # Parameters: - # - # - user_id: Optional[str] - Specify a user id. If not set, a unique id will be - # generated. - # - user_alias: Optional[str] - A descriptive name for you to know who this user - # id refers to. - # - teams: Optional[list] - specify a list of team id's a user belongs to. - # - user_email: Optional[str] - Specify a user email. - # - send_invite_email: Optional[bool] - Specify if an invite email should be sent. - # - user_role: Optional[str] - Specify a user role - "proxy_admin", - # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", - # "customer". Info about each role here: - # `https://github.com/hanzoai/llm/llm/proxy/_types.py#L20` - # - max_budget: Optional[float] - Specify max budget for a given user. - # - budget_duration: Optional[str] - Budget is reset at the end of specified - # duration. If not set, budget is never reset. You can set duration as seconds - # ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - # - models: Optional[list] - Model_name's a user is allowed to call. (if empty, - # key is allowed to call all models). Set to ['no-default-models'] to block all - # model access. Restricting user to only team-based model access. - # - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per - # minute) - # - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per - # minute) - # - auto_create_key: bool - Default=True. Flag used for returning a key as part of - # the /user/new response - # - aliases: Optional[dict] - Model aliases for the user - - # [Docs](https://llm.vercel.app/docs/proxy/virtual_keys#model-aliases) - # - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - # - allowed_cache_controls: Optional[list] - List of allowed cache control values. - # Example - ["no-cache", "no-store"]. See all values - - # https://docs.hanzo.ai/docs/proxy/caching#turn-on--off-caching-per-request- - # - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - # - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active - # guardrails for the user - # - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, - # eg. turning off pii masking. - # - metadata: Optional[dict] - Metadata for user, store information for user. - # Example metadata = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" - # } - # - max_parallel_requests: Optional[int] - Rate limit a user based on the number - # of parallel requests. Raises 429 error, if user's parallel requests > x. - # - soft_budget: Optional[float] - Get alerts when user crosses given budget, - # doesn't block requests. - # - model_max_budget: Optional[dict] - Model-specific max budget for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - # - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - # - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - # - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated - # by proxy whenever user is used. You can set duration as seconds ("30s"), - # minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - # - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default - # is None. - # - duration: Optional[str] - Duration for the key auto-created on `/user/new`. - # Default is None. - # - key_alias: Optional[str] - Alias for the key auto-created on `/user/new`. - # Default is None. - # - # Returns: - # - # - key: (str) The generated api key for the user - # - expires: (datetime) Datetime object for when key expires. - # - user_id: (str) Unique user id - used for tracking spend across multiple keys - # for same user id. - # - max_budget: (float|None) Max budget for given user. - # - # Usage Example - # - # ```shell - # curl -X POST "http://localhost:4000/user/new" -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ - # "username": "new_user", - # "email": "new_user@example.com" - # }' - # ``` - sig do - params( - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - auto_create_key: T::Boolean, - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - send_invite_email: T.nilable(T::Boolean), - spend: T.nilable(Float), - team_id: T.nilable(String), - teams: T.nilable(T::Array[T.anything]), - tpm_limit: T.nilable(Integer), - user_alias: T.nilable(String), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserCreateParams::UserRole::OrSymbol), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::UserCreateResponse) - end - def create( - aliases: nil, - allowed_cache_controls: nil, - auto_create_key: nil, - blocked: nil, - budget_duration: nil, - config: nil, - duration: nil, - guardrails: nil, - key_alias: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - permissions: nil, - rpm_limit: nil, - send_invite_email: nil, - spend: nil, - team_id: nil, - teams: nil, - tpm_limit: nil, - user_alias: nil, - user_email: nil, - user_id: nil, - user_role: nil, - request_options: {} - ) - end - - # Example curl - # - # ``` - # curl --location 'http://0.0.0.0:4000/user/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ - # "user_id": "test-llm-user-4", - # "user_role": "proxy_admin_viewer" - # }' - # ``` - # - # Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique - # id will be generated. - user_email: Optional[str] - Specify a user email. - - # password: Optional[str] - Specify a user password. - user_alias: Optional[str] - - # A descriptive name for you to know who this user id refers to. - teams: - # Optional[list] - specify a list of team id's a user belongs to. - - # send_invite_email: Optional[bool] - Specify if an invite email should be sent. - - # user_role: Optional[str] - Specify a user role - "proxy_admin", - # "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", - # "customer". Info about each role here: - # `https://github.com/hanzoai/llm/llm/proxy/_types.py#L20` - max_budget: - # Optional[float] - Specify max budget for a given user. - budget_duration: - # Optional[str] - Budget is reset at the end of specified duration. If not set, - # budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), - # hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - - # Model_name's a user is allowed to call. (if empty, key is allowed to call all - # models) - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens - # per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user - # (Requests per minute) - auto_create_key: bool - Default=True. Flag used for - # returning a key as part of the /user/new response - aliases: Optional[dict] - - # Model aliases for the user - - # [Docs](https://llm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: - # Optional[dict] - [DEPRECATED PARAM] User-specific config. - - # allowed_cache_controls: Optional[list] - List of allowed cache control values. - # Example - ["no-cache", "no-store"]. See all values - - # https://docs.hanzo.ai/docs/proxy/caching#turn-on--off-caching-per-request- - - # blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - - # guardrails: Optional[List[str]] - [Not Implemented Yet] List of active - # guardrails for the user - permissions: Optional[dict] - [Not Implemented Yet] - # User-specific permissions, eg. turning off pii masking. - metadata: - # Optional[dict] - Metadata for user, store information for user. Example metadata - # = {"team": "core-infra", "app": "app2", "email": "z@hanzo.ai" } - - # max_parallel_requests: Optional[int] - Rate limit a user based on the number of - # parallel requests. Raises 429 error, if user's parallel requests > x. - - # soft_budget: Optional[float] - Get alerts when user crosses given budget, - # doesn't block requests. - model_max_budget: Optional[dict] - Model-specific max - # budget for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - - # model_rpm_limit: Optional[float] - Model-specific rpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - - # model_tpm_limit: Optional[float] - Model-specific tpm limit for user. - # [Docs](https://docs.hanzo.ai/docs/proxy/users#add-model-specific-limits-to-keys) - - # spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by - # proxy whenever user is used. You can set duration as seconds ("30s"), minutes - # ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - team_id: Optional[str] - - # [DEPRECATED PARAM] The team id of the user. Default is None. - duration: - # Optional[str] - [NOT IMPLEMENTED]. - key_alias: Optional[str] - [NOT - # IMPLEMENTED]. - sig do - params( - aliases: T.nilable(T.anything), - allowed_cache_controls: T.nilable(T::Array[T.anything]), - blocked: T.nilable(T::Boolean), - budget_duration: T.nilable(String), - config: T.nilable(T.anything), - duration: T.nilable(String), - guardrails: T.nilable(T::Array[String]), - key_alias: T.nilable(String), - max_budget: T.nilable(Float), - max_parallel_requests: T.nilable(Integer), - metadata: T.nilable(T.anything), - model_max_budget: T.nilable(T.anything), - model_rpm_limit: T.nilable(T.anything), - model_tpm_limit: T.nilable(T.anything), - models: T.nilable(T::Array[T.anything]), - password: T.nilable(String), - permissions: T.nilable(T.anything), - rpm_limit: T.nilable(Integer), - spend: T.nilable(Float), - team_id: T.nilable(String), - tpm_limit: T.nilable(Integer), - user_email: T.nilable(String), - user_id: T.nilable(String), - user_role: T.nilable(Hanzoai::Models::UserUpdateParams::UserRole::OrSymbol), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update( - aliases: nil, - allowed_cache_controls: nil, - blocked: nil, - budget_duration: nil, - config: nil, - duration: nil, - guardrails: nil, - key_alias: nil, - max_budget: nil, - max_parallel_requests: nil, - metadata: nil, - model_max_budget: nil, - model_rpm_limit: nil, - model_tpm_limit: nil, - models: nil, - password: nil, - permissions: nil, - rpm_limit: nil, - spend: nil, - team_id: nil, - tpm_limit: nil, - user_email: nil, - user_id: nil, - user_role: nil, - request_options: {} - ) - end - - # Get a paginated list of users, optionally filtered by role. - # - # Used by the UI to populate the user lists. - # - # Parameters: role: Optional[str] Filter users by role. Can be one of: - - # proxy_admin - proxy_admin_viewer - internal_user - internal_user_viewer - # user_ids: Optional[str] Get list of users by user_ids. Comma separated list of - # user_ids. page: int The page number to return page_size: int The number of items - # per page - # - # Currently - admin-only endpoint. - # - # Example curl: - # - # ``` - # http://0.0.0.0:4000/user/list?user_ids=default_user_id,693c1a4a-1cc0-4c7c-afe8-b5d2c8d52e17 - # ``` - sig do - params( - page: Integer, - page_size: Integer, - role: T.nilable(String), - user_ids: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def list( - # Page number - page: nil, - # Number of items per page - page_size: nil, - # Filter users by role - role: nil, - # Get list of users by user_ids - user_ids: nil, - request_options: {} - ) - end - - # delete user and associated user keys - # - # ``` - # curl --location 'http://0.0.0.0:4000/user/delete' - # --header 'Authorization: Bearer sk-1234' - # --header 'Content-Type: application/json' - # --data-raw '{ - # "user_ids": ["45e3e396-ee08-4a61-a88e-16b3ce7e0849"] - # }' - # ``` - # - # Parameters: - # - # - user_ids: List[str] - The list of user id's to be deleted. - sig do - params( - user_ids: T::Array[String], - llm_changed_by: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete( - # Body param: - user_ids:, - # Header param: The llm-changed-by header enables tracking of actions performed by - # authorized users on behalf of other users, providing an audit trail for - # accountability - llm_changed_by: nil, - request_options: {} - ) - end - - # [10/07/2024] Note: To get all users (+pagination), use `/user/list` endpoint. - # - # Use this to get user information. (user row + all user key info) - # - # Example request - # - # ``` - # curl -X GET 'http://localhost:4000/user/info?user_id=dev7%40hanzo.ai' --header 'Authorization: Bearer sk-1234' - # ``` - sig do - params( - user_id: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve_info( - # User ID in the request parameters - user_id: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/utils.rbi b/rbi/lib/hanzoai/resources/utils.rbi deleted file mode 100644 index 619c19ee..00000000 --- a/rbi/lib/hanzoai/resources/utils.rbi +++ /dev/null @@ -1,56 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class Utils - # Returns supported openai params for a given llm model name - # - # e.g. `gpt-4` vs `gpt-3.5-turbo` - # - # Example curl: - # - # ``` - # curl -X GET --location 'http://localhost:4000/utils/supported_openai_params?model=gpt-3.5-turbo-16k' --header 'Authorization: Bearer sk-1234' - # ``` - sig do - params( - model: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def get_supported_openai_params(model:, request_options: {}) - end - - # Token Counter - sig do - params( - model: String, - messages: T.nilable(T::Array[T.anything]), - prompt: T.nilable(String), - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::UtilTokenCounterResponse) - end - def token_counter(model:, messages: nil, prompt: nil, request_options: {}) - end - - # Transform Request - sig do - params( - call_type: Hanzoai::Models::UtilTransformRequestParams::CallType::OrSymbol, - request_body: T.anything, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(Hanzoai::Models::UtilTransformRequestResponse) - end - def transform_request(call_type:, request_body:, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/lib/hanzoai/resources/vertex_ai.rbi b/rbi/lib/hanzoai/resources/vertex_ai.rbi deleted file mode 100644 index d6488565..00000000 --- a/rbi/lib/hanzoai/resources/vertex_ai.rbi +++ /dev/null @@ -1,77 +0,0 @@ -# typed: strong - -module Hanzoai - module Resources - class VertexAI - # Call LLM proxy via Vertex AI SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def create(endpoint, request_options: {}) - end - - # Call LLM proxy via Vertex AI SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def retrieve(endpoint, request_options: {}) - end - - # Call LLM proxy via Vertex AI SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def update(endpoint, request_options: {}) - end - - # Call LLM proxy via Vertex AI SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def delete(endpoint, request_options: {}) - end - - # Call LLM proxy via Vertex AI SDK. - # - # [Docs](https://docs.hanzo.ai/docs/pass_through/vertex_ai) - sig do - params( - endpoint: String, - request_options: T.nilable(T.any(Hanzoai::RequestOptions, Hanzoai::Internal::AnyHash)) - ) - .returns(T.anything) - end - def patch(endpoint, request_options: {}) - end - - # @api private - sig { params(client: Hanzoai::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/release-please-config.json b/release-please-config.json index d37ba985..1eda1f84 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -60,5 +60,11 @@ } ], "release-type": "ruby", - "version-file": "lib/hanzoai/version.rb" + "version-file": "lib/hanzoai/version.rb", + "extra-files": [ + { + "type": "ruby-readme", + "path": "README.md" + } + ] } \ No newline at end of file diff --git a/scripts/bootstrap b/scripts/bootstrap index 88566757..34878642 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -2,15 +2,23 @@ set -e -cd "$(dirname "$0")/.." +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 echo "==> Installing Ruby dependencies…" -bundle install +exec -- bundle install "$@" diff --git a/scripts/fast-format b/scripts/fast-format new file mode 100755 index 00000000..6d5973fb --- /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 + +exec -- bundle exec rake format FORMAT_FILE="$1" diff --git a/scripts/format b/scripts/format index 67b400de..177d1e63 100755 --- a/scripts/format +++ b/scripts/format @@ -5,4 +5,5 @@ set -e cd -- "$(dirname -- "$0")/.." echo "==> Running formatters" + exec -- bundle exec rake format "$@" diff --git a/scripts/lint b/scripts/lint index 39581dc1..08b0dbeb 100755 --- a/scripts/lint +++ b/scripts/lint @@ -4,4 +4,6 @@ set -e cd -- "$(dirname -- "$0")/.." +echo "==> Running linters" + exec -- bundle exec rake lint "$@" diff --git a/scripts/mock b/scripts/mock index d2814ae6..0b28f6ea 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 diff --git a/scripts/test b/scripts/test index 2e1fe093..e0dc1374 100755 --- a/scripts/test +++ b/scripts/test @@ -2,7 +2,7 @@ set -e -cd "$(dirname "$0")/.." +cd -- "$(dirname -- "$0")/.." RED='\033[0;31m' GREEN='\033[0;32m' @@ -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 diff --git a/sig/hanzoai/errors.rbs b/sig/hanzoai/errors.rbs index 4c149b00..d6d247f8 100644 --- a/sig/hanzoai/errors.rbs +++ b/sig/hanzoai/errors.rbs @@ -5,6 +5,15 @@ module Hanzoai end class ConversionError < Hanzoai::Errors::Error + def cause: -> StandardError? + + def initialize: ( + on: Class, + method: Symbol, + target: top, + value: top, + ?cause: StandardError? + ) -> void end class APIError < Hanzoai::Errors::Error @@ -12,11 +21,14 @@ module Hanzoai 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, @@ -28,6 +40,7 @@ module Hanzoai def initialize: ( url: URI::Generic, ?status: nil, + ?headers: ::Hash[String, String]?, ?body: nil, ?request: nil, ?response: nil, @@ -39,6 +52,7 @@ module Hanzoai def initialize: ( url: URI::Generic, ?status: nil, + ?headers: ::Hash[String, String]?, ?body: nil, ?request: nil, ?response: nil, @@ -50,6 +64,7 @@ module Hanzoai def self.for: ( url: URI::Generic, status: Integer, + headers: ::Hash[String, String]?, body: Object?, request: nil, response: nil, @@ -59,6 +74,7 @@ module Hanzoai def initialize: ( url: URI::Generic, status: Integer, + headers: ::Hash[String, String]?, body: Object?, request: nil, response: nil, diff --git a/sig/hanzoai/file_part.rbs b/sig/hanzoai/file_part.rbs new file mode 100644 index 00000000..7445c805 --- /dev/null +++ b/sig/hanzoai/file_part.rbs @@ -0,0 +1,21 @@ +module Hanzoai + class FilePart + attr_reader content: Pathname | StringIO | IO | String + + attr_reader content_type: String? + + attr_reader filename: String? + + private def read: -> String + + def to_json: (*top a) -> String + + def to_yaml: (*top a) -> String + + def initialize: ( + Pathname | StringIO | IO | String content, + ?filename: (Pathname | String)?, + ?content_type: String? + ) -> void + end +end diff --git a/sig/hanzoai/internal.rbs b/sig/hanzoai/internal.rbs index 03ed65bd..8d8b98d9 100644 --- a/sig/hanzoai/internal.rbs +++ b/sig/hanzoai/internal.rbs @@ -1,5 +1,9 @@ module Hanzoai module Internal - OMIT: top + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + type file_input = Pathname | StringIO | IO | String | Hanzoai::FilePart + + OMIT: Object end end diff --git a/sig/hanzoai/internal/transport/base_client.rbs b/sig/hanzoai/internal/transport/base_client.rbs index 2c77e6a4..2096e9d3 100644 --- a/sig/hanzoai/internal/transport/base_client.rbs +++ b/sig/hanzoai/internal/transport/base_client.rbs @@ -2,6 +2,8 @@ module Hanzoai module Internal module Transport class BaseClient + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + type request_components = { method: Symbol, @@ -11,13 +13,15 @@ module Hanzoai | Integer | ::Array[(String | Integer)?])?]?, body: top?, - unwrap: Symbol?, + unwrap: (Symbol + | Integer + | ::Array[(Symbol | Integer)] + | (^(top arg0) -> top))?, page: Class?, stream: Class?, model: Hanzoai::Internal::Type::Converter::input?, options: Hanzoai::request_opts? } - type request_input = { method: Symbol, @@ -52,8 +56,22 @@ module Hanzoai stream: Enumerable[String]? ) -> void + attr_reader base_url: URI::Generic + + attr_reader timeout: Float + + attr_reader max_retries: Integer + + attr_reader initial_retry_delay: Float + + attr_reader max_retry_delay: Float + + attr_reader headers: ::Hash[String, String] + + attr_reader idempotency_header: String? + # @api private - attr_accessor requester: Hanzoai::Internal::Transport::PooledNetRequester + attr_reader requester: Hanzoai::Internal::Transport::PooledNetRequester def initialize: ( base_url: String, @@ -69,6 +87,8 @@ module Hanzoai private def auth_headers: -> ::Hash[String, String] + private def user_agent: -> String + private def generate_idempotency_key: -> String private def build_request: ( @@ -81,7 +101,7 @@ module Hanzoai retry_count: Integer ) -> Float - private def send_request: ( + def send_request: ( Hanzoai::Internal::Transport::BaseClient::request_input request, redirect_count: Integer, retry_count: Integer, @@ -96,7 +116,10 @@ module Hanzoai | Integer | ::Array[(String | Integer)?])?]?, ?body: top?, - ?unwrap: Symbol?, + ?unwrap: (Symbol + | Integer + | ::Array[(Symbol | Integer)] + | (^(top arg0) -> top))?, ?page: Class?, ?stream: Class?, ?model: Hanzoai::Internal::Type::Converter::input?, diff --git a/sig/hanzoai/internal/transport/pooled_net_requester.rbs b/sig/hanzoai/internal/transport/pooled_net_requester.rbs index 53451049..3566ed94 100644 --- a/sig/hanzoai/internal/transport/pooled_net_requester.rbs +++ b/sig/hanzoai/internal/transport/pooled_net_requester.rbs @@ -2,6 +2,8 @@ module Hanzoai module Internal module Transport class PooledNetRequester + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + type request = { method: Symbol, @@ -13,7 +15,12 @@ module Hanzoai KEEP_ALIVE_TIMEOUT: 30 - def self.connect: (URI::Generic url) -> top + DEFAULT_MAX_CONNECTIONS: Integer + + def self.connect: ( + cert_store: OpenSSL::X509::Store, + url: URI::Generic + ) -> top def self.calibrate_socket_timeout: (top conn, Float deadline) -> void @@ -21,7 +28,7 @@ module Hanzoai Hanzoai::Internal::Transport::PooledNetRequester::request request ) { (String arg0) -> void - } -> top + } -> [top, (^-> void)] private def with_pool: ( URI::Generic url, diff --git a/sig/hanzoai/internal/type/array_of.rbs b/sig/hanzoai/internal/type/array_of.rbs index 1c93e408..ade86f9a 100644 --- a/sig/hanzoai/internal/type/array_of.rbs +++ b/sig/hanzoai/internal/type/array_of.rbs @@ -3,6 +3,7 @@ module Hanzoai module Type class ArrayOf[Elem] include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport def self.[]: ( ::Hash[Symbol, top] @@ -15,12 +16,19 @@ module Hanzoai def ==: (top other) -> bool + def hash: -> Integer + def coerce: ( ::Array[top] | top value, - state: Hanzoai::Internal::Type::Converter::state + state: Hanzoai::Internal::Type::Converter::coerce_state ) -> (::Array[top] | top) - def dump: (::Array[top] | top value) -> (::Array[top] | top) + def dump: ( + ::Array[top] | top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> (::Array[top] | top) + + def to_sorbet_type: -> top def item_type: -> Elem @@ -32,6 +40,8 @@ module Hanzoai | Hanzoai::Internal::Type::Converter::input type_info, ?::Hash[Symbol, top] spec ) -> void + + def inspect: (?depth: Integer) -> String end end end diff --git a/sig/hanzoai/internal/type/base_model.rbs b/sig/hanzoai/internal/type/base_model.rbs index 68d95355..71ed4068 100644 --- a/sig/hanzoai/internal/type/base_model.rbs +++ b/sig/hanzoai/internal/type/base_model.rbs @@ -3,10 +3,13 @@ module Hanzoai module Type class BaseModel extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport type known_field = { mode: (:coerce | :dump)?, required: bool, nilable: bool } + def self.inherited: (self child) -> void + def self.known_fields: -> ::Hash[Symbol, (Hanzoai::Internal::Type::BaseModel::known_field & { type_fn: (^-> Hanzoai::Internal::Type::Converter::input) })] @@ -49,14 +52,28 @@ module Hanzoai def self.==: (top other) -> bool + def self.hash: -> Integer + def ==: (top other) -> bool + def hash: -> Integer + def self.coerce: ( Hanzoai::Internal::Type::BaseModel | ::Hash[top, top] | top value, - state: Hanzoai::Internal::Type::Converter::state + state: Hanzoai::Internal::Type::Converter::coerce_state ) -> (instance | top) - def self.dump: (instance | top value) -> (::Hash[top, top] | top) + def self.dump: ( + instance | top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> (::Hash[top, top] | top) + + def self.to_sorbet_type: -> top + + def self.recursively_to_h: ( + Hanzoai::Internal::Type::BaseModel model, + convert: bool + ) -> ::Hash[Symbol, top] def []: (Symbol key) -> top? @@ -64,13 +81,19 @@ module Hanzoai alias to_hash to_h + def deep_to_h: -> ::Hash[Symbol, top] + def deconstruct_keys: (::Array[Symbol]? keys) -> ::Hash[Symbol, top] def to_json: (*top a) -> String def to_yaml: (*top a) -> String - def initialize: (?::Hash[Symbol, top] | self data) -> void + def initialize: (?::Hash[Symbol, top] | instance data) -> void + + def self.inspect: (?depth: Integer) -> String + + def to_s: -> String def inspect: -> String end diff --git a/sig/hanzoai/internal/type/base_page.rbs b/sig/hanzoai/internal/type/base_page.rbs index 23bf0636..91f245d8 100644 --- a/sig/hanzoai/internal/type/base_page.rbs +++ b/sig/hanzoai/internal/type/base_page.rbs @@ -4,7 +4,7 @@ module Hanzoai module BasePage[Elem] def next_page?: -> bool - def next_page: -> self + def next_page: -> instance def auto_paging_each: { (Elem arg0) -> void } -> void diff --git a/sig/hanzoai/internal/type/boolean.rbs b/sig/hanzoai/internal/type/boolean.rbs new file mode 100644 index 00000000..90764a57 --- /dev/null +++ b/sig/hanzoai/internal/type/boolean.rbs @@ -0,0 +1,26 @@ +module Hanzoai + module Internal + module Type + class Boolean + extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + + def self.===: (top other) -> bool + + def self.==: (top other) -> bool + + def self.coerce: ( + bool | top value, + state: Hanzoai::Internal::Type::Converter::coerce_state + ) -> (bool | top) + + def self.dump: ( + bool | top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> (bool | top) + + def self.to_sorbet_type: -> top + end + end + end +end diff --git a/sig/hanzoai/internal/type/boolean_model.rbs b/sig/hanzoai/internal/type/boolean_model.rbs deleted file mode 100644 index 3a90897d..00000000 --- a/sig/hanzoai/internal/type/boolean_model.rbs +++ /dev/null @@ -1,20 +0,0 @@ -module Hanzoai - module Internal - module Type - class BooleanModel - extend Hanzoai::Internal::Type::Converter - - def self.===: (top other) -> bool - - def self.==: (top other) -> bool - - def self.coerce: ( - bool | top value, - state: Hanzoai::Internal::Type::Converter::state - ) -> (bool | top) - - def self.dump: (bool | top value) -> (bool | top) - end - end - end -end diff --git a/sig/hanzoai/internal/type/converter.rbs b/sig/hanzoai/internal/type/converter.rbs index 5414df39..a945d6b5 100644 --- a/sig/hanzoai/internal/type/converter.rbs +++ b/sig/hanzoai/internal/type/converter.rbs @@ -2,21 +2,32 @@ module Hanzoai module Internal module Type module Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + type input = Hanzoai::Internal::Type::Converter | Class - type state = + type coerce_state = { - strictness: bool | :strong, + translate_names: bool, + strictness: bool, exactness: { yes: Integer, no: Integer, maybe: Integer }, + error: Class, branched: Integer } + type dump_state = { can_retry: bool } + def coerce: ( top value, - state: Hanzoai::Internal::Type::Converter::state + state: Hanzoai::Internal::Type::Converter::coerce_state + ) -> top + + def dump: ( + top value, + state: Hanzoai::Internal::Type::Converter::dump_state ) -> top - def dump: (top value) -> top + def inspect: (?depth: Integer) -> String def self.type_info: ( { @@ -28,16 +39,40 @@ module Hanzoai | Hanzoai::Internal::Type::Converter::input spec ) -> (^-> top) + def self.meta_info: ( + { + const: (nil | bool | Integer | Float | Symbol)?, + enum: ^-> Hanzoai::Internal::Type::Converter::input?, + union: ^-> Hanzoai::Internal::Type::Converter::input? + } + | ^-> Hanzoai::Internal::Type::Converter::input + | Hanzoai::Internal::Type::Converter::input type_info, + { + const: (nil | bool | Integer | Float | Symbol)?, + enum: ^-> Hanzoai::Internal::Type::Converter::input?, + union: ^-> Hanzoai::Internal::Type::Converter::input? + } + | ^-> Hanzoai::Internal::Type::Converter::input + | Hanzoai::Internal::Type::Converter::input spec + ) -> ::Hash[Symbol, top] + + def self.new_coerce_state: ( + ?translate_names: bool + ) -> Hanzoai::Internal::Type::Converter::coerce_state + def self.coerce: ( Hanzoai::Internal::Type::Converter::input target, top value, - ?state: Hanzoai::Internal::Type::Converter::state + ?state: Hanzoai::Internal::Type::Converter::coerce_state ) -> top def self.dump: ( Hanzoai::Internal::Type::Converter::input target, - top value + top value, + ?state: Hanzoai::Internal::Type::Converter::dump_state ) -> top + + def self.inspect: (top target, depth: Integer) -> String end end end diff --git a/sig/hanzoai/internal/type/enum.rbs b/sig/hanzoai/internal/type/enum.rbs index 616b3663..44bdaf95 100644 --- a/sig/hanzoai/internal/type/enum.rbs +++ b/sig/hanzoai/internal/type/enum.rbs @@ -3,21 +3,29 @@ module Hanzoai module Type module Enum include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport def self.values: -> ::Array[(nil | bool | Integer | Float | Symbol)] - private def self.finalize!: -> void - def ===: (top other) -> bool def ==: (top other) -> bool + def hash: -> Integer + def coerce: ( String | Symbol | top value, - state: Hanzoai::Internal::Type::Converter::state + state: Hanzoai::Internal::Type::Converter::coerce_state ) -> (Symbol | top) - def dump: (Symbol | top value) -> (Symbol | top) + def dump: ( + Symbol | top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> (Symbol | top) + + def to_sorbet_type: -> top + + def inspect: (?depth: Integer) -> String end end end diff --git a/sig/hanzoai/internal/type/file_input.rbs b/sig/hanzoai/internal/type/file_input.rbs new file mode 100644 index 00000000..4c900cf1 --- /dev/null +++ b/sig/hanzoai/internal/type/file_input.rbs @@ -0,0 +1,25 @@ +module Hanzoai + module Internal + module Type + class FileInput + extend Hanzoai::Internal::Type::Converter + + def self.===: (top other) -> bool + + def self.==: (top other) -> bool + + def self.coerce: ( + StringIO | String | top value, + state: Hanzoai::Internal::Type::Converter::coerce_state + ) -> (StringIO | top) + + def self.dump: ( + Pathname | StringIO | IO | String | top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> (Pathname | StringIO | IO | String | top) + + def self.to_sorbet_type: -> top + end + end + end +end diff --git a/sig/hanzoai/internal/type/hash_of.rbs b/sig/hanzoai/internal/type/hash_of.rbs index eb210a3d..5a89e5cc 100644 --- a/sig/hanzoai/internal/type/hash_of.rbs +++ b/sig/hanzoai/internal/type/hash_of.rbs @@ -3,6 +3,7 @@ module Hanzoai module Type class HashOf[Elem] include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport def self.[]: ( ::Hash[Symbol, top] @@ -15,12 +16,19 @@ module Hanzoai def ==: (top other) -> bool + def hash: -> Integer + def coerce: ( ::Hash[top, top] | top value, - state: Hanzoai::Internal::Type::Converter::state + state: Hanzoai::Internal::Type::Converter::coerce_state ) -> (::Hash[Symbol, top] | top) - def dump: (::Hash[top, top] | top value) -> (::Hash[Symbol, top] | top) + def dump: ( + ::Hash[top, top] | top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> (::Hash[Symbol, top] | top) + + def to_sorbet_type: -> top def item_type: -> Elem @@ -32,6 +40,8 @@ module Hanzoai | Hanzoai::Internal::Type::Converter::input type_info, ?::Hash[Symbol, top] spec ) -> void + + def inspect: (?depth: Integer) -> String end end end diff --git a/sig/hanzoai/internal/type/request_parameters.rbs b/sig/hanzoai/internal/type/request_parameters.rbs index 6e21e7a3..3538ddf6 100644 --- a/sig/hanzoai/internal/type/request_parameters.rbs +++ b/sig/hanzoai/internal/type/request_parameters.rbs @@ -4,7 +4,9 @@ module Hanzoai type request_parameters = { request_options: Hanzoai::request_opts } module RequestParameters - attr_accessor request_options: Hanzoai::request_opts + attr_reader request_options: Hanzoai::request_opts + + def request_options=: (Hanzoai::request_opts) -> Hanzoai::request_opts module Converter def dump_request: (top params) -> [top, ::Hash[Symbol, top]] diff --git a/sig/hanzoai/internal/type/union.rbs b/sig/hanzoai/internal/type/union.rbs index 12d3090a..af39ceaf 100644 --- a/sig/hanzoai/internal/type/union.rbs +++ b/sig/hanzoai/internal/type/union.rbs @@ -3,10 +3,11 @@ module Hanzoai module Type module Union include Hanzoai::Internal::Type::Converter + include Hanzoai::Internal::Util::SorbetRuntimeSupport - private def self.known_variants: -> ::Array[[Symbol?, (^-> Hanzoai::Internal::Type::Converter::input)]] + private def self.known_variants: -> ::Array[[Symbol?, (^-> Hanzoai::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] @@ -30,12 +31,21 @@ module Hanzoai def ==: (top other) -> bool + def hash: -> Integer + def coerce: ( top value, - state: Hanzoai::Internal::Type::Converter::state + state: Hanzoai::Internal::Type::Converter::coerce_state ) -> top - def dump: (top value) -> top + def dump: ( + top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> top + + def to_sorbet_type: -> top + + def inspect: (?depth: Integer) -> String end end end diff --git a/sig/hanzoai/internal/type/unknown.rbs b/sig/hanzoai/internal/type/unknown.rbs index a46fe501..6c376a7b 100644 --- a/sig/hanzoai/internal/type/unknown.rbs +++ b/sig/hanzoai/internal/type/unknown.rbs @@ -3,6 +3,7 @@ module Hanzoai module Type class Unknown extend Hanzoai::Internal::Type::Converter + extend Hanzoai::Internal::Util::SorbetRuntimeSupport def self.===: (top other) -> bool @@ -10,10 +11,15 @@ module Hanzoai def self.coerce: ( top value, - state: Hanzoai::Internal::Type::Converter::state + state: Hanzoai::Internal::Type::Converter::coerce_state ) -> top - def self.dump: (top value) -> top + def self.dump: ( + top value, + state: Hanzoai::Internal::Type::Converter::dump_state + ) -> top + + def self.to_sorbet_type: -> top end end end diff --git a/sig/hanzoai/internal/util.rbs b/sig/hanzoai/internal/util.rbs index 3f97dbbb..a64a8c98 100644 --- a/sig/hanzoai/internal/util.rbs +++ b/sig/hanzoai/internal/util.rbs @@ -1,8 +1,14 @@ module Hanzoai module Internal module Util + extend Hanzoai::Internal::Util::SorbetRuntimeSupport + def self?.monotonic_secs: -> Float + def self?.walk_namespaces: ( + Module | Class ns + ) -> Enumerable[(Module | Class)] + def self?.arch: -> String def self?.os: -> String @@ -19,6 +25,8 @@ module Hanzoai def self?.coerce_hash: (top input) -> (::Hash[top, top] | top) + def self?.coerce_hash!: (top input) -> ::Hash[top, top]? + def self?.deep_merge_lr: (top lhs, top rhs, ?concat: bool) -> top def self?.deep_merge: ( @@ -29,8 +37,10 @@ module Hanzoai def self?.dig: ( ::Hash[Symbol, top] | ::Array[top] | top data, - (Symbol | Integer | ::Array[(Symbol | Integer)])? pick, - ?top? sentinel + (Symbol + | Integer + | ::Array[(Symbol | Integer)] + | (^(top arg0) -> top))? pick ) { -> top? } -> top? @@ -74,12 +84,16 @@ module Hanzoai ) -> ::Hash[String, String] class ReadIOAdapter + def close?: -> bool? + + def close: -> void + private def read_enum: (Integer? max_len) -> String def read: (?Integer? max_len, ?String? out_string) -> String? def initialize: ( - String | IO | StringIO | Enumerable[String] stream + String | Pathname | StringIO | Enumerable[String] src ) { (String arg0) -> void } -> void @@ -89,11 +103,22 @@ module Hanzoai (Enumerator::Yielder y) -> void } -> Enumerable[String] + JSON_CONTENT: Regexp + JSONL_CONTENT: Regexp + + def self?.write_multipart_content: ( + Enumerator::Yielder y, + val: top, + closing: ::Array[^-> void], + ?content_type: String? + ) -> void + def self?.write_multipart_chunk: ( Enumerator::Yielder y, boundary: String, key: Symbol | String, - val: top + val: top, + closing: ::Array[^-> void] ) -> void def self?.encode_multipart_streaming: ( @@ -105,6 +130,8 @@ module Hanzoai top body ) -> top + def self?.force_charset!: (String content_type, text: String) -> void + def self?.decode_content: ( ::Hash[String, String] headers, stream: Enumerable[String], @@ -134,6 +161,25 @@ module Hanzoai def self?.decode_sse: ( Enumerable[String] lines ) -> Enumerable[Hanzoai::Internal::Util::server_sent_event] + + module SorbetRuntimeSupport + class MissingSorbetRuntimeError < ::RuntimeError + end + + private def sorbet_runtime_constants: -> ::Hash[Symbol, top] + + def const_missing: (Symbol name) -> void + + def sorbet_constant_defined?: (Symbol name) -> bool + + def define_sorbet_constant!: (Symbol name) { -> top } -> void + + def to_sorbet_type: -> top + + def self.to_sorbet_type: ( + Hanzoai::Internal::Util::SorbetRuntimeSupport | top `type` + ) -> top + end end end end diff --git a/sig/hanzoai/models.rbs b/sig/hanzoai/models.rbs new file mode 100644 index 00000000..abe2c084 --- /dev/null +++ b/sig/hanzoai/models.rbs @@ -0,0 +1,369 @@ +module Hanzoai + class ActiveListCallbacksParams = Hanzoai::Models::ActiveListCallbacksParams + + class AddAddAllowedIPParams = Hanzoai::Models::AddAddAllowedIPParams + + class AnthropicCreateParams = Hanzoai::Models::AnthropicCreateParams + + class AnthropicDeleteParams = Hanzoai::Models::AnthropicDeleteParams + + class AnthropicModifyParams = Hanzoai::Models::AnthropicModifyParams + + class AnthropicRetrieveParams = Hanzoai::Models::AnthropicRetrieveParams + + class AnthropicUpdateParams = Hanzoai::Models::AnthropicUpdateParams + + class AssemblyaiCreateParams = Hanzoai::Models::AssemblyaiCreateParams + + class AssemblyaiDeleteParams = Hanzoai::Models::AssemblyaiDeleteParams + + class AssemblyaiPatchParams = Hanzoai::Models::AssemblyaiPatchParams + + class AssemblyaiRetrieveParams = Hanzoai::Models::AssemblyaiRetrieveParams + + class AssemblyaiUpdateParams = Hanzoai::Models::AssemblyaiUpdateParams + + class AssistantCreateParams = Hanzoai::Models::AssistantCreateParams + + class AssistantDeleteParams = Hanzoai::Models::AssistantDeleteParams + + class AssistantListParams = Hanzoai::Models::AssistantListParams + + module Audio = Hanzoai::Models::Audio + + class AzureCallParams = Hanzoai::Models::AzureCallParams + + class AzureCreateParams = Hanzoai::Models::AzureCreateParams + + class AzureDeleteParams = Hanzoai::Models::AzureDeleteParams + + class AzurePatchParams = Hanzoai::Models::AzurePatchParams + + class AzureUpdateParams = Hanzoai::Models::AzureUpdateParams + + class BatchCancelWithProviderParams = Hanzoai::Models::BatchCancelWithProviderParams + + class BatchCreateParams = Hanzoai::Models::BatchCreateParams + + class BatchCreateWithProviderParams = Hanzoai::Models::BatchCreateWithProviderParams + + module Batches = Hanzoai::Models::Batches + + class BatchListParams = Hanzoai::Models::BatchListParams + + class BatchListWithProviderParams = Hanzoai::Models::BatchListWithProviderParams + + class BatchRetrieveParams = Hanzoai::Models::BatchRetrieveParams + + class BatchRetrieveWithProviderParams = Hanzoai::Models::BatchRetrieveWithProviderParams + + class BedrockCreateParams = Hanzoai::Models::BedrockCreateParams + + class BedrockDeleteParams = Hanzoai::Models::BedrockDeleteParams + + class BedrockPatchParams = Hanzoai::Models::BedrockPatchParams + + class BedrockRetrieveParams = Hanzoai::Models::BedrockRetrieveParams + + class BedrockUpdateParams = Hanzoai::Models::BedrockUpdateParams + + class BlockKeyRequest = Hanzoai::Models::BlockKeyRequest + + class BlockTeamRequest = Hanzoai::Models::BlockTeamRequest + + class BlockUsers = Hanzoai::Models::BlockUsers + + class BudgetCreateParams = Hanzoai::Models::BudgetCreateParams + + class BudgetDeleteParams = Hanzoai::Models::BudgetDeleteParams + + class BudgetInfoParams = Hanzoai::Models::BudgetInfoParams + + class BudgetListParams = Hanzoai::Models::BudgetListParams + + class BudgetNew = Hanzoai::Models::BudgetNew + + class BudgetSettingsParams = Hanzoai::Models::BudgetSettingsParams + + class BudgetTable = Hanzoai::Models::BudgetTable + + class BudgetUpdateParams = Hanzoai::Models::BudgetUpdateParams + + module Cache = Hanzoai::Models::Cache + + class CacheDeleteParams = Hanzoai::Models::CacheDeleteParams + + class CacheFlushAllParams = Hanzoai::Models::CacheFlushAllParams + + class CachePingParams = Hanzoai::Models::CachePingParams + + module Chat = Hanzoai::Models::Chat + + class ClientGetHomeParams = Hanzoai::Models::ClientGetHomeParams + + class CohereCreateParams = Hanzoai::Models::CohereCreateParams + + class CohereDeleteParams = Hanzoai::Models::CohereDeleteParams + + class CohereModifyParams = Hanzoai::Models::CohereModifyParams + + class CohereRetrieveParams = Hanzoai::Models::CohereRetrieveParams + + class CohereUpdateParams = Hanzoai::Models::CohereUpdateParams + + class CompletionCreateParams = Hanzoai::Models::CompletionCreateParams + + module Config = Hanzoai::Models::Config + + class CredentialCreateParams = Hanzoai::Models::CredentialCreateParams + + class CredentialDeleteParams = Hanzoai::Models::CredentialDeleteParams + + class CredentialItem = Hanzoai::Models::CredentialItem + + class CredentialListParams = Hanzoai::Models::CredentialListParams + + class CustomerBlockParams = Hanzoai::Models::CustomerBlockParams + + class CustomerCreateParams = Hanzoai::Models::CustomerCreateParams + + class CustomerDeleteParams = Hanzoai::Models::CustomerDeleteParams + + class CustomerListParams = Hanzoai::Models::CustomerListParams + + class CustomerRetrieveInfoParams = Hanzoai::Models::CustomerRetrieveInfoParams + + class CustomerUnblockParams = Hanzoai::Models::CustomerUnblockParams + + class CustomerUpdateParams = Hanzoai::Models::CustomerUpdateParams + + class DeleteCreateAllowedIPParams = Hanzoai::Models::DeleteCreateAllowedIPParams + + class EmbeddingCreateParams = Hanzoai::Models::EmbeddingCreateParams + + class EngineCompleteParams = Hanzoai::Models::EngineCompleteParams + + class EngineEmbedParams = Hanzoai::Models::EngineEmbedParams + + module Engines = Hanzoai::Models::Engines + + class EuAssemblyaiCreateParams = Hanzoai::Models::EuAssemblyaiCreateParams + + class EuAssemblyaiDeleteParams = Hanzoai::Models::EuAssemblyaiDeleteParams + + class EuAssemblyaiPatchParams = Hanzoai::Models::EuAssemblyaiPatchParams + + class EuAssemblyaiRetrieveParams = Hanzoai::Models::EuAssemblyaiRetrieveParams + + class EuAssemblyaiUpdateParams = Hanzoai::Models::EuAssemblyaiUpdateParams + + class FileCreateParams = Hanzoai::Models::FileCreateParams + + class FileDeleteParams = Hanzoai::Models::FileDeleteParams + + class FileListParams = Hanzoai::Models::FileListParams + + class FileRetrieveParams = Hanzoai::Models::FileRetrieveParams + + module Files = Hanzoai::Models::Files + + module FineTuning = Hanzoai::Models::FineTuning + + class GeminiCreateParams = Hanzoai::Models::GeminiCreateParams + + class GeminiDeleteParams = Hanzoai::Models::GeminiDeleteParams + + class GeminiPatchParams = Hanzoai::Models::GeminiPatchParams + + class GeminiRetrieveParams = Hanzoai::Models::GeminiRetrieveParams + + class GeminiUpdateParams = Hanzoai::Models::GeminiUpdateParams + + class GenerateKeyResponse = Hanzoai::Models::GenerateKeyResponse + + module Global = Hanzoai::Models::Global + + class GuardrailListParams = Hanzoai::Models::GuardrailListParams + + class HealthCheckAllParams = Hanzoai::Models::HealthCheckAllParams + + class HealthCheckLivelinessParams = Hanzoai::Models::HealthCheckLivelinessParams + + class HealthCheckLivenessParams = Hanzoai::Models::HealthCheckLivenessParams + + class HealthCheckReadinessParams = Hanzoai::Models::HealthCheckReadinessParams + + class HealthCheckServicesParams = Hanzoai::Models::HealthCheckServicesParams + + module Images = Hanzoai::Models::Images + + class IPAddress = Hanzoai::Models::IPAddress + + module Key = Hanzoai::Models::Key + + class KeyBlockParams = Hanzoai::Models::KeyBlockParams + + class KeyCheckHealthParams = Hanzoai::Models::KeyCheckHealthParams + + class KeyDeleteParams = Hanzoai::Models::KeyDeleteParams + + class KeyGenerateParams = Hanzoai::Models::KeyGenerateParams + + class KeyListParams = Hanzoai::Models::KeyListParams + + class KeyRegenerateByKeyParams = Hanzoai::Models::KeyRegenerateByKeyParams + + class KeyRetrieveInfoParams = Hanzoai::Models::KeyRetrieveInfoParams + + class KeyUnblockParams = Hanzoai::Models::KeyUnblockParams + + class KeyUpdateParams = Hanzoai::Models::KeyUpdateParams + + class LangfuseCreateParams = Hanzoai::Models::LangfuseCreateParams + + class LangfuseDeleteParams = Hanzoai::Models::LangfuseDeleteParams + + class LangfusePatchParams = Hanzoai::Models::LangfusePatchParams + + class LangfuseRetrieveParams = Hanzoai::Models::LangfuseRetrieveParams + + class LangfuseUpdateParams = Hanzoai::Models::LangfuseUpdateParams + + class LiteLlmEndUserTable = Hanzoai::Models::LiteLlmEndUserTable + + class Member = Hanzoai::Models::Member + + module Model = Hanzoai::Models::Model + + class ModelCreateParams = Hanzoai::Models::ModelCreateParams + + class ModelDeleteParams = Hanzoai::Models::ModelDeleteParams + + class ModelGroupRetrieveInfoParams = Hanzoai::Models::ModelGroupRetrieveInfoParams + + class ModelInfo = Hanzoai::Models::ModelInfo + + class ModelListParams = Hanzoai::Models::ModelListParams + + class ModerationCreateParams = Hanzoai::Models::ModerationCreateParams + + module OpenAI = Hanzoai::Models::OpenAI + + class OpenAICreateParams = Hanzoai::Models::OpenAICreateParams + + class OpenAIDeleteParams = Hanzoai::Models::OpenAIDeleteParams + + class OpenAIPatchParams = Hanzoai::Models::OpenAIPatchParams + + class OpenAIRetrieveParams = Hanzoai::Models::OpenAIRetrieveParams + + class OpenAIUpdateParams = Hanzoai::Models::OpenAIUpdateParams + + module Organization = Hanzoai::Models::Organization + + class OrganizationAddMemberParams = Hanzoai::Models::OrganizationAddMemberParams + + class OrganizationCreateParams = Hanzoai::Models::OrganizationCreateParams + + class OrganizationDeleteMemberParams = Hanzoai::Models::OrganizationDeleteMemberParams + + class OrganizationDeleteParams = Hanzoai::Models::OrganizationDeleteParams + + class OrganizationListParams = Hanzoai::Models::OrganizationListParams + + class OrganizationMembershipTable = Hanzoai::Models::OrganizationMembershipTable + + class OrganizationTableWithMembers = Hanzoai::Models::OrganizationTableWithMembers + + class OrganizationUpdateMemberParams = Hanzoai::Models::OrganizationUpdateMemberParams + + class OrganizationUpdateParams = Hanzoai::Models::OrganizationUpdateParams + + class OrgMember = Hanzoai::Models::OrgMember + + class ProviderListBudgetsParams = Hanzoai::Models::ProviderListBudgetsParams + + class RerankCreateParams = Hanzoai::Models::RerankCreateParams + + class RerankCreateV1Params = Hanzoai::Models::RerankCreateV1Params + + class RerankCreateV2Params = Hanzoai::Models::RerankCreateV2Params + + class ResponseCreateParams = Hanzoai::Models::ResponseCreateParams + + class ResponseDeleteParams = Hanzoai::Models::ResponseDeleteParams + + class ResponseRetrieveParams = Hanzoai::Models::ResponseRetrieveParams + + module Responses = Hanzoai::Models::Responses + + class RouteListParams = Hanzoai::Models::RouteListParams + + class SettingRetrieveParams = Hanzoai::Models::SettingRetrieveParams + + class SpendCalculateSpendParams = Hanzoai::Models::SpendCalculateSpendParams + + class SpendListLogsParams = Hanzoai::Models::SpendListLogsParams + + class SpendListTagsParams = Hanzoai::Models::SpendListTagsParams + + module Team = Hanzoai::Models::Team + + class TeamAddMemberParams = Hanzoai::Models::TeamAddMemberParams + + class TeamBlockParams = Hanzoai::Models::TeamBlockParams + + class TeamCreateParams = Hanzoai::Models::TeamCreateParams + + class TeamDeleteParams = Hanzoai::Models::TeamDeleteParams + + class TeamDisableLoggingParams = Hanzoai::Models::TeamDisableLoggingParams + + class TeamListAvailableParams = Hanzoai::Models::TeamListAvailableParams + + class TeamListParams = Hanzoai::Models::TeamListParams + + class TeamRemoveMemberParams = Hanzoai::Models::TeamRemoveMemberParams + + class TeamRetrieveInfoParams = Hanzoai::Models::TeamRetrieveInfoParams + + class TeamUnblockParams = Hanzoai::Models::TeamUnblockParams + + class TeamUpdateMemberParams = Hanzoai::Models::TeamUpdateMemberParams + + class TeamUpdateParams = Hanzoai::Models::TeamUpdateParams + + class TestPingParams = Hanzoai::Models::TestPingParams + + class ThreadCreateParams = Hanzoai::Models::ThreadCreateParams + + class ThreadRetrieveParams = Hanzoai::Models::ThreadRetrieveParams + + module Threads = Hanzoai::Models::Threads + + class UserCreateParams = Hanzoai::Models::UserCreateParams + + class UserDeleteParams = Hanzoai::Models::UserDeleteParams + + class UserRetrieveInfoParams = Hanzoai::Models::UserRetrieveInfoParams + + module UserRoles = Hanzoai::Models::UserRoles + + class UserUpdateParams = Hanzoai::Models::UserUpdateParams + + class UtilGetSupportedOpenAIParamsParams = Hanzoai::Models::UtilGetSupportedOpenAIParamsParams + + class UtilTokenCounterParams = Hanzoai::Models::UtilTokenCounterParams + + class UtilTransformRequestParams = Hanzoai::Models::UtilTransformRequestParams + + class VertexAICreateParams = Hanzoai::Models::VertexAICreateParams + + class VertexAIDeleteParams = Hanzoai::Models::VertexAIDeleteParams + + class VertexAIPatchParams = Hanzoai::Models::VertexAIPatchParams + + class VertexAIRetrieveParams = Hanzoai::Models::VertexAIRetrieveParams + + class VertexAIUpdateParams = Hanzoai::Models::VertexAIUpdateParams +end diff --git a/sig/hanzoai/models/active_list_callbacks_params.rbs b/sig/hanzoai/models/active_list_callbacks_params.rbs index 773b53fd..d9973749 100644 --- a/sig/hanzoai/models/active_list_callbacks_params.rbs +++ b/sig/hanzoai/models/active_list_callbacks_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::active_list_callbacks_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/active_list_callbacks_response.rbs b/sig/hanzoai/models/active_list_callbacks_response.rbs new file mode 100644 index 00000000..92c17d11 --- /dev/null +++ b/sig/hanzoai/models/active_list_callbacks_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ActiveListCallbacksResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/add_add_allowed_ip_params.rbs b/sig/hanzoai/models/add_add_allowed_ip_params.rbs index 612e394a..86d55732 100644 --- a/sig/hanzoai/models/add_add_allowed_ip_params.rbs +++ b/sig/hanzoai/models/add_add_allowed_ip_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::add_add_allowed_ip_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/add_add_allowed_ip_response.rbs b/sig/hanzoai/models/add_add_allowed_ip_response.rbs new file mode 100644 index 00000000..7b1170e3 --- /dev/null +++ b/sig/hanzoai/models/add_add_allowed_ip_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AddAddAllowedIPResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/anthropic_create_params.rbs b/sig/hanzoai/models/anthropic_create_params.rbs index 40e53837..ace6a71c 100644 --- a/sig/hanzoai/models/anthropic_create_params.rbs +++ b/sig/hanzoai/models/anthropic_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::anthropic_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/anthropic_create_response.rbs b/sig/hanzoai/models/anthropic_create_response.rbs new file mode 100644 index 00000000..90522b8e --- /dev/null +++ b/sig/hanzoai/models/anthropic_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AnthropicCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/anthropic_delete_params.rbs b/sig/hanzoai/models/anthropic_delete_params.rbs index 714f002d..4ac0a14a 100644 --- a/sig/hanzoai/models/anthropic_delete_params.rbs +++ b/sig/hanzoai/models/anthropic_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::anthropic_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/anthropic_delete_response.rbs b/sig/hanzoai/models/anthropic_delete_response.rbs new file mode 100644 index 00000000..2af0d421 --- /dev/null +++ b/sig/hanzoai/models/anthropic_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AnthropicDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/anthropic_modify_params.rbs b/sig/hanzoai/models/anthropic_modify_params.rbs index 5ac4f81a..65d27a0c 100644 --- a/sig/hanzoai/models/anthropic_modify_params.rbs +++ b/sig/hanzoai/models/anthropic_modify_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::anthropic_modify_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/anthropic_modify_response.rbs b/sig/hanzoai/models/anthropic_modify_response.rbs new file mode 100644 index 00000000..c5efb8ea --- /dev/null +++ b/sig/hanzoai/models/anthropic_modify_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AnthropicModifyResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/anthropic_retrieve_params.rbs b/sig/hanzoai/models/anthropic_retrieve_params.rbs index cbc35563..5faa84b7 100644 --- a/sig/hanzoai/models/anthropic_retrieve_params.rbs +++ b/sig/hanzoai/models/anthropic_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::anthropic_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/anthropic_retrieve_response.rbs b/sig/hanzoai/models/anthropic_retrieve_response.rbs new file mode 100644 index 00000000..5a029621 --- /dev/null +++ b/sig/hanzoai/models/anthropic_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AnthropicRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/anthropic_update_params.rbs b/sig/hanzoai/models/anthropic_update_params.rbs index 8f6121d2..a47a872e 100644 --- a/sig/hanzoai/models/anthropic_update_params.rbs +++ b/sig/hanzoai/models/anthropic_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::anthropic_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/anthropic_update_response.rbs b/sig/hanzoai/models/anthropic_update_response.rbs new file mode 100644 index 00000000..a60b7afa --- /dev/null +++ b/sig/hanzoai/models/anthropic_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AnthropicUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assemblyai_create_params.rbs b/sig/hanzoai/models/assemblyai_create_params.rbs index 1c2349e8..3519dc84 100644 --- a/sig/hanzoai/models/assemblyai_create_params.rbs +++ b/sig/hanzoai/models/assemblyai_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assemblyai_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assemblyai_create_response.rbs b/sig/hanzoai/models/assemblyai_create_response.rbs new file mode 100644 index 00000000..805a0f8e --- /dev/null +++ b/sig/hanzoai/models/assemblyai_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssemblyaiCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assemblyai_delete_params.rbs b/sig/hanzoai/models/assemblyai_delete_params.rbs index 1a4e3a66..081b8543 100644 --- a/sig/hanzoai/models/assemblyai_delete_params.rbs +++ b/sig/hanzoai/models/assemblyai_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assemblyai_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assemblyai_delete_response.rbs b/sig/hanzoai/models/assemblyai_delete_response.rbs new file mode 100644 index 00000000..a01fc431 --- /dev/null +++ b/sig/hanzoai/models/assemblyai_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssemblyaiDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assemblyai_patch_params.rbs b/sig/hanzoai/models/assemblyai_patch_params.rbs index dac0ba62..3055b4d3 100644 --- a/sig/hanzoai/models/assemblyai_patch_params.rbs +++ b/sig/hanzoai/models/assemblyai_patch_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assemblyai_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assemblyai_patch_response.rbs b/sig/hanzoai/models/assemblyai_patch_response.rbs new file mode 100644 index 00000000..2b310f78 --- /dev/null +++ b/sig/hanzoai/models/assemblyai_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssemblyaiPatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assemblyai_retrieve_params.rbs b/sig/hanzoai/models/assemblyai_retrieve_params.rbs index 250d2125..60b39e6c 100644 --- a/sig/hanzoai/models/assemblyai_retrieve_params.rbs +++ b/sig/hanzoai/models/assemblyai_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assemblyai_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assemblyai_retrieve_response.rbs b/sig/hanzoai/models/assemblyai_retrieve_response.rbs new file mode 100644 index 00000000..572813ef --- /dev/null +++ b/sig/hanzoai/models/assemblyai_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssemblyaiRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assemblyai_update_params.rbs b/sig/hanzoai/models/assemblyai_update_params.rbs index 6542f33f..770f7902 100644 --- a/sig/hanzoai/models/assemblyai_update_params.rbs +++ b/sig/hanzoai/models/assemblyai_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assemblyai_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assemblyai_update_response.rbs b/sig/hanzoai/models/assemblyai_update_response.rbs new file mode 100644 index 00000000..5edc67f2 --- /dev/null +++ b/sig/hanzoai/models/assemblyai_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssemblyaiUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assistant_create_params.rbs b/sig/hanzoai/models/assistant_create_params.rbs index cac9313c..36cf5898 100644 --- a/sig/hanzoai/models/assistant_create_params.rbs +++ b/sig/hanzoai/models/assistant_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assistant_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assistant_create_response.rbs b/sig/hanzoai/models/assistant_create_response.rbs new file mode 100644 index 00000000..c742852c --- /dev/null +++ b/sig/hanzoai/models/assistant_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssistantCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assistant_delete_params.rbs b/sig/hanzoai/models/assistant_delete_params.rbs index 710b7fb2..11885750 100644 --- a/sig/hanzoai/models/assistant_delete_params.rbs +++ b/sig/hanzoai/models/assistant_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assistant_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assistant_delete_response.rbs b/sig/hanzoai/models/assistant_delete_response.rbs new file mode 100644 index 00000000..40c1785e --- /dev/null +++ b/sig/hanzoai/models/assistant_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssistantDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/assistant_list_params.rbs b/sig/hanzoai/models/assistant_list_params.rbs index 7b380a87..a5d9243e 100644 --- a/sig/hanzoai/models/assistant_list_params.rbs +++ b/sig/hanzoai/models/assistant_list_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::assistant_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/assistant_list_response.rbs b/sig/hanzoai/models/assistant_list_response.rbs new file mode 100644 index 00000000..c7873aa1 --- /dev/null +++ b/sig/hanzoai/models/assistant_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AssistantListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/audio/speech_create_params.rbs b/sig/hanzoai/models/audio/speech_create_params.rbs index e0a23671..118afd44 100644 --- a/sig/hanzoai/models/audio/speech_create_params.rbs +++ b/sig/hanzoai/models/audio/speech_create_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Audio::speech_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/audio/speech_create_response.rbs b/sig/hanzoai/models/audio/speech_create_response.rbs new file mode 100644 index 00000000..28aa390b --- /dev/null +++ b/sig/hanzoai/models/audio/speech_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Audio + SpeechCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/audio/transcription_create_params.rbs b/sig/hanzoai/models/audio/transcription_create_params.rbs index b4c19658..4b2d3626 100644 --- a/sig/hanzoai/models/audio/transcription_create_params.rbs +++ b/sig/hanzoai/models/audio/transcription_create_params.rbs @@ -2,20 +2,24 @@ module Hanzoai module Models module Audio type transcription_create_params = - { file: (IO | StringIO) } & Hanzoai::Internal::Type::request_parameters + { file: Hanzoai::Internal::file_input } + & Hanzoai::Internal::Type::request_parameters class TranscriptionCreateParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor file: IO | StringIO + attr_accessor file: Hanzoai::Internal::file_input def initialize: ( - file: IO | StringIO, + file: Hanzoai::Internal::file_input, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Audio::transcription_create_params + def to_hash: -> { + file: Hanzoai::Internal::file_input, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/audio/transcription_create_response.rbs b/sig/hanzoai/models/audio/transcription_create_response.rbs new file mode 100644 index 00000000..5841a904 --- /dev/null +++ b/sig/hanzoai/models/audio/transcription_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Audio + TranscriptionCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/azure_call_params.rbs b/sig/hanzoai/models/azure_call_params.rbs index 94ba750d..7bcbc46e 100644 --- a/sig/hanzoai/models/azure_call_params.rbs +++ b/sig/hanzoai/models/azure_call_params.rbs @@ -8,7 +8,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::azure_call_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/azure_call_response.rbs b/sig/hanzoai/models/azure_call_response.rbs new file mode 100644 index 00000000..5bcbf146 --- /dev/null +++ b/sig/hanzoai/models/azure_call_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AzureCallResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/azure_create_params.rbs b/sig/hanzoai/models/azure_create_params.rbs index 983af52a..485b98b3 100644 --- a/sig/hanzoai/models/azure_create_params.rbs +++ b/sig/hanzoai/models/azure_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::azure_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/azure_create_response.rbs b/sig/hanzoai/models/azure_create_response.rbs new file mode 100644 index 00000000..4169fb8e --- /dev/null +++ b/sig/hanzoai/models/azure_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AzureCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/azure_delete_params.rbs b/sig/hanzoai/models/azure_delete_params.rbs index ae0a7bea..e5b34554 100644 --- a/sig/hanzoai/models/azure_delete_params.rbs +++ b/sig/hanzoai/models/azure_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::azure_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/azure_delete_response.rbs b/sig/hanzoai/models/azure_delete_response.rbs new file mode 100644 index 00000000..d5ca67a2 --- /dev/null +++ b/sig/hanzoai/models/azure_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AzureDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/azure_patch_params.rbs b/sig/hanzoai/models/azure_patch_params.rbs index c96232ea..45301158 100644 --- a/sig/hanzoai/models/azure_patch_params.rbs +++ b/sig/hanzoai/models/azure_patch_params.rbs @@ -8,7 +8,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::azure_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/azure_patch_response.rbs b/sig/hanzoai/models/azure_patch_response.rbs new file mode 100644 index 00000000..1ed6f1ec --- /dev/null +++ b/sig/hanzoai/models/azure_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AzurePatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/azure_update_params.rbs b/sig/hanzoai/models/azure_update_params.rbs index ff990184..5d03ef3f 100644 --- a/sig/hanzoai/models/azure_update_params.rbs +++ b/sig/hanzoai/models/azure_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::azure_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/azure_update_response.rbs b/sig/hanzoai/models/azure_update_response.rbs new file mode 100644 index 00000000..708c99cf --- /dev/null +++ b/sig/hanzoai/models/azure_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + AzureUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batch_cancel_with_provider_params.rbs b/sig/hanzoai/models/batch_cancel_with_provider_params.rbs index 02eb36c2..241a20ec 100644 --- a/sig/hanzoai/models/batch_cancel_with_provider_params.rbs +++ b/sig/hanzoai/models/batch_cancel_with_provider_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::batch_cancel_with_provider_params + def to_hash: -> { + provider: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/batch_cancel_with_provider_response.rbs b/sig/hanzoai/models/batch_cancel_with_provider_response.rbs new file mode 100644 index 00000000..48b3e121 --- /dev/null +++ b/sig/hanzoai/models/batch_cancel_with_provider_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BatchCancelWithProviderResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batch_create_params.rbs b/sig/hanzoai/models/batch_create_params.rbs index 372cbd97..e8178b1c 100644 --- a/sig/hanzoai/models/batch_create_params.rbs +++ b/sig/hanzoai/models/batch_create_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::batch_create_params + def to_hash: -> { + provider: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/batch_create_response.rbs b/sig/hanzoai/models/batch_create_response.rbs new file mode 100644 index 00000000..ec629584 --- /dev/null +++ b/sig/hanzoai/models/batch_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BatchCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batch_create_with_provider_params.rbs b/sig/hanzoai/models/batch_create_with_provider_params.rbs index e725a6fc..584a3547 100644 --- a/sig/hanzoai/models/batch_create_with_provider_params.rbs +++ b/sig/hanzoai/models/batch_create_with_provider_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::batch_create_with_provider_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/batch_create_with_provider_response.rbs b/sig/hanzoai/models/batch_create_with_provider_response.rbs new file mode 100644 index 00000000..0b160e80 --- /dev/null +++ b/sig/hanzoai/models/batch_create_with_provider_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BatchCreateWithProviderResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batch_list_params.rbs b/sig/hanzoai/models/batch_list_params.rbs index d911d689..be0d0fd3 100644 --- a/sig/hanzoai/models/batch_list_params.rbs +++ b/sig/hanzoai/models/batch_list_params.rbs @@ -1,7 +1,12 @@ module Hanzoai module Models type batch_list_params = - { after: String?, limit: Integer?, provider: String? } + { + after: String?, + limit: Integer?, + provider: String?, + target_model_names: String? + } & Hanzoai::Internal::Type::request_parameters class BatchListParams < Hanzoai::Internal::Type::BaseModel @@ -14,14 +19,23 @@ module Hanzoai attr_accessor provider: String? + attr_accessor target_model_names: String? + def initialize: ( ?after: String?, ?limit: Integer?, ?provider: String?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::batch_list_params + def to_hash: -> { + after: String?, + limit: Integer?, + provider: String?, + target_model_names: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/batch_list_response.rbs b/sig/hanzoai/models/batch_list_response.rbs new file mode 100644 index 00000000..3aeaa2c7 --- /dev/null +++ b/sig/hanzoai/models/batch_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BatchListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batch_list_with_provider_params.rbs b/sig/hanzoai/models/batch_list_with_provider_params.rbs index 035b14c4..d1eec42b 100644 --- a/sig/hanzoai/models/batch_list_with_provider_params.rbs +++ b/sig/hanzoai/models/batch_list_with_provider_params.rbs @@ -1,7 +1,7 @@ module Hanzoai module Models type batch_list_with_provider_params = - { after: String?, limit: Integer? } + { after: String?, limit: Integer?, target_model_names: String? } & Hanzoai::Internal::Type::request_parameters class BatchListWithProviderParams < Hanzoai::Internal::Type::BaseModel @@ -12,13 +12,21 @@ module Hanzoai attr_accessor limit: Integer? + attr_accessor target_model_names: String? + def initialize: ( ?after: String?, ?limit: Integer?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::batch_list_with_provider_params + def to_hash: -> { + after: String?, + limit: Integer?, + target_model_names: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/batch_list_with_provider_response.rbs b/sig/hanzoai/models/batch_list_with_provider_response.rbs new file mode 100644 index 00000000..8d23bce9 --- /dev/null +++ b/sig/hanzoai/models/batch_list_with_provider_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BatchListWithProviderResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batch_retrieve_params.rbs b/sig/hanzoai/models/batch_retrieve_params.rbs index 374779cc..9c594c23 100644 --- a/sig/hanzoai/models/batch_retrieve_params.rbs +++ b/sig/hanzoai/models/batch_retrieve_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::batch_retrieve_params + def to_hash: -> { + provider: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/batch_retrieve_response.rbs b/sig/hanzoai/models/batch_retrieve_response.rbs new file mode 100644 index 00000000..a656d95a --- /dev/null +++ b/sig/hanzoai/models/batch_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BatchRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batch_retrieve_with_provider_params.rbs b/sig/hanzoai/models/batch_retrieve_with_provider_params.rbs index 53b17339..62b66a13 100644 --- a/sig/hanzoai/models/batch_retrieve_with_provider_params.rbs +++ b/sig/hanzoai/models/batch_retrieve_with_provider_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::batch_retrieve_with_provider_params + def to_hash: -> { + provider: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/batch_retrieve_with_provider_response.rbs b/sig/hanzoai/models/batch_retrieve_with_provider_response.rbs new file mode 100644 index 00000000..9d28cb30 --- /dev/null +++ b/sig/hanzoai/models/batch_retrieve_with_provider_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BatchRetrieveWithProviderResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/batches/cancel_cancel_params.rbs b/sig/hanzoai/models/batches/cancel_cancel_params.rbs index 3c95dd8e..bd7f9700 100644 --- a/sig/hanzoai/models/batches/cancel_cancel_params.rbs +++ b/sig/hanzoai/models/batches/cancel_cancel_params.rbs @@ -15,7 +15,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Batches::cancel_cancel_params + def to_hash: -> { + provider: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/batches/cancel_cancel_response.rbs b/sig/hanzoai/models/batches/cancel_cancel_response.rbs new file mode 100644 index 00000000..7154aa7c --- /dev/null +++ b/sig/hanzoai/models/batches/cancel_cancel_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Batches + CancelCancelResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/bedrock_create_params.rbs b/sig/hanzoai/models/bedrock_create_params.rbs index de0ef2ff..710f0bd4 100644 --- a/sig/hanzoai/models/bedrock_create_params.rbs +++ b/sig/hanzoai/models/bedrock_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::bedrock_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/bedrock_create_response.rbs b/sig/hanzoai/models/bedrock_create_response.rbs new file mode 100644 index 00000000..f58a0f61 --- /dev/null +++ b/sig/hanzoai/models/bedrock_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BedrockCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/bedrock_delete_params.rbs b/sig/hanzoai/models/bedrock_delete_params.rbs index daee0df9..4b92b05a 100644 --- a/sig/hanzoai/models/bedrock_delete_params.rbs +++ b/sig/hanzoai/models/bedrock_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::bedrock_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/bedrock_delete_response.rbs b/sig/hanzoai/models/bedrock_delete_response.rbs new file mode 100644 index 00000000..35ad52be --- /dev/null +++ b/sig/hanzoai/models/bedrock_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BedrockDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/bedrock_patch_params.rbs b/sig/hanzoai/models/bedrock_patch_params.rbs index 6aeea2ed..8480b52a 100644 --- a/sig/hanzoai/models/bedrock_patch_params.rbs +++ b/sig/hanzoai/models/bedrock_patch_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::bedrock_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/bedrock_patch_response.rbs b/sig/hanzoai/models/bedrock_patch_response.rbs new file mode 100644 index 00000000..0fae9fbc --- /dev/null +++ b/sig/hanzoai/models/bedrock_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BedrockPatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/bedrock_retrieve_params.rbs b/sig/hanzoai/models/bedrock_retrieve_params.rbs index 4ec2f531..37f70bdb 100644 --- a/sig/hanzoai/models/bedrock_retrieve_params.rbs +++ b/sig/hanzoai/models/bedrock_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::bedrock_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/bedrock_retrieve_response.rbs b/sig/hanzoai/models/bedrock_retrieve_response.rbs new file mode 100644 index 00000000..9ba6c8c9 --- /dev/null +++ b/sig/hanzoai/models/bedrock_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BedrockRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/bedrock_update_params.rbs b/sig/hanzoai/models/bedrock_update_params.rbs index 03a4f4e5..40700550 100644 --- a/sig/hanzoai/models/bedrock_update_params.rbs +++ b/sig/hanzoai/models/bedrock_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::bedrock_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/bedrock_update_response.rbs b/sig/hanzoai/models/bedrock_update_response.rbs new file mode 100644 index 00000000..cf9c6777 --- /dev/null +++ b/sig/hanzoai/models/bedrock_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BedrockUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/block_key_request.rbs b/sig/hanzoai/models/block_key_request.rbs index 2ce7130c..48788020 100644 --- a/sig/hanzoai/models/block_key_request.rbs +++ b/sig/hanzoai/models/block_key_request.rbs @@ -7,7 +7,7 @@ module Hanzoai def initialize: (key: String) -> void - def to_hash: -> Hanzoai::Models::block_key_request + def to_hash: -> { key: String } end end end diff --git a/sig/hanzoai/models/block_team_request.rbs b/sig/hanzoai/models/block_team_request.rbs index 9e254895..cfed90e5 100644 --- a/sig/hanzoai/models/block_team_request.rbs +++ b/sig/hanzoai/models/block_team_request.rbs @@ -7,7 +7,7 @@ module Hanzoai def initialize: (team_id: String) -> void - def to_hash: -> Hanzoai::Models::block_team_request + def to_hash: -> { team_id: String } end end end diff --git a/sig/hanzoai/models/block_users.rbs b/sig/hanzoai/models/block_users.rbs index 79cf8837..83434673 100644 --- a/sig/hanzoai/models/block_users.rbs +++ b/sig/hanzoai/models/block_users.rbs @@ -7,7 +7,7 @@ module Hanzoai def initialize: (user_ids: ::Array[String]) -> void - def to_hash: -> Hanzoai::Models::block_users + def to_hash: -> { user_ids: ::Array[String] } end end end diff --git a/sig/hanzoai/models/budget_create_params.rbs b/sig/hanzoai/models/budget_create_params.rbs index 709d77dd..10aec1e4 100644 --- a/sig/hanzoai/models/budget_create_params.rbs +++ b/sig/hanzoai/models/budget_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::budget_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/budget_create_response.rbs b/sig/hanzoai/models/budget_create_response.rbs new file mode 100644 index 00000000..5d5ddd39 --- /dev/null +++ b/sig/hanzoai/models/budget_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BudgetCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/budget_delete_params.rbs b/sig/hanzoai/models/budget_delete_params.rbs index ff470840..59f65289 100644 --- a/sig/hanzoai/models/budget_delete_params.rbs +++ b/sig/hanzoai/models/budget_delete_params.rbs @@ -14,7 +14,7 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::budget_delete_params + def to_hash: -> { id: String, request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/budget_delete_response.rbs b/sig/hanzoai/models/budget_delete_response.rbs new file mode 100644 index 00000000..b9774532 --- /dev/null +++ b/sig/hanzoai/models/budget_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BudgetDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/budget_info_params.rbs b/sig/hanzoai/models/budget_info_params.rbs index 1bb86ae9..3f29837b 100644 --- a/sig/hanzoai/models/budget_info_params.rbs +++ b/sig/hanzoai/models/budget_info_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::budget_info_params + def to_hash: -> { + budgets: ::Array[String], + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/budget_info_response.rbs b/sig/hanzoai/models/budget_info_response.rbs new file mode 100644 index 00000000..0e71a3ec --- /dev/null +++ b/sig/hanzoai/models/budget_info_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BudgetInfoResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/budget_list_params.rbs b/sig/hanzoai/models/budget_list_params.rbs index 62606a76..e290a647 100644 --- a/sig/hanzoai/models/budget_list_params.rbs +++ b/sig/hanzoai/models/budget_list_params.rbs @@ -8,7 +8,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::budget_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/budget_list_response.rbs b/sig/hanzoai/models/budget_list_response.rbs new file mode 100644 index 00000000..26b94461 --- /dev/null +++ b/sig/hanzoai/models/budget_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BudgetListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/budget_new.rbs b/sig/hanzoai/models/budget_new.rbs index fe5fab67..4d0f2713 100644 --- a/sig/hanzoai/models/budget_new.rbs +++ b/sig/hanzoai/models/budget_new.rbs @@ -4,9 +4,10 @@ module Hanzoai { budget_duration: String?, budget_id: String?, + budget_reset_at: Time?, max_budget: Float?, max_parallel_requests: Integer?, - model_max_budget: ::Hash[Symbol, Hanzoai::Models::BudgetNew::ModelMaxBudget]?, + model_max_budget: ::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget]?, rpm_limit: Integer?, soft_budget: Float?, tpm_limit: Integer? @@ -17,11 +18,13 @@ module Hanzoai attr_accessor budget_id: String? + attr_accessor budget_reset_at: Time? + attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_accessor model_max_budget: ::Hash[Symbol, Hanzoai::Models::BudgetNew::ModelMaxBudget]? + attr_accessor model_max_budget: ::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget]? attr_accessor rpm_limit: Integer? @@ -32,15 +35,26 @@ module Hanzoai def initialize: ( ?budget_duration: String?, ?budget_id: String?, + ?budget_reset_at: Time?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?model_max_budget: ::Hash[Symbol, Hanzoai::Models::BudgetNew::ModelMaxBudget]?, + ?model_max_budget: ::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget]?, ?rpm_limit: Integer?, ?soft_budget: Float?, ?tpm_limit: Integer? ) -> void - def to_hash: -> Hanzoai::Models::budget_new + def to_hash: -> { + budget_duration: String?, + budget_id: String?, + budget_reset_at: Time?, + max_budget: Float?, + max_parallel_requests: Integer?, + model_max_budget: ::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget]?, + rpm_limit: Integer?, + soft_budget: Float?, + tpm_limit: Integer? + } type model_max_budget = { @@ -66,7 +80,12 @@ module Hanzoai ?tpm_limit: Integer? ) -> void - def to_hash: -> Hanzoai::Models::BudgetNew::model_max_budget + def to_hash: -> { + budget_duration: String?, + max_budget: Float?, + rpm_limit: Integer?, + tpm_limit: Integer? + } end end end diff --git a/sig/hanzoai/models/budget_settings_params.rbs b/sig/hanzoai/models/budget_settings_params.rbs index 8b894c43..2a62490d 100644 --- a/sig/hanzoai/models/budget_settings_params.rbs +++ b/sig/hanzoai/models/budget_settings_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::budget_settings_params + def to_hash: -> { + budget_id: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/budget_settings_response.rbs b/sig/hanzoai/models/budget_settings_response.rbs new file mode 100644 index 00000000..45c142ad --- /dev/null +++ b/sig/hanzoai/models/budget_settings_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BudgetSettingsResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/budget_table.rbs b/sig/hanzoai/models/budget_table.rbs new file mode 100644 index 00000000..ea472427 --- /dev/null +++ b/sig/hanzoai/models/budget_table.rbs @@ -0,0 +1,55 @@ +module Hanzoai + module Models + type budget_table = + { + budget_duration: String?, + budget_id: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + model_max_budget: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + soft_budget: Float?, + tpm_limit: Integer? + } + + class BudgetTable < Hanzoai::Internal::Type::BaseModel + attr_accessor budget_duration: String? + + attr_accessor budget_id: String? + + attr_accessor max_budget: Float? + + attr_accessor max_parallel_requests: Integer? + + attr_accessor model_max_budget: ::Hash[Symbol, top]? + + attr_accessor rpm_limit: Integer? + + attr_accessor soft_budget: Float? + + attr_accessor tpm_limit: Integer? + + def initialize: ( + ?budget_duration: String?, + ?budget_id: String?, + ?max_budget: Float?, + ?max_parallel_requests: Integer?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?rpm_limit: Integer?, + ?soft_budget: Float?, + ?tpm_limit: Integer? + ) -> void + + def to_hash: -> { + budget_duration: String?, + budget_id: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + model_max_budget: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + soft_budget: Float?, + tpm_limit: Integer? + } + end + end +end diff --git a/sig/hanzoai/models/budget_update_params.rbs b/sig/hanzoai/models/budget_update_params.rbs index be42f6aa..3efcbe79 100644 --- a/sig/hanzoai/models/budget_update_params.rbs +++ b/sig/hanzoai/models/budget_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::budget_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/budget_update_response.rbs b/sig/hanzoai/models/budget_update_response.rbs new file mode 100644 index 00000000..397773ef --- /dev/null +++ b/sig/hanzoai/models/budget_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + BudgetUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/cache/redi_retrieve_info_params.rbs b/sig/hanzoai/models/cache/redi_retrieve_info_params.rbs index 3afc9865..81e40b29 100644 --- a/sig/hanzoai/models/cache/redi_retrieve_info_params.rbs +++ b/sig/hanzoai/models/cache/redi_retrieve_info_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Cache::redi_retrieve_info_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cache/redi_retrieve_info_response.rbs b/sig/hanzoai/models/cache/redi_retrieve_info_response.rbs new file mode 100644 index 00000000..ac049537 --- /dev/null +++ b/sig/hanzoai/models/cache/redi_retrieve_info_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Cache + RediRetrieveInfoResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/cache_delete_params.rbs b/sig/hanzoai/models/cache_delete_params.rbs index 374d8e29..63f67492 100644 --- a/sig/hanzoai/models/cache_delete_params.rbs +++ b/sig/hanzoai/models/cache_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cache_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cache_delete_response.rbs b/sig/hanzoai/models/cache_delete_response.rbs new file mode 100644 index 00000000..48fed2bb --- /dev/null +++ b/sig/hanzoai/models/cache_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CacheDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/cache_flush_all_params.rbs b/sig/hanzoai/models/cache_flush_all_params.rbs index 9af82674..0be7c47a 100644 --- a/sig/hanzoai/models/cache_flush_all_params.rbs +++ b/sig/hanzoai/models/cache_flush_all_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cache_flush_all_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cache_flush_all_response.rbs b/sig/hanzoai/models/cache_flush_all_response.rbs new file mode 100644 index 00000000..406e0bc9 --- /dev/null +++ b/sig/hanzoai/models/cache_flush_all_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CacheFlushAllResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/cache_ping_params.rbs b/sig/hanzoai/models/cache_ping_params.rbs index 44e15bfd..5cc55bc2 100644 --- a/sig/hanzoai/models/cache_ping_params.rbs +++ b/sig/hanzoai/models/cache_ping_params.rbs @@ -8,7 +8,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cache_ping_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cache_ping_response.rbs b/sig/hanzoai/models/cache_ping_response.rbs index 7ab11878..b68f782c 100644 --- a/sig/hanzoai/models/cache_ping_response.rbs +++ b/sig/hanzoai/models/cache_ping_response.rbs @@ -4,8 +4,8 @@ module Hanzoai { cache_type: String, status: String, - health_check_cache_params: top?, - llm_cache_params: String?, + health_check_cache_params: ::Hash[Symbol, top]?, + litellm_cache_params: String?, ping_response: bool?, set_cache_response: String? } @@ -15,9 +15,9 @@ module Hanzoai attr_accessor status: String - attr_accessor health_check_cache_params: top? + attr_accessor health_check_cache_params: ::Hash[Symbol, top]? - attr_accessor llm_cache_params: String? + attr_accessor litellm_cache_params: String? attr_accessor ping_response: bool? @@ -26,13 +26,20 @@ module Hanzoai def initialize: ( cache_type: String, status: String, - ?health_check_cache_params: top?, - ?llm_cache_params: String?, + ?health_check_cache_params: ::Hash[Symbol, top]?, + ?litellm_cache_params: String?, ?ping_response: bool?, ?set_cache_response: String? ) -> void - def to_hash: -> Hanzoai::Models::cache_ping_response + def to_hash: -> { + cache_type: String, + status: String, + health_check_cache_params: ::Hash[Symbol, top]?, + litellm_cache_params: String?, + ping_response: bool?, + set_cache_response: String? + } end end end diff --git a/sig/hanzoai/models/chat/completion_create_params.rbs b/sig/hanzoai/models/chat/completion_create_params.rbs index 02a5a6a0..246dfebb 100644 --- a/sig/hanzoai/models/chat/completion_create_params.rbs +++ b/sig/hanzoai/models/chat/completion_create_params.rbs @@ -2,20 +2,1283 @@ module Hanzoai module Models module Chat type completion_create_params = - { model: String? } & Hanzoai::Internal::Type::request_parameters + { + messages: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::message], + model: String, + caching: bool?, + context_window_fallback_dict: ::Hash[Symbol, String]?, + fallbacks: ::Array[String]?, + frequency_penalty: Float?, + function_call: Hanzoai::Models::Chat::CompletionCreateParams::function_call?, + functions: ::Array[::Hash[Symbol, top]]?, + guardrails: ::Array[String]?, + logit_bias: ::Hash[Symbol, Float]?, + logprobs: bool?, + max_tokens: Integer?, + metadata: ::Hash[Symbol, top]?, + n: Integer?, + num_retries: Integer?, + parallel_tool_calls: bool?, + presence_penalty: Float?, + response_format: ::Hash[Symbol, top]?, + seed: Integer?, + service_tier: String?, + stop: Hanzoai::Models::Chat::CompletionCreateParams::stop?, + stream: bool?, + stream_options: ::Hash[Symbol, top]?, + temperature: Float?, + tool_choice: Hanzoai::Models::Chat::CompletionCreateParams::tool_choice?, + tools: ::Array[::Hash[Symbol, top]]?, + top_logprobs: Integer?, + top_p: Float?, + user: String? + } + & Hanzoai::Internal::Type::request_parameters class CompletionCreateParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor model: String? + attr_accessor messages: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::message] + + attr_accessor model: String + + attr_accessor caching: bool? + + attr_accessor context_window_fallback_dict: ::Hash[Symbol, String]? + + attr_accessor fallbacks: ::Array[String]? + + attr_accessor frequency_penalty: Float? + + attr_accessor function_call: Hanzoai::Models::Chat::CompletionCreateParams::function_call? + + attr_accessor functions: ::Array[::Hash[Symbol, top]]? + + attr_accessor guardrails: ::Array[String]? + + attr_accessor logit_bias: ::Hash[Symbol, Float]? + + attr_accessor logprobs: bool? + + attr_accessor max_tokens: Integer? + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor n: Integer? + + attr_accessor num_retries: Integer? + + attr_accessor parallel_tool_calls: bool? + + attr_accessor presence_penalty: Float? + + attr_accessor response_format: ::Hash[Symbol, top]? + + attr_accessor seed: Integer? + + attr_accessor service_tier: String? + + attr_accessor stop: Hanzoai::Models::Chat::CompletionCreateParams::stop? + + attr_accessor stream: bool? + + attr_accessor stream_options: ::Hash[Symbol, top]? + + attr_accessor temperature: Float? + + attr_accessor tool_choice: Hanzoai::Models::Chat::CompletionCreateParams::tool_choice? + + attr_accessor tools: ::Array[::Hash[Symbol, top]]? + + attr_accessor top_logprobs: Integer? + + attr_accessor top_p: Float? + + attr_accessor user: String? def initialize: ( - ?model: String?, + messages: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::message], + model: String, + ?caching: bool?, + ?context_window_fallback_dict: ::Hash[Symbol, String]?, + ?fallbacks: ::Array[String]?, + ?frequency_penalty: Float?, + ?function_call: Hanzoai::Models::Chat::CompletionCreateParams::function_call?, + ?functions: ::Array[::Hash[Symbol, top]]?, + ?guardrails: ::Array[String]?, + ?logit_bias: ::Hash[Symbol, Float]?, + ?logprobs: bool?, + ?max_tokens: Integer?, + ?metadata: ::Hash[Symbol, top]?, + ?n: Integer?, + ?num_retries: Integer?, + ?parallel_tool_calls: bool?, + ?presence_penalty: Float?, + ?response_format: ::Hash[Symbol, top]?, + ?seed: Integer?, + ?service_tier: String?, + ?stop: Hanzoai::Models::Chat::CompletionCreateParams::stop?, + ?stream: bool?, + ?stream_options: ::Hash[Symbol, top]?, + ?temperature: Float?, + ?tool_choice: Hanzoai::Models::Chat::CompletionCreateParams::tool_choice?, + ?tools: ::Array[::Hash[Symbol, top]]?, + ?top_logprobs: Integer?, + ?top_p: Float?, + ?user: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Chat::completion_create_params + def to_hash: -> { + messages: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::message], + model: String, + caching: bool?, + context_window_fallback_dict: ::Hash[Symbol, String]?, + fallbacks: ::Array[String]?, + frequency_penalty: Float?, + function_call: Hanzoai::Models::Chat::CompletionCreateParams::function_call?, + functions: ::Array[::Hash[Symbol, top]]?, + guardrails: ::Array[String]?, + logit_bias: ::Hash[Symbol, Float]?, + logprobs: bool?, + max_tokens: Integer?, + metadata: ::Hash[Symbol, top]?, + n: Integer?, + num_retries: Integer?, + parallel_tool_calls: bool?, + presence_penalty: Float?, + response_format: ::Hash[Symbol, top]?, + seed: Integer?, + service_tier: String?, + stop: Hanzoai::Models::Chat::CompletionCreateParams::stop?, + stream: bool?, + stream_options: ::Hash[Symbol, top]?, + temperature: Float?, + tool_choice: Hanzoai::Models::Chat::CompletionCreateParams::tool_choice?, + tools: ::Array[::Hash[Symbol, top]]?, + top_logprobs: Integer?, + top_p: Float?, + user: String?, + request_options: Hanzoai::RequestOptions + } + + type message = + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage + + module Message + extend Hanzoai::Internal::Type::Union + + type chat_completion_user_message = + { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::content, + role: :user, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl + } + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::content + + attr_accessor role: :user + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl + + def initialize: ( + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::content, + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl, + ?role: :user + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::content, + role: :user, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::CacheControl + } + + type content = + String + | ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::union_member1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + type chat_completion_text_object = + { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_image_object = + { + image_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + type: :image_url + } + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + attr_accessor image_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url + + attr_accessor type: :image_url + + def initialize: ( + image_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + ?type: :image_url + ) -> void + + def to_hash: -> { + image_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + type: :image_url + } + + type image_url = + String + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + + module ImageURL + extend Hanzoai::Internal::Type::Union + + type chat_completion_image_url_object = + { url: String, detail: String, format_: String } + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_reader detail: String? + + def detail=: (String) -> String + + attr_reader format_: String? + + def format_=: (String) -> String + + def initialize: ( + url: String, + ?detail: String, + ?format_: String + ) -> void + + def to_hash: -> { + url: String, + detail: String, + format_: String + } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url] + end + end + + type chat_completion_audio_object = + { + input_audio: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: :input_audio + } + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + attr_accessor input_audio: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio + + attr_accessor type: :input_audio + + def initialize: ( + input_audio: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + ?type: :input_audio + ) -> void + + def to_hash: -> { + input_audio: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: :input_audio + } + + type input_audio = + { + data: String, + format_: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + } + + class InputAudio < Hanzoai::Internal::Type::BaseModel + attr_accessor data: String + + attr_accessor format_: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + + def initialize: ( + data: String, + format_: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + ) -> void + + def to_hash: -> { + data: String, + format_: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + } + + type format_ = :wav | :mp3 + + module Format + extend Hanzoai::Internal::Type::Enum + + WAV: :wav + MP3: :mp3 + + def self?.values: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_] + end + end + end + + type chat_completion_document_object = + { + citations: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: :document + } + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + attr_accessor citations: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations? + + attr_accessor context: String + + attr_accessor source: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source + + attr_accessor title: String + + attr_accessor type: :document + + def initialize: ( + citations: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + ?type: :document + ) -> void + + def to_hash: -> { + citations: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: :document + } + + type citations = { enabled: bool } + + class Citations < Hanzoai::Internal::Type::BaseModel + attr_accessor enabled: bool + + def initialize: (enabled: bool) -> void + + def to_hash: -> { enabled: bool } + end + + type source = + { data: String, media_type: String, type: :text } + + class Source < Hanzoai::Internal::Type::BaseModel + attr_accessor data: String + + attr_accessor media_type: String + + attr_accessor type: :text + + def initialize: ( + data: String, + media_type: String, + ?type: :text + ) -> void + + def to_hash: -> { + data: String, + media_type: String, + type: :text + } + end + end + + type chat_completion_video_object = + { + type: :video_url, + video_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + } + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :video_url + + attr_accessor video_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + + def initialize: ( + video_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url, + ?type: :video_url + ) -> void + + def to_hash: -> { + type: :video_url, + video_url: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + } + + type video_url = + String + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + + module VideoURL + extend Hanzoai::Internal::Type::Union + + type chat_completion_video_url_object = + { url: String, detail: String } + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_reader detail: String? + + def detail=: (String) -> String + + def initialize: (url: String, ?detail: String) -> void + + def to_hash: -> { url: String, detail: String } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url] + end + end + + type chat_completion_file_object = + { + file: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: :file + } + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + attr_accessor file: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File + + attr_accessor type: :file + + def initialize: ( + file: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + ?type: :file + ) -> void + + def to_hash: -> { + file: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: :file + } + + type file = + { + file_data: String, + file_id: String, + filename: String, + format_: String + } + + class File < Hanzoai::Internal::Type::BaseModel + attr_reader file_data: String? + + def file_data=: (String) -> String + + attr_reader file_id: String? + + def file_id=: (String) -> String + + attr_reader filename: String? + + def filename=: (String) -> String + + attr_reader format_: String? + + def format_=: (String) -> String + + def initialize: ( + ?file_data: String, + ?file_id: String, + ?filename: String, + ?format_: String + ) -> void + + def to_hash: -> { + file_data: String, + file_id: String, + filename: String, + format_: String + } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::Content::union_member1] + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionUserMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_assistant_message = + { + role: :assistant, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::content?, + function_call: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + name: String?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + tool_calls: ::Array[Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall]? + } + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor role: :assistant + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl + + attr_accessor content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::content? + + attr_accessor function_call: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall? + + attr_accessor name: String? + + attr_accessor reasoning_content: String? + + attr_accessor thinking_blocks: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::thinking_block]? + + attr_accessor tool_calls: ::Array[Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall]? + + def initialize: ( + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl, + ?content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::content?, + ?function_call: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + ?name: String?, + ?reasoning_content: String?, + ?thinking_blocks: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + ?tool_calls: ::Array[Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall]?, + ?role: :assistant + ) -> void + + def to_hash: -> { + role: :assistant, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::content?, + function_call: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + name: String?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + tool_calls: ::Array[Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall]? + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + type content = + String + | ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::union_member1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + type chat_completion_text_object = + { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::Content::union_member1] + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type function_call = + { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + attr_reader arguments: String? + + def arguments=: (String) -> String + + attr_accessor name: String? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + ?arguments: String, + ?name: String?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + end + + type thinking_block = + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_redacted_thinking_block = + { + type: :redacted_thinking, + cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :redacted_thinking + + attr_accessor cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control? + + attr_reader data: String? + + def data=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + ?data: String, + ?type: :redacted_thinking + ) -> void + + def to_hash: -> { + type: :redacted_thinking, + cache_control: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::thinking_block] + end + + type tool_call = + { + id: String?, + function: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: :function + } + + class ToolCall < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String? + + attr_accessor function: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function + + attr_accessor type: :function + + def initialize: ( + id: String?, + function: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + ?type: :function + ) -> void + + def to_hash: -> { + id: String?, + function: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: :function + } + + type function = + { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class Function < Hanzoai::Internal::Type::BaseModel + attr_reader arguments: String? + + def arguments=: (String) -> String + + attr_accessor name: String? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + ?arguments: String, + ?name: String?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + end + end + end + + type chat_completion_tool_message = + { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::content, + role: :tool, + tool_call_id: String + } + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::content + + attr_accessor role: :tool + + attr_accessor tool_call_id: String + + def initialize: ( + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::content, + tool_call_id: String, + ?role: :tool + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::content, + role: :tool, + tool_call_id: String + } + + type content = + String + | ::Array[Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionToolMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_system_message = + { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::content, + role: :system, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::content + + attr_accessor role: :system + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl + + attr_reader name: String? + + def name=: (String) -> String + + def initialize: ( + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::content, + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl, + ?name: String, + ?role: :system + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::content, + role: :system, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + + type content = String | ::Array[top] + + module Content + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionSystemMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_function_message = + { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + role: :function, + tool_call_id: String? + } + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::content? + + attr_accessor name: String + + attr_accessor role: :function + + attr_accessor tool_call_id: String? + + def initialize: ( + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + tool_call_id: String?, + ?role: :function + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + role: :function, + tool_call_id: String? + } + + type content = + String + | ::Array[Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionFunctionMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_developer_message = + { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::content, + role: :developer, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::content + + attr_accessor role: :developer + + attr_reader cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl + ) -> Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl + + attr_reader name: String? + + def name=: (String) -> String + + def initialize: ( + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::content, + ?cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl, + ?name: String, + ?role: :developer + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::content, + role: :developer, + cache_control: Hanzoai::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + + type content = String | ::Array[top] + + module Content + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::Message::ChatCompletionDeveloperMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::message] + end + + type function_call = String | ::Hash[Symbol, top] + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::function_call] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + + type stop = String | ::Array[String] + + module Stop + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::stop] + + StringArray: Hanzoai::Internal::Type::Converter + end + + type tool_choice = String | ::Hash[Symbol, top] + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Chat::CompletionCreateParams::tool_choice] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end end end end diff --git a/sig/hanzoai/models/chat/completion_create_response.rbs b/sig/hanzoai/models/chat/completion_create_response.rbs new file mode 100644 index 00000000..ba65c2c0 --- /dev/null +++ b/sig/hanzoai/models/chat/completion_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Chat + CompletionCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/client_get_home_params.rbs b/sig/hanzoai/models/client_get_home_params.rbs index 85e3f7b1..19bf28ba 100644 --- a/sig/hanzoai/models/client_get_home_params.rbs +++ b/sig/hanzoai/models/client_get_home_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::client_get_home_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cohere_create_params.rbs b/sig/hanzoai/models/cohere_create_params.rbs index 757b836d..7e7ef6bd 100644 --- a/sig/hanzoai/models/cohere_create_params.rbs +++ b/sig/hanzoai/models/cohere_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cohere_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cohere_create_response.rbs b/sig/hanzoai/models/cohere_create_response.rbs new file mode 100644 index 00000000..8c24b550 --- /dev/null +++ b/sig/hanzoai/models/cohere_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CohereCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/cohere_delete_params.rbs b/sig/hanzoai/models/cohere_delete_params.rbs index 0e5de723..78c46da5 100644 --- a/sig/hanzoai/models/cohere_delete_params.rbs +++ b/sig/hanzoai/models/cohere_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cohere_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cohere_delete_response.rbs b/sig/hanzoai/models/cohere_delete_response.rbs new file mode 100644 index 00000000..d005e1c4 --- /dev/null +++ b/sig/hanzoai/models/cohere_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CohereDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/cohere_modify_params.rbs b/sig/hanzoai/models/cohere_modify_params.rbs index 235b9650..84d024f1 100644 --- a/sig/hanzoai/models/cohere_modify_params.rbs +++ b/sig/hanzoai/models/cohere_modify_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cohere_modify_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cohere_modify_response.rbs b/sig/hanzoai/models/cohere_modify_response.rbs new file mode 100644 index 00000000..540465a5 --- /dev/null +++ b/sig/hanzoai/models/cohere_modify_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CohereModifyResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/cohere_retrieve_params.rbs b/sig/hanzoai/models/cohere_retrieve_params.rbs index 87c29c24..163dcf6a 100644 --- a/sig/hanzoai/models/cohere_retrieve_params.rbs +++ b/sig/hanzoai/models/cohere_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cohere_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cohere_retrieve_response.rbs b/sig/hanzoai/models/cohere_retrieve_response.rbs new file mode 100644 index 00000000..1846fe01 --- /dev/null +++ b/sig/hanzoai/models/cohere_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CohereRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/cohere_update_params.rbs b/sig/hanzoai/models/cohere_update_params.rbs index 6561ba5b..0218a226 100644 --- a/sig/hanzoai/models/cohere_update_params.rbs +++ b/sig/hanzoai/models/cohere_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::cohere_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/cohere_update_response.rbs b/sig/hanzoai/models/cohere_update_response.rbs new file mode 100644 index 00000000..cc427f6b --- /dev/null +++ b/sig/hanzoai/models/cohere_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CohereUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/completion_create_params.rbs b/sig/hanzoai/models/completion_create_params.rbs index f9d06cbb..67039861 100644 --- a/sig/hanzoai/models/completion_create_params.rbs +++ b/sig/hanzoai/models/completion_create_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::completion_create_params + def to_hash: -> { + model: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/completion_create_response.rbs b/sig/hanzoai/models/completion_create_response.rbs new file mode 100644 index 00000000..7fe641a0 --- /dev/null +++ b/sig/hanzoai/models/completion_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CompletionCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/config/pass_through_endpoint_create_params.rbs b/sig/hanzoai/models/config/pass_through_endpoint_create_params.rbs index 946aab93..85b88aa1 100644 --- a/sig/hanzoai/models/config/pass_through_endpoint_create_params.rbs +++ b/sig/hanzoai/models/config/pass_through_endpoint_create_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Config::pass_through_endpoint_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/config/pass_through_endpoint_create_response.rbs b/sig/hanzoai/models/config/pass_through_endpoint_create_response.rbs new file mode 100644 index 00000000..7e2c7946 --- /dev/null +++ b/sig/hanzoai/models/config/pass_through_endpoint_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Config + PassThroughEndpointCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/config/pass_through_endpoint_delete_params.rbs b/sig/hanzoai/models/config/pass_through_endpoint_delete_params.rbs index 5a80317b..2efe6fca 100644 --- a/sig/hanzoai/models/config/pass_through_endpoint_delete_params.rbs +++ b/sig/hanzoai/models/config/pass_through_endpoint_delete_params.rbs @@ -15,7 +15,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Config::pass_through_endpoint_delete_params + def to_hash: -> { + endpoint_id: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/config/pass_through_endpoint_list_params.rbs b/sig/hanzoai/models/config/pass_through_endpoint_list_params.rbs index b46d5c0b..e83e7be3 100644 --- a/sig/hanzoai/models/config/pass_through_endpoint_list_params.rbs +++ b/sig/hanzoai/models/config/pass_through_endpoint_list_params.rbs @@ -2,7 +2,8 @@ module Hanzoai module Models module Config type pass_through_endpoint_list_params = - { endpoint_id: String? } & Hanzoai::Internal::Type::request_parameters + { endpoint_id: String?, team_id: String? } + & Hanzoai::Internal::Type::request_parameters class PassThroughEndpointListParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter @@ -10,12 +11,19 @@ module Hanzoai attr_accessor endpoint_id: String? + attr_accessor team_id: String? + def initialize: ( ?endpoint_id: String?, + ?team_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Config::pass_through_endpoint_list_params + def to_hash: -> { + endpoint_id: String?, + team_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/config/pass_through_endpoint_response.rbs b/sig/hanzoai/models/config/pass_through_endpoint_response.rbs index 0ffdde4c..e606f01e 100644 --- a/sig/hanzoai/models/config/pass_through_endpoint_response.rbs +++ b/sig/hanzoai/models/config/pass_through_endpoint_response.rbs @@ -2,18 +2,18 @@ module Hanzoai module Models module Config type pass_through_endpoint_response = - { - endpoints: ::Array[Hanzoai::Models::Config::PassThroughGenericEndpoint] - } + { endpoints: ::Array[Hanzoai::Config::PassThroughGenericEndpoint] } class PassThroughEndpointResponse < Hanzoai::Internal::Type::BaseModel - attr_accessor endpoints: ::Array[Hanzoai::Models::Config::PassThroughGenericEndpoint] + attr_accessor endpoints: ::Array[Hanzoai::Config::PassThroughGenericEndpoint] def initialize: ( - endpoints: ::Array[Hanzoai::Models::Config::PassThroughGenericEndpoint] + endpoints: ::Array[Hanzoai::Config::PassThroughGenericEndpoint] ) -> void - def to_hash: -> Hanzoai::Models::Config::pass_through_endpoint_response + def to_hash: -> { + endpoints: ::Array[Hanzoai::Config::PassThroughGenericEndpoint] + } end end end diff --git a/sig/hanzoai/models/config/pass_through_endpoint_update_params.rbs b/sig/hanzoai/models/config/pass_through_endpoint_update_params.rbs index 73c333cf..d98e67b1 100644 --- a/sig/hanzoai/models/config/pass_through_endpoint_update_params.rbs +++ b/sig/hanzoai/models/config/pass_through_endpoint_update_params.rbs @@ -4,13 +4,13 @@ module Hanzoai type pass_through_endpoint_update_params = { } & Hanzoai::Internal::Type::request_parameters - class PassThroughEndpointUpdateParams < Hanzoai::Internal::Type::BaseModel + class PassThroughEndpointUpdateParams < Hanzoai::Models::Config::PassThroughGenericEndpoint extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Config::pass_through_endpoint_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/config/pass_through_endpoint_update_response.rbs b/sig/hanzoai/models/config/pass_through_endpoint_update_response.rbs new file mode 100644 index 00000000..eb7f4589 --- /dev/null +++ b/sig/hanzoai/models/config/pass_through_endpoint_update_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Config + PassThroughEndpointUpdateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/config/pass_through_generic_endpoint.rbs b/sig/hanzoai/models/config/pass_through_generic_endpoint.rbs index 25e3531a..46740783 100644 --- a/sig/hanzoai/models/config/pass_through_generic_endpoint.rbs +++ b/sig/hanzoai/models/config/pass_through_generic_endpoint.rbs @@ -2,18 +2,85 @@ module Hanzoai module Models module Config type pass_through_generic_endpoint = - { headers: top, path: String, target: String } + { + path: String, + target: String, + id: String?, + auth: bool, + cost_per_request: Float, + guardrails: ::Hash[Symbol, Hanzoai::Config::PassThroughGenericEndpoint::Guardrail?]?, + headers: ::Hash[Symbol, top], + include_subpath: bool + } class PassThroughGenericEndpoint < Hanzoai::Internal::Type::BaseModel - attr_accessor headers: top - attr_accessor path: String attr_accessor target: String - def initialize: (headers: top, path: String, target: String) -> void + attr_accessor id: String? + + attr_reader auth: bool? + + def auth=: (bool) -> bool + + attr_reader cost_per_request: Float? + + def cost_per_request=: (Float) -> Float + + attr_accessor guardrails: ::Hash[Symbol, Hanzoai::Config::PassThroughGenericEndpoint::Guardrail?]? + + attr_reader headers: ::Hash[Symbol, top]? + + def headers=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_reader include_subpath: bool? + + def include_subpath=: (bool) -> bool + + def initialize: ( + path: String, + target: String, + ?id: String?, + ?auth: bool, + ?cost_per_request: Float, + ?guardrails: ::Hash[Symbol, Hanzoai::Config::PassThroughGenericEndpoint::Guardrail?]?, + ?headers: ::Hash[Symbol, top], + ?include_subpath: bool + ) -> void + + def to_hash: -> { + path: String, + target: String, + id: String?, + auth: bool, + cost_per_request: Float, + guardrails: ::Hash[Symbol, Hanzoai::Config::PassThroughGenericEndpoint::Guardrail?]?, + headers: ::Hash[Symbol, top], + include_subpath: bool + } + + type guardrail = + { + request_fields: ::Array[String]?, + response_fields: ::Array[String]? + } + + class Guardrail < Hanzoai::Internal::Type::BaseModel + attr_accessor request_fields: ::Array[String]? + + attr_accessor response_fields: ::Array[String]? + + def initialize: ( + ?request_fields: ::Array[String]?, + ?response_fields: ::Array[String]? + ) -> void - def to_hash: -> Hanzoai::Models::Config::pass_through_generic_endpoint + def to_hash: -> { + request_fields: ::Array[String]?, + response_fields: ::Array[String]? + } + end end end end diff --git a/sig/hanzoai/models/configurable_clientside_params_custom_auth.rbs b/sig/hanzoai/models/configurable_clientside_params_custom_auth.rbs deleted file mode 100644 index ba3dc18a..00000000 --- a/sig/hanzoai/models/configurable_clientside_params_custom_auth.rbs +++ /dev/null @@ -1,13 +0,0 @@ -module Hanzoai - module Models - type configurable_clientside_params_custom_auth = { api_base: String } - - class ConfigurableClientsideParamsCustomAuth < Hanzoai::Internal::Type::BaseModel - attr_accessor api_base: String - - def initialize: (api_base: String) -> void - - def to_hash: -> Hanzoai::Models::configurable_clientside_params_custom_auth - end - end -end diff --git a/sig/hanzoai/models/credential_create_params.rbs b/sig/hanzoai/models/credential_create_params.rbs index 004a5a68..00d50c8d 100644 --- a/sig/hanzoai/models/credential_create_params.rbs +++ b/sig/hanzoai/models/credential_create_params.rbs @@ -2,9 +2,9 @@ module Hanzoai module Models type credential_create_params = { - credential_info: top, + credential_info: ::Hash[Symbol, top], credential_name: String, - credential_values: top?, + credential_values: ::Hash[Symbol, top]?, model_id: String? } & Hanzoai::Internal::Type::request_parameters @@ -13,23 +13,29 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor credential_info: top + attr_accessor credential_info: ::Hash[Symbol, top] attr_accessor credential_name: String - attr_accessor credential_values: top? + attr_accessor credential_values: ::Hash[Symbol, top]? attr_accessor model_id: String? def initialize: ( - credential_info: top, + credential_info: ::Hash[Symbol, top], credential_name: String, - ?credential_values: top?, + ?credential_values: ::Hash[Symbol, top]?, ?model_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::credential_create_params + def to_hash: -> { + credential_info: ::Hash[Symbol, top], + credential_name: String, + credential_values: ::Hash[Symbol, top]?, + model_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/credential_create_response.rbs b/sig/hanzoai/models/credential_create_response.rbs new file mode 100644 index 00000000..009c675b --- /dev/null +++ b/sig/hanzoai/models/credential_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CredentialCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/credential_delete_params.rbs b/sig/hanzoai/models/credential_delete_params.rbs index c696aaa7..520f463b 100644 --- a/sig/hanzoai/models/credential_delete_params.rbs +++ b/sig/hanzoai/models/credential_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::credential_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/credential_delete_response.rbs b/sig/hanzoai/models/credential_delete_response.rbs new file mode 100644 index 00000000..29519e01 --- /dev/null +++ b/sig/hanzoai/models/credential_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CredentialDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/credential_item.rbs b/sig/hanzoai/models/credential_item.rbs index afcbe75a..a22edba5 100644 --- a/sig/hanzoai/models/credential_item.rbs +++ b/sig/hanzoai/models/credential_item.rbs @@ -1,22 +1,30 @@ module Hanzoai module Models type credential_item = - { credential_info: top, credential_name: String, credential_values: top } + { + credential_info: ::Hash[Symbol, top], + credential_name: String, + credential_values: ::Hash[Symbol, top] + } class CredentialItem < Hanzoai::Internal::Type::BaseModel - attr_accessor credential_info: top + attr_accessor credential_info: ::Hash[Symbol, top] attr_accessor credential_name: String - attr_accessor credential_values: top + attr_accessor credential_values: ::Hash[Symbol, top] def initialize: ( - credential_info: top, + credential_info: ::Hash[Symbol, top], credential_name: String, - credential_values: top + credential_values: ::Hash[Symbol, top] ) -> void - def to_hash: -> Hanzoai::Models::credential_item + def to_hash: -> { + credential_info: ::Hash[Symbol, top], + credential_name: String, + credential_values: ::Hash[Symbol, top] + } end end end diff --git a/sig/hanzoai/models/credential_list_params.rbs b/sig/hanzoai/models/credential_list_params.rbs index ef17d91f..3d892e87 100644 --- a/sig/hanzoai/models/credential_list_params.rbs +++ b/sig/hanzoai/models/credential_list_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::credential_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/credential_list_response.rbs b/sig/hanzoai/models/credential_list_response.rbs new file mode 100644 index 00000000..cb2568ac --- /dev/null +++ b/sig/hanzoai/models/credential_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CredentialListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/customer_block_params.rbs b/sig/hanzoai/models/customer_block_params.rbs index a707df2b..30af4d18 100644 --- a/sig/hanzoai/models/customer_block_params.rbs +++ b/sig/hanzoai/models/customer_block_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::customer_block_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/customer_block_response.rbs b/sig/hanzoai/models/customer_block_response.rbs new file mode 100644 index 00000000..37dd3865 --- /dev/null +++ b/sig/hanzoai/models/customer_block_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CustomerBlockResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/customer_create_params.rbs b/sig/hanzoai/models/customer_create_params.rbs index e2af1c54..ccc8a850 100644 --- a/sig/hanzoai/models/customer_create_params.rbs +++ b/sig/hanzoai/models/customer_create_params.rbs @@ -8,12 +8,14 @@ module Hanzoai blocked: bool, budget_duration: String?, budget_id: String?, + budget_reset_at: Time?, default_model: String?, max_budget: Float?, max_parallel_requests: Integer?, - model_max_budget: ::Hash[Symbol, Hanzoai::Models::CustomerCreateParams::ModelMaxBudget]?, + model_max_budget: ::Hash[Symbol, Hanzoai::CustomerCreateParams::ModelMaxBudget]?, rpm_limit: Integer?, soft_budget: Float?, + spend: Float?, tpm_limit: Integer? } & Hanzoai::Internal::Type::request_parameters @@ -36,18 +38,22 @@ module Hanzoai attr_accessor budget_id: String? + attr_accessor budget_reset_at: Time? + attr_accessor default_model: String? attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_accessor model_max_budget: ::Hash[Symbol, Hanzoai::Models::CustomerCreateParams::ModelMaxBudget]? + attr_accessor model_max_budget: ::Hash[Symbol, Hanzoai::CustomerCreateParams::ModelMaxBudget]? attr_accessor rpm_limit: Integer? attr_accessor soft_budget: Float? + attr_accessor spend: Float? + attr_accessor tpm_limit: Integer? def initialize: ( @@ -57,17 +63,36 @@ module Hanzoai ?blocked: bool, ?budget_duration: String?, ?budget_id: String?, + ?budget_reset_at: Time?, ?default_model: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?model_max_budget: ::Hash[Symbol, Hanzoai::Models::CustomerCreateParams::ModelMaxBudget]?, + ?model_max_budget: ::Hash[Symbol, Hanzoai::CustomerCreateParams::ModelMaxBudget]?, ?rpm_limit: Integer?, ?soft_budget: Float?, + ?spend: Float?, ?tpm_limit: Integer?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::customer_create_params + def to_hash: -> { + user_id: String, + alias_: String?, + allowed_model_region: Hanzoai::Models::CustomerCreateParams::allowed_model_region?, + blocked: bool, + budget_duration: String?, + budget_id: String?, + budget_reset_at: Time?, + default_model: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + model_max_budget: ::Hash[Symbol, Hanzoai::CustomerCreateParams::ModelMaxBudget]?, + rpm_limit: Integer?, + soft_budget: Float?, + spend: Float?, + tpm_limit: Integer?, + request_options: Hanzoai::RequestOptions + } type allowed_model_region = :eu | :us @@ -104,7 +129,12 @@ module Hanzoai ?tpm_limit: Integer? ) -> void - def to_hash: -> Hanzoai::Models::CustomerCreateParams::model_max_budget + def to_hash: -> { + budget_duration: String?, + max_budget: Float?, + rpm_limit: Integer?, + tpm_limit: Integer? + } end end end diff --git a/sig/hanzoai/models/customer_create_response.rbs b/sig/hanzoai/models/customer_create_response.rbs new file mode 100644 index 00000000..8f720485 --- /dev/null +++ b/sig/hanzoai/models/customer_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CustomerCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/customer_delete_params.rbs b/sig/hanzoai/models/customer_delete_params.rbs index aa9cc991..3a2a8ba9 100644 --- a/sig/hanzoai/models/customer_delete_params.rbs +++ b/sig/hanzoai/models/customer_delete_params.rbs @@ -15,7 +15,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::customer_delete_params + def to_hash: -> { + user_ids: ::Array[String], + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/customer_delete_response.rbs b/sig/hanzoai/models/customer_delete_response.rbs new file mode 100644 index 00000000..59e895d4 --- /dev/null +++ b/sig/hanzoai/models/customer_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CustomerDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/customer_list_params.rbs b/sig/hanzoai/models/customer_list_params.rbs index 3b4772c2..a23494c6 100644 --- a/sig/hanzoai/models/customer_list_params.rbs +++ b/sig/hanzoai/models/customer_list_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::customer_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/customer_list_response.rbs b/sig/hanzoai/models/customer_list_response.rbs index fdb4ea8a..e8ae39d7 100644 --- a/sig/hanzoai/models/customer_list_response.rbs +++ b/sig/hanzoai/models/customer_list_response.rbs @@ -1,99 +1,7 @@ module Hanzoai module Models - type customer_list_response_item = - { - blocked: bool, - user_id: String, - alias_: String?, - allowed_model_region: Hanzoai::Models::CustomerListResponseItem::allowed_model_region?, - default_model: String?, - llm_budget_table: Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable?, - spend: Float - } + type customer_list_response = ::Array[Hanzoai::LiteLlmEndUserTable] - class CustomerListResponseItem < Hanzoai::Internal::Type::BaseModel - attr_accessor blocked: bool - - attr_accessor user_id: String - - attr_accessor alias_: String? - - attr_accessor allowed_model_region: Hanzoai::Models::CustomerListResponseItem::allowed_model_region? - - attr_accessor default_model: String? - - attr_accessor llm_budget_table: Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - def initialize: ( - blocked: bool, - user_id: String, - ?alias_: String?, - ?allowed_model_region: Hanzoai::Models::CustomerListResponseItem::allowed_model_region?, - ?default_model: String?, - ?llm_budget_table: Hanzoai::Models::CustomerListResponseItem::LlmBudgetTable?, - ?spend: Float - ) -> void - - def to_hash: -> Hanzoai::Models::customer_list_response_item - - type allowed_model_region = :eu | :us - - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - EU: :eu - US: :us - - def self?.values: -> ::Array[Hanzoai::Models::CustomerListResponseItem::allowed_model_region] - end - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::CustomerListResponseItem::llm_budget_table - end - end - - type customer_list_response = - ::Array[Hanzoai::Models::CustomerListResponseItem] - - CustomerListResponse: customer_list_response + CustomerListResponse: Hanzoai::Internal::Type::Converter end end diff --git a/sig/hanzoai/models/customer_retrieve_info_params.rbs b/sig/hanzoai/models/customer_retrieve_info_params.rbs index d605054d..1a30c584 100644 --- a/sig/hanzoai/models/customer_retrieve_info_params.rbs +++ b/sig/hanzoai/models/customer_retrieve_info_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::customer_retrieve_info_params + def to_hash: -> { + end_user_id: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/customer_retrieve_info_response.rbs b/sig/hanzoai/models/customer_retrieve_info_response.rbs deleted file mode 100644 index 1c41f18b..00000000 --- a/sig/hanzoai/models/customer_retrieve_info_response.rbs +++ /dev/null @@ -1,94 +0,0 @@ -module Hanzoai - module Models - type customer_retrieve_info_response = - { - blocked: bool, - user_id: String, - alias_: String?, - allowed_model_region: Hanzoai::Models::CustomerRetrieveInfoResponse::allowed_model_region?, - default_model: String?, - llm_budget_table: Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable?, - spend: Float - } - - class CustomerRetrieveInfoResponse < Hanzoai::Internal::Type::BaseModel - attr_accessor blocked: bool - - attr_accessor user_id: String - - attr_accessor alias_: String? - - attr_accessor allowed_model_region: Hanzoai::Models::CustomerRetrieveInfoResponse::allowed_model_region? - - attr_accessor default_model: String? - - attr_accessor llm_budget_table: Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - def initialize: ( - blocked: bool, - user_id: String, - ?alias_: String?, - ?allowed_model_region: Hanzoai::Models::CustomerRetrieveInfoResponse::allowed_model_region?, - ?default_model: String?, - ?llm_budget_table: Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable?, - ?spend: Float - ) -> void - - def to_hash: -> Hanzoai::Models::customer_retrieve_info_response - - type allowed_model_region = :eu | :us - - module AllowedModelRegion - extend Hanzoai::Internal::Type::Enum - - EU: :eu - US: :us - - def self?.values: -> ::Array[Hanzoai::Models::CustomerRetrieveInfoResponse::allowed_model_region] - end - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::CustomerRetrieveInfoResponse::llm_budget_table - end - end - end -end diff --git a/sig/hanzoai/models/customer_unblock_params.rbs b/sig/hanzoai/models/customer_unblock_params.rbs index b0e3225b..abb17bf0 100644 --- a/sig/hanzoai/models/customer_unblock_params.rbs +++ b/sig/hanzoai/models/customer_unblock_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::customer_unblock_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/customer_unblock_response.rbs b/sig/hanzoai/models/customer_unblock_response.rbs new file mode 100644 index 00000000..e973d180 --- /dev/null +++ b/sig/hanzoai/models/customer_unblock_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CustomerUnblockResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/customer_update_params.rbs b/sig/hanzoai/models/customer_update_params.rbs index 48370d97..8d67531e 100644 --- a/sig/hanzoai/models/customer_update_params.rbs +++ b/sig/hanzoai/models/customer_update_params.rbs @@ -43,7 +43,16 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::customer_update_params + def to_hash: -> { + user_id: String, + alias_: String?, + allowed_model_region: Hanzoai::Models::CustomerUpdateParams::allowed_model_region?, + blocked: bool, + budget_id: String?, + default_model: String?, + max_budget: Float?, + request_options: Hanzoai::RequestOptions + } type allowed_model_region = :eu | :us diff --git a/sig/hanzoai/models/customer_update_response.rbs b/sig/hanzoai/models/customer_update_response.rbs new file mode 100644 index 00000000..d82ca17a --- /dev/null +++ b/sig/hanzoai/models/customer_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + CustomerUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/delete_create_allowed_ip_params.rbs b/sig/hanzoai/models/delete_create_allowed_ip_params.rbs index e3cd1b3e..3b5ebcb3 100644 --- a/sig/hanzoai/models/delete_create_allowed_ip_params.rbs +++ b/sig/hanzoai/models/delete_create_allowed_ip_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::delete_create_allowed_ip_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/delete_create_allowed_ip_response.rbs b/sig/hanzoai/models/delete_create_allowed_ip_response.rbs new file mode 100644 index 00000000..cd726ab0 --- /dev/null +++ b/sig/hanzoai/models/delete_create_allowed_ip_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + DeleteCreateAllowedIPResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/embedding_create_params.rbs b/sig/hanzoai/models/embedding_create_params.rbs index 5cd11467..e70f56b8 100644 --- a/sig/hanzoai/models/embedding_create_params.rbs +++ b/sig/hanzoai/models/embedding_create_params.rbs @@ -1,20 +1,102 @@ module Hanzoai module Models type embedding_create_params = - { model: String? } & Hanzoai::Internal::Type::request_parameters + { + model: String, + api_base: String?, + api_key: String?, + api_type: String?, + api_version: String?, + caching: bool, + custom_llm_provider: Hanzoai::Models::EmbeddingCreateParams::custom_llm_provider?, + input: ::Array[String], + litellm_call_id: String?, + litellm_logging_obj: ::Hash[Symbol, top]?, + logger_fn: String?, + timeout: Integer, + user: String? + } + & Hanzoai::Internal::Type::request_parameters class EmbeddingCreateParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor model: String? + attr_accessor model: String + + attr_accessor api_base: String? + + attr_accessor api_key: String? + + attr_accessor api_type: String? + + attr_accessor api_version: String? + + attr_reader caching: bool? + + def caching=: (bool) -> bool + + attr_accessor custom_llm_provider: Hanzoai::Models::EmbeddingCreateParams::custom_llm_provider? + + attr_reader input: ::Array[String]? + + def input=: (::Array[String]) -> ::Array[String] + + attr_accessor litellm_call_id: String? + + attr_accessor litellm_logging_obj: ::Hash[Symbol, top]? + + attr_accessor logger_fn: String? + + attr_reader timeout: Integer? + + def timeout=: (Integer) -> Integer + + attr_accessor user: String? def initialize: ( - ?model: String?, + model: String, + ?api_base: String?, + ?api_key: String?, + ?api_type: String?, + ?api_version: String?, + ?caching: bool, + ?custom_llm_provider: Hanzoai::Models::EmbeddingCreateParams::custom_llm_provider?, + ?input: ::Array[String], + ?litellm_call_id: String?, + ?litellm_logging_obj: ::Hash[Symbol, top]?, + ?logger_fn: String?, + ?timeout: Integer, + ?user: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::embedding_create_params + def to_hash: -> { + model: String, + api_base: String?, + api_key: String?, + api_type: String?, + api_version: String?, + caching: bool, + custom_llm_provider: Hanzoai::Models::EmbeddingCreateParams::custom_llm_provider?, + input: ::Array[String], + litellm_call_id: String?, + litellm_logging_obj: ::Hash[Symbol, top]?, + logger_fn: String?, + timeout: Integer, + user: String?, + request_options: Hanzoai::RequestOptions + } + + type custom_llm_provider = String | ::Hash[Symbol, top] + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::EmbeddingCreateParams::custom_llm_provider] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end end end end diff --git a/sig/hanzoai/models/embedding_create_response.rbs b/sig/hanzoai/models/embedding_create_response.rbs new file mode 100644 index 00000000..506e09c3 --- /dev/null +++ b/sig/hanzoai/models/embedding_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EmbeddingCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/engine_complete_params.rbs b/sig/hanzoai/models/engine_complete_params.rbs index afd2be72..3f8fea20 100644 --- a/sig/hanzoai/models/engine_complete_params.rbs +++ b/sig/hanzoai/models/engine_complete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::engine_complete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/engine_complete_response.rbs b/sig/hanzoai/models/engine_complete_response.rbs new file mode 100644 index 00000000..37de6bee --- /dev/null +++ b/sig/hanzoai/models/engine_complete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EngineCompleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/engine_embed_params.rbs b/sig/hanzoai/models/engine_embed_params.rbs index 511d711c..194d1c66 100644 --- a/sig/hanzoai/models/engine_embed_params.rbs +++ b/sig/hanzoai/models/engine_embed_params.rbs @@ -1,15 +1,102 @@ module Hanzoai module Models type engine_embed_params = - { } & Hanzoai::Internal::Type::request_parameters + { + body_model: String, + api_base: String?, + api_key: String?, + api_type: String?, + api_version: String?, + caching: bool, + custom_llm_provider: Hanzoai::Models::EngineEmbedParams::custom_llm_provider?, + input: ::Array[String], + litellm_call_id: String?, + litellm_logging_obj: ::Hash[Symbol, top]?, + logger_fn: String?, + timeout: Integer, + user: String? + } + & Hanzoai::Internal::Type::request_parameters class EngineEmbedParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def initialize: (?request_options: Hanzoai::request_opts) -> void + attr_accessor body_model: String - def to_hash: -> Hanzoai::Models::engine_embed_params + attr_accessor api_base: String? + + attr_accessor api_key: String? + + attr_accessor api_type: String? + + attr_accessor api_version: String? + + attr_reader caching: bool? + + def caching=: (bool) -> bool + + attr_accessor custom_llm_provider: Hanzoai::Models::EngineEmbedParams::custom_llm_provider? + + attr_reader input: ::Array[String]? + + def input=: (::Array[String]) -> ::Array[String] + + attr_accessor litellm_call_id: String? + + attr_accessor litellm_logging_obj: ::Hash[Symbol, top]? + + attr_accessor logger_fn: String? + + attr_reader timeout: Integer? + + def timeout=: (Integer) -> Integer + + attr_accessor user: String? + + def initialize: ( + body_model: String, + ?api_base: String?, + ?api_key: String?, + ?api_type: String?, + ?api_version: String?, + ?caching: bool, + ?custom_llm_provider: Hanzoai::Models::EngineEmbedParams::custom_llm_provider?, + ?input: ::Array[String], + ?litellm_call_id: String?, + ?litellm_logging_obj: ::Hash[Symbol, top]?, + ?logger_fn: String?, + ?timeout: Integer, + ?user: String?, + ?request_options: Hanzoai::request_opts + ) -> void + + def to_hash: -> { + body_model: String, + api_base: String?, + api_key: String?, + api_type: String?, + api_version: String?, + caching: bool, + custom_llm_provider: Hanzoai::Models::EngineEmbedParams::custom_llm_provider?, + input: ::Array[String], + litellm_call_id: String?, + litellm_logging_obj: ::Hash[Symbol, top]?, + logger_fn: String?, + timeout: Integer, + user: String?, + request_options: Hanzoai::RequestOptions + } + + type custom_llm_provider = String | ::Hash[Symbol, top] + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::EngineEmbedParams::custom_llm_provider] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end end end end diff --git a/sig/hanzoai/models/engine_embed_response.rbs b/sig/hanzoai/models/engine_embed_response.rbs new file mode 100644 index 00000000..a81ef501 --- /dev/null +++ b/sig/hanzoai/models/engine_embed_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EngineEmbedResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/engines/chat_complete_params.rbs b/sig/hanzoai/models/engines/chat_complete_params.rbs index d670ab67..761c8f15 100644 --- a/sig/hanzoai/models/engines/chat_complete_params.rbs +++ b/sig/hanzoai/models/engines/chat_complete_params.rbs @@ -2,15 +2,1283 @@ module Hanzoai module Models module Engines type chat_complete_params = - { } & Hanzoai::Internal::Type::request_parameters + { + messages: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::message], + body_model: String, + caching: bool?, + context_window_fallback_dict: ::Hash[Symbol, String]?, + fallbacks: ::Array[String]?, + frequency_penalty: Float?, + function_call: Hanzoai::Models::Engines::ChatCompleteParams::function_call?, + functions: ::Array[::Hash[Symbol, top]]?, + guardrails: ::Array[String]?, + logit_bias: ::Hash[Symbol, Float]?, + logprobs: bool?, + max_tokens: Integer?, + metadata: ::Hash[Symbol, top]?, + n: Integer?, + num_retries: Integer?, + parallel_tool_calls: bool?, + presence_penalty: Float?, + response_format: ::Hash[Symbol, top]?, + seed: Integer?, + service_tier: String?, + stop: Hanzoai::Models::Engines::ChatCompleteParams::stop?, + stream: bool?, + stream_options: ::Hash[Symbol, top]?, + temperature: Float?, + tool_choice: Hanzoai::Models::Engines::ChatCompleteParams::tool_choice?, + tools: ::Array[::Hash[Symbol, top]]?, + top_logprobs: Integer?, + top_p: Float?, + user: String? + } + & Hanzoai::Internal::Type::request_parameters class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def initialize: (?request_options: Hanzoai::request_opts) -> void + attr_accessor messages: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::message] - def to_hash: -> Hanzoai::Models::Engines::chat_complete_params + attr_accessor body_model: String + + attr_accessor caching: bool? + + attr_accessor context_window_fallback_dict: ::Hash[Symbol, String]? + + attr_accessor fallbacks: ::Array[String]? + + attr_accessor frequency_penalty: Float? + + attr_accessor function_call: Hanzoai::Models::Engines::ChatCompleteParams::function_call? + + attr_accessor functions: ::Array[::Hash[Symbol, top]]? + + attr_accessor guardrails: ::Array[String]? + + attr_accessor logit_bias: ::Hash[Symbol, Float]? + + attr_accessor logprobs: bool? + + attr_accessor max_tokens: Integer? + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor n: Integer? + + attr_accessor num_retries: Integer? + + attr_accessor parallel_tool_calls: bool? + + attr_accessor presence_penalty: Float? + + attr_accessor response_format: ::Hash[Symbol, top]? + + attr_accessor seed: Integer? + + attr_accessor service_tier: String? + + attr_accessor stop: Hanzoai::Models::Engines::ChatCompleteParams::stop? + + attr_accessor stream: bool? + + attr_accessor stream_options: ::Hash[Symbol, top]? + + attr_accessor temperature: Float? + + attr_accessor tool_choice: Hanzoai::Models::Engines::ChatCompleteParams::tool_choice? + + attr_accessor tools: ::Array[::Hash[Symbol, top]]? + + attr_accessor top_logprobs: Integer? + + attr_accessor top_p: Float? + + attr_accessor user: String? + + def initialize: ( + messages: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::message], + body_model: String, + ?caching: bool?, + ?context_window_fallback_dict: ::Hash[Symbol, String]?, + ?fallbacks: ::Array[String]?, + ?frequency_penalty: Float?, + ?function_call: Hanzoai::Models::Engines::ChatCompleteParams::function_call?, + ?functions: ::Array[::Hash[Symbol, top]]?, + ?guardrails: ::Array[String]?, + ?logit_bias: ::Hash[Symbol, Float]?, + ?logprobs: bool?, + ?max_tokens: Integer?, + ?metadata: ::Hash[Symbol, top]?, + ?n: Integer?, + ?num_retries: Integer?, + ?parallel_tool_calls: bool?, + ?presence_penalty: Float?, + ?response_format: ::Hash[Symbol, top]?, + ?seed: Integer?, + ?service_tier: String?, + ?stop: Hanzoai::Models::Engines::ChatCompleteParams::stop?, + ?stream: bool?, + ?stream_options: ::Hash[Symbol, top]?, + ?temperature: Float?, + ?tool_choice: Hanzoai::Models::Engines::ChatCompleteParams::tool_choice?, + ?tools: ::Array[::Hash[Symbol, top]]?, + ?top_logprobs: Integer?, + ?top_p: Float?, + ?user: String?, + ?request_options: Hanzoai::request_opts + ) -> void + + def to_hash: -> { + messages: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::message], + body_model: String, + caching: bool?, + context_window_fallback_dict: ::Hash[Symbol, String]?, + fallbacks: ::Array[String]?, + frequency_penalty: Float?, + function_call: Hanzoai::Models::Engines::ChatCompleteParams::function_call?, + functions: ::Array[::Hash[Symbol, top]]?, + guardrails: ::Array[String]?, + logit_bias: ::Hash[Symbol, Float]?, + logprobs: bool?, + max_tokens: Integer?, + metadata: ::Hash[Symbol, top]?, + n: Integer?, + num_retries: Integer?, + parallel_tool_calls: bool?, + presence_penalty: Float?, + response_format: ::Hash[Symbol, top]?, + seed: Integer?, + service_tier: String?, + stop: Hanzoai::Models::Engines::ChatCompleteParams::stop?, + stream: bool?, + stream_options: ::Hash[Symbol, top]?, + temperature: Float?, + tool_choice: Hanzoai::Models::Engines::ChatCompleteParams::tool_choice?, + tools: ::Array[::Hash[Symbol, top]]?, + top_logprobs: Integer?, + top_p: Float?, + user: String?, + request_options: Hanzoai::RequestOptions + } + + type message = + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + + module Message + extend Hanzoai::Internal::Type::Union + + type chat_completion_user_message = + { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::content, + role: :user, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + } + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::content + + attr_accessor role: :user + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + + def initialize: ( + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::content, + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl, + ?role: :user + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::content, + role: :user, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + } + + type content = + String + | ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::union_member1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + type chat_completion_text_object = + { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_image_object = + { + image_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + type: :image_url + } + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + attr_accessor image_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url + + attr_accessor type: :image_url + + def initialize: ( + image_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + ?type: :image_url + ) -> void + + def to_hash: -> { + image_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + type: :image_url + } + + type image_url = + String + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + + module ImageURL + extend Hanzoai::Internal::Type::Union + + type chat_completion_image_url_object = + { url: String, detail: String, format_: String } + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_reader detail: String? + + def detail=: (String) -> String + + attr_reader format_: String? + + def format_=: (String) -> String + + def initialize: ( + url: String, + ?detail: String, + ?format_: String + ) -> void + + def to_hash: -> { + url: String, + detail: String, + format_: String + } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url] + end + end + + type chat_completion_audio_object = + { + input_audio: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: :input_audio + } + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + attr_accessor input_audio: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio + + attr_accessor type: :input_audio + + def initialize: ( + input_audio: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + ?type: :input_audio + ) -> void + + def to_hash: -> { + input_audio: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: :input_audio + } + + type input_audio = + { + data: String, + format_: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + } + + class InputAudio < Hanzoai::Internal::Type::BaseModel + attr_accessor data: String + + attr_accessor format_: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + + def initialize: ( + data: String, + format_: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + ) -> void + + def to_hash: -> { + data: String, + format_: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + } + + type format_ = :wav | :mp3 + + module Format + extend Hanzoai::Internal::Type::Enum + + WAV: :wav + MP3: :mp3 + + def self?.values: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_] + end + end + end + + type chat_completion_document_object = + { + citations: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: :document + } + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + attr_accessor citations: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations? + + attr_accessor context: String + + attr_accessor source: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source + + attr_accessor title: String + + attr_accessor type: :document + + def initialize: ( + citations: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + ?type: :document + ) -> void + + def to_hash: -> { + citations: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: :document + } + + type citations = { enabled: bool } + + class Citations < Hanzoai::Internal::Type::BaseModel + attr_accessor enabled: bool + + def initialize: (enabled: bool) -> void + + def to_hash: -> { enabled: bool } + end + + type source = + { data: String, media_type: String, type: :text } + + class Source < Hanzoai::Internal::Type::BaseModel + attr_accessor data: String + + attr_accessor media_type: String + + attr_accessor type: :text + + def initialize: ( + data: String, + media_type: String, + ?type: :text + ) -> void + + def to_hash: -> { + data: String, + media_type: String, + type: :text + } + end + end + + type chat_completion_video_object = + { + type: :video_url, + video_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + } + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :video_url + + attr_accessor video_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + + def initialize: ( + video_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url, + ?type: :video_url + ) -> void + + def to_hash: -> { + type: :video_url, + video_url: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + } + + type video_url = + String + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + + module VideoURL + extend Hanzoai::Internal::Type::Union + + type chat_completion_video_url_object = + { url: String, detail: String } + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_reader detail: String? + + def detail=: (String) -> String + + def initialize: (url: String, ?detail: String) -> void + + def to_hash: -> { url: String, detail: String } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url] + end + end + + type chat_completion_file_object = + { + file: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: :file + } + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + attr_accessor file: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File + + attr_accessor type: :file + + def initialize: ( + file: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + ?type: :file + ) -> void + + def to_hash: -> { + file: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: :file + } + + type file = + { + file_data: String, + file_id: String, + filename: String, + format_: String + } + + class File < Hanzoai::Internal::Type::BaseModel + attr_reader file_data: String? + + def file_data=: (String) -> String + + attr_reader file_id: String? + + def file_id=: (String) -> String + + attr_reader filename: String? + + def filename=: (String) -> String + + attr_reader format_: String? + + def format_=: (String) -> String + + def initialize: ( + ?file_data: String, + ?file_id: String, + ?filename: String, + ?format_: String + ) -> void + + def to_hash: -> { + file_data: String, + file_id: String, + filename: String, + format_: String + } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::union_member1] + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionUserMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_assistant_message = + { + role: :assistant, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content?, + function_call: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + name: String?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + tool_calls: ::Array[Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]? + } + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor role: :assistant + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl + + attr_accessor content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content? + + attr_accessor function_call: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall? + + attr_accessor name: String? + + attr_accessor reasoning_content: String? + + attr_accessor thinking_blocks: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]? + + attr_accessor tool_calls: ::Array[Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]? + + def initialize: ( + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + ?content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content?, + ?function_call: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + ?name: String?, + ?reasoning_content: String?, + ?thinking_blocks: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + ?tool_calls: ::Array[Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]?, + ?role: :assistant + ) -> void + + def to_hash: -> { + role: :assistant, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content?, + function_call: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + name: String?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + tool_calls: ::Array[Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]? + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + type content = + String + | ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::union_member1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + type chat_completion_text_object = + { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::union_member1] + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type function_call = + { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + attr_reader arguments: String? + + def arguments=: (String) -> String + + attr_accessor name: String? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + ?arguments: String, + ?name: String?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + end + + type thinking_block = + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_redacted_thinking_block = + { + type: :redacted_thinking, + cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :redacted_thinking + + attr_accessor cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control? + + attr_reader data: String? + + def data=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + ?data: String, + ?type: :redacted_thinking + ) -> void + + def to_hash: -> { + type: :redacted_thinking, + cache_control: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block] + end + + type tool_call = + { + id: String?, + function: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: :function + } + + class ToolCall < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String? + + attr_accessor function: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function + + attr_accessor type: :function + + def initialize: ( + id: String?, + function: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + ?type: :function + ) -> void + + def to_hash: -> { + id: String?, + function: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: :function + } + + type function = + { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class Function < Hanzoai::Internal::Type::BaseModel + attr_reader arguments: String? + + def arguments=: (String) -> String + + attr_accessor name: String? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + ?arguments: String, + ?name: String?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + end + end + end + + type chat_completion_tool_message = + { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::content, + role: :tool, + tool_call_id: String + } + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::content + + attr_accessor role: :tool + + attr_accessor tool_call_id: String + + def initialize: ( + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::content, + tool_call_id: String, + ?role: :tool + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::content, + role: :tool, + tool_call_id: String + } + + type content = + String + | ::Array[Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionToolMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_system_message = + { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::content, + role: :system, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::content + + attr_accessor role: :system + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl + + attr_reader name: String? + + def name=: (String) -> String + + def initialize: ( + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::content, + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + ?name: String, + ?role: :system + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::content, + role: :system, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + + type content = String | ::Array[top] + + module Content + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionSystemMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_function_message = + { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + role: :function, + tool_call_id: String? + } + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content? + + attr_accessor name: String + + attr_accessor role: :function + + attr_accessor tool_call_id: String? + + def initialize: ( + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + tool_call_id: String?, + ?role: :function + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + role: :function, + tool_call_id: String? + } + + type content = + String + | ::Array[Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_developer_message = + { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content, + role: :developer, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content + + attr_accessor role: :developer + + attr_reader cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl? + + def cache_control=: ( + Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl + ) -> Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl + + attr_reader name: String? + + def name=: (String) -> String + + def initialize: ( + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content, + ?cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + ?name: String, + ?role: :developer + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content, + role: :developer, + cache_control: Hanzoai::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + + type content = String | ::Array[top] + + module Content + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::message] + end + + type function_call = String | ::Hash[Symbol, top] + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::function_call] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + + type stop = String | ::Array[String] + + module Stop + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::stop] + + StringArray: Hanzoai::Internal::Type::Converter + end + + type tool_choice = String | ::Hash[Symbol, top] + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Engines::ChatCompleteParams::tool_choice] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end end end end diff --git a/sig/hanzoai/models/engines/chat_complete_response.rbs b/sig/hanzoai/models/engines/chat_complete_response.rbs new file mode 100644 index 00000000..ec1e127a --- /dev/null +++ b/sig/hanzoai/models/engines/chat_complete_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Engines + ChatCompleteResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/eu_assemblyai_create_params.rbs b/sig/hanzoai/models/eu_assemblyai_create_params.rbs index c69c147b..7ba3c68a 100644 --- a/sig/hanzoai/models/eu_assemblyai_create_params.rbs +++ b/sig/hanzoai/models/eu_assemblyai_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::eu_assemblyai_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/eu_assemblyai_create_response.rbs b/sig/hanzoai/models/eu_assemblyai_create_response.rbs new file mode 100644 index 00000000..f2d9a7bf --- /dev/null +++ b/sig/hanzoai/models/eu_assemblyai_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EuAssemblyaiCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/eu_assemblyai_delete_params.rbs b/sig/hanzoai/models/eu_assemblyai_delete_params.rbs index 7cba95e6..5ab1aac7 100644 --- a/sig/hanzoai/models/eu_assemblyai_delete_params.rbs +++ b/sig/hanzoai/models/eu_assemblyai_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::eu_assemblyai_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/eu_assemblyai_delete_response.rbs b/sig/hanzoai/models/eu_assemblyai_delete_response.rbs new file mode 100644 index 00000000..407e4b7e --- /dev/null +++ b/sig/hanzoai/models/eu_assemblyai_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EuAssemblyaiDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/eu_assemblyai_patch_params.rbs b/sig/hanzoai/models/eu_assemblyai_patch_params.rbs index 61eed0a2..ca55956c 100644 --- a/sig/hanzoai/models/eu_assemblyai_patch_params.rbs +++ b/sig/hanzoai/models/eu_assemblyai_patch_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::eu_assemblyai_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/eu_assemblyai_patch_response.rbs b/sig/hanzoai/models/eu_assemblyai_patch_response.rbs new file mode 100644 index 00000000..a9d4c8d2 --- /dev/null +++ b/sig/hanzoai/models/eu_assemblyai_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EuAssemblyaiPatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/eu_assemblyai_retrieve_params.rbs b/sig/hanzoai/models/eu_assemblyai_retrieve_params.rbs index 79f6e2a3..eacec403 100644 --- a/sig/hanzoai/models/eu_assemblyai_retrieve_params.rbs +++ b/sig/hanzoai/models/eu_assemblyai_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::eu_assemblyai_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/eu_assemblyai_retrieve_response.rbs b/sig/hanzoai/models/eu_assemblyai_retrieve_response.rbs new file mode 100644 index 00000000..9454e5b5 --- /dev/null +++ b/sig/hanzoai/models/eu_assemblyai_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EuAssemblyaiRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/eu_assemblyai_update_params.rbs b/sig/hanzoai/models/eu_assemblyai_update_params.rbs index 84cb42cf..a7f0ef9e 100644 --- a/sig/hanzoai/models/eu_assemblyai_update_params.rbs +++ b/sig/hanzoai/models/eu_assemblyai_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::eu_assemblyai_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/eu_assemblyai_update_response.rbs b/sig/hanzoai/models/eu_assemblyai_update_response.rbs new file mode 100644 index 00000000..0b18a1f9 --- /dev/null +++ b/sig/hanzoai/models/eu_assemblyai_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + EuAssemblyaiUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/file_create_params.rbs b/sig/hanzoai/models/file_create_params.rbs index 066ae8e8..c116f973 100644 --- a/sig/hanzoai/models/file_create_params.rbs +++ b/sig/hanzoai/models/file_create_params.rbs @@ -1,14 +1,21 @@ module Hanzoai module Models type file_create_params = - { file: (IO | StringIO), purpose: String, custom_llm_provider: String } + { + file: Hanzoai::Internal::file_input, + purpose: String, + custom_llm_provider: String, + litellm_metadata: String?, + target_model_names: String, + target_storage: String + } & Hanzoai::Internal::Type::request_parameters class FileCreateParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor file: IO | StringIO + attr_accessor file: Hanzoai::Internal::file_input attr_accessor purpose: String @@ -16,14 +23,35 @@ module Hanzoai def custom_llm_provider=: (String) -> String + attr_accessor litellm_metadata: String? + + attr_reader target_model_names: String? + + def target_model_names=: (String) -> String + + attr_reader target_storage: String? + + def target_storage=: (String) -> String + def initialize: ( - file: IO | StringIO, + file: Hanzoai::Internal::file_input, purpose: String, ?custom_llm_provider: String, + ?litellm_metadata: String?, + ?target_model_names: String, + ?target_storage: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::file_create_params + def to_hash: -> { + file: Hanzoai::Internal::file_input, + purpose: String, + custom_llm_provider: String, + litellm_metadata: String?, + target_model_names: String, + target_storage: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/file_create_response.rbs b/sig/hanzoai/models/file_create_response.rbs new file mode 100644 index 00000000..102db4b3 --- /dev/null +++ b/sig/hanzoai/models/file_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + FileCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/file_delete_params.rbs b/sig/hanzoai/models/file_delete_params.rbs index 11227870..53fa7b70 100644 --- a/sig/hanzoai/models/file_delete_params.rbs +++ b/sig/hanzoai/models/file_delete_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::file_delete_params + def to_hash: -> { + provider: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/file_delete_response.rbs b/sig/hanzoai/models/file_delete_response.rbs new file mode 100644 index 00000000..fda43918 --- /dev/null +++ b/sig/hanzoai/models/file_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + FileDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/file_list_params.rbs b/sig/hanzoai/models/file_list_params.rbs index 76c08b76..20b7b1ac 100644 --- a/sig/hanzoai/models/file_list_params.rbs +++ b/sig/hanzoai/models/file_list_params.rbs @@ -1,7 +1,8 @@ module Hanzoai module Models type file_list_params = - { purpose: String? } & Hanzoai::Internal::Type::request_parameters + { purpose: String?, target_model_names: String? } + & Hanzoai::Internal::Type::request_parameters class FileListParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter @@ -9,12 +10,19 @@ module Hanzoai attr_accessor purpose: String? + attr_accessor target_model_names: String? + def initialize: ( ?purpose: String?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::file_list_params + def to_hash: -> { + purpose: String?, + target_model_names: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/file_list_response.rbs b/sig/hanzoai/models/file_list_response.rbs new file mode 100644 index 00000000..3a5d549d --- /dev/null +++ b/sig/hanzoai/models/file_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + FileListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/file_retrieve_params.rbs b/sig/hanzoai/models/file_retrieve_params.rbs index cf18187c..baf27cf1 100644 --- a/sig/hanzoai/models/file_retrieve_params.rbs +++ b/sig/hanzoai/models/file_retrieve_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::file_retrieve_params + def to_hash: -> { + provider: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/file_retrieve_response.rbs b/sig/hanzoai/models/file_retrieve_response.rbs new file mode 100644 index 00000000..a9c21c8e --- /dev/null +++ b/sig/hanzoai/models/file_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + FileRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/files/content_retrieve_params.rbs b/sig/hanzoai/models/files/content_retrieve_params.rbs index 2c51991f..65678156 100644 --- a/sig/hanzoai/models/files/content_retrieve_params.rbs +++ b/sig/hanzoai/models/files/content_retrieve_params.rbs @@ -15,7 +15,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Files::content_retrieve_params + def to_hash: -> { + provider: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/files/content_retrieve_response.rbs b/sig/hanzoai/models/files/content_retrieve_response.rbs new file mode 100644 index 00000000..8ba2754e --- /dev/null +++ b/sig/hanzoai/models/files/content_retrieve_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Files + ContentRetrieveResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/fine_tuning/job_create_params.rbs b/sig/hanzoai/models/fine_tuning/job_create_params.rbs index 3cfc801f..133216ce 100644 --- a/sig/hanzoai/models/fine_tuning/job_create_params.rbs +++ b/sig/hanzoai/models/fine_tuning/job_create_params.rbs @@ -2,110 +2,15 @@ module Hanzoai module Models module FineTuning type job_create_params = - { - custom_llm_provider: Hanzoai::Models::FineTuning::JobCreateParams::custom_llm_provider, - model: String, - training_file: String, - hyperparameters: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters?, - integrations: ::Array[String]?, - seed: Integer?, - suffix: String?, - validation_file: String? - } - & Hanzoai::Internal::Type::request_parameters + { } & Hanzoai::Internal::Type::request_parameters - class JobCreateParams < Hanzoai::Internal::Type::BaseModel + class JobCreateParams < Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor custom_llm_provider: Hanzoai::Models::FineTuning::JobCreateParams::custom_llm_provider + def initialize: (?request_options: Hanzoai::request_opts) -> void - attr_accessor model: String - - attr_accessor training_file: String - - attr_accessor hyperparameters: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters? - - attr_accessor integrations: ::Array[String]? - - attr_accessor seed: Integer? - - attr_accessor suffix: String? - - attr_accessor validation_file: String? - - def initialize: ( - custom_llm_provider: Hanzoai::Models::FineTuning::JobCreateParams::custom_llm_provider, - model: String, - training_file: String, - ?hyperparameters: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters?, - ?integrations: ::Array[String]?, - ?seed: Integer?, - ?suffix: String?, - ?validation_file: String?, - ?request_options: Hanzoai::request_opts - ) -> void - - def to_hash: -> Hanzoai::Models::FineTuning::job_create_params - - type custom_llm_provider = :openai | :azure | :vertex_ai - - module CustomLlmProvider - extend Hanzoai::Internal::Type::Enum - - OPENAI: :openai - AZURE: :azure - VERTEX_AI: :vertex_ai - - def self?.values: -> ::Array[Hanzoai::Models::FineTuning::JobCreateParams::custom_llm_provider] - end - - type hyperparameters = - { - batch_size: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::batch_size?, - learning_rate_multiplier: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::learning_rate_multiplier?, - n_epochs: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::n_epochs? - } - - class Hyperparameters < Hanzoai::Internal::Type::BaseModel - attr_accessor batch_size: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::batch_size? - - attr_accessor learning_rate_multiplier: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::learning_rate_multiplier? - - attr_accessor n_epochs: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::n_epochs? - - def initialize: ( - ?batch_size: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::batch_size?, - ?learning_rate_multiplier: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::learning_rate_multiplier?, - ?n_epochs: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters::n_epochs? - ) -> void - - def to_hash: -> Hanzoai::Models::FineTuning::JobCreateParams::hyperparameters - - type batch_size = String | Integer - - module BatchSize - extend Hanzoai::Internal::Type::Union - - def self?.variants: -> [String, Integer] - end - - type learning_rate_multiplier = String | Float - - module LearningRateMultiplier - extend Hanzoai::Internal::Type::Union - - def self?.variants: -> [String, Float] - end - - type n_epochs = String | Integer - - module NEpochs - extend Hanzoai::Internal::Type::Union - - def self?.variants: -> [String, Integer] - end - end + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/fine_tuning/job_create_response.rbs b/sig/hanzoai/models/fine_tuning/job_create_response.rbs new file mode 100644 index 00000000..33ad93a4 --- /dev/null +++ b/sig/hanzoai/models/fine_tuning/job_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module FineTuning + JobCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/fine_tuning/job_list_params.rbs b/sig/hanzoai/models/fine_tuning/job_list_params.rbs index d076d3e8..2c0d8bd3 100644 --- a/sig/hanzoai/models/fine_tuning/job_list_params.rbs +++ b/sig/hanzoai/models/fine_tuning/job_list_params.rbs @@ -3,9 +3,10 @@ module Hanzoai module FineTuning type job_list_params = { - custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider, after: String?, - limit: Integer? + custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider?, + limit: Integer?, + target_model_names: String? } & Hanzoai::Internal::Type::request_parameters @@ -13,20 +14,29 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider - attr_accessor after: String? + attr_accessor custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider? + attr_accessor limit: Integer? + attr_accessor target_model_names: String? + def initialize: ( - custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider, ?after: String?, + ?custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider?, ?limit: Integer?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::FineTuning::job_list_params + def to_hash: -> { + after: String?, + custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider?, + limit: Integer?, + target_model_names: String?, + request_options: Hanzoai::RequestOptions + } type custom_llm_provider = :openai | :azure diff --git a/sig/hanzoai/models/fine_tuning/job_list_response.rbs b/sig/hanzoai/models/fine_tuning/job_list_response.rbs new file mode 100644 index 00000000..df3afd24 --- /dev/null +++ b/sig/hanzoai/models/fine_tuning/job_list_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module FineTuning + JobListResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/fine_tuning/job_retrieve_params.rbs b/sig/hanzoai/models/fine_tuning/job_retrieve_params.rbs index c7281ede..27d7daab 100644 --- a/sig/hanzoai/models/fine_tuning/job_retrieve_params.rbs +++ b/sig/hanzoai/models/fine_tuning/job_retrieve_params.rbs @@ -3,7 +3,7 @@ module Hanzoai module FineTuning type job_retrieve_params = { - custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider + custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider? } & Hanzoai::Internal::Type::request_parameters @@ -11,14 +11,17 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider + attr_accessor custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider? def initialize: ( - custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider, + ?custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::FineTuning::job_retrieve_params + def to_hash: -> { + custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider?, + request_options: Hanzoai::RequestOptions + } type custom_llm_provider = :openai | :azure diff --git a/sig/hanzoai/models/fine_tuning/job_retrieve_response.rbs b/sig/hanzoai/models/fine_tuning/job_retrieve_response.rbs new file mode 100644 index 00000000..a491600f --- /dev/null +++ b/sig/hanzoai/models/fine_tuning/job_retrieve_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module FineTuning + JobRetrieveResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbs b/sig/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbs index 0396d3bd..e8f48f19 100644 --- a/sig/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbs +++ b/sig/hanzoai/models/fine_tuning/jobs/cancel_create_params.rbs @@ -11,7 +11,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::FineTuning::Jobs::cancel_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/fine_tuning/jobs/cancel_create_response.rbs b/sig/hanzoai/models/fine_tuning/jobs/cancel_create_response.rbs new file mode 100644 index 00000000..c9be0e5f --- /dev/null +++ b/sig/hanzoai/models/fine_tuning/jobs/cancel_create_response.rbs @@ -0,0 +1,9 @@ +module Hanzoai + module Models + module FineTuning + module Jobs + CancelCreateResponse: Hanzoai::Internal::Type::Converter + end + end + end +end diff --git a/sig/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rbs b/sig/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rbs new file mode 100644 index 00000000..dcf64f49 --- /dev/null +++ b/sig/hanzoai/models/fine_tuning/lite_llm_fine_tuning_job_create.rbs @@ -0,0 +1,120 @@ +module Hanzoai + module Models + module FineTuning + type lite_llm_fine_tuning_job_create = + { + model: String, + training_file: String, + custom_llm_provider: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::custom_llm_provider?, + hyperparameters: Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters?, + integrations: ::Array[String]?, + seed: Integer?, + suffix: String?, + validation_file: String? + } + + class LiteLlmFineTuningJobCreate < Hanzoai::Internal::Type::BaseModel + attr_accessor model: String + + attr_accessor training_file: String + + attr_accessor custom_llm_provider: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::custom_llm_provider? + + attr_accessor hyperparameters: Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters? + + attr_accessor integrations: ::Array[String]? + + attr_accessor seed: Integer? + + attr_accessor suffix: String? + + attr_accessor validation_file: String? + + def initialize: ( + model: String, + training_file: String, + ?custom_llm_provider: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::custom_llm_provider?, + ?hyperparameters: Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters?, + ?integrations: ::Array[String]?, + ?seed: Integer?, + ?suffix: String?, + ?validation_file: String? + ) -> void + + def to_hash: -> { + model: String, + training_file: String, + custom_llm_provider: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::custom_llm_provider?, + hyperparameters: Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters?, + integrations: ::Array[String]?, + seed: Integer?, + suffix: String?, + validation_file: String? + } + + type custom_llm_provider = :openai | :azure | :vertex_ai + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Enum + + OPENAI: :openai + AZURE: :azure + VERTEX_AI: :vertex_ai + + def self?.values: -> ::Array[Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::custom_llm_provider] + end + + type hyperparameters = + { + batch_size: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::batch_size?, + learning_rate_multiplier: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::learning_rate_multiplier?, + n_epochs: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::n_epochs? + } + + class Hyperparameters < Hanzoai::Internal::Type::BaseModel + attr_accessor batch_size: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::batch_size? + + attr_accessor learning_rate_multiplier: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::learning_rate_multiplier? + + attr_accessor n_epochs: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::n_epochs? + + def initialize: ( + ?batch_size: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::batch_size?, + ?learning_rate_multiplier: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::learning_rate_multiplier?, + ?n_epochs: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::n_epochs? + ) -> void + + def to_hash: -> { + batch_size: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::batch_size?, + learning_rate_multiplier: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::learning_rate_multiplier?, + n_epochs: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::n_epochs? + } + + type batch_size = String | Integer + + module BatchSize + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::batch_size] + end + + type learning_rate_multiplier = String | Float + + module LearningRateMultiplier + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::learning_rate_multiplier] + end + + type n_epochs = String | Integer + + module NEpochs + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters::n_epochs] + end + end + end + end + end +end diff --git a/sig/hanzoai/models/gemini_create_params.rbs b/sig/hanzoai/models/gemini_create_params.rbs index 191e54b2..7fc85a29 100644 --- a/sig/hanzoai/models/gemini_create_params.rbs +++ b/sig/hanzoai/models/gemini_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::gemini_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/gemini_create_response.rbs b/sig/hanzoai/models/gemini_create_response.rbs new file mode 100644 index 00000000..d10e8189 --- /dev/null +++ b/sig/hanzoai/models/gemini_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + GeminiCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/gemini_delete_params.rbs b/sig/hanzoai/models/gemini_delete_params.rbs index 89a3b0d8..d7c17be7 100644 --- a/sig/hanzoai/models/gemini_delete_params.rbs +++ b/sig/hanzoai/models/gemini_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::gemini_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/gemini_delete_response.rbs b/sig/hanzoai/models/gemini_delete_response.rbs new file mode 100644 index 00000000..80a7caa1 --- /dev/null +++ b/sig/hanzoai/models/gemini_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + GeminiDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/gemini_patch_params.rbs b/sig/hanzoai/models/gemini_patch_params.rbs index e576d6d1..1adfb4c1 100644 --- a/sig/hanzoai/models/gemini_patch_params.rbs +++ b/sig/hanzoai/models/gemini_patch_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::gemini_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/gemini_patch_response.rbs b/sig/hanzoai/models/gemini_patch_response.rbs new file mode 100644 index 00000000..f9b4cfd7 --- /dev/null +++ b/sig/hanzoai/models/gemini_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + GeminiPatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/gemini_retrieve_params.rbs b/sig/hanzoai/models/gemini_retrieve_params.rbs index a1ef803c..e372d8f7 100644 --- a/sig/hanzoai/models/gemini_retrieve_params.rbs +++ b/sig/hanzoai/models/gemini_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::gemini_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/gemini_retrieve_response.rbs b/sig/hanzoai/models/gemini_retrieve_response.rbs new file mode 100644 index 00000000..081848f2 --- /dev/null +++ b/sig/hanzoai/models/gemini_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + GeminiRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/gemini_update_params.rbs b/sig/hanzoai/models/gemini_update_params.rbs index e7fd9ec4..807eb1cb 100644 --- a/sig/hanzoai/models/gemini_update_params.rbs +++ b/sig/hanzoai/models/gemini_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::gemini_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/gemini_update_response.rbs b/sig/hanzoai/models/gemini_update_response.rbs new file mode 100644 index 00000000..110d7645 --- /dev/null +++ b/sig/hanzoai/models/gemini_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + GeminiUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/generate_key_response.rbs b/sig/hanzoai/models/generate_key_response.rbs index abd1ab7a..fb4e0fda 100644 --- a/sig/hanzoai/models/generate_key_response.rbs +++ b/sig/hanzoai/models/generate_key_response.rbs @@ -2,58 +2,75 @@ module Hanzoai module Models type generate_key_response = { - expires: Time?, key: String, token: String?, - aliases: top?, + aliases: ::Hash[Symbol, top]?, allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex]?, blocked: bool?, budget_duration: String?, budget_id: String?, - config: top?, + config: ::Hash[Symbol, top]?, + created_at: Time?, created_by: String?, duration: String?, enforced_params: ::Array[String]?, + expires: Time?, guardrails: ::Array[String]?, key_alias: String?, key_name: String?, - llm_budget_table: top, + litellm_budget_table: top, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, - model_rpm_limit: top?, - model_tpm_limit: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, models: ::Array[top]?, - permissions: top?, + object_permission: Hanzoai::GenerateKeyResponse::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + router_settings: Hanzoai::GenerateKeyResponse::RouterSettings?, rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::GenerateKeyResponse::rpm_limit_type?, spend: Float?, tags: ::Array[String]?, team_id: String?, token_id: String?, tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::GenerateKeyResponse::tpm_limit_type?, + updated_at: Time?, updated_by: String?, user_id: String? } class GenerateKeyResponse < Hanzoai::Internal::Type::BaseModel - attr_accessor expires: Time? - attr_accessor key: String attr_accessor token: String? - attr_accessor aliases: top? + attr_accessor aliases: ::Hash[Symbol, top]? attr_accessor allowed_cache_controls: ::Array[top]? + attr_accessor allowed_passthrough_routes: ::Array[top]? + + attr_accessor allowed_routes: ::Array[top]? + + attr_accessor allowed_vector_store_indexes: ::Array[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex]? + attr_accessor blocked: bool? attr_accessor budget_duration: String? attr_accessor budget_id: String? - attr_accessor config: top? + attr_accessor config: ::Hash[Symbol, top]? + + attr_accessor created_at: Time? attr_accessor created_by: String? @@ -61,34 +78,46 @@ module Hanzoai attr_accessor enforced_params: ::Array[String]? + attr_accessor expires: Time? + attr_accessor guardrails: ::Array[String]? attr_accessor key_alias: String? attr_accessor key_name: String? - attr_reader llm_budget_table: top? + attr_reader litellm_budget_table: top? - def llm_budget_table=: (top) -> top + def litellm_budget_table=: (top) -> top attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_rpm_limit: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, top]? - attr_accessor model_tpm_limit: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, top]? attr_accessor models: ::Array[top]? - attr_accessor permissions: top? + attr_accessor object_permission: Hanzoai::GenerateKeyResponse::ObjectPermission? + + attr_accessor organization_id: String? + + attr_accessor permissions: ::Hash[Symbol, top]? + + attr_accessor prompts: ::Array[String]? + + attr_accessor router_settings: Hanzoai::GenerateKeyResponse::RouterSettings? attr_accessor rpm_limit: Integer? + attr_accessor rpm_limit_type: Hanzoai::Models::GenerateKeyResponse::rpm_limit_type? + attr_accessor spend: Float? attr_accessor tags: ::Array[String]? @@ -99,46 +128,288 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor tpm_limit_type: Hanzoai::Models::GenerateKeyResponse::tpm_limit_type? + + attr_accessor updated_at: Time? + attr_accessor updated_by: String? attr_accessor user_id: String? def initialize: ( - expires: Time?, key: String, ?token: String?, - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex]?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, + ?created_at: Time?, ?created_by: String?, ?duration: String?, ?enforced_params: ::Array[String]?, + ?expires: Time?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?key_name: String?, - ?llm_budget_table: top, + ?litellm_budget_table: top, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::GenerateKeyResponse::ObjectPermission?, + ?organization_id: String?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?router_settings: Hanzoai::GenerateKeyResponse::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::GenerateKeyResponse::rpm_limit_type?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?token_id: String?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::GenerateKeyResponse::tpm_limit_type?, + ?updated_at: Time?, ?updated_by: String?, ?user_id: String? ) -> void - def to_hash: -> Hanzoai::Models::generate_key_response + def to_hash: -> { + key: String, + token: String?, + aliases: ::Hash[Symbol, top]?, + allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex]?, + blocked: bool?, + budget_duration: String?, + budget_id: String?, + config: ::Hash[Symbol, top]?, + created_at: Time?, + created_by: String?, + duration: String?, + enforced_params: ::Array[String]?, + expires: Time?, + guardrails: ::Array[String]?, + key_alias: String?, + key_name: String?, + litellm_budget_table: top, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, + models: ::Array[top]?, + object_permission: Hanzoai::GenerateKeyResponse::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + router_settings: Hanzoai::GenerateKeyResponse::RouterSettings?, + rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::GenerateKeyResponse::rpm_limit_type?, + spend: Float?, + tags: ::Array[String]?, + team_id: String?, + token_id: String?, + tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::GenerateKeyResponse::tpm_limit_type?, + updated_at: Time?, + updated_by: String?, + user_id: String? + } + + type allowed_vector_store_index = + { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::GenerateKeyResponse::AllowedVectorStoreIndex::index_permission] + } + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + attr_accessor index_name: String + + attr_accessor index_permissions: ::Array[Hanzoai::Models::GenerateKeyResponse::AllowedVectorStoreIndex::index_permission] + + def initialize: ( + index_name: String, + index_permissions: ::Array[Hanzoai::Models::GenerateKeyResponse::AllowedVectorStoreIndex::index_permission] + ) -> void + + def to_hash: -> { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::GenerateKeyResponse::AllowedVectorStoreIndex::index_permission] + } + + type index_permission = :read | :write + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ: :read + WRITE: :write + + def self?.values: -> ::Array[Hanzoai::Models::GenerateKeyResponse::AllowedVectorStoreIndex::index_permission] + end + end + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type router_settings = + { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::GenerateKeyResponse::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + attr_accessor allowed_fails: Integer? + + attr_accessor context_window_fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor cooldown_time: Float? + + attr_accessor fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor max_retries: Integer? + + attr_accessor model_group_alias: ::Hash[Symbol, Hanzoai::Models::GenerateKeyResponse::RouterSettings::model_group_alias]? + + attr_accessor model_group_retry_policy: ::Hash[Symbol, top]? + + attr_accessor num_retries: Integer? + + attr_accessor retry_after: Float? + + attr_accessor routing_strategy: String? + + attr_accessor routing_strategy_args: ::Hash[Symbol, top]? + + attr_accessor timeout: Float? + + def initialize: ( + ?allowed_fails: Integer?, + ?context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + ?cooldown_time: Float?, + ?fallbacks: ::Array[::Hash[Symbol, top]]?, + ?max_retries: Integer?, + ?model_group_alias: ::Hash[Symbol, Hanzoai::Models::GenerateKeyResponse::RouterSettings::model_group_alias]?, + ?model_group_retry_policy: ::Hash[Symbol, top]?, + ?num_retries: Integer?, + ?retry_after: Float?, + ?routing_strategy: String?, + ?routing_strategy_args: ::Hash[Symbol, top]?, + ?timeout: Float? + ) -> void + + def to_hash: -> { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::GenerateKeyResponse::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + type model_group_alias = String | ::Hash[Symbol, top] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::GenerateKeyResponse::RouterSettings::model_group_alias] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + end + + type rpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::GenerateKeyResponse::rpm_limit_type] + end + + type tpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::GenerateKeyResponse::tpm_limit_type] + end end end end diff --git a/sig/hanzoai/models/get_home_response.rbs b/sig/hanzoai/models/get_home_response.rbs new file mode 100644 index 00000000..cf7eb04e --- /dev/null +++ b/sig/hanzoai/models/get_home_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + GetHomeResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/global/spend_list_tags_params.rbs b/sig/hanzoai/models/global/spend_list_tags_params.rbs index b5faf8bd..82be39fc 100644 --- a/sig/hanzoai/models/global/spend_list_tags_params.rbs +++ b/sig/hanzoai/models/global/spend_list_tags_params.rbs @@ -22,7 +22,12 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Global::spend_list_tags_params + def to_hash: -> { + end_date: String?, + start_date: String?, + tags: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/global/spend_list_tags_response.rbs b/sig/hanzoai/models/global/spend_list_tags_response.rbs index e92952c0..02b19bda 100644 --- a/sig/hanzoai/models/global/spend_list_tags_response.rbs +++ b/sig/hanzoai/models/global/spend_list_tags_response.rbs @@ -89,38 +89,58 @@ module Hanzoai ?user: String? ) -> void - def to_hash: -> Hanzoai::Models::Global::spend_list_tags_response_item + def to_hash: -> { + api_key: String, + call_type: String, + end_time: Hanzoai::Models::Global::SpendListTagsResponseItem::end_time?, + messages: Hanzoai::Models::Global::SpendListTagsResponseItem::messages?, + request_id: String, + response: Hanzoai::Models::Global::SpendListTagsResponseItem::response?, + start_time: Hanzoai::Models::Global::SpendListTagsResponseItem::start_time?, + api_base: String?, + cache_hit: String?, + cache_key: String?, + completion_tokens: Integer?, + metadata: top, + model: String?, + prompt_tokens: Integer?, + request_tags: top, + requester_ip_address: String?, + spend: Float?, + total_tokens: Integer?, + user: String? + } type end_time = String | Time module EndTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendListTagsResponseItem::end_time] end - type messages = String | ::Array[top] | top + type messages = String | ::Array[top] | ::Hash[Symbol, top] module Messages extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendListTagsResponseItem::messages] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end - type response = String | ::Array[top] | top + type response = String | ::Array[top] | ::Hash[Symbol, top] module Response extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendListTagsResponseItem::response] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end type start_time = String | Time @@ -128,14 +148,14 @@ module Hanzoai module StartTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendListTagsResponseItem::start_time] end end type spend_list_tags_response = ::Array[Hanzoai::Models::Global::SpendListTagsResponseItem] - SpendListTagsResponse: spend_list_tags_response + SpendListTagsResponse: Hanzoai::Internal::Type::Converter end end end diff --git a/sig/hanzoai/models/global/spend_reset_params.rbs b/sig/hanzoai/models/global/spend_reset_params.rbs index 9905f8d0..5fc9fe2e 100644 --- a/sig/hanzoai/models/global/spend_reset_params.rbs +++ b/sig/hanzoai/models/global/spend_reset_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Global::spend_reset_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/global/spend_reset_response.rbs b/sig/hanzoai/models/global/spend_reset_response.rbs new file mode 100644 index 00000000..09e9b855 --- /dev/null +++ b/sig/hanzoai/models/global/spend_reset_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Global + SpendResetResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/global/spend_retrieve_report_params.rbs b/sig/hanzoai/models/global/spend_retrieve_report_params.rbs index 6c4d88bf..2bc0fdbd 100644 --- a/sig/hanzoai/models/global/spend_retrieve_report_params.rbs +++ b/sig/hanzoai/models/global/spend_retrieve_report_params.rbs @@ -42,7 +42,16 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Global::spend_retrieve_report_params + def to_hash: -> { + api_key: String?, + customer_id: String?, + end_date: String?, + group_by: Hanzoai::Models::Global::SpendRetrieveReportParams::group_by?, + internal_user_id: String?, + start_date: String?, + team_id: String?, + request_options: Hanzoai::RequestOptions + } type group_by = :team | :customer | :api_key diff --git a/sig/hanzoai/models/global/spend_retrieve_report_response.rbs b/sig/hanzoai/models/global/spend_retrieve_report_response.rbs index d0444fb0..6de262de 100644 --- a/sig/hanzoai/models/global/spend_retrieve_report_response.rbs +++ b/sig/hanzoai/models/global/spend_retrieve_report_response.rbs @@ -89,38 +89,58 @@ module Hanzoai ?user: String? ) -> void - def to_hash: -> Hanzoai::Models::Global::spend_retrieve_report_response_item + def to_hash: -> { + api_key: String, + call_type: String, + end_time: Hanzoai::Models::Global::SpendRetrieveReportResponseItem::end_time?, + messages: Hanzoai::Models::Global::SpendRetrieveReportResponseItem::messages?, + request_id: String, + response: Hanzoai::Models::Global::SpendRetrieveReportResponseItem::response?, + start_time: Hanzoai::Models::Global::SpendRetrieveReportResponseItem::start_time?, + api_base: String?, + cache_hit: String?, + cache_key: String?, + completion_tokens: Integer?, + metadata: top, + model: String?, + prompt_tokens: Integer?, + request_tags: top, + requester_ip_address: String?, + spend: Float?, + total_tokens: Integer?, + user: String? + } type end_time = String | Time module EndTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendRetrieveReportResponseItem::end_time] end - type messages = String | ::Array[top] | top + type messages = String | ::Array[top] | ::Hash[Symbol, top] module Messages extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendRetrieveReportResponseItem::messages] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end - type response = String | ::Array[top] | top + type response = String | ::Array[top] | ::Hash[Symbol, top] module Response extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendRetrieveReportResponseItem::response] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end type start_time = String | Time @@ -128,14 +148,14 @@ module Hanzoai module StartTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::Global::SpendRetrieveReportResponseItem::start_time] end end type spend_retrieve_report_response = ::Array[Hanzoai::Models::Global::SpendRetrieveReportResponseItem] - SpendRetrieveReportResponse: spend_retrieve_report_response + SpendRetrieveReportResponse: Hanzoai::Internal::Type::Converter end end end diff --git a/sig/hanzoai/models/guardrail_list_params.rbs b/sig/hanzoai/models/guardrail_list_params.rbs index 51fcfbe2..4abaadc8 100644 --- a/sig/hanzoai/models/guardrail_list_params.rbs +++ b/sig/hanzoai/models/guardrail_list_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::guardrail_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/guardrail_list_response.rbs b/sig/hanzoai/models/guardrail_list_response.rbs index ba7c91a2..e9416bb2 100644 --- a/sig/hanzoai/models/guardrail_list_response.rbs +++ b/sig/hanzoai/models/guardrail_list_response.rbs @@ -10,64 +10,195 @@ module Hanzoai guardrails: ::Array[Hanzoai::Models::GuardrailListResponse::Guardrail] ) -> void - def to_hash: -> Hanzoai::Models::guardrail_list_response + def to_hash: -> { + guardrails: ::Array[Hanzoai::Models::GuardrailListResponse::Guardrail] + } type guardrail = { - guardrail_info: top?, guardrail_name: String, - llm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams + created_at: Time?, + guardrail_definition_location: Hanzoai::Models::GuardrailListResponse::Guardrail::guardrail_definition_location, + guardrail_id: String?, + guardrail_info: ::Hash[Symbol, top]?, + litellm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams?, + updated_at: Time? } class Guardrail < Hanzoai::Internal::Type::BaseModel - attr_accessor guardrail_info: top? - attr_accessor guardrail_name: String - attr_accessor llm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams + attr_accessor created_at: Time? + + attr_reader guardrail_definition_location: Hanzoai::Models::GuardrailListResponse::Guardrail::guardrail_definition_location? + + def guardrail_definition_location=: ( + Hanzoai::Models::GuardrailListResponse::Guardrail::guardrail_definition_location + ) -> Hanzoai::Models::GuardrailListResponse::Guardrail::guardrail_definition_location + + attr_accessor guardrail_id: String? + + attr_accessor guardrail_info: ::Hash[Symbol, top]? + + attr_accessor litellm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams? + + attr_accessor updated_at: Time? def initialize: ( - guardrail_info: top?, guardrail_name: String, - llm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams + ?created_at: Time?, + ?guardrail_definition_location: Hanzoai::Models::GuardrailListResponse::Guardrail::guardrail_definition_location, + ?guardrail_id: String?, + ?guardrail_info: ::Hash[Symbol, top]?, + ?litellm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams?, + ?updated_at: Time? ) -> void - def to_hash: -> Hanzoai::Models::GuardrailListResponse::guardrail + def to_hash: -> { + guardrail_name: String, + created_at: Time?, + guardrail_definition_location: Hanzoai::Models::GuardrailListResponse::Guardrail::guardrail_definition_location, + guardrail_id: String?, + guardrail_info: ::Hash[Symbol, top]?, + litellm_params: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams?, + updated_at: Time? + } + + type guardrail_definition_location = :db | :config + + module GuardrailDefinitionLocation + extend Hanzoai::Internal::Type::Enum + + DB: :db + CONFIG: :config - type llm_params = + def self?.values: -> ::Array[Hanzoai::Models::GuardrailListResponse::Guardrail::guardrail_definition_location] + end + + type litellm_params = { - guardrail: String, - mode: Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams::mode, - default_on: bool + additional_provider_specific_params: ::Hash[Symbol, top]?, + api_base: String?, + api_endpoint: String?, + api_key: String?, + category_thresholds: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds?, + credentials: String?, + default_on: bool?, + detect_secrets_config: ::Hash[Symbol, top]?, + experimental_use_latest_role_message_only: bool?, + fail_on_error: bool?, + guard_name: String?, + location: String?, + mask_request_content: bool?, + mask_response_content: bool?, + model: String?, + pangea_input_recipe: String?, + pangea_output_recipe: String?, + template_id: String?, + violation_message_template: String? } - class LlmParams < Hanzoai::Internal::Type::BaseModel - attr_accessor guardrail: String + class LitellmParams < Hanzoai::Internal::Type::BaseModel + attr_accessor additional_provider_specific_params: ::Hash[Symbol, top]? + + attr_accessor api_base: String? + + attr_accessor api_endpoint: String? - attr_accessor mode: Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams::mode + attr_accessor api_key: String? - attr_reader default_on: bool? + attr_accessor category_thresholds: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds? - def default_on=: (bool) -> bool + attr_accessor credentials: String? + + attr_accessor default_on: bool? + + attr_accessor detect_secrets_config: ::Hash[Symbol, top]? + + attr_accessor experimental_use_latest_role_message_only: bool? + + attr_accessor fail_on_error: bool? + + attr_accessor guard_name: String? + + attr_accessor location: String? + + attr_accessor mask_request_content: bool? + + attr_accessor mask_response_content: bool? + + attr_accessor model: String? + + attr_accessor pangea_input_recipe: String? + + attr_accessor pangea_output_recipe: String? + + attr_accessor template_id: String? + + attr_accessor violation_message_template: String? def initialize: ( - guardrail: String, - mode: Hanzoai::Models::GuardrailListResponse::Guardrail::LlmParams::mode, - ?default_on: bool + ?additional_provider_specific_params: ::Hash[Symbol, top]?, + ?api_base: String?, + ?api_endpoint: String?, + ?api_key: String?, + ?category_thresholds: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds?, + ?credentials: String?, + ?default_on: bool?, + ?detect_secrets_config: ::Hash[Symbol, top]?, + ?experimental_use_latest_role_message_only: bool?, + ?fail_on_error: bool?, + ?guard_name: String?, + ?location: String?, + ?mask_request_content: bool?, + ?mask_response_content: bool?, + ?model: String?, + ?pangea_input_recipe: String?, + ?pangea_output_recipe: String?, + ?template_id: String?, + ?violation_message_template: String? ) -> void - def to_hash: -> Hanzoai::Models::GuardrailListResponse::Guardrail::llm_params + def to_hash: -> { + additional_provider_specific_params: ::Hash[Symbol, top]?, + api_base: String?, + api_endpoint: String?, + api_key: String?, + category_thresholds: Hanzoai::Models::GuardrailListResponse::Guardrail::LitellmParams::CategoryThresholds?, + credentials: String?, + default_on: bool?, + detect_secrets_config: ::Hash[Symbol, top]?, + experimental_use_latest_role_message_only: bool?, + fail_on_error: bool?, + guard_name: String?, + location: String?, + mask_request_content: bool?, + mask_response_content: bool?, + model: String?, + pangea_input_recipe: String?, + pangea_output_recipe: String?, + template_id: String?, + violation_message_template: String? + } + + type category_thresholds = + { jailbreak: Float, prompt_injection: Float } + + class CategoryThresholds < Hanzoai::Internal::Type::BaseModel + attr_reader jailbreak: Float? - type mode = String | ::Array[String] + def jailbreak=: (Float) -> Float - module Mode - extend Hanzoai::Internal::Type::Union + attr_reader prompt_injection: Float? - def self?.variants: -> [String, ::Array[String]] + def prompt_injection=: (Float) -> Float - type string_array = ::Array[String] + def initialize: ( + ?jailbreak: Float, + ?prompt_injection: Float + ) -> void - StringArray: string_array + def to_hash: -> { jailbreak: Float, prompt_injection: Float } end end end diff --git a/sig/hanzoai/models/health_check_all_params.rbs b/sig/hanzoai/models/health_check_all_params.rbs index 9aa72df2..ee98bc8a 100644 --- a/sig/hanzoai/models/health_check_all_params.rbs +++ b/sig/hanzoai/models/health_check_all_params.rbs @@ -1,7 +1,8 @@ module Hanzoai module Models type health_check_all_params = - { model: String? } & Hanzoai::Internal::Type::request_parameters + { model: String?, model_id: String? } + & Hanzoai::Internal::Type::request_parameters class HealthCheckAllParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter @@ -9,12 +10,19 @@ module Hanzoai attr_accessor model: String? + attr_accessor model_id: String? + def initialize: ( ?model: String?, + ?model_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::health_check_all_params + def to_hash: -> { + model: String?, + model_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/health_check_all_response.rbs b/sig/hanzoai/models/health_check_all_response.rbs new file mode 100644 index 00000000..8ba2dc56 --- /dev/null +++ b/sig/hanzoai/models/health_check_all_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + HealthCheckAllResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/health_check_liveliness_params.rbs b/sig/hanzoai/models/health_check_liveliness_params.rbs index 6ca458c8..67034bea 100644 --- a/sig/hanzoai/models/health_check_liveliness_params.rbs +++ b/sig/hanzoai/models/health_check_liveliness_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::health_check_liveliness_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/health_check_liveliness_response.rbs b/sig/hanzoai/models/health_check_liveliness_response.rbs new file mode 100644 index 00000000..6dda550f --- /dev/null +++ b/sig/hanzoai/models/health_check_liveliness_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + HealthCheckLivelinessResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/health_check_liveness_params.rbs b/sig/hanzoai/models/health_check_liveness_params.rbs index a95d52f0..912229d3 100644 --- a/sig/hanzoai/models/health_check_liveness_params.rbs +++ b/sig/hanzoai/models/health_check_liveness_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::health_check_liveness_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/health_check_liveness_response.rbs b/sig/hanzoai/models/health_check_liveness_response.rbs new file mode 100644 index 00000000..3782aba0 --- /dev/null +++ b/sig/hanzoai/models/health_check_liveness_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + HealthCheckLivenessResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/health_check_readiness_params.rbs b/sig/hanzoai/models/health_check_readiness_params.rbs index 8c719c6a..7df393b8 100644 --- a/sig/hanzoai/models/health_check_readiness_params.rbs +++ b/sig/hanzoai/models/health_check_readiness_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::health_check_readiness_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/health_check_readiness_response.rbs b/sig/hanzoai/models/health_check_readiness_response.rbs new file mode 100644 index 00000000..63fe3e25 --- /dev/null +++ b/sig/hanzoai/models/health_check_readiness_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + HealthCheckReadinessResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/health_check_services_params.rbs b/sig/hanzoai/models/health_check_services_params.rbs index 6c170147..ae52a776 100644 --- a/sig/hanzoai/models/health_check_services_params.rbs +++ b/sig/hanzoai/models/health_check_services_params.rbs @@ -15,39 +15,43 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::health_check_services_params + def to_hash: -> { + service: Hanzoai::Models::HealthCheckServicesParams::service, + request_options: Hanzoai::RequestOptions + } type service = :slack_budget_alerts | :langfuse + | :langfuse_otel | :slack | :openmeter | :webhook | :email | :braintrust | :datadog + | :generic_api + | :arize + | :sqs | String module Service extend Hanzoai::Internal::Type::Union - def self?.variants: -> [(:slack_budget_alerts - | :langfuse - | :slack - | :openmeter - | :webhook - | :email - | :braintrust - | :datadog), String] + def self?.variants: -> ::Array[Hanzoai::Models::HealthCheckServicesParams::service] SLACK_BUDGET_ALERTS: :slack_budget_alerts LANGFUSE: :langfuse + LANGFUSE_OTEL: :langfuse_otel SLACK: :slack OPENMETER: :openmeter WEBHOOK: :webhook EMAIL: :email BRAINTRUST: :braintrust DATADOG: :datadog + GENERIC_API: :generic_api + ARIZE: :arize + SQS: :sqs end end end diff --git a/sig/hanzoai/models/health_check_services_response.rbs b/sig/hanzoai/models/health_check_services_response.rbs new file mode 100644 index 00000000..64708f73 --- /dev/null +++ b/sig/hanzoai/models/health_check_services_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + HealthCheckServicesResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/images/generation_create_params.rbs b/sig/hanzoai/models/images/generation_create_params.rbs index 8e4b9097..b8180b86 100644 --- a/sig/hanzoai/models/images/generation_create_params.rbs +++ b/sig/hanzoai/models/images/generation_create_params.rbs @@ -2,15 +2,23 @@ module Hanzoai module Models module Images type generation_create_params = - { } & Hanzoai::Internal::Type::request_parameters + { model: String? } & Hanzoai::Internal::Type::request_parameters class GenerationCreateParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def initialize: (?request_options: Hanzoai::request_opts) -> void + attr_accessor model: String? - def to_hash: -> Hanzoai::Models::Images::generation_create_params + def initialize: ( + ?model: String?, + ?request_options: Hanzoai::request_opts + ) -> void + + def to_hash: -> { + model: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/images/generation_create_response.rbs b/sig/hanzoai/models/images/generation_create_response.rbs new file mode 100644 index 00000000..98731e73 --- /dev/null +++ b/sig/hanzoai/models/images/generation_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Images + GenerationCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/ip_address.rbs b/sig/hanzoai/models/ip_address.rbs index 6220b915..da00eb8a 100644 --- a/sig/hanzoai/models/ip_address.rbs +++ b/sig/hanzoai/models/ip_address.rbs @@ -7,7 +7,7 @@ module Hanzoai def initialize: (ip: String) -> void - def to_hash: -> Hanzoai::Models::ip_address + def to_hash: -> { ip: String } end end end diff --git a/sig/hanzoai/models/key/regenerate_key_request.rbs b/sig/hanzoai/models/key/regenerate_key_request.rbs index 8b93956e..aa3af1a9 100644 --- a/sig/hanzoai/models/key/regenerate_key_request.rbs +++ b/sig/hanzoai/models/key/regenerate_key_request.rbs @@ -3,48 +3,69 @@ module Hanzoai module Key type regenerate_key_request = { - aliases: top?, + aliases: ::Hash[Symbol, top]?, allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex]?, + auto_rotate: bool?, blocked: bool?, budget_duration: String?, budget_id: String?, - config: top?, + config: ::Hash[Symbol, top]?, duration: String?, enforced_params: ::Array[String]?, guardrails: ::Array[String]?, key: String?, key_alias: String?, + key_type: Hanzoai::Models::Key::RegenerateKeyRequest::key_type?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, - model_rpm_limit: top?, - model_tpm_limit: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, models: ::Array[top]?, + new_key: String?, new_master_key: String?, - permissions: top?, + object_permission: Hanzoai::Key::RegenerateKeyRequest::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rotation_interval: String?, + router_settings: Hanzoai::Key::RegenerateKeyRequest::RouterSettings?, rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::rpm_limit_type?, send_invite_email: bool?, soft_budget: Float?, spend: Float?, tags: ::Array[String]?, team_id: String?, tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::tpm_limit_type?, user_id: String? } class RegenerateKeyRequest < Hanzoai::Internal::Type::BaseModel - attr_accessor aliases: top? + attr_accessor aliases: ::Hash[Symbol, top]? attr_accessor allowed_cache_controls: ::Array[top]? + attr_accessor allowed_passthrough_routes: ::Array[top]? + + attr_accessor allowed_routes: ::Array[top]? + + attr_accessor allowed_vector_store_indexes: ::Array[Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex]? + + attr_accessor auto_rotate: bool? + attr_accessor blocked: bool? attr_accessor budget_duration: String? attr_accessor budget_id: String? - attr_accessor config: top? + attr_accessor config: ::Hash[Symbol, top]? attr_accessor duration: String? @@ -56,26 +77,42 @@ module Hanzoai attr_accessor key_alias: String? + attr_accessor key_type: Hanzoai::Models::Key::RegenerateKeyRequest::key_type? + attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_rpm_limit: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, top]? - attr_accessor model_tpm_limit: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, top]? attr_accessor models: ::Array[top]? + attr_accessor new_key: String? + attr_accessor new_master_key: String? - attr_accessor permissions: top? + attr_accessor object_permission: Hanzoai::Key::RegenerateKeyRequest::ObjectPermission? + + attr_accessor organization_id: String? + + attr_accessor permissions: ::Hash[Symbol, top]? + + attr_accessor prompts: ::Array[String]? + + attr_accessor rotation_interval: String? + + attr_accessor router_settings: Hanzoai::Key::RegenerateKeyRequest::RouterSettings? attr_accessor rpm_limit: Integer? + attr_accessor rpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::rpm_limit_type? + attr_accessor send_invite_email: bool? attr_accessor soft_budget: Float? @@ -88,40 +125,293 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor tpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::tpm_limit_type? + attr_accessor user_id: String? def initialize: ( - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex]?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?enforced_params: ::Array[String]?, ?guardrails: ::Array[String]?, ?key: String?, ?key_alias: String?, + ?key_type: Hanzoai::Models::Key::RegenerateKeyRequest::key_type?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, + ?new_key: String?, ?new_master_key: String?, - ?permissions: top?, + ?object_permission: Hanzoai::Key::RegenerateKeyRequest::ObjectPermission?, + ?organization_id: String?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?rotation_interval: String?, + ?router_settings: Hanzoai::Key::RegenerateKeyRequest::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::rpm_limit_type?, ?send_invite_email: bool?, ?soft_budget: Float?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::tpm_limit_type?, ?user_id: String? ) -> void - def to_hash: -> Hanzoai::Models::Key::regenerate_key_request + def to_hash: -> { + aliases: ::Hash[Symbol, top]?, + allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex]?, + auto_rotate: bool?, + blocked: bool?, + budget_duration: String?, + budget_id: String?, + config: ::Hash[Symbol, top]?, + duration: String?, + enforced_params: ::Array[String]?, + guardrails: ::Array[String]?, + key: String?, + key_alias: String?, + key_type: Hanzoai::Models::Key::RegenerateKeyRequest::key_type?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, + models: ::Array[top]?, + new_key: String?, + new_master_key: String?, + object_permission: Hanzoai::Key::RegenerateKeyRequest::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rotation_interval: String?, + router_settings: Hanzoai::Key::RegenerateKeyRequest::RouterSettings?, + rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::rpm_limit_type?, + send_invite_email: bool?, + soft_budget: Float?, + spend: Float?, + tags: ::Array[String]?, + team_id: String?, + tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::tpm_limit_type?, + user_id: String? + } + + type allowed_vector_store_index = + { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::index_permission] + } + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + attr_accessor index_name: String + + attr_accessor index_permissions: ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::index_permission] + + def initialize: ( + index_name: String, + index_permissions: ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::index_permission] + ) -> void + + def to_hash: -> { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::index_permission] + } + + type index_permission = :read | :write + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ: :read + WRITE: :write + + def self?.values: -> ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::AllowedVectorStoreIndex::index_permission] + end + end + + type key_type = :llm_api | :management | :read_only | :default + + module KeyType + extend Hanzoai::Internal::Type::Enum + + LLM_API: :llm_api + MANAGEMENT: :management + READ_ONLY: :read_only + DEFAULT: :default + + def self?.values: -> ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::key_type] + end + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type router_settings = + { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + attr_accessor allowed_fails: Integer? + + attr_accessor context_window_fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor cooldown_time: Float? + + attr_accessor fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor max_retries: Integer? + + attr_accessor model_group_alias: ::Hash[Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings::model_group_alias]? + + attr_accessor model_group_retry_policy: ::Hash[Symbol, top]? + + attr_accessor num_retries: Integer? + + attr_accessor retry_after: Float? + + attr_accessor routing_strategy: String? + + attr_accessor routing_strategy_args: ::Hash[Symbol, top]? + + attr_accessor timeout: Float? + + def initialize: ( + ?allowed_fails: Integer?, + ?context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + ?cooldown_time: Float?, + ?fallbacks: ::Array[::Hash[Symbol, top]]?, + ?max_retries: Integer?, + ?model_group_alias: ::Hash[Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings::model_group_alias]?, + ?model_group_retry_policy: ::Hash[Symbol, top]?, + ?num_retries: Integer?, + ?retry_after: Float?, + ?routing_strategy: String?, + ?routing_strategy_args: ::Hash[Symbol, top]?, + ?timeout: Float? + ) -> void + + def to_hash: -> { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + type model_group_alias = String | ::Hash[Symbol, top] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::RouterSettings::model_group_alias] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + end + + type rpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::rpm_limit_type] + end + + type tpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::Key::RegenerateKeyRequest::tpm_limit_type] + end end end end diff --git a/sig/hanzoai/models/key_block_params.rbs b/sig/hanzoai/models/key_block_params.rbs index 6fb37bbe..8078169a 100644 --- a/sig/hanzoai/models/key_block_params.rbs +++ b/sig/hanzoai/models/key_block_params.rbs @@ -1,22 +1,26 @@ module Hanzoai module Models type key_block_params = - { llm_changed_by: String } & Hanzoai::Internal::Type::request_parameters + { litellm_changed_by: String } + & Hanzoai::Internal::Type::request_parameters class KeyBlockParams < Hanzoai::Models::BlockKeyRequest extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def llm_changed_by: -> String? + def litellm_changed_by: -> String? - def llm_changed_by=: (String _) -> String + def litellm_changed_by=: (String _) -> String def initialize: ( - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_block_params + def to_hash: -> { + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/key_block_response.rbs b/sig/hanzoai/models/key_block_response.rbs index 3e169b4e..75929f9d 100644 --- a/sig/hanzoai/models/key_block_response.rbs +++ b/sig/hanzoai/models/key_block_response.rbs @@ -3,26 +3,35 @@ module Hanzoai type key_block_response = { token: String?, - aliases: top, + aliases: ::Hash[Symbol, top], allowed_cache_controls: ::Array[top]?, + allowed_routes: ::Array[top]?, + auto_rotate: bool?, blocked: bool?, budget_duration: String?, budget_reset_at: Time?, - config: top, + config: ::Hash[Symbol, top], created_at: Time?, created_by: String?, expires: Hanzoai::Models::KeyBlockResponse::expires?, key_alias: String?, key_name: String?, - llm_budget_table: top?, + key_rotation_at: Time?, + last_rotation_at: Time?, + litellm_budget_table: ::Hash[Symbol, top]?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top, - model_max_budget: top, - model_spend: top, + metadata: ::Hash[Symbol, top], + model_max_budget: ::Hash[Symbol, top], + model_spend: ::Hash[Symbol, top], models: ::Array[top], + object_permission: Hanzoai::Models::KeyBlockResponse::ObjectPermission?, + object_permission_id: String?, org_id: String?, - permissions: top, + permissions: ::Hash[Symbol, top], + rotation_count: Integer?, + rotation_interval: String?, + router_settings: ::Hash[Symbol, top]?, rpm_limit: Integer?, soft_budget_cooldown: bool, spend: Float, @@ -36,21 +45,25 @@ module Hanzoai class KeyBlockResponse < Hanzoai::Internal::Type::BaseModel attr_accessor token: String? - attr_reader aliases: top? + attr_reader aliases: ::Hash[Symbol, top]? - def aliases=: (top) -> top + def aliases=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] attr_accessor allowed_cache_controls: ::Array[top]? + attr_accessor allowed_routes: ::Array[top]? + + attr_accessor auto_rotate: bool? + attr_accessor blocked: bool? attr_accessor budget_duration: String? attr_accessor budget_reset_at: Time? - attr_reader config: top? + attr_reader config: ::Hash[Symbol, top]? - def config=: (top) -> top + def config=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] attr_accessor created_at: Time? @@ -62,33 +75,47 @@ module Hanzoai attr_accessor key_name: String? - attr_accessor llm_budget_table: top? + attr_accessor key_rotation_at: Time? + + attr_accessor last_rotation_at: Time? + + attr_accessor litellm_budget_table: ::Hash[Symbol, top]? attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_reader metadata: top? + attr_reader metadata: ::Hash[Symbol, top]? - def metadata=: (top) -> top + def metadata=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] - attr_reader model_max_budget: top? + attr_reader model_max_budget: ::Hash[Symbol, top]? - def model_max_budget=: (top) -> top + def model_max_budget=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] - attr_reader model_spend: top? + attr_reader model_spend: ::Hash[Symbol, top]? - def model_spend=: (top) -> top + def model_spend=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] attr_reader models: ::Array[top]? def models=: (::Array[top]) -> ::Array[top] + attr_accessor object_permission: Hanzoai::Models::KeyBlockResponse::ObjectPermission? + + attr_accessor object_permission_id: String? + attr_accessor org_id: String? - attr_reader permissions: top? + attr_reader permissions: ::Hash[Symbol, top]? + + def permissions=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_accessor rotation_count: Integer? + + attr_accessor rotation_interval: String? - def permissions=: (top) -> top + attr_accessor router_settings: ::Hash[Symbol, top]? attr_accessor rpm_limit: Integer? @@ -112,26 +139,35 @@ module Hanzoai def initialize: ( ?token: String?, - ?aliases: top, + ?aliases: ::Hash[Symbol, top], ?allowed_cache_controls: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_reset_at: Time?, - ?config: top, + ?config: ::Hash[Symbol, top], ?created_at: Time?, ?created_by: String?, ?expires: Hanzoai::Models::KeyBlockResponse::expires?, ?key_alias: String?, ?key_name: String?, - ?llm_budget_table: top?, + ?key_rotation_at: Time?, + ?last_rotation_at: Time?, + ?litellm_budget_table: ::Hash[Symbol, top]?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top, - ?model_max_budget: top, - ?model_spend: top, + ?metadata: ::Hash[Symbol, top], + ?model_max_budget: ::Hash[Symbol, top], + ?model_spend: ::Hash[Symbol, top], ?models: ::Array[top], + ?object_permission: Hanzoai::Models::KeyBlockResponse::ObjectPermission?, + ?object_permission_id: String?, ?org_id: String?, - ?permissions: top, + ?permissions: ::Hash[Symbol, top], + ?rotation_count: Integer?, + ?rotation_interval: String?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, ?soft_budget_cooldown: bool, ?spend: Float, @@ -142,14 +178,100 @@ module Hanzoai ?user_id: String? ) -> void - def to_hash: -> Hanzoai::Models::key_block_response + def to_hash: -> { + token: String?, + aliases: ::Hash[Symbol, top], + allowed_cache_controls: ::Array[top]?, + allowed_routes: ::Array[top]?, + auto_rotate: bool?, + blocked: bool?, + budget_duration: String?, + budget_reset_at: Time?, + config: ::Hash[Symbol, top], + created_at: Time?, + created_by: String?, + expires: Hanzoai::Models::KeyBlockResponse::expires?, + key_alias: String?, + key_name: String?, + key_rotation_at: Time?, + last_rotation_at: Time?, + litellm_budget_table: ::Hash[Symbol, top]?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top], + model_max_budget: ::Hash[Symbol, top], + model_spend: ::Hash[Symbol, top], + models: ::Array[top], + object_permission: Hanzoai::Models::KeyBlockResponse::ObjectPermission?, + object_permission_id: String?, + org_id: String?, + permissions: ::Hash[Symbol, top], + rotation_count: Integer?, + rotation_interval: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + soft_budget_cooldown: bool, + spend: Float, + team_id: String?, + tpm_limit: Integer?, + updated_at: Time?, + updated_by: String?, + user_id: String? + } type expires = String | Time module Expires extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::KeyBlockResponse::expires] + end + + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } end end end diff --git a/sig/hanzoai/models/key_check_health_params.rbs b/sig/hanzoai/models/key_check_health_params.rbs index 1a4c783c..69ef86a8 100644 --- a/sig/hanzoai/models/key_check_health_params.rbs +++ b/sig/hanzoai/models/key_check_health_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::key_check_health_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/key_check_health_response.rbs b/sig/hanzoai/models/key_check_health_response.rbs index 41d6406a..208f5b11 100644 --- a/sig/hanzoai/models/key_check_health_response.rbs +++ b/sig/hanzoai/models/key_check_health_response.rbs @@ -20,7 +20,10 @@ module Hanzoai ?logging_callbacks: Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks? ) -> void - def to_hash: -> Hanzoai::Models::key_check_health_response + def to_hash: -> { + key: Hanzoai::Models::KeyCheckHealthResponse::key, + logging_callbacks: Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks? + } type key = :healthy | :unhealthy @@ -59,7 +62,11 @@ module Hanzoai ?status: Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::status ) -> void - def to_hash: -> Hanzoai::Models::KeyCheckHealthResponse::logging_callbacks + def to_hash: -> { + callbacks: ::Array[String], + details: String?, + status: Hanzoai::Models::KeyCheckHealthResponse::LoggingCallbacks::status + } type status = :healthy | :unhealthy diff --git a/sig/hanzoai/models/key_delete_params.rbs b/sig/hanzoai/models/key_delete_params.rbs index 30d6f16b..acc30d07 100644 --- a/sig/hanzoai/models/key_delete_params.rbs +++ b/sig/hanzoai/models/key_delete_params.rbs @@ -4,7 +4,7 @@ module Hanzoai { key_aliases: ::Array[String]?, keys: ::Array[String]?, - llm_changed_by: String + litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters @@ -16,18 +16,23 @@ module Hanzoai attr_accessor keys: ::Array[String]? - attr_reader llm_changed_by: String? + attr_reader litellm_changed_by: String? - def llm_changed_by=: (String) -> String + def litellm_changed_by=: (String) -> String def initialize: ( ?key_aliases: ::Array[String]?, ?keys: ::Array[String]?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_delete_params + def to_hash: -> { + key_aliases: ::Array[String]?, + keys: ::Array[String]?, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/key_delete_response.rbs b/sig/hanzoai/models/key_delete_response.rbs new file mode 100644 index 00000000..a047cbf7 --- /dev/null +++ b/sig/hanzoai/models/key_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + KeyDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/key_generate_params.rbs b/sig/hanzoai/models/key_generate_params.rbs index b57c9abf..13f514b1 100644 --- a/sig/hanzoai/models/key_generate_params.rbs +++ b/sig/hanzoai/models/key_generate_params.rbs @@ -2,34 +2,46 @@ module Hanzoai module Models type key_generate_params = { - aliases: top?, + aliases: ::Hash[Symbol, top]?, allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex]?, + auto_rotate: bool?, blocked: bool?, budget_duration: String?, budget_id: String?, - config: top?, + config: ::Hash[Symbol, top]?, duration: String?, enforced_params: ::Array[String]?, guardrails: ::Array[String]?, key: String?, key_alias: String?, + key_type: Hanzoai::Models::KeyGenerateParams::key_type?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, - model_rpm_limit: top?, - model_tpm_limit: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, models: ::Array[top]?, - permissions: top?, + object_permission: Hanzoai::KeyGenerateParams::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rotation_interval: String?, + router_settings: Hanzoai::KeyGenerateParams::RouterSettings?, rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::KeyGenerateParams::rpm_limit_type?, send_invite_email: bool?, soft_budget: Float?, spend: Float?, tags: ::Array[String]?, team_id: String?, tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::KeyGenerateParams::tpm_limit_type?, user_id: String?, - llm_changed_by: String + litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters @@ -37,17 +49,25 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor aliases: top? + attr_accessor aliases: ::Hash[Symbol, top]? attr_accessor allowed_cache_controls: ::Array[top]? + attr_accessor allowed_passthrough_routes: ::Array[top]? + + attr_accessor allowed_routes: ::Array[top]? + + attr_accessor allowed_vector_store_indexes: ::Array[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex]? + + attr_accessor auto_rotate: bool? + attr_accessor blocked: bool? attr_accessor budget_duration: String? attr_accessor budget_id: String? - attr_accessor config: top? + attr_accessor config: ::Hash[Symbol, top]? attr_accessor duration: String? @@ -59,24 +79,38 @@ module Hanzoai attr_accessor key_alias: String? + attr_accessor key_type: Hanzoai::Models::KeyGenerateParams::key_type? + attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_rpm_limit: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, top]? - attr_accessor model_tpm_limit: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, top]? attr_accessor models: ::Array[top]? - attr_accessor permissions: top? + attr_accessor object_permission: Hanzoai::KeyGenerateParams::ObjectPermission? + + attr_accessor organization_id: String? + + attr_accessor permissions: ::Hash[Symbol, top]? + + attr_accessor prompts: ::Array[String]? + + attr_accessor rotation_interval: String? + + attr_accessor router_settings: Hanzoai::KeyGenerateParams::RouterSettings? attr_accessor rpm_limit: Integer? + attr_accessor rpm_limit_type: Hanzoai::Models::KeyGenerateParams::rpm_limit_type? + attr_accessor send_invite_email: bool? attr_accessor soft_budget: Float? @@ -89,45 +123,297 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor tpm_limit_type: Hanzoai::Models::KeyGenerateParams::tpm_limit_type? + attr_accessor user_id: String? - attr_reader llm_changed_by: String? + attr_reader litellm_changed_by: String? - def llm_changed_by=: (String) -> String + def litellm_changed_by=: (String) -> String def initialize: ( - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex]?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?enforced_params: ::Array[String]?, ?guardrails: ::Array[String]?, ?key: String?, ?key_alias: String?, + ?key_type: Hanzoai::Models::KeyGenerateParams::key_type?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::KeyGenerateParams::ObjectPermission?, + ?organization_id: String?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?rotation_interval: String?, + ?router_settings: Hanzoai::KeyGenerateParams::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::KeyGenerateParams::rpm_limit_type?, ?send_invite_email: bool?, ?soft_budget: Float?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::KeyGenerateParams::tpm_limit_type?, ?user_id: String?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_generate_params + def to_hash: -> { + aliases: ::Hash[Symbol, top]?, + allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex]?, + auto_rotate: bool?, + blocked: bool?, + budget_duration: String?, + budget_id: String?, + config: ::Hash[Symbol, top]?, + duration: String?, + enforced_params: ::Array[String]?, + guardrails: ::Array[String]?, + key: String?, + key_alias: String?, + key_type: Hanzoai::Models::KeyGenerateParams::key_type?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, + models: ::Array[top]?, + object_permission: Hanzoai::KeyGenerateParams::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rotation_interval: String?, + router_settings: Hanzoai::KeyGenerateParams::RouterSettings?, + rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::KeyGenerateParams::rpm_limit_type?, + send_invite_email: bool?, + soft_budget: Float?, + spend: Float?, + tags: ::Array[String]?, + team_id: String?, + tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::KeyGenerateParams::tpm_limit_type?, + user_id: String?, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + + type allowed_vector_store_index = + { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::KeyGenerateParams::AllowedVectorStoreIndex::index_permission] + } + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + attr_accessor index_name: String + + attr_accessor index_permissions: ::Array[Hanzoai::Models::KeyGenerateParams::AllowedVectorStoreIndex::index_permission] + + def initialize: ( + index_name: String, + index_permissions: ::Array[Hanzoai::Models::KeyGenerateParams::AllowedVectorStoreIndex::index_permission] + ) -> void + + def to_hash: -> { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::KeyGenerateParams::AllowedVectorStoreIndex::index_permission] + } + + type index_permission = :read | :write + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ: :read + WRITE: :write + + def self?.values: -> ::Array[Hanzoai::Models::KeyGenerateParams::AllowedVectorStoreIndex::index_permission] + end + end + + type key_type = :llm_api | :management | :read_only | :default + + module KeyType + extend Hanzoai::Internal::Type::Enum + + LLM_API: :llm_api + MANAGEMENT: :management + READ_ONLY: :read_only + DEFAULT: :default + + def self?.values: -> ::Array[Hanzoai::Models::KeyGenerateParams::key_type] + end + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type router_settings = + { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyGenerateParams::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + attr_accessor allowed_fails: Integer? + + attr_accessor context_window_fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor cooldown_time: Float? + + attr_accessor fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor max_retries: Integer? + + attr_accessor model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyGenerateParams::RouterSettings::model_group_alias]? + + attr_accessor model_group_retry_policy: ::Hash[Symbol, top]? + + attr_accessor num_retries: Integer? + + attr_accessor retry_after: Float? + + attr_accessor routing_strategy: String? + + attr_accessor routing_strategy_args: ::Hash[Symbol, top]? + + attr_accessor timeout: Float? + + def initialize: ( + ?allowed_fails: Integer?, + ?context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + ?cooldown_time: Float?, + ?fallbacks: ::Array[::Hash[Symbol, top]]?, + ?max_retries: Integer?, + ?model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyGenerateParams::RouterSettings::model_group_alias]?, + ?model_group_retry_policy: ::Hash[Symbol, top]?, + ?num_retries: Integer?, + ?retry_after: Float?, + ?routing_strategy: String?, + ?routing_strategy_args: ::Hash[Symbol, top]?, + ?timeout: Float? + ) -> void + + def to_hash: -> { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyGenerateParams::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + type model_group_alias = String | ::Hash[Symbol, top] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::KeyGenerateParams::RouterSettings::model_group_alias] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + end + + type rpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::KeyGenerateParams::rpm_limit_type] + end + + type tpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::KeyGenerateParams::tpm_limit_type] + end end end end diff --git a/sig/hanzoai/models/key_list_params.rbs b/sig/hanzoai/models/key_list_params.rbs index 3d5e4b1d..1f90eadc 100644 --- a/sig/hanzoai/models/key_list_params.rbs +++ b/sig/hanzoai/models/key_list_params.rbs @@ -2,12 +2,18 @@ module Hanzoai module Models type key_list_params = { + expand: ::Array[String]?, + include_created_by_keys: bool, include_team_keys: bool, key_alias: String?, + key_hash: String?, organization_id: String?, page: Integer, return_full_object: bool, size: Integer, + sort_by: String?, + sort_order: String, + status: String?, team_id: String?, user_id: String? } @@ -17,12 +23,20 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters + attr_accessor expand: ::Array[String]? + + attr_reader include_created_by_keys: bool? + + def include_created_by_keys=: (bool) -> bool + attr_reader include_team_keys: bool? def include_team_keys=: (bool) -> bool attr_accessor key_alias: String? + attr_accessor key_hash: String? + attr_accessor organization_id: String? attr_reader page: Integer? @@ -37,23 +51,53 @@ module Hanzoai def size=: (Integer) -> Integer + attr_accessor sort_by: String? + + attr_reader sort_order: String? + + def sort_order=: (String) -> String + + attr_accessor status: String? + attr_accessor team_id: String? attr_accessor user_id: String? def initialize: ( + ?expand: ::Array[String]?, + ?include_created_by_keys: bool, ?include_team_keys: bool, ?key_alias: String?, + ?key_hash: String?, ?organization_id: String?, ?page: Integer, ?return_full_object: bool, ?size: Integer, + ?sort_by: String?, + ?sort_order: String, + ?status: String?, ?team_id: String?, ?user_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_list_params + def to_hash: -> { + expand: ::Array[String]?, + include_created_by_keys: bool, + include_team_keys: bool, + key_alias: String?, + key_hash: String?, + organization_id: String?, + page: Integer, + return_full_object: bool, + size: Integer, + sort_by: String?, + sort_order: String, + status: String?, + team_id: String?, + user_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/key_list_response.rbs b/sig/hanzoai/models/key_list_response.rbs index 0d8095f7..8b6124d4 100644 --- a/sig/hanzoai/models/key_list_response.rbs +++ b/sig/hanzoai/models/key_list_response.rbs @@ -28,9 +28,17 @@ module Hanzoai ?total_pages: Integer? ) -> void - def to_hash: -> Hanzoai::Models::key_list_response + def to_hash: -> { + current_page: Integer?, + keys: ::Array[Hanzoai::Models::KeyListResponse::key], + total_count: Integer?, + total_pages: Integer? + } - type key = String | Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth + type key = + String + | Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth + | Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken module Key extend Hanzoai::Internal::Type::Union @@ -38,14 +46,16 @@ module Hanzoai type user_api_key_auth = { token: String?, - aliases: top, + aliases: ::Hash[Symbol, top], allowed_cache_controls: ::Array[top]?, allowed_model_region: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::allowed_model_region?, + allowed_routes: ::Array[top]?, api_key: String?, + auto_rotate: bool?, blocked: bool?, budget_duration: String?, budget_reset_at: Time?, - config: top, + config: ::Hash[Symbol, top], created_at: Time?, created_by: String?, end_user_id: String?, @@ -55,17 +65,29 @@ module Hanzoai expires: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::expires?, key_alias: String?, key_name: String?, + key_rotation_at: Time?, last_refreshed_at: Float?, - llm_budget_table: top?, + last_rotation_at: Time?, + litellm_budget_table: ::Hash[Symbol, top]?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top, - model_max_budget: top, - model_spend: top, + metadata: ::Hash[Symbol, top], + model_max_budget: ::Hash[Symbol, top], + model_spend: ::Hash[Symbol, top], models: ::Array[top], + object_permission: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission?, + object_permission_id: String?, org_id: String?, + organization_max_budget: Float?, + organization_metadata: ::Hash[Symbol, top]?, + organization_rpm_limit: Integer?, + organization_tpm_limit: Integer?, parent_otel_span: top, - permissions: top, + permissions: ::Hash[Symbol, top], + request_route: String?, + rotation_count: Integer?, + rotation_interval: String?, + router_settings: ::Hash[Symbol, top]?, rpm_limit: Integer?, rpm_limit_per_model: ::Hash[Symbol, Integer]?, soft_budget: Float?, @@ -75,11 +97,14 @@ module Hanzoai team_blocked: bool, team_id: String?, team_max_budget: Float?, - team_member: Hanzoai::Models::Member?, + team_member: Hanzoai::Member?, + team_member_rpm_limit: Integer?, team_member_spend: Float?, - team_metadata: top?, - team_model_aliases: top?, + team_member_tpm_limit: Integer?, + team_metadata: ::Hash[Symbol, top]?, + team_model_aliases: ::Hash[Symbol, top]?, team_models: ::Array[top], + team_object_permission_id: String?, team_rpm_limit: Integer?, team_spend: Float?, team_tpm_limit: Integer?, @@ -87,35 +112,42 @@ module Hanzoai tpm_limit_per_model: ::Hash[Symbol, Integer]?, updated_at: Time?, updated_by: String?, + user: top, user_email: String?, user_id: String?, - user_role: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::user_role?, + user_max_budget: Float?, + user_role: Hanzoai::Models::user_roles?, user_rpm_limit: Integer?, + user_spend: Float?, user_tpm_limit: Integer? } class UserAPIKeyAuth < Hanzoai::Internal::Type::BaseModel attr_accessor token: String? - attr_reader aliases: top? + attr_reader aliases: ::Hash[Symbol, top]? - def aliases=: (top) -> top + def aliases=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] attr_accessor allowed_cache_controls: ::Array[top]? attr_accessor allowed_model_region: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::allowed_model_region? + attr_accessor allowed_routes: ::Array[top]? + attr_accessor api_key: String? + attr_accessor auto_rotate: bool? + attr_accessor blocked: bool? attr_accessor budget_duration: String? attr_accessor budget_reset_at: Time? - attr_reader config: top? + attr_reader config: ::Hash[Symbol, top]? - def config=: (top) -> top + def config=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] attr_accessor created_at: Time? @@ -135,39 +167,63 @@ module Hanzoai attr_accessor key_name: String? + attr_accessor key_rotation_at: Time? + attr_accessor last_refreshed_at: Float? - attr_accessor llm_budget_table: top? + attr_accessor last_rotation_at: Time? + + attr_accessor litellm_budget_table: ::Hash[Symbol, top]? attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_reader metadata: top? + attr_reader metadata: ::Hash[Symbol, top]? - def metadata=: (top) -> top + def metadata=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] - attr_reader model_max_budget: top? + attr_reader model_max_budget: ::Hash[Symbol, top]? - def model_max_budget=: (top) -> top + def model_max_budget=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] - attr_reader model_spend: top? + attr_reader model_spend: ::Hash[Symbol, top]? - def model_spend=: (top) -> top + def model_spend=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] attr_reader models: ::Array[top]? def models=: (::Array[top]) -> ::Array[top] + attr_accessor object_permission: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission? + + attr_accessor object_permission_id: String? + attr_accessor org_id: String? + attr_accessor organization_max_budget: Float? + + attr_accessor organization_metadata: ::Hash[Symbol, top]? + + attr_accessor organization_rpm_limit: Integer? + + attr_accessor organization_tpm_limit: Integer? + attr_reader parent_otel_span: top? def parent_otel_span=: (top) -> top - attr_reader permissions: top? + attr_reader permissions: ::Hash[Symbol, top]? + + def permissions=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_accessor request_route: String? + + attr_accessor rotation_count: Integer? - def permissions=: (top) -> top + attr_accessor rotation_interval: String? + + attr_accessor router_settings: ::Hash[Symbol, top]? attr_accessor rpm_limit: Integer? @@ -193,18 +249,24 @@ module Hanzoai attr_accessor team_max_budget: Float? - attr_accessor team_member: Hanzoai::Models::Member? + attr_accessor team_member: Hanzoai::Member? + + attr_accessor team_member_rpm_limit: Integer? attr_accessor team_member_spend: Float? - attr_accessor team_metadata: top? + attr_accessor team_member_tpm_limit: Integer? + + attr_accessor team_metadata: ::Hash[Symbol, top]? - attr_accessor team_model_aliases: top? + attr_accessor team_model_aliases: ::Hash[Symbol, top]? attr_reader team_models: ::Array[top]? def team_models=: (::Array[top]) -> ::Array[top] + attr_accessor team_object_permission_id: String? + attr_accessor team_rpm_limit: Integer? attr_accessor team_spend: Float? @@ -219,26 +281,36 @@ module Hanzoai attr_accessor updated_by: String? + attr_reader user: top? + + def user=: (top) -> top + attr_accessor user_email: String? attr_accessor user_id: String? - attr_accessor user_role: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::user_role? + attr_accessor user_max_budget: Float? + + attr_accessor user_role: Hanzoai::Models::user_roles? attr_accessor user_rpm_limit: Integer? + attr_accessor user_spend: Float? + attr_accessor user_tpm_limit: Integer? def initialize: ( ?token: String?, - ?aliases: top, + ?aliases: ::Hash[Symbol, top], ?allowed_cache_controls: ::Array[top]?, ?allowed_model_region: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::allowed_model_region?, + ?allowed_routes: ::Array[top]?, ?api_key: String?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_reset_at: Time?, - ?config: top, + ?config: ::Hash[Symbol, top], ?created_at: Time?, ?created_by: String?, ?end_user_id: String?, @@ -248,17 +320,29 @@ module Hanzoai ?expires: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::expires?, ?key_alias: String?, ?key_name: String?, + ?key_rotation_at: Time?, ?last_refreshed_at: Float?, - ?llm_budget_table: top?, + ?last_rotation_at: Time?, + ?litellm_budget_table: ::Hash[Symbol, top]?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top, - ?model_max_budget: top, - ?model_spend: top, + ?metadata: ::Hash[Symbol, top], + ?model_max_budget: ::Hash[Symbol, top], + ?model_spend: ::Hash[Symbol, top], ?models: ::Array[top], + ?object_permission: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission?, + ?object_permission_id: String?, ?org_id: String?, + ?organization_max_budget: Float?, + ?organization_metadata: ::Hash[Symbol, top]?, + ?organization_rpm_limit: Integer?, + ?organization_tpm_limit: Integer?, ?parent_otel_span: top, - ?permissions: top, + ?permissions: ::Hash[Symbol, top], + ?request_route: String?, + ?rotation_count: Integer?, + ?rotation_interval: String?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, ?rpm_limit_per_model: ::Hash[Symbol, Integer]?, ?soft_budget: Float?, @@ -268,11 +352,14 @@ module Hanzoai ?team_blocked: bool, ?team_id: String?, ?team_max_budget: Float?, - ?team_member: Hanzoai::Models::Member?, + ?team_member: Hanzoai::Member?, + ?team_member_rpm_limit: Integer?, ?team_member_spend: Float?, - ?team_metadata: top?, - ?team_model_aliases: top?, + ?team_member_tpm_limit: Integer?, + ?team_metadata: ::Hash[Symbol, top]?, + ?team_model_aliases: ::Hash[Symbol, top]?, ?team_models: ::Array[top], + ?team_object_permission_id: String?, ?team_rpm_limit: Integer?, ?team_spend: Float?, ?team_tpm_limit: Integer?, @@ -280,14 +367,93 @@ module Hanzoai ?tpm_limit_per_model: ::Hash[Symbol, Integer]?, ?updated_at: Time?, ?updated_by: String?, + ?user: top, ?user_email: String?, ?user_id: String?, - ?user_role: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::user_role?, + ?user_max_budget: Float?, + ?user_role: Hanzoai::Models::user_roles?, ?user_rpm_limit: Integer?, + ?user_spend: Float?, ?user_tpm_limit: Integer? ) -> void - def to_hash: -> Hanzoai::Models::KeyListResponse::Key::user_api_key_auth + def to_hash: -> { + token: String?, + aliases: ::Hash[Symbol, top], + allowed_cache_controls: ::Array[top]?, + allowed_model_region: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::allowed_model_region?, + allowed_routes: ::Array[top]?, + api_key: String?, + auto_rotate: bool?, + blocked: bool?, + budget_duration: String?, + budget_reset_at: Time?, + config: ::Hash[Symbol, top], + created_at: Time?, + created_by: String?, + end_user_id: String?, + end_user_max_budget: Float?, + end_user_rpm_limit: Integer?, + end_user_tpm_limit: Integer?, + expires: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::expires?, + key_alias: String?, + key_name: String?, + key_rotation_at: Time?, + last_refreshed_at: Float?, + last_rotation_at: Time?, + litellm_budget_table: ::Hash[Symbol, top]?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top], + model_max_budget: ::Hash[Symbol, top], + model_spend: ::Hash[Symbol, top], + models: ::Array[top], + object_permission: Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::ObjectPermission?, + object_permission_id: String?, + org_id: String?, + organization_max_budget: Float?, + organization_metadata: ::Hash[Symbol, top]?, + organization_rpm_limit: Integer?, + organization_tpm_limit: Integer?, + parent_otel_span: top, + permissions: ::Hash[Symbol, top], + request_route: String?, + rotation_count: Integer?, + rotation_interval: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + rpm_limit_per_model: ::Hash[Symbol, Integer]?, + soft_budget: Float?, + soft_budget_cooldown: bool, + spend: Float, + team_alias: String?, + team_blocked: bool, + team_id: String?, + team_max_budget: Float?, + team_member: Hanzoai::Member?, + team_member_rpm_limit: Integer?, + team_member_spend: Float?, + team_member_tpm_limit: Integer?, + team_metadata: ::Hash[Symbol, top]?, + team_model_aliases: ::Hash[Symbol, top]?, + team_models: ::Array[top], + team_object_permission_id: String?, + team_rpm_limit: Integer?, + team_spend: Float?, + team_tpm_limit: Integer?, + tpm_limit: Integer?, + tpm_limit_per_model: ::Hash[Symbol, Integer]?, + updated_at: Time?, + updated_by: String?, + user: top, + user_email: String?, + user_id: String?, + user_max_budget: Float?, + user_role: Hanzoai::Models::user_roles?, + user_rpm_limit: Integer?, + user_spend: Float?, + user_tpm_limit: Integer? + } type allowed_model_region = :eu | :us @@ -305,34 +471,358 @@ module Hanzoai module Expires extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::expires] end - type user_role = - :proxy_admin - | :proxy_admin_viewer - | :org_admin - | :internal_user - | :internal_user_viewer - | :team - | :customer + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + end - module UserRole - extend Hanzoai::Internal::Type::Enum + type lite_llm_deleted_verification_token = + { + id: String?, + token: String?, + aliases: ::Hash[Symbol, top], + allowed_cache_controls: ::Array[top]?, + allowed_routes: ::Array[top]?, + auto_rotate: bool?, + blocked: bool?, + budget_duration: String?, + budget_reset_at: Time?, + config: ::Hash[Symbol, top], + created_at: Time?, + created_by: String?, + deleted_at: Time?, + deleted_by: String?, + deleted_by_api_key: String?, + expires: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::expires?, + key_alias: String?, + key_name: String?, + key_rotation_at: Time?, + last_rotation_at: Time?, + litellm_budget_table: ::Hash[Symbol, top]?, + litellm_changed_by: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top], + model_max_budget: ::Hash[Symbol, top], + model_spend: ::Hash[Symbol, top], + models: ::Array[top], + object_permission: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission?, + object_permission_id: String?, + org_id: String?, + permissions: ::Hash[Symbol, top], + rotation_count: Integer?, + rotation_interval: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + soft_budget_cooldown: bool, + spend: Float, + team_id: String?, + tpm_limit: Integer?, + updated_at: Time?, + updated_by: String?, + user_id: String? + } + + class LiteLlmDeletedVerificationToken < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String? + + attr_accessor token: String? + + attr_reader aliases: ::Hash[Symbol, top]? + + def aliases=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_accessor allowed_cache_controls: ::Array[top]? + + attr_accessor allowed_routes: ::Array[top]? + + attr_accessor auto_rotate: bool? + + attr_accessor blocked: bool? + + attr_accessor budget_duration: String? + + attr_accessor budget_reset_at: Time? + + attr_reader config: ::Hash[Symbol, top]? - PROXY_ADMIN: :proxy_admin - PROXY_ADMIN_VIEWER: :proxy_admin_viewer - ORG_ADMIN: :org_admin - INTERNAL_USER: :internal_user - INTERNAL_USER_VIEWER: :internal_user_viewer - TEAM: :team - CUSTOMER: :customer + def config=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_accessor created_at: Time? + + attr_accessor created_by: String? + + attr_accessor deleted_at: Time? + + attr_accessor deleted_by: String? + + attr_accessor deleted_by_api_key: String? + + attr_accessor expires: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::expires? + + attr_accessor key_alias: String? + + attr_accessor key_name: String? + + attr_accessor key_rotation_at: Time? + + attr_accessor last_rotation_at: Time? + + attr_accessor litellm_budget_table: ::Hash[Symbol, top]? + + attr_accessor litellm_changed_by: String? + + attr_accessor max_budget: Float? + + attr_accessor max_parallel_requests: Integer? + + attr_reader metadata: ::Hash[Symbol, top]? + + def metadata=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_reader model_max_budget: ::Hash[Symbol, top]? + + def model_max_budget=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_reader model_spend: ::Hash[Symbol, top]? + + def model_spend=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_reader models: ::Array[top]? + + def models=: (::Array[top]) -> ::Array[top] + + attr_accessor object_permission: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission? + + attr_accessor object_permission_id: String? + + attr_accessor org_id: String? + + attr_reader permissions: ::Hash[Symbol, top]? + + def permissions=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top] + + attr_accessor rotation_count: Integer? + + attr_accessor rotation_interval: String? + + attr_accessor router_settings: ::Hash[Symbol, top]? + + attr_accessor rpm_limit: Integer? + + attr_reader soft_budget_cooldown: bool? + + def soft_budget_cooldown=: (bool) -> bool + + attr_reader spend: Float? + + def spend=: (Float) -> Float + + attr_accessor team_id: String? + + attr_accessor tpm_limit: Integer? + + attr_accessor updated_at: Time? + + attr_accessor updated_by: String? + + attr_accessor user_id: String? + + def initialize: ( + ?id: String?, + ?token: String?, + ?aliases: ::Hash[Symbol, top], + ?allowed_cache_controls: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?auto_rotate: bool?, + ?blocked: bool?, + ?budget_duration: String?, + ?budget_reset_at: Time?, + ?config: ::Hash[Symbol, top], + ?created_at: Time?, + ?created_by: String?, + ?deleted_at: Time?, + ?deleted_by: String?, + ?deleted_by_api_key: String?, + ?expires: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::expires?, + ?key_alias: String?, + ?key_name: String?, + ?key_rotation_at: Time?, + ?last_rotation_at: Time?, + ?litellm_budget_table: ::Hash[Symbol, top]?, + ?litellm_changed_by: String?, + ?max_budget: Float?, + ?max_parallel_requests: Integer?, + ?metadata: ::Hash[Symbol, top], + ?model_max_budget: ::Hash[Symbol, top], + ?model_spend: ::Hash[Symbol, top], + ?models: ::Array[top], + ?object_permission: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission?, + ?object_permission_id: String?, + ?org_id: String?, + ?permissions: ::Hash[Symbol, top], + ?rotation_count: Integer?, + ?rotation_interval: String?, + ?router_settings: ::Hash[Symbol, top]?, + ?rpm_limit: Integer?, + ?soft_budget_cooldown: bool, + ?spend: Float, + ?team_id: String?, + ?tpm_limit: Integer?, + ?updated_at: Time?, + ?updated_by: String?, + ?user_id: String? + ) -> void + + def to_hash: -> { + id: String?, + token: String?, + aliases: ::Hash[Symbol, top], + allowed_cache_controls: ::Array[top]?, + allowed_routes: ::Array[top]?, + auto_rotate: bool?, + blocked: bool?, + budget_duration: String?, + budget_reset_at: Time?, + config: ::Hash[Symbol, top], + created_at: Time?, + created_by: String?, + deleted_at: Time?, + deleted_by: String?, + deleted_by_api_key: String?, + expires: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::expires?, + key_alias: String?, + key_name: String?, + key_rotation_at: Time?, + last_rotation_at: Time?, + litellm_budget_table: ::Hash[Symbol, top]?, + litellm_changed_by: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top], + model_max_budget: ::Hash[Symbol, top], + model_spend: ::Hash[Symbol, top], + models: ::Array[top], + object_permission: Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::ObjectPermission?, + object_permission_id: String?, + org_id: String?, + permissions: ::Hash[Symbol, top], + rotation_count: Integer?, + rotation_interval: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + soft_budget_cooldown: bool, + spend: Float, + team_id: String?, + tpm_limit: Integer?, + updated_at: Time?, + updated_by: String?, + user_id: String? + } + + type expires = String | Time + + module Expires + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::KeyListResponse::Key::LiteLlmDeletedVerificationToken::expires] + end - def self?.values: -> ::Array[Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth::user_role] + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } end end - def self?.variants: -> [String, Hanzoai::Models::KeyListResponse::Key::UserAPIKeyAuth] + def self?.variants: -> ::Array[Hanzoai::Models::KeyListResponse::key] end end end diff --git a/sig/hanzoai/models/key_regenerate_by_key_params.rbs b/sig/hanzoai/models/key_regenerate_by_key_params.rbs index d2c51d6d..49b685e0 100644 --- a/sig/hanzoai/models/key_regenerate_by_key_params.rbs +++ b/sig/hanzoai/models/key_regenerate_by_key_params.rbs @@ -1,22 +1,26 @@ module Hanzoai module Models type key_regenerate_by_key_params = - { llm_changed_by: String } & Hanzoai::Internal::Type::request_parameters + { litellm_changed_by: String } + & Hanzoai::Internal::Type::request_parameters class KeyRegenerateByKeyParams < Hanzoai::Models::Key::RegenerateKeyRequest extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def llm_changed_by: -> String? + def litellm_changed_by: -> String? - def llm_changed_by=: (String _) -> String + def litellm_changed_by=: (String _) -> String def initialize: ( - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_regenerate_by_key_params + def to_hash: -> { + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/key_retrieve_info_params.rbs b/sig/hanzoai/models/key_retrieve_info_params.rbs index c74c1886..411b0221 100644 --- a/sig/hanzoai/models/key_retrieve_info_params.rbs +++ b/sig/hanzoai/models/key_retrieve_info_params.rbs @@ -14,7 +14,7 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_retrieve_info_params + def to_hash: -> { key: String?, request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/key_retrieve_info_response.rbs b/sig/hanzoai/models/key_retrieve_info_response.rbs new file mode 100644 index 00000000..97a58d9e --- /dev/null +++ b/sig/hanzoai/models/key_retrieve_info_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + KeyRetrieveInfoResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/key_unblock_params.rbs b/sig/hanzoai/models/key_unblock_params.rbs index f2fdc6b1..ec11b14c 100644 --- a/sig/hanzoai/models/key_unblock_params.rbs +++ b/sig/hanzoai/models/key_unblock_params.rbs @@ -1,22 +1,26 @@ module Hanzoai module Models type key_unblock_params = - { llm_changed_by: String } & Hanzoai::Internal::Type::request_parameters + { litellm_changed_by: String } + & Hanzoai::Internal::Type::request_parameters class KeyUnblockParams < Hanzoai::Models::BlockKeyRequest extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def llm_changed_by: -> String? + def litellm_changed_by: -> String? - def llm_changed_by=: (String _) -> String + def litellm_changed_by=: (String _) -> String def initialize: ( - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_unblock_params + def to_hash: -> { + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/key_unblock_response.rbs b/sig/hanzoai/models/key_unblock_response.rbs new file mode 100644 index 00000000..474ec0a1 --- /dev/null +++ b/sig/hanzoai/models/key_unblock_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + KeyUnblockResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/key_update_params.rbs b/sig/hanzoai/models/key_update_params.rbs index a5559503..b823f932 100644 --- a/sig/hanzoai/models/key_update_params.rbs +++ b/sig/hanzoai/models/key_update_params.rbs @@ -3,33 +3,43 @@ module Hanzoai type key_update_params = { key: String, - aliases: top?, + aliases: ::Hash[Symbol, top]?, allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex]?, + auto_rotate: bool?, blocked: bool?, budget_duration: String?, budget_id: String?, - config: top?, + config: ::Hash[Symbol, top]?, duration: String?, enforced_params: ::Array[String]?, guardrails: ::Array[String]?, key_alias: String?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, - model_rpm_limit: top?, - model_tpm_limit: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, models: ::Array[top]?, - permissions: top?, + object_permission: Hanzoai::KeyUpdateParams::ObjectPermission?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rotation_interval: String?, + router_settings: Hanzoai::KeyUpdateParams::RouterSettings?, rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::KeyUpdateParams::rpm_limit_type?, spend: Float?, tags: ::Array[String]?, team_id: String?, temp_budget_expiry: Time?, temp_budget_increase: Float?, tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::KeyUpdateParams::tpm_limit_type?, user_id: String?, - llm_changed_by: String + litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters @@ -39,17 +49,25 @@ module Hanzoai attr_accessor key: String - attr_accessor aliases: top? + attr_accessor aliases: ::Hash[Symbol, top]? attr_accessor allowed_cache_controls: ::Array[top]? + attr_accessor allowed_passthrough_routes: ::Array[top]? + + attr_accessor allowed_routes: ::Array[top]? + + attr_accessor allowed_vector_store_indexes: ::Array[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex]? + + attr_accessor auto_rotate: bool? + attr_accessor blocked: bool? attr_accessor budget_duration: String? attr_accessor budget_id: String? - attr_accessor config: top? + attr_accessor config: ::Hash[Symbol, top]? attr_accessor duration: String? @@ -63,20 +81,30 @@ module Hanzoai attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_rpm_limit: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, top]? - attr_accessor model_tpm_limit: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, top]? attr_accessor models: ::Array[top]? - attr_accessor permissions: top? + attr_accessor object_permission: Hanzoai::KeyUpdateParams::ObjectPermission? + + attr_accessor permissions: ::Hash[Symbol, top]? + + attr_accessor prompts: ::Array[String]? + + attr_accessor rotation_interval: String? + + attr_accessor router_settings: Hanzoai::KeyUpdateParams::RouterSettings? attr_accessor rpm_limit: Integer? + attr_accessor rpm_limit_type: Hanzoai::Models::KeyUpdateParams::rpm_limit_type? + attr_accessor spend: Float? attr_accessor tags: ::Array[String]? @@ -89,45 +117,280 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor tpm_limit_type: Hanzoai::Models::KeyUpdateParams::tpm_limit_type? + attr_accessor user_id: String? - attr_reader llm_changed_by: String? + attr_reader litellm_changed_by: String? - def llm_changed_by=: (String) -> String + def litellm_changed_by=: (String) -> String def initialize: ( key: String, - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex]?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?enforced_params: ::Array[String]?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::KeyUpdateParams::ObjectPermission?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?rotation_interval: String?, + ?router_settings: Hanzoai::KeyUpdateParams::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::KeyUpdateParams::rpm_limit_type?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?temp_budget_expiry: Time?, ?temp_budget_increase: Float?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::KeyUpdateParams::tpm_limit_type?, ?user_id: String?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::key_update_params + def to_hash: -> { + key: String, + aliases: ::Hash[Symbol, top]?, + allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex]?, + auto_rotate: bool?, + blocked: bool?, + budget_duration: String?, + budget_id: String?, + config: ::Hash[Symbol, top]?, + duration: String?, + enforced_params: ::Array[String]?, + guardrails: ::Array[String]?, + key_alias: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, + models: ::Array[top]?, + object_permission: Hanzoai::KeyUpdateParams::ObjectPermission?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rotation_interval: String?, + router_settings: Hanzoai::KeyUpdateParams::RouterSettings?, + rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::KeyUpdateParams::rpm_limit_type?, + spend: Float?, + tags: ::Array[String]?, + team_id: String?, + temp_budget_expiry: Time?, + temp_budget_increase: Float?, + tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::KeyUpdateParams::tpm_limit_type?, + user_id: String?, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + + type allowed_vector_store_index = + { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::KeyUpdateParams::AllowedVectorStoreIndex::index_permission] + } + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + attr_accessor index_name: String + + attr_accessor index_permissions: ::Array[Hanzoai::Models::KeyUpdateParams::AllowedVectorStoreIndex::index_permission] + + def initialize: ( + index_name: String, + index_permissions: ::Array[Hanzoai::Models::KeyUpdateParams::AllowedVectorStoreIndex::index_permission] + ) -> void + + def to_hash: -> { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::KeyUpdateParams::AllowedVectorStoreIndex::index_permission] + } + + type index_permission = :read | :write + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ: :read + WRITE: :write + + def self?.values: -> ::Array[Hanzoai::Models::KeyUpdateParams::AllowedVectorStoreIndex::index_permission] + end + end + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type router_settings = + { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyUpdateParams::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + attr_accessor allowed_fails: Integer? + + attr_accessor context_window_fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor cooldown_time: Float? + + attr_accessor fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor max_retries: Integer? + + attr_accessor model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyUpdateParams::RouterSettings::model_group_alias]? + + attr_accessor model_group_retry_policy: ::Hash[Symbol, top]? + + attr_accessor num_retries: Integer? + + attr_accessor retry_after: Float? + + attr_accessor routing_strategy: String? + + attr_accessor routing_strategy_args: ::Hash[Symbol, top]? + + attr_accessor timeout: Float? + + def initialize: ( + ?allowed_fails: Integer?, + ?context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + ?cooldown_time: Float?, + ?fallbacks: ::Array[::Hash[Symbol, top]]?, + ?max_retries: Integer?, + ?model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyUpdateParams::RouterSettings::model_group_alias]?, + ?model_group_retry_policy: ::Hash[Symbol, top]?, + ?num_retries: Integer?, + ?retry_after: Float?, + ?routing_strategy: String?, + ?routing_strategy_args: ::Hash[Symbol, top]?, + ?timeout: Float? + ) -> void + + def to_hash: -> { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::KeyUpdateParams::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + type model_group_alias = String | ::Hash[Symbol, top] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::KeyUpdateParams::RouterSettings::model_group_alias] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + end + + type rpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::KeyUpdateParams::rpm_limit_type] + end + + type tpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::KeyUpdateParams::tpm_limit_type] + end end end end diff --git a/sig/hanzoai/models/key_update_response.rbs b/sig/hanzoai/models/key_update_response.rbs new file mode 100644 index 00000000..9aacf0c9 --- /dev/null +++ b/sig/hanzoai/models/key_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + KeyUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/langfuse_create_params.rbs b/sig/hanzoai/models/langfuse_create_params.rbs index ce44529b..21e02346 100644 --- a/sig/hanzoai/models/langfuse_create_params.rbs +++ b/sig/hanzoai/models/langfuse_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::langfuse_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/langfuse_create_response.rbs b/sig/hanzoai/models/langfuse_create_response.rbs new file mode 100644 index 00000000..61f2fb04 --- /dev/null +++ b/sig/hanzoai/models/langfuse_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + LangfuseCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/langfuse_delete_params.rbs b/sig/hanzoai/models/langfuse_delete_params.rbs index b20db106..f9cf8210 100644 --- a/sig/hanzoai/models/langfuse_delete_params.rbs +++ b/sig/hanzoai/models/langfuse_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::langfuse_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/langfuse_delete_response.rbs b/sig/hanzoai/models/langfuse_delete_response.rbs new file mode 100644 index 00000000..89dbe908 --- /dev/null +++ b/sig/hanzoai/models/langfuse_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + LangfuseDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/langfuse_patch_params.rbs b/sig/hanzoai/models/langfuse_patch_params.rbs index 72b8bdcd..d7fc2e5e 100644 --- a/sig/hanzoai/models/langfuse_patch_params.rbs +++ b/sig/hanzoai/models/langfuse_patch_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::langfuse_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/langfuse_patch_response.rbs b/sig/hanzoai/models/langfuse_patch_response.rbs new file mode 100644 index 00000000..17def868 --- /dev/null +++ b/sig/hanzoai/models/langfuse_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + LangfusePatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/langfuse_retrieve_params.rbs b/sig/hanzoai/models/langfuse_retrieve_params.rbs index f1b6561a..6f32f30b 100644 --- a/sig/hanzoai/models/langfuse_retrieve_params.rbs +++ b/sig/hanzoai/models/langfuse_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::langfuse_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/langfuse_retrieve_response.rbs b/sig/hanzoai/models/langfuse_retrieve_response.rbs new file mode 100644 index 00000000..4797bbf7 --- /dev/null +++ b/sig/hanzoai/models/langfuse_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + LangfuseRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/langfuse_update_params.rbs b/sig/hanzoai/models/langfuse_update_params.rbs index 2e816114..148849ea 100644 --- a/sig/hanzoai/models/langfuse_update_params.rbs +++ b/sig/hanzoai/models/langfuse_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::langfuse_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/langfuse_update_response.rbs b/sig/hanzoai/models/langfuse_update_response.rbs new file mode 100644 index 00000000..66ae80e3 --- /dev/null +++ b/sig/hanzoai/models/langfuse_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + LangfuseUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/lite_llm_end_user_table.rbs b/sig/hanzoai/models/lite_llm_end_user_table.rbs new file mode 100644 index 00000000..9ae47351 --- /dev/null +++ b/sig/hanzoai/models/lite_llm_end_user_table.rbs @@ -0,0 +1,63 @@ +module Hanzoai + module Models + type lite_llm_end_user_table = + { + blocked: bool, + user_id: String, + alias_: String?, + allowed_model_region: Hanzoai::Models::LiteLlmEndUserTable::allowed_model_region?, + default_model: String?, + litellm_budget_table: Hanzoai::BudgetTable?, + spend: Float + } + + class LiteLlmEndUserTable < Hanzoai::Internal::Type::BaseModel + attr_accessor blocked: bool + + attr_accessor user_id: String + + attr_accessor alias_: String? + + attr_accessor allowed_model_region: Hanzoai::Models::LiteLlmEndUserTable::allowed_model_region? + + attr_accessor default_model: String? + + attr_accessor litellm_budget_table: Hanzoai::BudgetTable? + + attr_reader spend: Float? + + def spend=: (Float) -> Float + + def initialize: ( + blocked: bool, + user_id: String, + ?alias_: String?, + ?allowed_model_region: Hanzoai::Models::LiteLlmEndUserTable::allowed_model_region?, + ?default_model: String?, + ?litellm_budget_table: Hanzoai::BudgetTable?, + ?spend: Float + ) -> void + + def to_hash: -> { + blocked: bool, + user_id: String, + alias_: String?, + allowed_model_region: Hanzoai::Models::LiteLlmEndUserTable::allowed_model_region?, + default_model: String?, + litellm_budget_table: Hanzoai::BudgetTable?, + spend: Float + } + + type allowed_model_region = :eu | :us + + module AllowedModelRegion + extend Hanzoai::Internal::Type::Enum + + EU: :eu + US: :us + + def self?.values: -> ::Array[Hanzoai::Models::LiteLlmEndUserTable::allowed_model_region] + end + end + end +end diff --git a/sig/hanzoai/models/member.rbs b/sig/hanzoai/models/member.rbs index 00e241fb..e66bd87a 100644 --- a/sig/hanzoai/models/member.rbs +++ b/sig/hanzoai/models/member.rbs @@ -20,7 +20,11 @@ module Hanzoai ?user_id: String? ) -> void - def to_hash: -> Hanzoai::Models::member + def to_hash: -> { + role: Hanzoai::Models::Member::role, + user_email: String?, + user_id: String? + } type role = :admin | :user diff --git a/sig/hanzoai/models/model/info_list_params.rbs b/sig/hanzoai/models/model/info_list_params.rbs index a64492a2..b9db9eca 100644 --- a/sig/hanzoai/models/model/info_list_params.rbs +++ b/sig/hanzoai/models/model/info_list_params.rbs @@ -2,20 +2,24 @@ module Hanzoai module Models module Model type info_list_params = - { llm_model_id: String? } & Hanzoai::Internal::Type::request_parameters + { litellm_model_id: String? } + & Hanzoai::Internal::Type::request_parameters class InfoListParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor llm_model_id: String? + attr_accessor litellm_model_id: String? def initialize: ( - ?llm_model_id: String?, + ?litellm_model_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Model::info_list_params + def to_hash: -> { + litellm_model_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/model/info_list_response.rbs b/sig/hanzoai/models/model/info_list_response.rbs new file mode 100644 index 00000000..b05a1687 --- /dev/null +++ b/sig/hanzoai/models/model/info_list_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Model + InfoListResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/model/update_deployment.rbs b/sig/hanzoai/models/model/update_deployment.rbs index 50f86d94..5740d12e 100644 --- a/sig/hanzoai/models/model/update_deployment.rbs +++ b/sig/hanzoai/models/model/update_deployment.rbs @@ -3,85 +3,219 @@ module Hanzoai module Model type update_deployment = { - llm_params: Hanzoai::Models::Model::UpdateDeployment::LlmParams?, - model_info: Hanzoai::Models::ModelInfo?, + litellm_params: Hanzoai::Model::UpdateDeployment::LitellmParams?, + model_info: Hanzoai::ModelInfo?, model_name: String? } class UpdateDeployment < Hanzoai::Internal::Type::BaseModel - attr_accessor llm_params: Hanzoai::Models::Model::UpdateDeployment::LlmParams? + attr_accessor litellm_params: Hanzoai::Model::UpdateDeployment::LitellmParams? - attr_accessor model_info: Hanzoai::Models::ModelInfo? + attr_accessor model_info: Hanzoai::ModelInfo? attr_accessor model_name: String? def initialize: ( - ?llm_params: Hanzoai::Models::Model::UpdateDeployment::LlmParams?, - ?model_info: Hanzoai::Models::ModelInfo?, + ?litellm_params: Hanzoai::Model::UpdateDeployment::LitellmParams?, + ?model_info: Hanzoai::ModelInfo?, ?model_name: String? ) -> void - def to_hash: -> Hanzoai::Models::Model::update_deployment + def to_hash: -> { + litellm_params: Hanzoai::Model::UpdateDeployment::LitellmParams?, + model_info: Hanzoai::ModelInfo?, + model_name: String? + } - type llm_params = + type litellm_params = { api_base: String?, api_key: String?, api_version: String?, + auto_router_config: String?, + auto_router_config_path: String?, + auto_router_default_model: String?, + auto_router_embedding_model: String?, aws_access_key_id: String?, + aws_bedrock_runtime_endpoint: String?, aws_region_name: String?, aws_secret_access_key: String?, budget_duration: String?, - configurable_clientside_auth_params: ::Array[Hanzoai::Models::Model::UpdateDeployment::LlmParams::configurable_clientside_auth_param]?, + cache_creation_input_audio_token_cost: Float?, + cache_creation_input_token_cost: Float?, + :cache_creation_input_token_cost_above_1hr => Float?, + :cache_creation_input_token_cost_above_200k_tokens => Float?, + cache_read_input_audio_token_cost: Float?, + cache_read_input_token_cost: Float?, + :cache_read_input_token_cost_above_200k_tokens => Float?, + cache_read_input_token_cost_flex: Float?, + cache_read_input_token_cost_priority: Float?, + citation_cost_per_token: Float?, + configurable_clientside_auth_params: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::configurable_clientside_auth_param]?, custom_llm_provider: String?, + gcs_bucket_name: String?, + input_cost_per_audio_per_second: Float?, + :input_cost_per_audio_per_second_above_128k_tokens => Float?, + input_cost_per_audio_token: Float?, + input_cost_per_character: Float?, + :input_cost_per_character_above_128k_tokens => Float?, + input_cost_per_image: Float?, + :input_cost_per_image_above_128k_tokens => Float?, + input_cost_per_pixel: Float?, + input_cost_per_query: Float?, input_cost_per_second: Float?, input_cost_per_token: Float?, - llm_trace_id: String?, + :input_cost_per_token_above_128k_tokens => Float?, + :input_cost_per_token_above_200k_tokens => Float?, + input_cost_per_token_batches: Float?, + input_cost_per_token_cache_hit: Float?, + input_cost_per_token_flex: Float?, + input_cost_per_token_priority: Float?, + input_cost_per_video_per_second: Float?, + :input_cost_per_video_per_second_above_128k_tokens => Float?, + :input_cost_per_video_per_second_above_15s_interval => Float?, + :input_cost_per_video_per_second_above_8s_interval => Float?, + litellm_credential_name: String?, + litellm_trace_id: String?, max_budget: Float?, max_file_size_mb: Float?, max_retries: Integer?, merge_reasoning_content_in_choices: bool?, + milvus_text_field: String?, + mock_response: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::mock_response?, model: String?, - model_info: top?, + model_info: ::Hash[Symbol, top]?, organization: String?, + output_cost_per_audio_per_second: Float?, + output_cost_per_audio_token: Float?, + output_cost_per_character: Float?, + :output_cost_per_character_above_128k_tokens => Float?, + output_cost_per_image: Float?, + output_cost_per_image_token: Float?, + output_cost_per_pixel: Float?, + output_cost_per_reasoning_token: Float?, output_cost_per_second: Float?, output_cost_per_token: Float?, + :output_cost_per_token_above_128k_tokens => Float?, + :output_cost_per_token_above_200k_tokens => Float?, + output_cost_per_token_batches: Float?, + output_cost_per_token_flex: Float?, + output_cost_per_token_priority: Float?, + output_cost_per_video_per_second: Float?, region_name: String?, rpm: Integer?, - stream_timeout: Hanzoai::Models::Model::UpdateDeployment::LlmParams::stream_timeout?, - timeout: Hanzoai::Models::Model::UpdateDeployment::LlmParams::timeout?, + :s3_bucket_name => String?, + :s3_encryption_key_id => String?, + search_context_cost_per_query: ::Hash[Symbol, top]?, + stream_timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::stream_timeout?, + tiered_pricing: ::Array[::Hash[Symbol, top]]?, + timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::timeout?, tpm: Integer?, use_in_pass_through: bool?, - vertex_credentials: Hanzoai::Models::Model::UpdateDeployment::LlmParams::vertex_credentials?, + use_litellm_proxy: bool?, + vector_store_id: String?, + vertex_credentials: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::vertex_credentials?, vertex_location: String?, vertex_project: String?, watsonx_region_name: String? } - class LlmParams < Hanzoai::Internal::Type::BaseModel + class LitellmParams < Hanzoai::Internal::Type::BaseModel attr_accessor api_base: String? attr_accessor api_key: String? attr_accessor api_version: String? + attr_accessor auto_router_config: String? + + attr_accessor auto_router_config_path: String? + + attr_accessor auto_router_default_model: String? + + attr_accessor auto_router_embedding_model: String? + attr_accessor aws_access_key_id: String? + attr_accessor aws_bedrock_runtime_endpoint: String? + attr_accessor aws_region_name: String? attr_accessor aws_secret_access_key: String? attr_accessor budget_duration: String? - attr_accessor configurable_clientside_auth_params: ::Array[Hanzoai::Models::Model::UpdateDeployment::LlmParams::configurable_clientside_auth_param]? + attr_accessor cache_creation_input_audio_token_cost: Float? + + attr_accessor cache_creation_input_token_cost: Float? + + attr_accessor cache_creation_input_token_cost_above_1hr: Float? + + attr_accessor cache_creation_input_token_cost_above_200k_tokens: Float? + + attr_accessor cache_read_input_audio_token_cost: Float? + + attr_accessor cache_read_input_token_cost: Float? + + attr_accessor cache_read_input_token_cost_above_200k_tokens: Float? + + attr_accessor cache_read_input_token_cost_flex: Float? + + attr_accessor cache_read_input_token_cost_priority: Float? + + attr_accessor citation_cost_per_token: Float? + + attr_accessor configurable_clientside_auth_params: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::configurable_clientside_auth_param]? attr_accessor custom_llm_provider: String? + attr_accessor gcs_bucket_name: String? + + attr_accessor input_cost_per_audio_per_second: Float? + + attr_accessor input_cost_per_audio_per_second_above_128k_tokens: Float? + + attr_accessor input_cost_per_audio_token: Float? + + attr_accessor input_cost_per_character: Float? + + attr_accessor input_cost_per_character_above_128k_tokens: Float? + + attr_accessor input_cost_per_image: Float? + + attr_accessor input_cost_per_image_above_128k_tokens: Float? + + attr_accessor input_cost_per_pixel: Float? + + attr_accessor input_cost_per_query: Float? + attr_accessor input_cost_per_second: Float? attr_accessor input_cost_per_token: Float? - attr_accessor llm_trace_id: String? + attr_accessor input_cost_per_token_above_128k_tokens: Float? + + attr_accessor input_cost_per_token_above_200k_tokens: Float? + + attr_accessor input_cost_per_token_batches: Float? + + attr_accessor input_cost_per_token_cache_hit: Float? + + attr_accessor input_cost_per_token_flex: Float? + + attr_accessor input_cost_per_token_priority: Float? + + attr_accessor input_cost_per_video_per_second: Float? + + attr_accessor input_cost_per_video_per_second_above_128k_tokens: Float? + + attr_accessor input_cost_per_video_per_second_above_15s_interval: Float? + + attr_accessor input_cost_per_video_per_second_above_8s_interval: Float? + + attr_accessor litellm_credential_name: String? + + attr_accessor litellm_trace_id: String? attr_accessor max_budget: Float? @@ -91,29 +225,73 @@ module Hanzoai attr_accessor merge_reasoning_content_in_choices: bool? + attr_accessor milvus_text_field: String? + + attr_accessor mock_response: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::mock_response? + attr_accessor model: String? - attr_accessor model_info: top? + attr_accessor model_info: ::Hash[Symbol, top]? attr_accessor organization: String? + attr_accessor output_cost_per_audio_per_second: Float? + + attr_accessor output_cost_per_audio_token: Float? + + attr_accessor output_cost_per_character: Float? + + attr_accessor output_cost_per_character_above_128k_tokens: Float? + + attr_accessor output_cost_per_image: Float? + + attr_accessor output_cost_per_image_token: Float? + + attr_accessor output_cost_per_pixel: Float? + + attr_accessor output_cost_per_reasoning_token: Float? + attr_accessor output_cost_per_second: Float? attr_accessor output_cost_per_token: Float? + attr_accessor output_cost_per_token_above_128k_tokens: Float? + + attr_accessor output_cost_per_token_above_200k_tokens: Float? + + attr_accessor output_cost_per_token_batches: Float? + + attr_accessor output_cost_per_token_flex: Float? + + attr_accessor output_cost_per_token_priority: Float? + + attr_accessor output_cost_per_video_per_second: Float? + attr_accessor region_name: String? attr_accessor rpm: Integer? - attr_accessor stream_timeout: Hanzoai::Models::Model::UpdateDeployment::LlmParams::stream_timeout? + attr_accessor s3_bucket_name: String? + + attr_accessor s3_encryption_key_id: String? + + attr_accessor search_context_cost_per_query: ::Hash[Symbol, top]? - attr_accessor timeout: Hanzoai::Models::Model::UpdateDeployment::LlmParams::timeout? + attr_accessor stream_timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::stream_timeout? + + attr_accessor tiered_pricing: ::Array[::Hash[Symbol, top]]? + + attr_accessor timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::timeout? attr_accessor tpm: Integer? attr_accessor use_in_pass_through: bool? - attr_accessor vertex_credentials: Hanzoai::Models::Model::UpdateDeployment::LlmParams::vertex_credentials? + attr_accessor use_litellm_proxy: bool? + + attr_accessor vector_store_id: String? + + attr_accessor vertex_credentials: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::vertex_credentials? attr_accessor vertex_location: String? @@ -125,45 +303,756 @@ module Hanzoai ?api_base: String?, ?api_key: String?, ?api_version: String?, + ?auto_router_config: String?, + ?auto_router_config_path: String?, + ?auto_router_default_model: String?, + ?auto_router_embedding_model: String?, ?aws_access_key_id: String?, + ?aws_bedrock_runtime_endpoint: String?, ?aws_region_name: String?, ?aws_secret_access_key: String?, ?budget_duration: String?, - ?configurable_clientside_auth_params: ::Array[Hanzoai::Models::Model::UpdateDeployment::LlmParams::configurable_clientside_auth_param]?, + ?cache_creation_input_audio_token_cost: Float?, + ?cache_creation_input_token_cost: Float?, + ?cache_creation_input_token_cost_above_1hr: Float?, + ?cache_creation_input_token_cost_above_200k_tokens: Float?, + ?cache_read_input_audio_token_cost: Float?, + ?cache_read_input_token_cost: Float?, + ?cache_read_input_token_cost_above_200k_tokens: Float?, + ?cache_read_input_token_cost_flex: Float?, + ?cache_read_input_token_cost_priority: Float?, + ?citation_cost_per_token: Float?, + ?configurable_clientside_auth_params: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::configurable_clientside_auth_param]?, ?custom_llm_provider: String?, + ?gcs_bucket_name: String?, + ?input_cost_per_audio_per_second: Float?, + ?input_cost_per_audio_per_second_above_128k_tokens: Float?, + ?input_cost_per_audio_token: Float?, + ?input_cost_per_character: Float?, + ?input_cost_per_character_above_128k_tokens: Float?, + ?input_cost_per_image: Float?, + ?input_cost_per_image_above_128k_tokens: Float?, + ?input_cost_per_pixel: Float?, + ?input_cost_per_query: Float?, ?input_cost_per_second: Float?, ?input_cost_per_token: Float?, - ?llm_trace_id: String?, + ?input_cost_per_token_above_128k_tokens: Float?, + ?input_cost_per_token_above_200k_tokens: Float?, + ?input_cost_per_token_batches: Float?, + ?input_cost_per_token_cache_hit: Float?, + ?input_cost_per_token_flex: Float?, + ?input_cost_per_token_priority: Float?, + ?input_cost_per_video_per_second: Float?, + ?input_cost_per_video_per_second_above_128k_tokens: Float?, + ?input_cost_per_video_per_second_above_15s_interval: Float?, + ?input_cost_per_video_per_second_above_8s_interval: Float?, + ?litellm_credential_name: String?, + ?litellm_trace_id: String?, ?max_budget: Float?, ?max_file_size_mb: Float?, ?max_retries: Integer?, ?merge_reasoning_content_in_choices: bool?, + ?milvus_text_field: String?, + ?mock_response: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::mock_response?, ?model: String?, - ?model_info: top?, + ?model_info: ::Hash[Symbol, top]?, ?organization: String?, + ?output_cost_per_audio_per_second: Float?, + ?output_cost_per_audio_token: Float?, + ?output_cost_per_character: Float?, + ?output_cost_per_character_above_128k_tokens: Float?, + ?output_cost_per_image: Float?, + ?output_cost_per_image_token: Float?, + ?output_cost_per_pixel: Float?, + ?output_cost_per_reasoning_token: Float?, ?output_cost_per_second: Float?, ?output_cost_per_token: Float?, + ?output_cost_per_token_above_128k_tokens: Float?, + ?output_cost_per_token_above_200k_tokens: Float?, + ?output_cost_per_token_batches: Float?, + ?output_cost_per_token_flex: Float?, + ?output_cost_per_token_priority: Float?, + ?output_cost_per_video_per_second: Float?, ?region_name: String?, ?rpm: Integer?, - ?stream_timeout: Hanzoai::Models::Model::UpdateDeployment::LlmParams::stream_timeout?, - ?timeout: Hanzoai::Models::Model::UpdateDeployment::LlmParams::timeout?, + ?s3_bucket_name: String?, + ?s3_encryption_key_id: String?, + ?search_context_cost_per_query: ::Hash[Symbol, top]?, + ?stream_timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::stream_timeout?, + ?tiered_pricing: ::Array[::Hash[Symbol, top]]?, + ?timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::timeout?, ?tpm: Integer?, ?use_in_pass_through: bool?, - ?vertex_credentials: Hanzoai::Models::Model::UpdateDeployment::LlmParams::vertex_credentials?, + ?use_litellm_proxy: bool?, + ?vector_store_id: String?, + ?vertex_credentials: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::vertex_credentials?, ?vertex_location: String?, ?vertex_project: String?, ?watsonx_region_name: String? ) -> void - def to_hash: -> Hanzoai::Models::Model::UpdateDeployment::llm_params + def to_hash: -> { + api_base: String?, + api_key: String?, + api_version: String?, + auto_router_config: String?, + auto_router_config_path: String?, + auto_router_default_model: String?, + auto_router_embedding_model: String?, + aws_access_key_id: String?, + aws_bedrock_runtime_endpoint: String?, + aws_region_name: String?, + aws_secret_access_key: String?, + budget_duration: String?, + cache_creation_input_audio_token_cost: Float?, + cache_creation_input_token_cost: Float?, + :cache_creation_input_token_cost_above_1hr => Float?, + :cache_creation_input_token_cost_above_200k_tokens => Float?, + cache_read_input_audio_token_cost: Float?, + cache_read_input_token_cost: Float?, + :cache_read_input_token_cost_above_200k_tokens => Float?, + cache_read_input_token_cost_flex: Float?, + cache_read_input_token_cost_priority: Float?, + citation_cost_per_token: Float?, + configurable_clientside_auth_params: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::configurable_clientside_auth_param]?, + custom_llm_provider: String?, + gcs_bucket_name: String?, + input_cost_per_audio_per_second: Float?, + :input_cost_per_audio_per_second_above_128k_tokens => Float?, + input_cost_per_audio_token: Float?, + input_cost_per_character: Float?, + :input_cost_per_character_above_128k_tokens => Float?, + input_cost_per_image: Float?, + :input_cost_per_image_above_128k_tokens => Float?, + input_cost_per_pixel: Float?, + input_cost_per_query: Float?, + input_cost_per_second: Float?, + input_cost_per_token: Float?, + :input_cost_per_token_above_128k_tokens => Float?, + :input_cost_per_token_above_200k_tokens => Float?, + input_cost_per_token_batches: Float?, + input_cost_per_token_cache_hit: Float?, + input_cost_per_token_flex: Float?, + input_cost_per_token_priority: Float?, + input_cost_per_video_per_second: Float?, + :input_cost_per_video_per_second_above_128k_tokens => Float?, + :input_cost_per_video_per_second_above_15s_interval => Float?, + :input_cost_per_video_per_second_above_8s_interval => Float?, + litellm_credential_name: String?, + litellm_trace_id: String?, + max_budget: Float?, + max_file_size_mb: Float?, + max_retries: Integer?, + merge_reasoning_content_in_choices: bool?, + milvus_text_field: String?, + mock_response: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::mock_response?, + model: String?, + model_info: ::Hash[Symbol, top]?, + organization: String?, + output_cost_per_audio_per_second: Float?, + output_cost_per_audio_token: Float?, + output_cost_per_character: Float?, + :output_cost_per_character_above_128k_tokens => Float?, + output_cost_per_image: Float?, + output_cost_per_image_token: Float?, + output_cost_per_pixel: Float?, + output_cost_per_reasoning_token: Float?, + output_cost_per_second: Float?, + output_cost_per_token: Float?, + :output_cost_per_token_above_128k_tokens => Float?, + :output_cost_per_token_above_200k_tokens => Float?, + output_cost_per_token_batches: Float?, + output_cost_per_token_flex: Float?, + output_cost_per_token_priority: Float?, + output_cost_per_video_per_second: Float?, + region_name: String?, + rpm: Integer?, + :s3_bucket_name => String?, + :s3_encryption_key_id => String?, + search_context_cost_per_query: ::Hash[Symbol, top]?, + stream_timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::stream_timeout?, + tiered_pricing: ::Array[::Hash[Symbol, top]]?, + timeout: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::timeout?, + tpm: Integer?, + use_in_pass_through: bool?, + use_litellm_proxy: bool?, + vector_store_id: String?, + vertex_credentials: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::vertex_credentials?, + vertex_location: String?, + vertex_project: String?, + watsonx_region_name: String? + } type configurable_clientside_auth_param = - String | Hanzoai::Models::ConfigurableClientsideParamsCustomAuth + String + | Hanzoai::Model::UpdateDeployment::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput module ConfigurableClientsideAuthParam extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth] + type configurable_clientside_params_custom_auth_input = + { api_base: String } + + class ConfigurableClientsideParamsCustomAuthInput < Hanzoai::Internal::Type::BaseModel + attr_accessor api_base: String + + def initialize: (api_base: String) -> void + + def to_hash: -> { api_base: String } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::configurable_clientside_auth_param] + end + + type mock_response = + String + | Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse + | top + + module MockResponse + extend Hanzoai::Internal::Type::Union + + type model_response = + { + id: String, + choices: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::choice], + created: Integer, + object: String, + model: String?, + system_fingerprint: String? + } + + class ModelResponse < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor choices: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::choice] + + attr_accessor created: Integer + + attr_accessor object: String + + attr_accessor model: String? + + attr_accessor system_fingerprint: String? + + def initialize: ( + id: String, + choices: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::choice], + created: Integer, + object: String, + ?model: String?, + ?system_fingerprint: String? + ) -> void + + def to_hash: -> { + id: String, + choices: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::choice], + created: Integer, + object: String, + model: String?, + system_fingerprint: String? + } + + type choice = + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices + | ::Hash[Symbol, top] + + module Choice + extend Hanzoai::Internal::Type::Union + + type choices = + { + finish_reason: String, + index: Integer, + message: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + logprobs: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class Choices < Hanzoai::Internal::Type::BaseModel + attr_accessor finish_reason: String + + attr_accessor index: Integer + + attr_accessor message: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message + + attr_accessor logprobs: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + finish_reason: String, + index: Integer, + message: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + ?logprobs: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + finish_reason: String, + index: Integer, + message: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + logprobs: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + type message = + { + content: String?, + function_call: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall?, + role: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role, + tool_calls: ::Array[::Hash[Symbol, top]]?, + annotations: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]?, + audio: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio?, + images: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]?, + provider_specific_fields: ::Hash[Symbol, top]?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + } + + class Message < Hanzoai::Internal::Type::BaseModel + attr_accessor content: String? + + attr_accessor function_call: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall? + + attr_accessor role: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role + + attr_accessor tool_calls: ::Array[::Hash[Symbol, top]]? + + attr_accessor annotations: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]? + + attr_accessor audio: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio? + + attr_accessor images: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + attr_accessor reasoning_content: String? + + attr_accessor thinking_blocks: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + + def initialize: ( + content: String?, + function_call: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall?, + role: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role, + tool_calls: ::Array[::Hash[Symbol, top]]?, + ?annotations: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]?, + ?audio: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio?, + ?images: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]?, + ?provider_specific_fields: ::Hash[Symbol, top]?, + ?reasoning_content: String?, + ?thinking_blocks: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + ) -> void + + def to_hash: -> { + content: String?, + function_call: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall?, + role: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role, + tool_calls: ::Array[::Hash[Symbol, top]]?, + annotations: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]?, + audio: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio?, + images: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]?, + provider_specific_fields: ::Hash[Symbol, top]?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + } + + type function_call = { arguments: String, name: String? } + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + attr_accessor arguments: String + + attr_accessor name: String? + + def initialize: ( + arguments: String, + ?name: String? + ) -> void + + def to_hash: -> { arguments: String, name: String? } + end + + type role = :assistant | :user | :system | :tool | :function + + module Role + extend Hanzoai::Internal::Type::Enum + + ASSISTANT: :assistant + USER: :user + SYSTEM: :system + TOOL: :tool + FUNCTION: :function + + def self?.values: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role] + end + + type annotation = + { + type: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_, + url_citation: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + } + + class Annotation < Hanzoai::Internal::Type::BaseModel + attr_reader type: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_? + + def type=: ( + Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_ + ) -> Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_ + + attr_reader url_citation: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation? + + def url_citation=: ( + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + ) -> Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + + def initialize: ( + ?type: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_, + ?url_citation: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + ) -> void + + def to_hash: -> { + type: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_, + url_citation: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + } + + type type_ = :url_citation + + module Type + extend Hanzoai::Internal::Type::Enum + + URL_CITATION: :url_citation + + def self?.values: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_] + end + + type url_citation = + { + end_index: Integer, + start_index: Integer, + title: String, + url: String + } + + class URLCitation < Hanzoai::Internal::Type::BaseModel + attr_reader end_index: Integer? + + def end_index=: (Integer) -> Integer + + attr_reader start_index: Integer? + + def start_index=: (Integer) -> Integer + + attr_reader title: String? + + def title=: (String) -> String + + attr_reader url: String? + + def url=: (String) -> String + + def initialize: ( + ?end_index: Integer, + ?start_index: Integer, + ?title: String, + ?url: String + ) -> void + + def to_hash: -> { + end_index: Integer, + start_index: Integer, + title: String, + url: String + } + end + end + + type audio = + { + id: String, + data: String, + expires_at: Integer, + transcript: String + } + + class Audio < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor data: String + + attr_accessor expires_at: Integer + + attr_accessor transcript: String + + def initialize: ( + id: String, + data: String, + expires_at: Integer, + transcript: String + ) -> void + + def to_hash: -> { + id: String, + data: String, + expires_at: Integer, + transcript: String + } + end + + type image = + { + image_url: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + type: :image_url + } + + class Image < Hanzoai::Internal::Type::BaseModel + attr_accessor image_url: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL + + attr_accessor index: Integer + + attr_accessor type: :image_url + + def initialize: ( + image_url: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + ?type: :image_url + ) -> void + + def to_hash: -> { + image_url: Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + type: :image_url + } + + type image_url = { url: String, detail: String? } + + class ImageURL < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_accessor detail: String? + + def initialize: (url: String, ?detail: String?) -> void + + def to_hash: -> { url: String, detail: String? } + end + end + + type thinking_block = + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock + | Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = + { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_redacted_thinking_block = + { + type: :redacted_thinking, + cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :redacted_thinking + + attr_accessor cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control? + + attr_reader data: String? + + def data=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + ?data: String, + ?type: :redacted_thinking + ) -> void + + def to_hash: -> { + type: :redacted_thinking, + cache_control: Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = + { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block] + end + end + + type logprobs = + Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs + | top + + module Logprobs + extend Hanzoai::Internal::Type::Union + + type choice_logprobs = + { + content: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + } + + class ChoiceLogprobs < Hanzoai::Internal::Type::BaseModel + attr_accessor content: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + + def initialize: ( + ?content: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + ) -> void + + def to_hash: -> { + content: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + } + + type content = + { + token: String, + logprob: Float, + top_logprobs: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob], + bytes: ::Array[Integer]? + } + + class Content < Hanzoai::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor logprob: Float + + attr_accessor top_logprobs: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob] + + attr_accessor bytes: ::Array[Integer]? + + def initialize: ( + token: String, + logprob: Float, + top_logprobs: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob], + ?bytes: ::Array[Integer]? + ) -> void + + def to_hash: -> { + token: String, + logprob: Float, + top_logprobs: ::Array[Hanzoai::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob], + bytes: ::Array[Integer]? + } + + type top_logprob = + { + token: String, + logprob: Float, + bytes: ::Array[Integer]? + } + + class TopLogprob < Hanzoai::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor logprob: Float + + attr_accessor bytes: ::Array[Integer]? + + def initialize: ( + token: String, + logprob: Float, + ?bytes: ::Array[Integer]? + ) -> void + + def to_hash: -> { + token: String, + logprob: Float, + bytes: ::Array[Integer]? + } + end + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs] + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::MockResponse::ModelResponse::choice] + + StreamingChoiceMap: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::mock_response] end type stream_timeout = Float | String @@ -171,7 +1060,7 @@ module Hanzoai module StreamTimeout extend Hanzoai::Internal::Type::Union - def self?.variants: -> [Float, String] + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::stream_timeout] end type timeout = Float | String @@ -179,15 +1068,17 @@ module Hanzoai module Timeout extend Hanzoai::Internal::Type::Union - def self?.variants: -> [Float, String] + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::timeout] end - type vertex_credentials = top | String + type vertex_credentials = String | ::Hash[Symbol, top] module VertexCredentials extend Hanzoai::Internal::Type::Union - def self?.variants: -> [top, String] + def self?.variants: -> ::Array[Hanzoai::Models::Model::UpdateDeployment::LitellmParams::vertex_credentials] + + UnionMember1Map: Hanzoai::Internal::Type::Converter end end end diff --git a/sig/hanzoai/models/model/update_full_params.rbs b/sig/hanzoai/models/model/update_full_params.rbs index b13e3d35..3ccfc8e2 100644 --- a/sig/hanzoai/models/model/update_full_params.rbs +++ b/sig/hanzoai/models/model/update_full_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Model::update_full_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/model/update_full_response.rbs b/sig/hanzoai/models/model/update_full_response.rbs new file mode 100644 index 00000000..41f866c0 --- /dev/null +++ b/sig/hanzoai/models/model/update_full_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Model + UpdateFullResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/model/update_partial_params.rbs b/sig/hanzoai/models/model/update_partial_params.rbs index 92b63ba4..988c02d4 100644 --- a/sig/hanzoai/models/model/update_partial_params.rbs +++ b/sig/hanzoai/models/model/update_partial_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Model::update_partial_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/model/update_partial_response.rbs b/sig/hanzoai/models/model/update_partial_response.rbs new file mode 100644 index 00000000..0b121ee3 --- /dev/null +++ b/sig/hanzoai/models/model/update_partial_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Model + UpdatePartialResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/model_create_params.rbs b/sig/hanzoai/models/model_create_params.rbs index 2843c9ed..8777afee 100644 --- a/sig/hanzoai/models/model_create_params.rbs +++ b/sig/hanzoai/models/model_create_params.rbs @@ -2,8 +2,8 @@ module Hanzoai module Models type model_create_params = { - llm_params: Hanzoai::Models::ModelCreateParams::LlmParams, - model_info: Hanzoai::Models::ModelInfo, + litellm_params: Hanzoai::ModelCreateParams::LitellmParams, + model_info: Hanzoai::ModelInfo, model_name: String } & Hanzoai::Internal::Type::request_parameters @@ -12,57 +12,120 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor llm_params: Hanzoai::Models::ModelCreateParams::LlmParams + attr_accessor litellm_params: Hanzoai::ModelCreateParams::LitellmParams - attr_accessor model_info: Hanzoai::Models::ModelInfo + attr_accessor model_info: Hanzoai::ModelInfo attr_accessor model_name: String def initialize: ( - llm_params: Hanzoai::Models::ModelCreateParams::LlmParams, - model_info: Hanzoai::Models::ModelInfo, + litellm_params: Hanzoai::ModelCreateParams::LitellmParams, + model_info: Hanzoai::ModelInfo, model_name: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::model_create_params + def to_hash: -> { + litellm_params: Hanzoai::ModelCreateParams::LitellmParams, + model_info: Hanzoai::ModelInfo, + model_name: String, + request_options: Hanzoai::RequestOptions + } - type llm_params = + type litellm_params = { model: String, api_base: String?, api_key: String?, api_version: String?, + auto_router_config: String?, + auto_router_config_path: String?, + auto_router_default_model: String?, + auto_router_embedding_model: String?, aws_access_key_id: String?, + aws_bedrock_runtime_endpoint: String?, aws_region_name: String?, aws_secret_access_key: String?, budget_duration: String?, - configurable_clientside_auth_params: ::Array[Hanzoai::Models::ModelCreateParams::LlmParams::configurable_clientside_auth_param]?, + cache_creation_input_audio_token_cost: Float?, + cache_creation_input_token_cost: Float?, + :cache_creation_input_token_cost_above_1hr => Float?, + :cache_creation_input_token_cost_above_200k_tokens => Float?, + cache_read_input_audio_token_cost: Float?, + cache_read_input_token_cost: Float?, + :cache_read_input_token_cost_above_200k_tokens => Float?, + cache_read_input_token_cost_flex: Float?, + cache_read_input_token_cost_priority: Float?, + citation_cost_per_token: Float?, + configurable_clientside_auth_params: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::configurable_clientside_auth_param]?, custom_llm_provider: String?, + gcs_bucket_name: String?, + input_cost_per_audio_per_second: Float?, + :input_cost_per_audio_per_second_above_128k_tokens => Float?, + input_cost_per_audio_token: Float?, + input_cost_per_character: Float?, + :input_cost_per_character_above_128k_tokens => Float?, + input_cost_per_image: Float?, + :input_cost_per_image_above_128k_tokens => Float?, + input_cost_per_pixel: Float?, + input_cost_per_query: Float?, input_cost_per_second: Float?, input_cost_per_token: Float?, - llm_trace_id: String?, + :input_cost_per_token_above_128k_tokens => Float?, + :input_cost_per_token_above_200k_tokens => Float?, + input_cost_per_token_batches: Float?, + input_cost_per_token_cache_hit: Float?, + input_cost_per_token_flex: Float?, + input_cost_per_token_priority: Float?, + input_cost_per_video_per_second: Float?, + :input_cost_per_video_per_second_above_128k_tokens => Float?, + :input_cost_per_video_per_second_above_15s_interval => Float?, + :input_cost_per_video_per_second_above_8s_interval => Float?, + litellm_credential_name: String?, + litellm_trace_id: String?, max_budget: Float?, max_file_size_mb: Float?, max_retries: Integer?, merge_reasoning_content_in_choices: bool?, - model_info: top?, + milvus_text_field: String?, + mock_response: Hanzoai::Models::ModelCreateParams::LitellmParams::mock_response?, + model_info: ::Hash[Symbol, top]?, organization: String?, + output_cost_per_audio_per_second: Float?, + output_cost_per_audio_token: Float?, + output_cost_per_character: Float?, + :output_cost_per_character_above_128k_tokens => Float?, + output_cost_per_image: Float?, + output_cost_per_image_token: Float?, + output_cost_per_pixel: Float?, + output_cost_per_reasoning_token: Float?, output_cost_per_second: Float?, output_cost_per_token: Float?, + :output_cost_per_token_above_128k_tokens => Float?, + :output_cost_per_token_above_200k_tokens => Float?, + output_cost_per_token_batches: Float?, + output_cost_per_token_flex: Float?, + output_cost_per_token_priority: Float?, + output_cost_per_video_per_second: Float?, region_name: String?, rpm: Integer?, - stream_timeout: Hanzoai::Models::ModelCreateParams::LlmParams::stream_timeout?, - timeout: Hanzoai::Models::ModelCreateParams::LlmParams::timeout?, + :s3_bucket_name => String?, + :s3_encryption_key_id => String?, + search_context_cost_per_query: ::Hash[Symbol, top]?, + stream_timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::stream_timeout?, + tiered_pricing: ::Array[::Hash[Symbol, top]]?, + timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::timeout?, tpm: Integer?, use_in_pass_through: bool?, - vertex_credentials: Hanzoai::Models::ModelCreateParams::LlmParams::vertex_credentials?, + use_litellm_proxy: bool?, + vector_store_id: String?, + vertex_credentials: Hanzoai::Models::ModelCreateParams::LitellmParams::vertex_credentials?, vertex_location: String?, vertex_project: String?, watsonx_region_name: String? } - class LlmParams < Hanzoai::Internal::Type::BaseModel + class LitellmParams < Hanzoai::Internal::Type::BaseModel attr_accessor model: String attr_accessor api_base: String? @@ -71,23 +134,95 @@ module Hanzoai attr_accessor api_version: String? + attr_accessor auto_router_config: String? + + attr_accessor auto_router_config_path: String? + + attr_accessor auto_router_default_model: String? + + attr_accessor auto_router_embedding_model: String? + attr_accessor aws_access_key_id: String? + attr_accessor aws_bedrock_runtime_endpoint: String? + attr_accessor aws_region_name: String? attr_accessor aws_secret_access_key: String? attr_accessor budget_duration: String? - attr_accessor configurable_clientside_auth_params: ::Array[Hanzoai::Models::ModelCreateParams::LlmParams::configurable_clientside_auth_param]? + attr_accessor cache_creation_input_audio_token_cost: Float? + + attr_accessor cache_creation_input_token_cost: Float? + + attr_accessor cache_creation_input_token_cost_above_1hr: Float? + + attr_accessor cache_creation_input_token_cost_above_200k_tokens: Float? + + attr_accessor cache_read_input_audio_token_cost: Float? + + attr_accessor cache_read_input_token_cost: Float? + + attr_accessor cache_read_input_token_cost_above_200k_tokens: Float? + + attr_accessor cache_read_input_token_cost_flex: Float? + + attr_accessor cache_read_input_token_cost_priority: Float? + + attr_accessor citation_cost_per_token: Float? + + attr_accessor configurable_clientside_auth_params: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::configurable_clientside_auth_param]? attr_accessor custom_llm_provider: String? + attr_accessor gcs_bucket_name: String? + + attr_accessor input_cost_per_audio_per_second: Float? + + attr_accessor input_cost_per_audio_per_second_above_128k_tokens: Float? + + attr_accessor input_cost_per_audio_token: Float? + + attr_accessor input_cost_per_character: Float? + + attr_accessor input_cost_per_character_above_128k_tokens: Float? + + attr_accessor input_cost_per_image: Float? + + attr_accessor input_cost_per_image_above_128k_tokens: Float? + + attr_accessor input_cost_per_pixel: Float? + + attr_accessor input_cost_per_query: Float? + attr_accessor input_cost_per_second: Float? attr_accessor input_cost_per_token: Float? - attr_accessor llm_trace_id: String? + attr_accessor input_cost_per_token_above_128k_tokens: Float? + + attr_accessor input_cost_per_token_above_200k_tokens: Float? + + attr_accessor input_cost_per_token_batches: Float? + + attr_accessor input_cost_per_token_cache_hit: Float? + + attr_accessor input_cost_per_token_flex: Float? + + attr_accessor input_cost_per_token_priority: Float? + + attr_accessor input_cost_per_video_per_second: Float? + + attr_accessor input_cost_per_video_per_second_above_128k_tokens: Float? + + attr_accessor input_cost_per_video_per_second_above_15s_interval: Float? + + attr_accessor input_cost_per_video_per_second_above_8s_interval: Float? + + attr_accessor litellm_credential_name: String? + + attr_accessor litellm_trace_id: String? attr_accessor max_budget: Float? @@ -97,27 +232,71 @@ module Hanzoai attr_accessor merge_reasoning_content_in_choices: bool? - attr_accessor model_info: top? + attr_accessor milvus_text_field: String? + + attr_accessor mock_response: Hanzoai::Models::ModelCreateParams::LitellmParams::mock_response? + + attr_accessor model_info: ::Hash[Symbol, top]? attr_accessor organization: String? + attr_accessor output_cost_per_audio_per_second: Float? + + attr_accessor output_cost_per_audio_token: Float? + + attr_accessor output_cost_per_character: Float? + + attr_accessor output_cost_per_character_above_128k_tokens: Float? + + attr_accessor output_cost_per_image: Float? + + attr_accessor output_cost_per_image_token: Float? + + attr_accessor output_cost_per_pixel: Float? + + attr_accessor output_cost_per_reasoning_token: Float? + attr_accessor output_cost_per_second: Float? attr_accessor output_cost_per_token: Float? + attr_accessor output_cost_per_token_above_128k_tokens: Float? + + attr_accessor output_cost_per_token_above_200k_tokens: Float? + + attr_accessor output_cost_per_token_batches: Float? + + attr_accessor output_cost_per_token_flex: Float? + + attr_accessor output_cost_per_token_priority: Float? + + attr_accessor output_cost_per_video_per_second: Float? + attr_accessor region_name: String? attr_accessor rpm: Integer? - attr_accessor stream_timeout: Hanzoai::Models::ModelCreateParams::LlmParams::stream_timeout? + attr_accessor s3_bucket_name: String? + + attr_accessor s3_encryption_key_id: String? + + attr_accessor search_context_cost_per_query: ::Hash[Symbol, top]? - attr_accessor timeout: Hanzoai::Models::ModelCreateParams::LlmParams::timeout? + attr_accessor stream_timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::stream_timeout? + + attr_accessor tiered_pricing: ::Array[::Hash[Symbol, top]]? + + attr_accessor timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::timeout? attr_accessor tpm: Integer? attr_accessor use_in_pass_through: bool? - attr_accessor vertex_credentials: Hanzoai::Models::ModelCreateParams::LlmParams::vertex_credentials? + attr_accessor use_litellm_proxy: bool? + + attr_accessor vector_store_id: String? + + attr_accessor vertex_credentials: Hanzoai::Models::ModelCreateParams::LitellmParams::vertex_credentials? attr_accessor vertex_location: String? @@ -130,44 +309,752 @@ module Hanzoai ?api_base: String?, ?api_key: String?, ?api_version: String?, + ?auto_router_config: String?, + ?auto_router_config_path: String?, + ?auto_router_default_model: String?, + ?auto_router_embedding_model: String?, ?aws_access_key_id: String?, + ?aws_bedrock_runtime_endpoint: String?, ?aws_region_name: String?, ?aws_secret_access_key: String?, ?budget_duration: String?, - ?configurable_clientside_auth_params: ::Array[Hanzoai::Models::ModelCreateParams::LlmParams::configurable_clientside_auth_param]?, + ?cache_creation_input_audio_token_cost: Float?, + ?cache_creation_input_token_cost: Float?, + ?cache_creation_input_token_cost_above_1hr: Float?, + ?cache_creation_input_token_cost_above_200k_tokens: Float?, + ?cache_read_input_audio_token_cost: Float?, + ?cache_read_input_token_cost: Float?, + ?cache_read_input_token_cost_above_200k_tokens: Float?, + ?cache_read_input_token_cost_flex: Float?, + ?cache_read_input_token_cost_priority: Float?, + ?citation_cost_per_token: Float?, + ?configurable_clientside_auth_params: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::configurable_clientside_auth_param]?, ?custom_llm_provider: String?, + ?gcs_bucket_name: String?, + ?input_cost_per_audio_per_second: Float?, + ?input_cost_per_audio_per_second_above_128k_tokens: Float?, + ?input_cost_per_audio_token: Float?, + ?input_cost_per_character: Float?, + ?input_cost_per_character_above_128k_tokens: Float?, + ?input_cost_per_image: Float?, + ?input_cost_per_image_above_128k_tokens: Float?, + ?input_cost_per_pixel: Float?, + ?input_cost_per_query: Float?, ?input_cost_per_second: Float?, ?input_cost_per_token: Float?, - ?llm_trace_id: String?, + ?input_cost_per_token_above_128k_tokens: Float?, + ?input_cost_per_token_above_200k_tokens: Float?, + ?input_cost_per_token_batches: Float?, + ?input_cost_per_token_cache_hit: Float?, + ?input_cost_per_token_flex: Float?, + ?input_cost_per_token_priority: Float?, + ?input_cost_per_video_per_second: Float?, + ?input_cost_per_video_per_second_above_128k_tokens: Float?, + ?input_cost_per_video_per_second_above_15s_interval: Float?, + ?input_cost_per_video_per_second_above_8s_interval: Float?, + ?litellm_credential_name: String?, + ?litellm_trace_id: String?, ?max_budget: Float?, ?max_file_size_mb: Float?, ?max_retries: Integer?, ?merge_reasoning_content_in_choices: bool?, - ?model_info: top?, + ?milvus_text_field: String?, + ?mock_response: Hanzoai::Models::ModelCreateParams::LitellmParams::mock_response?, + ?model_info: ::Hash[Symbol, top]?, ?organization: String?, + ?output_cost_per_audio_per_second: Float?, + ?output_cost_per_audio_token: Float?, + ?output_cost_per_character: Float?, + ?output_cost_per_character_above_128k_tokens: Float?, + ?output_cost_per_image: Float?, + ?output_cost_per_image_token: Float?, + ?output_cost_per_pixel: Float?, + ?output_cost_per_reasoning_token: Float?, ?output_cost_per_second: Float?, ?output_cost_per_token: Float?, + ?output_cost_per_token_above_128k_tokens: Float?, + ?output_cost_per_token_above_200k_tokens: Float?, + ?output_cost_per_token_batches: Float?, + ?output_cost_per_token_flex: Float?, + ?output_cost_per_token_priority: Float?, + ?output_cost_per_video_per_second: Float?, ?region_name: String?, ?rpm: Integer?, - ?stream_timeout: Hanzoai::Models::ModelCreateParams::LlmParams::stream_timeout?, - ?timeout: Hanzoai::Models::ModelCreateParams::LlmParams::timeout?, + ?s3_bucket_name: String?, + ?s3_encryption_key_id: String?, + ?search_context_cost_per_query: ::Hash[Symbol, top]?, + ?stream_timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::stream_timeout?, + ?tiered_pricing: ::Array[::Hash[Symbol, top]]?, + ?timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::timeout?, ?tpm: Integer?, ?use_in_pass_through: bool?, - ?vertex_credentials: Hanzoai::Models::ModelCreateParams::LlmParams::vertex_credentials?, + ?use_litellm_proxy: bool?, + ?vector_store_id: String?, + ?vertex_credentials: Hanzoai::Models::ModelCreateParams::LitellmParams::vertex_credentials?, ?vertex_location: String?, ?vertex_project: String?, ?watsonx_region_name: String? ) -> void - def to_hash: -> Hanzoai::Models::ModelCreateParams::llm_params + def to_hash: -> { + model: String, + api_base: String?, + api_key: String?, + api_version: String?, + auto_router_config: String?, + auto_router_config_path: String?, + auto_router_default_model: String?, + auto_router_embedding_model: String?, + aws_access_key_id: String?, + aws_bedrock_runtime_endpoint: String?, + aws_region_name: String?, + aws_secret_access_key: String?, + budget_duration: String?, + cache_creation_input_audio_token_cost: Float?, + cache_creation_input_token_cost: Float?, + :cache_creation_input_token_cost_above_1hr => Float?, + :cache_creation_input_token_cost_above_200k_tokens => Float?, + cache_read_input_audio_token_cost: Float?, + cache_read_input_token_cost: Float?, + :cache_read_input_token_cost_above_200k_tokens => Float?, + cache_read_input_token_cost_flex: Float?, + cache_read_input_token_cost_priority: Float?, + citation_cost_per_token: Float?, + configurable_clientside_auth_params: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::configurable_clientside_auth_param]?, + custom_llm_provider: String?, + gcs_bucket_name: String?, + input_cost_per_audio_per_second: Float?, + :input_cost_per_audio_per_second_above_128k_tokens => Float?, + input_cost_per_audio_token: Float?, + input_cost_per_character: Float?, + :input_cost_per_character_above_128k_tokens => Float?, + input_cost_per_image: Float?, + :input_cost_per_image_above_128k_tokens => Float?, + input_cost_per_pixel: Float?, + input_cost_per_query: Float?, + input_cost_per_second: Float?, + input_cost_per_token: Float?, + :input_cost_per_token_above_128k_tokens => Float?, + :input_cost_per_token_above_200k_tokens => Float?, + input_cost_per_token_batches: Float?, + input_cost_per_token_cache_hit: Float?, + input_cost_per_token_flex: Float?, + input_cost_per_token_priority: Float?, + input_cost_per_video_per_second: Float?, + :input_cost_per_video_per_second_above_128k_tokens => Float?, + :input_cost_per_video_per_second_above_15s_interval => Float?, + :input_cost_per_video_per_second_above_8s_interval => Float?, + litellm_credential_name: String?, + litellm_trace_id: String?, + max_budget: Float?, + max_file_size_mb: Float?, + max_retries: Integer?, + merge_reasoning_content_in_choices: bool?, + milvus_text_field: String?, + mock_response: Hanzoai::Models::ModelCreateParams::LitellmParams::mock_response?, + model_info: ::Hash[Symbol, top]?, + organization: String?, + output_cost_per_audio_per_second: Float?, + output_cost_per_audio_token: Float?, + output_cost_per_character: Float?, + :output_cost_per_character_above_128k_tokens => Float?, + output_cost_per_image: Float?, + output_cost_per_image_token: Float?, + output_cost_per_pixel: Float?, + output_cost_per_reasoning_token: Float?, + output_cost_per_second: Float?, + output_cost_per_token: Float?, + :output_cost_per_token_above_128k_tokens => Float?, + :output_cost_per_token_above_200k_tokens => Float?, + output_cost_per_token_batches: Float?, + output_cost_per_token_flex: Float?, + output_cost_per_token_priority: Float?, + output_cost_per_video_per_second: Float?, + region_name: String?, + rpm: Integer?, + :s3_bucket_name => String?, + :s3_encryption_key_id => String?, + search_context_cost_per_query: ::Hash[Symbol, top]?, + stream_timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::stream_timeout?, + tiered_pricing: ::Array[::Hash[Symbol, top]]?, + timeout: Hanzoai::Models::ModelCreateParams::LitellmParams::timeout?, + tpm: Integer?, + use_in_pass_through: bool?, + use_litellm_proxy: bool?, + vector_store_id: String?, + vertex_credentials: Hanzoai::Models::ModelCreateParams::LitellmParams::vertex_credentials?, + vertex_location: String?, + vertex_project: String?, + watsonx_region_name: String? + } type configurable_clientside_auth_param = - String | Hanzoai::Models::ConfigurableClientsideParamsCustomAuth + String + | Hanzoai::ModelCreateParams::LitellmParams::ConfigurableClientsideAuthParam::ConfigurableClientsideParamsCustomAuthInput module ConfigurableClientsideAuthParam extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Hanzoai::Models::ConfigurableClientsideParamsCustomAuth] + type configurable_clientside_params_custom_auth_input = + { api_base: String } + + class ConfigurableClientsideParamsCustomAuthInput < Hanzoai::Internal::Type::BaseModel + attr_accessor api_base: String + + def initialize: (api_base: String) -> void + + def to_hash: -> { api_base: String } + end + + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::configurable_clientside_auth_param] + end + + type mock_response = + String + | Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse + | top + + module MockResponse + extend Hanzoai::Internal::Type::Union + + type model_response = + { + id: String, + choices: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::choice], + created: Integer, + object: String, + model: String?, + system_fingerprint: String? + } + + class ModelResponse < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor choices: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::choice] + + attr_accessor created: Integer + + attr_accessor object: String + + attr_accessor model: String? + + attr_accessor system_fingerprint: String? + + def initialize: ( + id: String, + choices: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::choice], + created: Integer, + object: String, + ?model: String?, + ?system_fingerprint: String? + ) -> void + + def to_hash: -> { + id: String, + choices: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::choice], + created: Integer, + object: String, + model: String?, + system_fingerprint: String? + } + + type choice = + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices + | ::Hash[Symbol, top] + + module Choice + extend Hanzoai::Internal::Type::Union + + type choices = + { + finish_reason: String, + index: Integer, + message: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + logprobs: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class Choices < Hanzoai::Internal::Type::BaseModel + attr_accessor finish_reason: String + + attr_accessor index: Integer + + attr_accessor message: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message + + attr_accessor logprobs: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + finish_reason: String, + index: Integer, + message: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + ?logprobs: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + finish_reason: String, + index: Integer, + message: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message, + logprobs: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + type message = + { + content: String?, + function_call: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall?, + role: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role, + tool_calls: ::Array[::Hash[Symbol, top]]?, + annotations: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]?, + audio: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio?, + images: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]?, + provider_specific_fields: ::Hash[Symbol, top]?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + } + + class Message < Hanzoai::Internal::Type::BaseModel + attr_accessor content: String? + + attr_accessor function_call: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall? + + attr_accessor role: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role + + attr_accessor tool_calls: ::Array[::Hash[Symbol, top]]? + + attr_accessor annotations: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]? + + attr_accessor audio: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio? + + attr_accessor images: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + attr_accessor reasoning_content: String? + + attr_accessor thinking_blocks: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + + def initialize: ( + content: String?, + function_call: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall?, + role: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role, + tool_calls: ::Array[::Hash[Symbol, top]]?, + ?annotations: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]?, + ?audio: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio?, + ?images: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]?, + ?provider_specific_fields: ::Hash[Symbol, top]?, + ?reasoning_content: String?, + ?thinking_blocks: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + ) -> void + + def to_hash: -> { + content: String?, + function_call: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::FunctionCall?, + role: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role, + tool_calls: ::Array[::Hash[Symbol, top]]?, + annotations: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation]?, + audio: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Audio?, + images: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image]?, + provider_specific_fields: ::Hash[Symbol, top]?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block]? + } + + type function_call = { arguments: String, name: String? } + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + attr_accessor arguments: String + + attr_accessor name: String? + + def initialize: (arguments: String, ?name: String?) -> void + + def to_hash: -> { arguments: String, name: String? } + end + + type role = :assistant | :user | :system | :tool | :function + + module Role + extend Hanzoai::Internal::Type::Enum + + ASSISTANT: :assistant + USER: :user + SYSTEM: :system + TOOL: :tool + FUNCTION: :function + + def self?.values: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::role] + end + + type annotation = + { + type: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_, + url_citation: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + } + + class Annotation < Hanzoai::Internal::Type::BaseModel + attr_reader type: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_? + + def type=: ( + Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_ + ) -> Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_ + + attr_reader url_citation: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation? + + def url_citation=: ( + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + ) -> Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + + def initialize: ( + ?type: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_, + ?url_citation: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + ) -> void + + def to_hash: -> { + type: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_, + url_citation: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::URLCitation + } + + type type_ = :url_citation + + module Type + extend Hanzoai::Internal::Type::Enum + + URL_CITATION: :url_citation + + def self?.values: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Annotation::type_] + end + + type url_citation = + { + end_index: Integer, + start_index: Integer, + title: String, + url: String + } + + class URLCitation < Hanzoai::Internal::Type::BaseModel + attr_reader end_index: Integer? + + def end_index=: (Integer) -> Integer + + attr_reader start_index: Integer? + + def start_index=: (Integer) -> Integer + + attr_reader title: String? + + def title=: (String) -> String + + attr_reader url: String? + + def url=: (String) -> String + + def initialize: ( + ?end_index: Integer, + ?start_index: Integer, + ?title: String, + ?url: String + ) -> void + + def to_hash: -> { + end_index: Integer, + start_index: Integer, + title: String, + url: String + } + end + end + + type audio = + { + id: String, + data: String, + expires_at: Integer, + transcript: String + } + + class Audio < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor data: String + + attr_accessor expires_at: Integer + + attr_accessor transcript: String + + def initialize: ( + id: String, + data: String, + expires_at: Integer, + transcript: String + ) -> void + + def to_hash: -> { + id: String, + data: String, + expires_at: Integer, + transcript: String + } + end + + type image = + { + image_url: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + type: :image_url + } + + class Image < Hanzoai::Internal::Type::BaseModel + attr_accessor image_url: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL + + attr_accessor index: Integer + + attr_accessor type: :image_url + + def initialize: ( + image_url: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + ?type: :image_url + ) -> void + + def to_hash: -> { + image_url: Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::Image::ImageURL, + index: Integer, + type: :image_url + } + + type image_url = { url: String, detail: String? } + + class ImageURL < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_accessor detail: String? + + def initialize: (url: String, ?detail: String?) -> void + + def to_hash: -> { url: String, detail: String? } + end + end + + type thinking_block = + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock + | Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = + { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_redacted_thinking_block = + { + type: :redacted_thinking, + cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :redacted_thinking + + attr_accessor cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control? + + attr_reader data: String? + + def data=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + ?data: String, + ?type: :redacted_thinking + ) -> void + + def to_hash: -> { + type: :redacted_thinking, + cache_control: Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = + { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Message::thinking_block] + end + end + + type logprobs = + Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs + | top + + module Logprobs + extend Hanzoai::Internal::Type::Union + + type choice_logprobs = + { + content: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + } + + class ChoiceLogprobs < Hanzoai::Internal::Type::BaseModel + attr_accessor content: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + + def initialize: ( + ?content: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + ) -> void + + def to_hash: -> { + content: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content]? + } + + type content = + { + token: String, + logprob: Float, + top_logprobs: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob], + bytes: ::Array[Integer]? + } + + class Content < Hanzoai::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor logprob: Float + + attr_accessor top_logprobs: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob] + + attr_accessor bytes: ::Array[Integer]? + + def initialize: ( + token: String, + logprob: Float, + top_logprobs: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob], + ?bytes: ::Array[Integer]? + ) -> void + + def to_hash: -> { + token: String, + logprob: Float, + top_logprobs: ::Array[Hanzoai::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::Logprobs::ChoiceLogprobs::Content::TopLogprob], + bytes: ::Array[Integer]? + } + + type top_logprob = + { + token: String, + logprob: Float, + bytes: ::Array[Integer]? + } + + class TopLogprob < Hanzoai::Internal::Type::BaseModel + attr_accessor token: String + + attr_accessor logprob: Float + + attr_accessor bytes: ::Array[Integer]? + + def initialize: ( + token: String, + logprob: Float, + ?bytes: ::Array[Integer]? + ) -> void + + def to_hash: -> { + token: String, + logprob: Float, + bytes: ::Array[Integer]? + } + end + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::Choice::Choices::logprobs] + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::MockResponse::ModelResponse::choice] + + StreamingChoiceMap: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::mock_response] end type stream_timeout = Float | String @@ -175,7 +1062,7 @@ module Hanzoai module StreamTimeout extend Hanzoai::Internal::Type::Union - def self?.variants: -> [Float, String] + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::stream_timeout] end type timeout = Float | String @@ -183,15 +1070,17 @@ module Hanzoai module Timeout extend Hanzoai::Internal::Type::Union - def self?.variants: -> [Float, String] + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::timeout] end - type vertex_credentials = top | String + type vertex_credentials = String | ::Hash[Symbol, top] module VertexCredentials extend Hanzoai::Internal::Type::Union - def self?.variants: -> [top, String] + def self?.variants: -> ::Array[Hanzoai::Models::ModelCreateParams::LitellmParams::vertex_credentials] + + UnionMember1Map: Hanzoai::Internal::Type::Converter end end end diff --git a/sig/hanzoai/models/model_create_response.rbs b/sig/hanzoai/models/model_create_response.rbs new file mode 100644 index 00000000..2b10c2b9 --- /dev/null +++ b/sig/hanzoai/models/model_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ModelCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/model_delete_params.rbs b/sig/hanzoai/models/model_delete_params.rbs index 35be25e9..fbbff5a4 100644 --- a/sig/hanzoai/models/model_delete_params.rbs +++ b/sig/hanzoai/models/model_delete_params.rbs @@ -14,7 +14,7 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::model_delete_params + def to_hash: -> { id: String, request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/model_delete_response.rbs b/sig/hanzoai/models/model_delete_response.rbs new file mode 100644 index 00000000..9b724bfd --- /dev/null +++ b/sig/hanzoai/models/model_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ModelDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/model_group_retrieve_info_params.rbs b/sig/hanzoai/models/model_group_retrieve_info_params.rbs index 6db4e3ae..2b24ed55 100644 --- a/sig/hanzoai/models/model_group_retrieve_info_params.rbs +++ b/sig/hanzoai/models/model_group_retrieve_info_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::model_group_retrieve_info_params + def to_hash: -> { + model_group: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/model_group_retrieve_info_response.rbs b/sig/hanzoai/models/model_group_retrieve_info_response.rbs new file mode 100644 index 00000000..f85fc248 --- /dev/null +++ b/sig/hanzoai/models/model_group_retrieve_info_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ModelGroupRetrieveInfoResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/model_info.rbs b/sig/hanzoai/models/model_info.rbs index 2bf8613a..1018d463 100644 --- a/sig/hanzoai/models/model_info.rbs +++ b/sig/hanzoai/models/model_info.rbs @@ -50,7 +50,18 @@ module Hanzoai ?updated_by: String? ) -> void - def to_hash: -> Hanzoai::Models::model_info + def to_hash: -> { + id: String?, + base_model: String?, + created_at: Time?, + created_by: String?, + db_model: bool, + team_id: String?, + team_public_model_name: String?, + tier: Hanzoai::Models::ModelInfo::tier?, + updated_at: Time?, + updated_by: String? + } type tier = :free | :paid diff --git a/sig/hanzoai/models/model_list_params.rbs b/sig/hanzoai/models/model_list_params.rbs index 999d2b8b..ecde424b 100644 --- a/sig/hanzoai/models/model_list_params.rbs +++ b/sig/hanzoai/models/model_list_params.rbs @@ -1,24 +1,51 @@ module Hanzoai module Models type model_list_params = - { return_wildcard_routes: bool?, team_id: String? } + { + fallback_type: String?, + include_metadata: bool?, + include_model_access_groups: bool?, + only_model_access_groups: bool?, + return_wildcard_routes: bool?, + team_id: String? + } & Hanzoai::Internal::Type::request_parameters class ModelListParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters + attr_accessor fallback_type: String? + + attr_accessor include_metadata: bool? + + attr_accessor include_model_access_groups: bool? + + attr_accessor only_model_access_groups: bool? + attr_accessor return_wildcard_routes: bool? attr_accessor team_id: String? def initialize: ( + ?fallback_type: String?, + ?include_metadata: bool?, + ?include_model_access_groups: bool?, + ?only_model_access_groups: bool?, ?return_wildcard_routes: bool?, ?team_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::model_list_params + def to_hash: -> { + fallback_type: String?, + include_metadata: bool?, + include_model_access_groups: bool?, + only_model_access_groups: bool?, + return_wildcard_routes: bool?, + team_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/model_list_response.rbs b/sig/hanzoai/models/model_list_response.rbs new file mode 100644 index 00000000..3a65e35a --- /dev/null +++ b/sig/hanzoai/models/model_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ModelListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/moderation_create_params.rbs b/sig/hanzoai/models/moderation_create_params.rbs index 4178c8c5..81224918 100644 --- a/sig/hanzoai/models/moderation_create_params.rbs +++ b/sig/hanzoai/models/moderation_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::moderation_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/moderation_create_response.rbs b/sig/hanzoai/models/moderation_create_response.rbs new file mode 100644 index 00000000..f9241c8d --- /dev/null +++ b/sig/hanzoai/models/moderation_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ModerationCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/openai/deployment_complete_params.rbs b/sig/hanzoai/models/openai/deployment_complete_params.rbs index d34f8dbf..e82c3ccf 100644 --- a/sig/hanzoai/models/openai/deployment_complete_params.rbs +++ b/sig/hanzoai/models/openai/deployment_complete_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::OpenAI::deployment_complete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/openai/deployment_complete_response.rbs b/sig/hanzoai/models/openai/deployment_complete_response.rbs new file mode 100644 index 00000000..d1f6f613 --- /dev/null +++ b/sig/hanzoai/models/openai/deployment_complete_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module OpenAI + DeploymentCompleteResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/openai/deployment_embed_params.rbs b/sig/hanzoai/models/openai/deployment_embed_params.rbs index a0349015..fa50c05a 100644 --- a/sig/hanzoai/models/openai/deployment_embed_params.rbs +++ b/sig/hanzoai/models/openai/deployment_embed_params.rbs @@ -2,15 +2,102 @@ module Hanzoai module Models module OpenAI type deployment_embed_params = - { } & Hanzoai::Internal::Type::request_parameters + { + body_model: String, + api_base: String?, + api_key: String?, + api_type: String?, + api_version: String?, + caching: bool, + custom_llm_provider: Hanzoai::Models::OpenAI::DeploymentEmbedParams::custom_llm_provider?, + input: ::Array[String], + litellm_call_id: String?, + litellm_logging_obj: ::Hash[Symbol, top]?, + logger_fn: String?, + timeout: Integer, + user: String? + } + & Hanzoai::Internal::Type::request_parameters class DeploymentEmbedParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def initialize: (?request_options: Hanzoai::request_opts) -> void + attr_accessor body_model: String - def to_hash: -> Hanzoai::Models::OpenAI::deployment_embed_params + attr_accessor api_base: String? + + attr_accessor api_key: String? + + attr_accessor api_type: String? + + attr_accessor api_version: String? + + attr_reader caching: bool? + + def caching=: (bool) -> bool + + attr_accessor custom_llm_provider: Hanzoai::Models::OpenAI::DeploymentEmbedParams::custom_llm_provider? + + attr_reader input: ::Array[String]? + + def input=: (::Array[String]) -> ::Array[String] + + attr_accessor litellm_call_id: String? + + attr_accessor litellm_logging_obj: ::Hash[Symbol, top]? + + attr_accessor logger_fn: String? + + attr_reader timeout: Integer? + + def timeout=: (Integer) -> Integer + + attr_accessor user: String? + + def initialize: ( + body_model: String, + ?api_base: String?, + ?api_key: String?, + ?api_type: String?, + ?api_version: String?, + ?caching: bool, + ?custom_llm_provider: Hanzoai::Models::OpenAI::DeploymentEmbedParams::custom_llm_provider?, + ?input: ::Array[String], + ?litellm_call_id: String?, + ?litellm_logging_obj: ::Hash[Symbol, top]?, + ?logger_fn: String?, + ?timeout: Integer, + ?user: String?, + ?request_options: Hanzoai::request_opts + ) -> void + + def to_hash: -> { + body_model: String, + api_base: String?, + api_key: String?, + api_type: String?, + api_version: String?, + caching: bool, + custom_llm_provider: Hanzoai::Models::OpenAI::DeploymentEmbedParams::custom_llm_provider?, + input: ::Array[String], + litellm_call_id: String?, + litellm_logging_obj: ::Hash[Symbol, top]?, + logger_fn: String?, + timeout: Integer, + user: String?, + request_options: Hanzoai::RequestOptions + } + + type custom_llm_provider = String | ::Hash[Symbol, top] + + module CustomLlmProvider + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::DeploymentEmbedParams::custom_llm_provider] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end end end end diff --git a/sig/hanzoai/models/openai/deployment_embed_response.rbs b/sig/hanzoai/models/openai/deployment_embed_response.rbs new file mode 100644 index 00000000..31d98455 --- /dev/null +++ b/sig/hanzoai/models/openai/deployment_embed_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module OpenAI + DeploymentEmbedResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/openai/deployments/chat_complete_params.rbs b/sig/hanzoai/models/openai/deployments/chat_complete_params.rbs index 41329053..8e22650c 100644 --- a/sig/hanzoai/models/openai/deployments/chat_complete_params.rbs +++ b/sig/hanzoai/models/openai/deployments/chat_complete_params.rbs @@ -3,15 +3,1283 @@ module Hanzoai module OpenAI module Deployments type chat_complete_params = - { } & Hanzoai::Internal::Type::request_parameters + { + messages: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::message], + body_model: String, + caching: bool?, + context_window_fallback_dict: ::Hash[Symbol, String]?, + fallbacks: ::Array[String]?, + frequency_penalty: Float?, + function_call: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::function_call?, + functions: ::Array[::Hash[Symbol, top]]?, + guardrails: ::Array[String]?, + logit_bias: ::Hash[Symbol, Float]?, + logprobs: bool?, + max_tokens: Integer?, + metadata: ::Hash[Symbol, top]?, + n: Integer?, + num_retries: Integer?, + parallel_tool_calls: bool?, + presence_penalty: Float?, + response_format: ::Hash[Symbol, top]?, + seed: Integer?, + service_tier: String?, + stop: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::stop?, + stream: bool?, + stream_options: ::Hash[Symbol, top]?, + temperature: Float?, + tool_choice: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::tool_choice?, + tools: ::Array[::Hash[Symbol, top]]?, + top_logprobs: Integer?, + top_p: Float?, + user: String? + } + & Hanzoai::Internal::Type::request_parameters class ChatCompleteParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def initialize: (?request_options: Hanzoai::request_opts) -> void + attr_accessor messages: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::message] - def to_hash: -> Hanzoai::Models::OpenAI::Deployments::chat_complete_params + attr_accessor body_model: String + + attr_accessor caching: bool? + + attr_accessor context_window_fallback_dict: ::Hash[Symbol, String]? + + attr_accessor fallbacks: ::Array[String]? + + attr_accessor frequency_penalty: Float? + + attr_accessor function_call: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::function_call? + + attr_accessor functions: ::Array[::Hash[Symbol, top]]? + + attr_accessor guardrails: ::Array[String]? + + attr_accessor logit_bias: ::Hash[Symbol, Float]? + + attr_accessor logprobs: bool? + + attr_accessor max_tokens: Integer? + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor n: Integer? + + attr_accessor num_retries: Integer? + + attr_accessor parallel_tool_calls: bool? + + attr_accessor presence_penalty: Float? + + attr_accessor response_format: ::Hash[Symbol, top]? + + attr_accessor seed: Integer? + + attr_accessor service_tier: String? + + attr_accessor stop: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::stop? + + attr_accessor stream: bool? + + attr_accessor stream_options: ::Hash[Symbol, top]? + + attr_accessor temperature: Float? + + attr_accessor tool_choice: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::tool_choice? + + attr_accessor tools: ::Array[::Hash[Symbol, top]]? + + attr_accessor top_logprobs: Integer? + + attr_accessor top_p: Float? + + attr_accessor user: String? + + def initialize: ( + messages: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::message], + body_model: String, + ?caching: bool?, + ?context_window_fallback_dict: ::Hash[Symbol, String]?, + ?fallbacks: ::Array[String]?, + ?frequency_penalty: Float?, + ?function_call: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::function_call?, + ?functions: ::Array[::Hash[Symbol, top]]?, + ?guardrails: ::Array[String]?, + ?logit_bias: ::Hash[Symbol, Float]?, + ?logprobs: bool?, + ?max_tokens: Integer?, + ?metadata: ::Hash[Symbol, top]?, + ?n: Integer?, + ?num_retries: Integer?, + ?parallel_tool_calls: bool?, + ?presence_penalty: Float?, + ?response_format: ::Hash[Symbol, top]?, + ?seed: Integer?, + ?service_tier: String?, + ?stop: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::stop?, + ?stream: bool?, + ?stream_options: ::Hash[Symbol, top]?, + ?temperature: Float?, + ?tool_choice: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::tool_choice?, + ?tools: ::Array[::Hash[Symbol, top]]?, + ?top_logprobs: Integer?, + ?top_p: Float?, + ?user: String?, + ?request_options: Hanzoai::request_opts + ) -> void + + def to_hash: -> { + messages: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::message], + body_model: String, + caching: bool?, + context_window_fallback_dict: ::Hash[Symbol, String]?, + fallbacks: ::Array[String]?, + frequency_penalty: Float?, + function_call: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::function_call?, + functions: ::Array[::Hash[Symbol, top]]?, + guardrails: ::Array[String]?, + logit_bias: ::Hash[Symbol, Float]?, + logprobs: bool?, + max_tokens: Integer?, + metadata: ::Hash[Symbol, top]?, + n: Integer?, + num_retries: Integer?, + parallel_tool_calls: bool?, + presence_penalty: Float?, + response_format: ::Hash[Symbol, top]?, + seed: Integer?, + service_tier: String?, + stop: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::stop?, + stream: bool?, + stream_options: ::Hash[Symbol, top]?, + temperature: Float?, + tool_choice: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::tool_choice?, + tools: ::Array[::Hash[Symbol, top]]?, + top_logprobs: Integer?, + top_p: Float?, + user: String?, + request_options: Hanzoai::RequestOptions + } + + type message = + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage + + module Message + extend Hanzoai::Internal::Type::Union + + type chat_completion_user_message = + { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::content, + role: :user, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + } + + class ChatCompletionUserMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::content + + attr_accessor role: :user + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + + def initialize: ( + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::content, + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl, + ?role: :user + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::content, + role: :user, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::CacheControl + } + + type content = + String + | ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::union_member1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + type chat_completion_text_object = + { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_image_object = + { + image_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + type: :image_url + } + + class ChatCompletionImageObject < Hanzoai::Internal::Type::BaseModel + attr_accessor image_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url + + attr_accessor type: :image_url + + def initialize: ( + image_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + ?type: :image_url + ) -> void + + def to_hash: -> { + image_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url, + type: :image_url + } + + type image_url = + String + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::ImageURL::ChatCompletionImageURLObject + + module ImageURL + extend Hanzoai::Internal::Type::Union + + type chat_completion_image_url_object = + { url: String, detail: String, format_: String } + + class ChatCompletionImageURLObject < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_reader detail: String? + + def detail=: (String) -> String + + attr_reader format_: String? + + def format_=: (String) -> String + + def initialize: ( + url: String, + ?detail: String, + ?format_: String + ) -> void + + def to_hash: -> { + url: String, + detail: String, + format_: String + } + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionImageObject::image_url] + end + end + + type chat_completion_audio_object = + { + input_audio: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: :input_audio + } + + class ChatCompletionAudioObject < Hanzoai::Internal::Type::BaseModel + attr_accessor input_audio: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio + + attr_accessor type: :input_audio + + def initialize: ( + input_audio: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + ?type: :input_audio + ) -> void + + def to_hash: -> { + input_audio: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio, + type: :input_audio + } + + type input_audio = + { + data: String, + format_: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + } + + class InputAudio < Hanzoai::Internal::Type::BaseModel + attr_accessor data: String + + attr_accessor format_: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + + def initialize: ( + data: String, + format_: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + ) -> void + + def to_hash: -> { + data: String, + format_: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_ + } + + type format_ = :wav | :mp3 + + module Format + extend Hanzoai::Internal::Type::Enum + + WAV: :wav + MP3: :mp3 + + def self?.values: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionAudioObject::InputAudio::format_] + end + end + end + + type chat_completion_document_object = + { + citations: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: :document + } + + class ChatCompletionDocumentObject < Hanzoai::Internal::Type::BaseModel + attr_accessor citations: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations? + + attr_accessor context: String + + attr_accessor source: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source + + attr_accessor title: String + + attr_accessor type: :document + + def initialize: ( + citations: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + ?type: :document + ) -> void + + def to_hash: -> { + citations: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Citations?, + context: String, + source: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionDocumentObject::Source, + title: String, + type: :document + } + + type citations = { enabled: bool } + + class Citations < Hanzoai::Internal::Type::BaseModel + attr_accessor enabled: bool + + def initialize: (enabled: bool) -> void + + def to_hash: -> { enabled: bool } + end + + type source = + { data: String, media_type: String, type: :text } + + class Source < Hanzoai::Internal::Type::BaseModel + attr_accessor data: String + + attr_accessor media_type: String + + attr_accessor type: :text + + def initialize: ( + data: String, + media_type: String, + ?type: :text + ) -> void + + def to_hash: -> { + data: String, + media_type: String, + type: :text + } + end + end + + type chat_completion_video_object = + { + type: :video_url, + video_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + } + + class ChatCompletionVideoObject < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :video_url + + attr_accessor video_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + + def initialize: ( + video_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url, + ?type: :video_url + ) -> void + + def to_hash: -> { + type: :video_url, + video_url: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url + } + + type video_url = + String + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::VideoURL::ChatCompletionVideoURLObject + + module VideoURL + extend Hanzoai::Internal::Type::Union + + type chat_completion_video_url_object = + { url: String, detail: String } + + class ChatCompletionVideoURLObject < Hanzoai::Internal::Type::BaseModel + attr_accessor url: String + + attr_reader detail: String? + + def detail=: (String) -> String + + def initialize: (url: String, ?detail: String) -> void + + def to_hash: -> { url: String, detail: String } + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionVideoObject::video_url] + end + end + + type chat_completion_file_object = + { + file: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: :file + } + + class ChatCompletionFileObject < Hanzoai::Internal::Type::BaseModel + attr_accessor file: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File + + attr_accessor type: :file + + def initialize: ( + file: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + ?type: :file + ) -> void + + def to_hash: -> { + file: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::UnionMember1::ChatCompletionFileObject::File, + type: :file + } + + type file = + { + file_data: String, + file_id: String, + filename: String, + format_: String + } + + class File < Hanzoai::Internal::Type::BaseModel + attr_reader file_data: String? + + def file_data=: (String) -> String + + attr_reader file_id: String? + + def file_id=: (String) -> String + + attr_reader filename: String? + + def filename=: (String) -> String + + attr_reader format_: String? + + def format_=: (String) -> String + + def initialize: ( + ?file_data: String, + ?file_id: String, + ?filename: String, + ?format_: String + ) -> void + + def to_hash: -> { + file_data: String, + file_id: String, + filename: String, + format_: String + } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::Content::union_member1] + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionUserMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_assistant_message = + { + role: :assistant, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content?, + function_call: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + name: String?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + tool_calls: ::Array[Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]? + } + + class ChatCompletionAssistantMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor role: :assistant + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl + + attr_accessor content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content? + + attr_accessor function_call: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall? + + attr_accessor name: String? + + attr_accessor reasoning_content: String? + + attr_accessor thinking_blocks: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]? + + attr_accessor tool_calls: ::Array[Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]? + + def initialize: ( + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + ?content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content?, + ?function_call: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + ?name: String?, + ?reasoning_content: String?, + ?thinking_blocks: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + ?tool_calls: ::Array[Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]?, + ?role: :assistant + ) -> void + + def to_hash: -> { + role: :assistant, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::CacheControl, + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content?, + function_call: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::FunctionCall?, + name: String?, + reasoning_content: String?, + thinking_blocks: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block]?, + tool_calls: ::Array[Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall]? + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + type content = + String + | ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::union_member1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock + + module UnionMember1 + extend Hanzoai::Internal::Type::Union + + type chat_completion_text_object = + { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + class ChatCompletionTextObject < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionTextObject::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::UnionMember1::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::Content::union_member1] + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type function_call = + { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class FunctionCall < Hanzoai::Internal::Type::BaseModel + attr_reader arguments: String? + + def arguments=: (String) -> String + + attr_accessor name: String? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + ?arguments: String, + ?name: String?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + end + + type thinking_block = + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock + + module ThinkingBlock + extend Hanzoai::Internal::Type::Union + + type chat_completion_thinking_block = + { + type: :thinking, + cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + class ChatCompletionThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :thinking + + attr_accessor cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control? + + attr_reader signature: String? + + def signature=: (String) -> String + + attr_reader thinking: String? + + def thinking=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + ?signature: String, + ?thinking: String, + ?type: :thinking + ) -> void + + def to_hash: -> { + type: :thinking, + cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control?, + signature: String, + thinking: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_redacted_thinking_block = + { + type: :redacted_thinking, + cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + class ChatCompletionRedactedThinkingBlock < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :redacted_thinking + + attr_accessor cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control? + + attr_reader data: String? + + def data=: (String) -> String + + def initialize: ( + ?cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + ?data: String, + ?type: :redacted_thinking + ) -> void + + def to_hash: -> { + type: :redacted_thinking, + cache_control: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control?, + data: String + } + + type cache_control = + ::Hash[Symbol, top] + | Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::CacheControl::ChatCompletionCachedContent + + module CacheControl + extend Hanzoai::Internal::Type::Union + + type chat_completion_cached_content = { type: :ephemeral } + + class ChatCompletionCachedContent < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ThinkingBlock::ChatCompletionRedactedThinkingBlock::cache_control] + + UnionMember0Map: Hanzoai::Internal::Type::Converter + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::thinking_block] + end + + type tool_call = + { + id: String?, + function: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: :function + } + + class ToolCall < Hanzoai::Internal::Type::BaseModel + attr_accessor id: String? + + attr_accessor function: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function + + attr_accessor type: :function + + def initialize: ( + id: String?, + function: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + ?type: :function + ) -> void + + def to_hash: -> { + id: String?, + function: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionAssistantMessage::ToolCall::Function, + type: :function + } + + type function = + { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + + class Function < Hanzoai::Internal::Type::BaseModel + attr_reader arguments: String? + + def arguments=: (String) -> String + + attr_accessor name: String? + + attr_accessor provider_specific_fields: ::Hash[Symbol, top]? + + def initialize: ( + ?arguments: String, + ?name: String?, + ?provider_specific_fields: ::Hash[Symbol, top]? + ) -> void + + def to_hash: -> { + arguments: String, + name: String?, + provider_specific_fields: ::Hash[Symbol, top]? + } + end + end + end + + type chat_completion_tool_message = + { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::content, + role: :tool, + tool_call_id: String + } + + class ChatCompletionToolMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::content + + attr_accessor role: :tool + + attr_accessor tool_call_id: String + + def initialize: ( + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::content, + tool_call_id: String, + ?role: :tool + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::content, + role: :tool, + tool_call_id: String + } + + type content = + String + | ::Array[Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::Content::UnionMember1::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionToolMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_system_message = + { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::content, + role: :system, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + + class ChatCompletionSystemMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::content + + attr_accessor role: :system + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl + + attr_reader name: String? + + def name=: (String) -> String + + def initialize: ( + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::content, + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + ?name: String, + ?role: :system + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::content, + role: :system, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::CacheControl, + name: String + } + + type content = String | ::Array[top] + + module Content + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionSystemMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + type chat_completion_function_message = + { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + role: :function, + tool_call_id: String? + } + + class ChatCompletionFunctionMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content? + + attr_accessor name: String + + attr_accessor role: :function + + attr_accessor tool_call_id: String? + + def initialize: ( + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + tool_call_id: String?, + ?role: :function + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content?, + name: String, + role: :function, + tool_call_id: String? + } + + type content = + String + | ::Array[Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1] + + module Content + extend Hanzoai::Internal::Type::Union + + type union_member1 = + { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + attr_accessor text: String + + attr_accessor type: :text + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + + def initialize: ( + text: String, + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl, + ?type: :text + ) -> void + + def to_hash: -> { + text: String, + type: :text, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::Content::UnionMember1::CacheControl + } + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionFunctionMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + end + + type chat_completion_developer_message = + { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content, + role: :developer, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + + class ChatCompletionDeveloperMessage < Hanzoai::Internal::Type::BaseModel + attr_accessor content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content + + attr_accessor role: :developer + + attr_reader cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl? + + def cache_control=: ( + Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl + ) -> Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl + + attr_reader name: String? + + def name=: (String) -> String + + def initialize: ( + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content, + ?cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + ?name: String, + ?role: :developer + ) -> void + + def to_hash: -> { + content: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content, + role: :developer, + cache_control: Hanzoai::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::CacheControl, + name: String + } + + type content = String | ::Array[top] + + module Content + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::Message::ChatCompletionDeveloperMessage::content] + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end + + type cache_control = { type: :ephemeral } + + class CacheControl < Hanzoai::Internal::Type::BaseModel + attr_accessor type: :ephemeral + + def initialize: (?type: :ephemeral) -> void + + def to_hash: -> { type: :ephemeral } + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::message] + end + + type function_call = String | ::Hash[Symbol, top] + + module FunctionCall + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::function_call] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + + type stop = String | ::Array[String] + + module Stop + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::stop] + + StringArray: Hanzoai::Internal::Type::Converter + end + + type tool_choice = String | ::Hash[Symbol, top] + + module ToolChoice + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::tool_choice] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end end end end diff --git a/sig/hanzoai/models/openai/deployments/chat_complete_response.rbs b/sig/hanzoai/models/openai/deployments/chat_complete_response.rbs new file mode 100644 index 00000000..06f21942 --- /dev/null +++ b/sig/hanzoai/models/openai/deployments/chat_complete_response.rbs @@ -0,0 +1,9 @@ +module Hanzoai + module Models + module OpenAI + module Deployments + ChatCompleteResponse: Hanzoai::Internal::Type::Converter + end + end + end +end diff --git a/sig/hanzoai/models/openai_create_params.rbs b/sig/hanzoai/models/openai_create_params.rbs index 06e419b6..fd38818c 100644 --- a/sig/hanzoai/models/openai_create_params.rbs +++ b/sig/hanzoai/models/openai_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::openai_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/openai_create_response.rbs b/sig/hanzoai/models/openai_create_response.rbs new file mode 100644 index 00000000..a04a68a6 --- /dev/null +++ b/sig/hanzoai/models/openai_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + OpenAICreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/openai_delete_params.rbs b/sig/hanzoai/models/openai_delete_params.rbs index cb86556e..b802264b 100644 --- a/sig/hanzoai/models/openai_delete_params.rbs +++ b/sig/hanzoai/models/openai_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::openai_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/openai_delete_response.rbs b/sig/hanzoai/models/openai_delete_response.rbs new file mode 100644 index 00000000..c44483a7 --- /dev/null +++ b/sig/hanzoai/models/openai_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + OpenAIDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/openai_patch_params.rbs b/sig/hanzoai/models/openai_patch_params.rbs index 70656af1..24dbfcd6 100644 --- a/sig/hanzoai/models/openai_patch_params.rbs +++ b/sig/hanzoai/models/openai_patch_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::openai_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/openai_patch_response.rbs b/sig/hanzoai/models/openai_patch_response.rbs new file mode 100644 index 00000000..80b5baa7 --- /dev/null +++ b/sig/hanzoai/models/openai_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + OpenAIPatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/openai_retrieve_params.rbs b/sig/hanzoai/models/openai_retrieve_params.rbs index 678106e6..e4a8a352 100644 --- a/sig/hanzoai/models/openai_retrieve_params.rbs +++ b/sig/hanzoai/models/openai_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::openai_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/openai_retrieve_response.rbs b/sig/hanzoai/models/openai_retrieve_response.rbs new file mode 100644 index 00000000..53157b6f --- /dev/null +++ b/sig/hanzoai/models/openai_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + OpenAIRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/openai_update_params.rbs b/sig/hanzoai/models/openai_update_params.rbs index c611362c..1609db34 100644 --- a/sig/hanzoai/models/openai_update_params.rbs +++ b/sig/hanzoai/models/openai_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::openai_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/openai_update_response.rbs b/sig/hanzoai/models/openai_update_response.rbs new file mode 100644 index 00000000..c2b61309 --- /dev/null +++ b/sig/hanzoai/models/openai_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + OpenAIUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/org_member.rbs b/sig/hanzoai/models/org_member.rbs index a19b1b0c..6163eae1 100644 --- a/sig/hanzoai/models/org_member.rbs +++ b/sig/hanzoai/models/org_member.rbs @@ -20,7 +20,11 @@ module Hanzoai ?user_id: String? ) -> void - def to_hash: -> Hanzoai::Models::org_member + def to_hash: -> { + role: Hanzoai::Models::OrgMember::role, + user_email: String?, + user_id: String? + } type role = :org_admin | :internal_user | :internal_user_viewer diff --git a/sig/hanzoai/models/organization/info_deprecated_params.rbs b/sig/hanzoai/models/organization/info_deprecated_params.rbs index bb062af6..fe309502 100644 --- a/sig/hanzoai/models/organization/info_deprecated_params.rbs +++ b/sig/hanzoai/models/organization/info_deprecated_params.rbs @@ -16,7 +16,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Organization::info_deprecated_params + def to_hash: -> { + organizations: ::Array[String], + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/organization/info_deprecated_response.rbs b/sig/hanzoai/models/organization/info_deprecated_response.rbs new file mode 100644 index 00000000..13904c21 --- /dev/null +++ b/sig/hanzoai/models/organization/info_deprecated_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Organization + InfoDeprecatedResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/organization/info_retrieve_params.rbs b/sig/hanzoai/models/organization/info_retrieve_params.rbs index cbf08409..940e38a2 100644 --- a/sig/hanzoai/models/organization/info_retrieve_params.rbs +++ b/sig/hanzoai/models/organization/info_retrieve_params.rbs @@ -16,7 +16,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Organization::info_retrieve_params + def to_hash: -> { + organization_id: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/organization/info_retrieve_response.rbs b/sig/hanzoai/models/organization/info_retrieve_response.rbs deleted file mode 100644 index 3c08e5d7..00000000 --- a/sig/hanzoai/models/organization/info_retrieve_response.rbs +++ /dev/null @@ -1,337 +0,0 @@ -module Hanzoai - module Models - module Organization - type info_retrieve_response = - { - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable?, - members: ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Member], - metadata: top?, - organization_alias: String?, - organization_id: String?, - spend: Float, - teams: ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Team] - } - - class InfoRetrieveResponse < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_id: String - - attr_accessor created_at: Time - - attr_accessor created_by: String - - attr_accessor models: ::Array[String] - - attr_accessor updated_at: Time - - attr_accessor updated_by: String - - attr_accessor llm_budget_table: Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable? - - attr_reader members: ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Member]? - - def members=: ( - ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Member] - ) -> ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Member] - - attr_accessor metadata: top? - - attr_accessor organization_alias: String? - - attr_accessor organization_id: String? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader teams: ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Team]? - - def teams=: ( - ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Team] - ) -> ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Team] - - def initialize: ( - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - ?llm_budget_table: Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable?, - ?members: ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Member], - ?metadata: top?, - ?organization_alias: String?, - ?organization_id: String?, - ?spend: Float, - ?teams: ::Array[Hanzoai::Models::Organization::InfoRetrieveResponse::Team] - ) -> void - - def to_hash: -> Hanzoai::Models::Organization::info_retrieve_response - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::Organization::InfoRetrieveResponse::llm_budget_table - end - - type member = - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? - } - - class Member < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String - - attr_accessor updated_at: Time - - attr_accessor user_id: String - - attr_accessor budget_id: String? - - attr_accessor llm_budget_table: Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? - - def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::Organization::InfoRetrieveResponse::Member::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? - ) -> void - - def to_hash: -> Hanzoai::Models::Organization::InfoRetrieveResponse::member - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::Organization::InfoRetrieveResponse::Member::llm_budget_table - end - end - - type team = - { - team_id: String, - admins: ::Array[top], - blocked: bool, - budget_duration: String?, - budget_reset_at: Time?, - created_at: Time?, - llm_model_table: Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable?, - max_budget: Float?, - max_parallel_requests: Integer?, - members: ::Array[top], - members_with_roles: ::Array[Hanzoai::Models::Member], - metadata: top?, - model_id: Integer?, - models: ::Array[top], - organization_id: String?, - rpm_limit: Integer?, - spend: Float?, - team_alias: String?, - tpm_limit: Integer? - } - - class Team < Hanzoai::Internal::Type::BaseModel - attr_accessor team_id: String - - attr_reader admins: ::Array[top]? - - def admins=: (::Array[top]) -> ::Array[top] - - attr_reader blocked: bool? - - def blocked=: (bool) -> bool - - attr_accessor budget_duration: String? - - attr_accessor budget_reset_at: Time? - - attr_accessor created_at: Time? - - attr_accessor llm_model_table: Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_reader members: ::Array[top]? - - def members=: (::Array[top]) -> ::Array[top] - - attr_reader members_with_roles: ::Array[Hanzoai::Models::Member]? - - def members_with_roles=: ( - ::Array[Hanzoai::Models::Member] - ) -> ::Array[Hanzoai::Models::Member] - - attr_accessor metadata: top? - - attr_accessor model_id: Integer? - - attr_reader models: ::Array[top]? - - def models=: (::Array[top]) -> ::Array[top] - - attr_accessor organization_id: String? - - attr_accessor rpm_limit: Integer? - - attr_accessor spend: Float? - - attr_accessor team_alias: String? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - team_id: String, - ?admins: ::Array[top], - ?blocked: bool, - ?budget_duration: String?, - ?budget_reset_at: Time?, - ?created_at: Time?, - ?llm_model_table: Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, - ?model_id: Integer?, - ?models: ::Array[top], - ?organization_id: String?, - ?rpm_limit: Integer?, - ?spend: Float?, - ?team_alias: String?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::Organization::InfoRetrieveResponse::team - - type llm_model_table = - { - created_by: String, - updated_by: String, - model_aliases: Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable::model_aliases? - } - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - attr_accessor created_by: String - - attr_accessor updated_by: String - - attr_accessor model_aliases: Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable::model_aliases? - - def initialize: ( - created_by: String, - updated_by: String, - ?model_aliases: Hanzoai::Models::Organization::InfoRetrieveResponse::Team::LlmModelTable::model_aliases? - ) -> void - - def to_hash: -> Hanzoai::Models::Organization::InfoRetrieveResponse::Team::llm_model_table - - type model_aliases = top | String - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - def self?.variants: -> [top, String] - end - end - end - end - end - end -end diff --git a/sig/hanzoai/models/organization_add_member_params.rbs b/sig/hanzoai/models/organization_add_member_params.rbs index add1d92d..a9c4b9f4 100644 --- a/sig/hanzoai/models/organization_add_member_params.rbs +++ b/sig/hanzoai/models/organization_add_member_params.rbs @@ -25,19 +25,21 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::organization_add_member_params + def to_hash: -> { + member: Hanzoai::Models::OrganizationAddMemberParams::member, + organization_id: String, + max_budget_in_organization: Float?, + request_options: Hanzoai::RequestOptions + } - type member = - ::Array[Hanzoai::Models::OrgMember] | Hanzoai::Models::OrgMember + type member = ::Array[Hanzoai::OrgMember] | Hanzoai::OrgMember module Member extend Hanzoai::Internal::Type::Union - def self?.variants: -> [::Array[Hanzoai::Models::OrgMember], Hanzoai::Models::OrgMember] - - type org_member_array = ::Array[Hanzoai::Models::OrgMember] + def self?.variants: -> ::Array[Hanzoai::Models::OrganizationAddMemberParams::member] - OrgMemberArray: org_member_array + OrgMemberArray: Hanzoai::Internal::Type::Converter end end end diff --git a/sig/hanzoai/models/organization_add_member_response.rbs b/sig/hanzoai/models/organization_add_member_response.rbs index 97ff88f3..2ec8e1f4 100644 --- a/sig/hanzoai/models/organization_add_member_response.rbs +++ b/sig/hanzoai/models/organization_add_member_response.rbs @@ -3,131 +3,49 @@ module Hanzoai type organization_add_member_response = { organization_id: String, - updated_organization_memberships: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership], + updated_organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable], updated_users: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser] } class OrganizationAddMemberResponse < Hanzoai::Internal::Type::BaseModel attr_accessor organization_id: String - attr_accessor updated_organization_memberships: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership] + attr_accessor updated_organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable] attr_accessor updated_users: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser] def initialize: ( organization_id: String, - updated_organization_memberships: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership], + updated_organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable], updated_users: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser] ) -> void - def to_hash: -> Hanzoai::Models::organization_add_member_response - - type updated_organization_membership = - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? - } - - class UpdatedOrganizationMembership < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String - - attr_accessor updated_at: Time - - attr_accessor user_id: String - - attr_accessor budget_id: String? - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? - - def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationAddMemberResponse::updated_organization_membership - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership::llm_budget_table - end - end + def to_hash: -> { + organization_id: String, + updated_organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable], + updated_users: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser] + } type updated_user = { user_id: String, budget_duration: String?, budget_reset_at: Time?, + created_at: Time?, max_budget: Float?, - metadata: top?, - model_max_budget: top?, - model_spend: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, models: ::Array[top], - organization_memberships: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership]?, + object_permission: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, rpm_limit: Integer?, spend: Float, sso_user_id: String?, teams: ::Array[String], tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, user_email: String?, user_role: String? } @@ -139,19 +57,23 @@ module Hanzoai attr_accessor budget_reset_at: Time? + attr_accessor created_at: Time? + attr_accessor max_budget: Float? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_spend: top? + attr_accessor model_spend: ::Hash[Symbol, top]? attr_reader models: ::Array[top]? def models=: (::Array[top]) -> ::Array[top] - attr_accessor organization_memberships: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership]? + attr_accessor object_permission: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission? + + attr_accessor organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]? attr_accessor rpm_limit: Integer? @@ -167,6 +89,10 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor updated_at: Time? + + attr_accessor user_alias: String? + attr_accessor user_email: String? attr_accessor user_role: String? @@ -175,111 +101,93 @@ module Hanzoai user_id: String, ?budget_duration: String?, ?budget_reset_at: Time?, + ?created_at: Time?, ?max_budget: Float?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_spend: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_spend: ::Hash[Symbol, top]?, ?models: ::Array[top], - ?organization_memberships: ::Array[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership]?, + ?object_permission: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission?, + ?organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, ?rpm_limit: Integer?, ?spend: Float, ?sso_user_id: String?, ?teams: ::Array[String], ?tpm_limit: Integer?, + ?updated_at: Time?, + ?user_alias: String?, ?user_email: String?, ?user_role: String? ) -> void - def to_hash: -> Hanzoai::Models::OrganizationAddMemberResponse::updated_user + def to_hash: -> { + user_id: String, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + max_budget: Float?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, + models: ::Array[top], + object_permission: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + rpm_limit: Integer?, + spend: Float, + sso_user_id: String?, + teams: ::Array[String], + tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, + user_email: String?, + user_role: String? + } - type organization_membership = + type object_permission = { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? } - class OrganizationMembership < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String - attr_accessor updated_at: Time + attr_accessor agent_access_groups: ::Array[String]? - attr_accessor user_id: String + attr_accessor agents: ::Array[String]? - attr_accessor budget_id: String? + attr_accessor mcp_access_groups: ::Array[String]? - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable? + attr_accessor mcp_servers: ::Array[String]? - attr_reader spend: Float? + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? + attr_accessor vector_stores: ::Array[String]? def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? ) -> void - def to_hash: -> Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::organization_membership - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser::OrganizationMembership::llm_budget_table - end + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } end end end diff --git a/sig/hanzoai/models/organization_create_params.rbs b/sig/hanzoai/models/organization_create_params.rbs index c6833a79..119eddfb 100644 --- a/sig/hanzoai/models/organization_create_params.rbs +++ b/sig/hanzoai/models/organization_create_params.rbs @@ -7,9 +7,12 @@ module Hanzoai budget_id: String?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, Integer]?, + model_tpm_limit: ::Hash[Symbol, Integer]?, models: ::Array[top], + object_permission: Hanzoai::OrganizationCreateParams::ObjectPermission?, organization_id: String?, rpm_limit: Integer?, soft_budget: Float?, @@ -31,14 +34,20 @@ module Hanzoai attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? + + attr_accessor model_rpm_limit: ::Hash[Symbol, Integer]? + + attr_accessor model_tpm_limit: ::Hash[Symbol, Integer]? attr_reader models: ::Array[top]? def models=: (::Array[top]) -> ::Array[top] + attr_accessor object_permission: Hanzoai::OrganizationCreateParams::ObjectPermission? + attr_accessor organization_id: String? attr_accessor rpm_limit: Integer? @@ -53,9 +62,12 @@ module Hanzoai ?budget_id: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, Integer]?, + ?model_tpm_limit: ::Hash[Symbol, Integer]?, ?models: ::Array[top], + ?object_permission: Hanzoai::OrganizationCreateParams::ObjectPermission?, ?organization_id: String?, ?rpm_limit: Integer?, ?soft_budget: Float?, @@ -63,7 +75,66 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::organization_create_params + def to_hash: -> { + organization_alias: String, + budget_duration: String?, + budget_id: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, Integer]?, + model_tpm_limit: ::Hash[Symbol, Integer]?, + models: ::Array[top], + object_permission: Hanzoai::OrganizationCreateParams::ObjectPermission?, + organization_id: String?, + rpm_limit: Integer?, + soft_budget: Float?, + tpm_limit: Integer?, + request_options: Hanzoai::RequestOptions + } + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end end end end diff --git a/sig/hanzoai/models/organization_create_response.rbs b/sig/hanzoai/models/organization_create_response.rbs index b273a459..4f5b2b02 100644 --- a/sig/hanzoai/models/organization_create_response.rbs +++ b/sig/hanzoai/models/organization_create_response.rbs @@ -9,9 +9,13 @@ module Hanzoai organization_id: String, updated_at: Time, updated_by: String, - metadata: top?, + litellm_budget_table: Hanzoai::BudgetTable?, + metadata: ::Hash[Symbol, top]?, + object_permission: Hanzoai::Models::OrganizationCreateResponse::ObjectPermission?, + object_permission_id: String?, organization_alias: String?, - spend: Float + spend: Float, + users: ::Array[Hanzoai::Models::OrganizationCreateResponse::User]? } class OrganizationCreateResponse < Hanzoai::Internal::Type::BaseModel @@ -29,7 +33,13 @@ module Hanzoai attr_accessor updated_by: String - attr_accessor metadata: top? + attr_accessor litellm_budget_table: Hanzoai::BudgetTable? + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor object_permission: Hanzoai::Models::OrganizationCreateResponse::ObjectPermission? + + attr_accessor object_permission_id: String? attr_accessor organization_alias: String? @@ -37,6 +47,8 @@ module Hanzoai def spend=: (Float) -> Float + attr_accessor users: ::Array[Hanzoai::Models::OrganizationCreateResponse::User]? + def initialize: ( budget_id: String, created_at: Time, @@ -45,12 +57,243 @@ module Hanzoai organization_id: String, updated_at: Time, updated_by: String, - ?metadata: top?, + ?litellm_budget_table: Hanzoai::BudgetTable?, + ?metadata: ::Hash[Symbol, top]?, + ?object_permission: Hanzoai::Models::OrganizationCreateResponse::ObjectPermission?, + ?object_permission_id: String?, ?organization_alias: String?, - ?spend: Float + ?spend: Float, + ?users: ::Array[Hanzoai::Models::OrganizationCreateResponse::User]? ) -> void - def to_hash: -> Hanzoai::Models::organization_create_response + def to_hash: -> { + budget_id: String, + created_at: Time, + created_by: String, + models: ::Array[String], + organization_id: String, + updated_at: Time, + updated_by: String, + litellm_budget_table: Hanzoai::BudgetTable?, + metadata: ::Hash[Symbol, top]?, + object_permission: Hanzoai::Models::OrganizationCreateResponse::ObjectPermission?, + object_permission_id: String?, + organization_alias: String?, + spend: Float, + users: ::Array[Hanzoai::Models::OrganizationCreateResponse::User]? + } + + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type user = + { + user_id: String, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + max_budget: Float?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, + models: ::Array[top], + object_permission: Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + rpm_limit: Integer?, + spend: Float, + sso_user_id: String?, + teams: ::Array[String], + tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, + user_email: String?, + user_role: String? + } + + class User < Hanzoai::Internal::Type::BaseModel + attr_accessor user_id: String + + attr_accessor budget_duration: String? + + attr_accessor budget_reset_at: Time? + + attr_accessor created_at: Time? + + attr_accessor max_budget: Float? + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor model_max_budget: ::Hash[Symbol, top]? + + attr_accessor model_spend: ::Hash[Symbol, top]? + + attr_reader models: ::Array[top]? + + def models=: (::Array[top]) -> ::Array[top] + + attr_accessor object_permission: Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission? + + attr_accessor organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]? + + attr_accessor rpm_limit: Integer? + + attr_reader spend: Float? + + def spend=: (Float) -> Float + + attr_accessor sso_user_id: String? + + attr_reader teams: ::Array[String]? + + def teams=: (::Array[String]) -> ::Array[String] + + attr_accessor tpm_limit: Integer? + + attr_accessor updated_at: Time? + + attr_accessor user_alias: String? + + attr_accessor user_email: String? + + attr_accessor user_role: String? + + def initialize: ( + user_id: String, + ?budget_duration: String?, + ?budget_reset_at: Time?, + ?created_at: Time?, + ?max_budget: Float?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_spend: ::Hash[Symbol, top]?, + ?models: ::Array[top], + ?object_permission: Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission?, + ?organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + ?rpm_limit: Integer?, + ?spend: Float, + ?sso_user_id: String?, + ?teams: ::Array[String], + ?tpm_limit: Integer?, + ?updated_at: Time?, + ?user_alias: String?, + ?user_email: String?, + ?user_role: String? + ) -> void + + def to_hash: -> { + user_id: String, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + max_budget: Float?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, + models: ::Array[top], + object_permission: Hanzoai::Models::OrganizationCreateResponse::User::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + rpm_limit: Integer?, + spend: Float, + sso_user_id: String?, + teams: ::Array[String], + tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, + user_email: String?, + user_role: String? + } + + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + end end end end diff --git a/sig/hanzoai/models/organization_delete_member_params.rbs b/sig/hanzoai/models/organization_delete_member_params.rbs index 4b96231e..debf6ab1 100644 --- a/sig/hanzoai/models/organization_delete_member_params.rbs +++ b/sig/hanzoai/models/organization_delete_member_params.rbs @@ -21,7 +21,12 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::organization_delete_member_params + def to_hash: -> { + organization_id: String, + user_email: String?, + user_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/organization_delete_member_response.rbs b/sig/hanzoai/models/organization_delete_member_response.rbs new file mode 100644 index 00000000..8e1a9020 --- /dev/null +++ b/sig/hanzoai/models/organization_delete_member_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + OrganizationDeleteMemberResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/organization_delete_params.rbs b/sig/hanzoai/models/organization_delete_params.rbs index ea1a6bce..5311a138 100644 --- a/sig/hanzoai/models/organization_delete_params.rbs +++ b/sig/hanzoai/models/organization_delete_params.rbs @@ -15,7 +15,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::organization_delete_params + def to_hash: -> { + organization_ids: ::Array[String], + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/organization_delete_response.rbs b/sig/hanzoai/models/organization_delete_response.rbs index aba34c85..c303f43c 100644 --- a/sig/hanzoai/models/organization_delete_response.rbs +++ b/sig/hanzoai/models/organization_delete_response.rbs @@ -1,340 +1,8 @@ module Hanzoai module Models - type organization_delete_response_item = - { - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable?, - members: ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Member], - metadata: top?, - organization_alias: String?, - organization_id: String?, - spend: Float, - teams: ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Team] - } - - class OrganizationDeleteResponseItem < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_id: String - - attr_accessor created_at: Time - - attr_accessor created_by: String - - attr_accessor models: ::Array[String] - - attr_accessor updated_at: Time - - attr_accessor updated_by: String - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable? - - attr_reader members: ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Member]? - - def members=: ( - ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Member] - ) -> ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Member] - - attr_accessor metadata: top? - - attr_accessor organization_alias: String? - - attr_accessor organization_id: String? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader teams: ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Team]? - - def teams=: ( - ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Team] - ) -> ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Team] - - def initialize: ( - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - ?llm_budget_table: Hanzoai::Models::OrganizationDeleteResponseItem::LlmBudgetTable?, - ?members: ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Member], - ?metadata: top?, - ?organization_alias: String?, - ?organization_id: String?, - ?spend: Float, - ?teams: ::Array[Hanzoai::Models::OrganizationDeleteResponseItem::Team] - ) -> void - - def to_hash: -> Hanzoai::Models::organization_delete_response_item - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationDeleteResponseItem::llm_budget_table - end - - type member = - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? - } - - class Member < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String - - attr_accessor updated_at: Time - - attr_accessor user_id: String - - attr_accessor budget_id: String? - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? - - def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::OrganizationDeleteResponseItem::Member::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationDeleteResponseItem::member - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationDeleteResponseItem::Member::llm_budget_table - end - end - - type team = - { - team_id: String, - admins: ::Array[top], - blocked: bool, - budget_duration: String?, - budget_reset_at: Time?, - created_at: Time?, - llm_model_table: Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable?, - max_budget: Float?, - max_parallel_requests: Integer?, - members: ::Array[top], - members_with_roles: ::Array[Hanzoai::Models::Member], - metadata: top?, - model_id: Integer?, - models: ::Array[top], - organization_id: String?, - rpm_limit: Integer?, - spend: Float?, - team_alias: String?, - tpm_limit: Integer? - } - - class Team < Hanzoai::Internal::Type::BaseModel - attr_accessor team_id: String - - attr_reader admins: ::Array[top]? - - def admins=: (::Array[top]) -> ::Array[top] - - attr_reader blocked: bool? - - def blocked=: (bool) -> bool - - attr_accessor budget_duration: String? - - attr_accessor budget_reset_at: Time? - - attr_accessor created_at: Time? - - attr_accessor llm_model_table: Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_reader members: ::Array[top]? - - def members=: (::Array[top]) -> ::Array[top] - - attr_reader members_with_roles: ::Array[Hanzoai::Models::Member]? - - def members_with_roles=: ( - ::Array[Hanzoai::Models::Member] - ) -> ::Array[Hanzoai::Models::Member] - - attr_accessor metadata: top? - - attr_accessor model_id: Integer? - - attr_reader models: ::Array[top]? - - def models=: (::Array[top]) -> ::Array[top] - - attr_accessor organization_id: String? - - attr_accessor rpm_limit: Integer? - - attr_accessor spend: Float? - - attr_accessor team_alias: String? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - team_id: String, - ?admins: ::Array[top], - ?blocked: bool, - ?budget_duration: String?, - ?budget_reset_at: Time?, - ?created_at: Time?, - ?llm_model_table: Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, - ?model_id: Integer?, - ?models: ::Array[top], - ?organization_id: String?, - ?rpm_limit: Integer?, - ?spend: Float?, - ?team_alias: String?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationDeleteResponseItem::team - - type llm_model_table = - { - created_by: String, - updated_by: String, - model_aliases: Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable::model_aliases? - } - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - attr_accessor created_by: String - - attr_accessor updated_by: String - - attr_accessor model_aliases: Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable::model_aliases? - - def initialize: ( - created_by: String, - updated_by: String, - ?model_aliases: Hanzoai::Models::OrganizationDeleteResponseItem::Team::LlmModelTable::model_aliases? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationDeleteResponseItem::Team::llm_model_table - - type model_aliases = top | String - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - def self?.variants: -> [top, String] - end - end - end - end - type organization_delete_response = - ::Array[Hanzoai::Models::OrganizationDeleteResponseItem] + ::Array[Hanzoai::OrganizationTableWithMembers] - OrganizationDeleteResponse: organization_delete_response + OrganizationDeleteResponse: Hanzoai::Internal::Type::Converter end end diff --git a/sig/hanzoai/models/organization_list_params.rbs b/sig/hanzoai/models/organization_list_params.rbs index 3fe957ba..14c2c450 100644 --- a/sig/hanzoai/models/organization_list_params.rbs +++ b/sig/hanzoai/models/organization_list_params.rbs @@ -1,15 +1,28 @@ module Hanzoai module Models type organization_list_params = - { } & Hanzoai::Internal::Type::request_parameters + { org_alias: String?, org_id: String? } + & Hanzoai::Internal::Type::request_parameters class OrganizationListParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - def initialize: (?request_options: Hanzoai::request_opts) -> void + attr_accessor org_alias: String? - def to_hash: -> Hanzoai::Models::organization_list_params + attr_accessor org_id: String? + + def initialize: ( + ?org_alias: String?, + ?org_id: String?, + ?request_options: Hanzoai::request_opts + ) -> void + + def to_hash: -> { + org_alias: String?, + org_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/organization_list_response.rbs b/sig/hanzoai/models/organization_list_response.rbs index 1e502899..34aba6c2 100644 --- a/sig/hanzoai/models/organization_list_response.rbs +++ b/sig/hanzoai/models/organization_list_response.rbs @@ -1,340 +1,8 @@ module Hanzoai module Models - type organization_list_response_item = - { - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable?, - members: ::Array[Hanzoai::Models::OrganizationListResponseItem::Member], - metadata: top?, - organization_alias: String?, - organization_id: String?, - spend: Float, - teams: ::Array[Hanzoai::Models::OrganizationListResponseItem::Team] - } - - class OrganizationListResponseItem < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_id: String - - attr_accessor created_at: Time - - attr_accessor created_by: String - - attr_accessor models: ::Array[String] - - attr_accessor updated_at: Time - - attr_accessor updated_by: String - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable? - - attr_reader members: ::Array[Hanzoai::Models::OrganizationListResponseItem::Member]? - - def members=: ( - ::Array[Hanzoai::Models::OrganizationListResponseItem::Member] - ) -> ::Array[Hanzoai::Models::OrganizationListResponseItem::Member] - - attr_accessor metadata: top? - - attr_accessor organization_alias: String? - - attr_accessor organization_id: String? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader teams: ::Array[Hanzoai::Models::OrganizationListResponseItem::Team]? - - def teams=: ( - ::Array[Hanzoai::Models::OrganizationListResponseItem::Team] - ) -> ::Array[Hanzoai::Models::OrganizationListResponseItem::Team] - - def initialize: ( - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - ?llm_budget_table: Hanzoai::Models::OrganizationListResponseItem::LlmBudgetTable?, - ?members: ::Array[Hanzoai::Models::OrganizationListResponseItem::Member], - ?metadata: top?, - ?organization_alias: String?, - ?organization_id: String?, - ?spend: Float, - ?teams: ::Array[Hanzoai::Models::OrganizationListResponseItem::Team] - ) -> void - - def to_hash: -> Hanzoai::Models::organization_list_response_item - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationListResponseItem::llm_budget_table - end - - type member = - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? - } - - class Member < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String - - attr_accessor updated_at: Time - - attr_accessor user_id: String - - attr_accessor budget_id: String? - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? - - def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::OrganizationListResponseItem::Member::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationListResponseItem::member - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationListResponseItem::Member::llm_budget_table - end - end - - type team = - { - team_id: String, - admins: ::Array[top], - blocked: bool, - budget_duration: String?, - budget_reset_at: Time?, - created_at: Time?, - llm_model_table: Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable?, - max_budget: Float?, - max_parallel_requests: Integer?, - members: ::Array[top], - members_with_roles: ::Array[Hanzoai::Models::Member], - metadata: top?, - model_id: Integer?, - models: ::Array[top], - organization_id: String?, - rpm_limit: Integer?, - spend: Float?, - team_alias: String?, - tpm_limit: Integer? - } - - class Team < Hanzoai::Internal::Type::BaseModel - attr_accessor team_id: String - - attr_reader admins: ::Array[top]? - - def admins=: (::Array[top]) -> ::Array[top] - - attr_reader blocked: bool? - - def blocked=: (bool) -> bool - - attr_accessor budget_duration: String? - - attr_accessor budget_reset_at: Time? - - attr_accessor created_at: Time? - - attr_accessor llm_model_table: Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_reader members: ::Array[top]? - - def members=: (::Array[top]) -> ::Array[top] - - attr_reader members_with_roles: ::Array[Hanzoai::Models::Member]? - - def members_with_roles=: ( - ::Array[Hanzoai::Models::Member] - ) -> ::Array[Hanzoai::Models::Member] - - attr_accessor metadata: top? - - attr_accessor model_id: Integer? - - attr_reader models: ::Array[top]? - - def models=: (::Array[top]) -> ::Array[top] - - attr_accessor organization_id: String? - - attr_accessor rpm_limit: Integer? - - attr_accessor spend: Float? - - attr_accessor team_alias: String? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - team_id: String, - ?admins: ::Array[top], - ?blocked: bool, - ?budget_duration: String?, - ?budget_reset_at: Time?, - ?created_at: Time?, - ?llm_model_table: Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, - ?model_id: Integer?, - ?models: ::Array[top], - ?organization_id: String?, - ?rpm_limit: Integer?, - ?spend: Float?, - ?team_alias: String?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationListResponseItem::team - - type llm_model_table = - { - created_by: String, - updated_by: String, - model_aliases: Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable::model_aliases? - } - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - attr_accessor created_by: String - - attr_accessor updated_by: String - - attr_accessor model_aliases: Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable::model_aliases? - - def initialize: ( - created_by: String, - updated_by: String, - ?model_aliases: Hanzoai::Models::OrganizationListResponseItem::Team::LlmModelTable::model_aliases? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationListResponseItem::Team::llm_model_table - - type model_aliases = top | String - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - def self?.variants: -> [top, String] - end - end - end - end - type organization_list_response = - ::Array[Hanzoai::Models::OrganizationListResponseItem] + ::Array[Hanzoai::OrganizationTableWithMembers] - OrganizationListResponse: organization_list_response + OrganizationListResponse: Hanzoai::Internal::Type::Converter end end diff --git a/sig/hanzoai/models/organization_membership_table.rbs b/sig/hanzoai/models/organization_membership_table.rbs new file mode 100644 index 00000000..fbfc3a5d --- /dev/null +++ b/sig/hanzoai/models/organization_membership_table.rbs @@ -0,0 +1,64 @@ +module Hanzoai + module Models + type organization_membership_table = + { + created_at: Time, + organization_id: String, + updated_at: Time, + user_id: String, + budget_id: String?, + litellm_budget_table: Hanzoai::BudgetTable?, + spend: Float, + user: top, + user_role: String? + } + + class OrganizationMembershipTable < Hanzoai::Internal::Type::BaseModel + attr_accessor created_at: Time + + attr_accessor organization_id: String + + attr_accessor updated_at: Time + + attr_accessor user_id: String + + attr_accessor budget_id: String? + + attr_accessor litellm_budget_table: Hanzoai::BudgetTable? + + attr_reader spend: Float? + + def spend=: (Float) -> Float + + attr_reader user: top? + + def user=: (top) -> top + + attr_accessor user_role: String? + + def initialize: ( + created_at: Time, + organization_id: String, + updated_at: Time, + user_id: String, + ?budget_id: String?, + ?litellm_budget_table: Hanzoai::BudgetTable?, + ?spend: Float, + ?user: top, + ?user_role: String? + ) -> void + + def to_hash: -> { + created_at: Time, + organization_id: String, + updated_at: Time, + user_id: String, + budget_id: String?, + litellm_budget_table: Hanzoai::BudgetTable?, + spend: Float, + user: top, + user_role: String? + } + end + end +end diff --git a/sig/hanzoai/models/organization_table_with_members.rbs b/sig/hanzoai/models/organization_table_with_members.rbs new file mode 100644 index 00000000..4aae0a52 --- /dev/null +++ b/sig/hanzoai/models/organization_table_with_members.rbs @@ -0,0 +1,510 @@ +module Hanzoai + module Models + type organization_table_with_members = + { + budget_id: String, + created_at: Time, + created_by: String, + models: ::Array[String], + updated_at: Time, + updated_by: String, + litellm_budget_table: Hanzoai::BudgetTable?, + members: ::Array[Hanzoai::OrganizationMembershipTable], + metadata: ::Hash[Symbol, top]?, + object_permission: Hanzoai::OrganizationTableWithMembers::ObjectPermission?, + object_permission_id: String?, + organization_alias: String?, + organization_id: String?, + spend: Float, + teams: ::Array[Hanzoai::OrganizationTableWithMembers::Team], + users: ::Array[Hanzoai::OrganizationTableWithMembers::User]? + } + + class OrganizationTableWithMembers < Hanzoai::Internal::Type::BaseModel + attr_accessor budget_id: String + + attr_accessor created_at: Time + + attr_accessor created_by: String + + attr_accessor models: ::Array[String] + + attr_accessor updated_at: Time + + attr_accessor updated_by: String + + attr_accessor litellm_budget_table: Hanzoai::BudgetTable? + + attr_reader members: ::Array[Hanzoai::OrganizationMembershipTable]? + + def members=: ( + ::Array[Hanzoai::OrganizationMembershipTable] + ) -> ::Array[Hanzoai::OrganizationMembershipTable] + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor object_permission: Hanzoai::OrganizationTableWithMembers::ObjectPermission? + + attr_accessor object_permission_id: String? + + attr_accessor organization_alias: String? + + attr_accessor organization_id: String? + + attr_reader spend: Float? + + def spend=: (Float) -> Float + + attr_reader teams: ::Array[Hanzoai::OrganizationTableWithMembers::Team]? + + def teams=: ( + ::Array[Hanzoai::OrganizationTableWithMembers::Team] + ) -> ::Array[Hanzoai::OrganizationTableWithMembers::Team] + + attr_accessor users: ::Array[Hanzoai::OrganizationTableWithMembers::User]? + + def initialize: ( + budget_id: String, + created_at: Time, + created_by: String, + models: ::Array[String], + updated_at: Time, + updated_by: String, + ?litellm_budget_table: Hanzoai::BudgetTable?, + ?members: ::Array[Hanzoai::OrganizationMembershipTable], + ?metadata: ::Hash[Symbol, top]?, + ?object_permission: Hanzoai::OrganizationTableWithMembers::ObjectPermission?, + ?object_permission_id: String?, + ?organization_alias: String?, + ?organization_id: String?, + ?spend: Float, + ?teams: ::Array[Hanzoai::OrganizationTableWithMembers::Team], + ?users: ::Array[Hanzoai::OrganizationTableWithMembers::User]? + ) -> void + + def to_hash: -> { + budget_id: String, + created_at: Time, + created_by: String, + models: ::Array[String], + updated_at: Time, + updated_by: String, + litellm_budget_table: Hanzoai::BudgetTable?, + members: ::Array[Hanzoai::OrganizationMembershipTable], + metadata: ::Hash[Symbol, top]?, + object_permission: Hanzoai::OrganizationTableWithMembers::ObjectPermission?, + object_permission_id: String?, + organization_alias: String?, + organization_id: String?, + spend: Float, + teams: ::Array[Hanzoai::OrganizationTableWithMembers::Team], + users: ::Array[Hanzoai::OrganizationTableWithMembers::User]? + } + + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type team = + { + team_id: String, + admins: ::Array[top], + blocked: bool, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + litellm_model_table: top, + max_budget: Float?, + max_parallel_requests: Integer?, + members: ::Array[top], + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, + model_id: Integer?, + models: ::Array[top], + object_permission: Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission?, + object_permission_id: String?, + organization_id: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + spend: Float?, + team_alias: String?, + team_member_permissions: ::Array[String]?, + tpm_limit: Integer?, + updated_at: Time? + } + + class Team < Hanzoai::Internal::Type::BaseModel + attr_accessor team_id: String + + attr_reader admins: ::Array[top]? + + def admins=: (::Array[top]) -> ::Array[top] + + attr_reader blocked: bool? + + def blocked=: (bool) -> bool + + attr_accessor budget_duration: String? + + attr_accessor budget_reset_at: Time? + + attr_accessor created_at: Time? + + attr_reader litellm_model_table: top? + + def litellm_model_table=: (top) -> top + + attr_accessor max_budget: Float? + + attr_accessor max_parallel_requests: Integer? + + attr_reader members: ::Array[top]? + + def members=: (::Array[top]) -> ::Array[top] + + attr_reader members_with_roles: ::Array[Hanzoai::Member]? + + def members_with_roles=: ( + ::Array[Hanzoai::Member] + ) -> ::Array[Hanzoai::Member] + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor model_id: Integer? + + attr_reader models: ::Array[top]? + + def models=: (::Array[top]) -> ::Array[top] + + attr_accessor object_permission: Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission? + + attr_accessor object_permission_id: String? + + attr_accessor organization_id: String? + + attr_accessor router_settings: ::Hash[Symbol, top]? + + attr_accessor rpm_limit: Integer? + + attr_accessor spend: Float? + + attr_accessor team_alias: String? + + attr_accessor team_member_permissions: ::Array[String]? + + attr_accessor tpm_limit: Integer? + + attr_accessor updated_at: Time? + + def initialize: ( + team_id: String, + ?admins: ::Array[top], + ?blocked: bool, + ?budget_duration: String?, + ?budget_reset_at: Time?, + ?created_at: Time?, + ?litellm_model_table: top, + ?max_budget: Float?, + ?max_parallel_requests: Integer?, + ?members: ::Array[top], + ?members_with_roles: ::Array[Hanzoai::Member], + ?metadata: ::Hash[Symbol, top]?, + ?model_id: Integer?, + ?models: ::Array[top], + ?object_permission: Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission?, + ?object_permission_id: String?, + ?organization_id: String?, + ?router_settings: ::Hash[Symbol, top]?, + ?rpm_limit: Integer?, + ?spend: Float?, + ?team_alias: String?, + ?team_member_permissions: ::Array[String]?, + ?tpm_limit: Integer?, + ?updated_at: Time? + ) -> void + + def to_hash: -> { + team_id: String, + admins: ::Array[top], + blocked: bool, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + litellm_model_table: top, + max_budget: Float?, + max_parallel_requests: Integer?, + members: ::Array[top], + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, + model_id: Integer?, + models: ::Array[top], + object_permission: Hanzoai::OrganizationTableWithMembers::Team::ObjectPermission?, + object_permission_id: String?, + organization_id: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + spend: Float?, + team_alias: String?, + team_member_permissions: ::Array[String]?, + tpm_limit: Integer?, + updated_at: Time? + } + + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + end + + type user = + { + user_id: String, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + max_budget: Float?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, + models: ::Array[top], + object_permission: Hanzoai::OrganizationTableWithMembers::User::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + rpm_limit: Integer?, + spend: Float, + sso_user_id: String?, + teams: ::Array[String], + tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, + user_email: String?, + user_role: String? + } + + class User < Hanzoai::Internal::Type::BaseModel + attr_accessor user_id: String + + attr_accessor budget_duration: String? + + attr_accessor budget_reset_at: Time? + + attr_accessor created_at: Time? + + attr_accessor max_budget: Float? + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor model_max_budget: ::Hash[Symbol, top]? + + attr_accessor model_spend: ::Hash[Symbol, top]? + + attr_reader models: ::Array[top]? + + def models=: (::Array[top]) -> ::Array[top] + + attr_accessor object_permission: Hanzoai::OrganizationTableWithMembers::User::ObjectPermission? + + attr_accessor organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]? + + attr_accessor rpm_limit: Integer? + + attr_reader spend: Float? + + def spend=: (Float) -> Float + + attr_accessor sso_user_id: String? + + attr_reader teams: ::Array[String]? + + def teams=: (::Array[String]) -> ::Array[String] + + attr_accessor tpm_limit: Integer? + + attr_accessor updated_at: Time? + + attr_accessor user_alias: String? + + attr_accessor user_email: String? + + attr_accessor user_role: String? + + def initialize: ( + user_id: String, + ?budget_duration: String?, + ?budget_reset_at: Time?, + ?created_at: Time?, + ?max_budget: Float?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_spend: ::Hash[Symbol, top]?, + ?models: ::Array[top], + ?object_permission: Hanzoai::OrganizationTableWithMembers::User::ObjectPermission?, + ?organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + ?rpm_limit: Integer?, + ?spend: Float, + ?sso_user_id: String?, + ?teams: ::Array[String], + ?tpm_limit: Integer?, + ?updated_at: Time?, + ?user_alias: String?, + ?user_email: String?, + ?user_role: String? + ) -> void + + def to_hash: -> { + user_id: String, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + max_budget: Float?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, + models: ::Array[top], + object_permission: Hanzoai::OrganizationTableWithMembers::User::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + rpm_limit: Integer?, + spend: Float, + sso_user_id: String?, + teams: ::Array[String], + tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, + user_email: String?, + user_role: String? + } + + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + end + end + end +end diff --git a/sig/hanzoai/models/organization_update_member_params.rbs b/sig/hanzoai/models/organization_update_member_params.rbs index cbfa72de..0713f2da 100644 --- a/sig/hanzoai/models/organization_update_member_params.rbs +++ b/sig/hanzoai/models/organization_update_member_params.rbs @@ -4,7 +4,7 @@ module Hanzoai { organization_id: String, max_budget_in_organization: Float?, - role: Hanzoai::Models::OrganizationUpdateMemberParams::role?, + role: Hanzoai::Models::user_roles?, user_email: String?, user_id: String? } @@ -18,7 +18,7 @@ module Hanzoai attr_accessor max_budget_in_organization: Float? - attr_accessor role: Hanzoai::Models::OrganizationUpdateMemberParams::role? + attr_accessor role: Hanzoai::Models::user_roles? attr_accessor user_email: String? @@ -27,36 +27,20 @@ module Hanzoai def initialize: ( organization_id: String, ?max_budget_in_organization: Float?, - ?role: Hanzoai::Models::OrganizationUpdateMemberParams::role?, + ?role: Hanzoai::Models::user_roles?, ?user_email: String?, ?user_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::organization_update_member_params - - type role = - :proxy_admin - | :proxy_admin_viewer - | :org_admin - | :internal_user - | :internal_user_viewer - | :team - | :customer - - module Role - extend Hanzoai::Internal::Type::Enum - - PROXY_ADMIN: :proxy_admin - PROXY_ADMIN_VIEWER: :proxy_admin_viewer - ORG_ADMIN: :org_admin - INTERNAL_USER: :internal_user - INTERNAL_USER_VIEWER: :internal_user_viewer - TEAM: :team - CUSTOMER: :customer - - def self?.values: -> ::Array[Hanzoai::Models::OrganizationUpdateMemberParams::role] - end + def to_hash: -> { + organization_id: String, + max_budget_in_organization: Float?, + role: Hanzoai::Models::user_roles?, + user_email: String?, + user_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/organization_update_member_response.rbs b/sig/hanzoai/models/organization_update_member_response.rbs deleted file mode 100644 index ab75e8a7..00000000 --- a/sig/hanzoai/models/organization_update_member_response.rbs +++ /dev/null @@ -1,93 +0,0 @@ -module Hanzoai - module Models - type organization_update_member_response = - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? - } - - class OrganizationUpdateMemberResponse < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String - - attr_accessor updated_at: Time - - attr_accessor user_id: String - - attr_accessor budget_id: String? - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? - - def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? - ) -> void - - def to_hash: -> Hanzoai::Models::organization_update_member_response - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationUpdateMemberResponse::llm_budget_table - end - end - end -end diff --git a/sig/hanzoai/models/organization_update_params.rbs b/sig/hanzoai/models/organization_update_params.rbs index 3ba503aa..0a720eb0 100644 --- a/sig/hanzoai/models/organization_update_params.rbs +++ b/sig/hanzoai/models/organization_update_params.rbs @@ -1,47 +1,15 @@ module Hanzoai module Models type organization_update_params = - { - budget_id: String?, - metadata: top?, - models: ::Array[String]?, - organization_alias: String?, - organization_id: String?, - spend: Float?, - updated_by: String? - } - & Hanzoai::Internal::Type::request_parameters + { } & Hanzoai::Internal::Type::request_parameters class OrganizationUpdateParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor budget_id: String? + def initialize: (?request_options: Hanzoai::request_opts) -> void - attr_accessor metadata: top? - - attr_accessor models: ::Array[String]? - - attr_accessor organization_alias: String? - - attr_accessor organization_id: String? - - attr_accessor spend: Float? - - attr_accessor updated_by: String? - - def initialize: ( - ?budget_id: String?, - ?metadata: top?, - ?models: ::Array[String]?, - ?organization_alias: String?, - ?organization_id: String?, - ?spend: Float?, - ?updated_by: String?, - ?request_options: Hanzoai::request_opts - ) -> void - - def to_hash: -> Hanzoai::Models::organization_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/organization_update_response.rbs b/sig/hanzoai/models/organization_update_response.rbs deleted file mode 100644 index 6f5389c8..00000000 --- a/sig/hanzoai/models/organization_update_response.rbs +++ /dev/null @@ -1,335 +0,0 @@ -module Hanzoai - module Models - type organization_update_response = - { - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - llm_budget_table: Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable?, - members: ::Array[Hanzoai::Models::OrganizationUpdateResponse::Member], - metadata: top?, - organization_alias: String?, - organization_id: String?, - spend: Float, - teams: ::Array[Hanzoai::Models::OrganizationUpdateResponse::Team] - } - - class OrganizationUpdateResponse < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_id: String - - attr_accessor created_at: Time - - attr_accessor created_by: String - - attr_accessor models: ::Array[String] - - attr_accessor updated_at: Time - - attr_accessor updated_by: String - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable? - - attr_reader members: ::Array[Hanzoai::Models::OrganizationUpdateResponse::Member]? - - def members=: ( - ::Array[Hanzoai::Models::OrganizationUpdateResponse::Member] - ) -> ::Array[Hanzoai::Models::OrganizationUpdateResponse::Member] - - attr_accessor metadata: top? - - attr_accessor organization_alias: String? - - attr_accessor organization_id: String? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader teams: ::Array[Hanzoai::Models::OrganizationUpdateResponse::Team]? - - def teams=: ( - ::Array[Hanzoai::Models::OrganizationUpdateResponse::Team] - ) -> ::Array[Hanzoai::Models::OrganizationUpdateResponse::Team] - - def initialize: ( - budget_id: String, - created_at: Time, - created_by: String, - models: ::Array[String], - updated_at: Time, - updated_by: String, - ?llm_budget_table: Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable?, - ?members: ::Array[Hanzoai::Models::OrganizationUpdateResponse::Member], - ?metadata: top?, - ?organization_alias: String?, - ?organization_id: String?, - ?spend: Float, - ?teams: ::Array[Hanzoai::Models::OrganizationUpdateResponse::Team] - ) -> void - - def to_hash: -> Hanzoai::Models::organization_update_response - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationUpdateResponse::llm_budget_table - end - - type member = - { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? - } - - class Member < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String - - attr_accessor updated_at: Time - - attr_accessor user_id: String - - attr_accessor budget_id: String? - - attr_accessor llm_budget_table: Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable? - - attr_reader spend: Float? - - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? - - def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::OrganizationUpdateResponse::Member::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationUpdateResponse::member - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationUpdateResponse::Member::llm_budget_table - end - end - - type team = - { - team_id: String, - admins: ::Array[top], - blocked: bool, - budget_duration: String?, - budget_reset_at: Time?, - created_at: Time?, - llm_model_table: Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable?, - max_budget: Float?, - max_parallel_requests: Integer?, - members: ::Array[top], - members_with_roles: ::Array[Hanzoai::Models::Member], - metadata: top?, - model_id: Integer?, - models: ::Array[top], - organization_id: String?, - rpm_limit: Integer?, - spend: Float?, - team_alias: String?, - tpm_limit: Integer? - } - - class Team < Hanzoai::Internal::Type::BaseModel - attr_accessor team_id: String - - attr_reader admins: ::Array[top]? - - def admins=: (::Array[top]) -> ::Array[top] - - attr_reader blocked: bool? - - def blocked=: (bool) -> bool - - attr_accessor budget_duration: String? - - attr_accessor budget_reset_at: Time? - - attr_accessor created_at: Time? - - attr_accessor llm_model_table: Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_reader members: ::Array[top]? - - def members=: (::Array[top]) -> ::Array[top] - - attr_reader members_with_roles: ::Array[Hanzoai::Models::Member]? - - def members_with_roles=: ( - ::Array[Hanzoai::Models::Member] - ) -> ::Array[Hanzoai::Models::Member] - - attr_accessor metadata: top? - - attr_accessor model_id: Integer? - - attr_reader models: ::Array[top]? - - def models=: (::Array[top]) -> ::Array[top] - - attr_accessor organization_id: String? - - attr_accessor rpm_limit: Integer? - - attr_accessor spend: Float? - - attr_accessor team_alias: String? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - team_id: String, - ?admins: ::Array[top], - ?blocked: bool, - ?budget_duration: String?, - ?budget_reset_at: Time?, - ?created_at: Time?, - ?llm_model_table: Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, - ?model_id: Integer?, - ?models: ::Array[top], - ?organization_id: String?, - ?rpm_limit: Integer?, - ?spend: Float?, - ?team_alias: String?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationUpdateResponse::team - - type llm_model_table = - { - created_by: String, - updated_by: String, - model_aliases: Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable::model_aliases? - } - - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - attr_accessor created_by: String - - attr_accessor updated_by: String - - attr_accessor model_aliases: Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable::model_aliases? - - def initialize: ( - created_by: String, - updated_by: String, - ?model_aliases: Hanzoai::Models::OrganizationUpdateResponse::Team::LlmModelTable::model_aliases? - ) -> void - - def to_hash: -> Hanzoai::Models::OrganizationUpdateResponse::Team::llm_model_table - - type model_aliases = top | String - - module ModelAliases - extend Hanzoai::Internal::Type::Union - - def self?.variants: -> [top, String] - end - end - end - end - end -end diff --git a/sig/hanzoai/models/provider_list_budgets_params.rbs b/sig/hanzoai/models/provider_list_budgets_params.rbs index c2581b4b..271fdabf 100644 --- a/sig/hanzoai/models/provider_list_budgets_params.rbs +++ b/sig/hanzoai/models/provider_list_budgets_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::provider_list_budgets_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/provider_list_budgets_response.rbs b/sig/hanzoai/models/provider_list_budgets_response.rbs index 1f1f1071..1778646d 100644 --- a/sig/hanzoai/models/provider_list_budgets_response.rbs +++ b/sig/hanzoai/models/provider_list_budgets_response.rbs @@ -16,7 +16,9 @@ module Hanzoai ?providers: ::Hash[Symbol, Hanzoai::Models::ProviderListBudgetsResponse::Provider] ) -> void - def to_hash: -> Hanzoai::Models::provider_list_budgets_response + def to_hash: -> { + providers: ::Hash[Symbol, Hanzoai::Models::ProviderListBudgetsResponse::Provider] + } type provider = { @@ -42,7 +44,12 @@ module Hanzoai ?spend: Float? ) -> void - def to_hash: -> Hanzoai::Models::ProviderListBudgetsResponse::provider + def to_hash: -> { + budget_limit: Float?, + time_period: String?, + budget_reset_at: String?, + spend: Float? + } end end end diff --git a/sig/hanzoai/models/rerank_create_params.rbs b/sig/hanzoai/models/rerank_create_params.rbs index e30acb02..0d762a02 100644 --- a/sig/hanzoai/models/rerank_create_params.rbs +++ b/sig/hanzoai/models/rerank_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::rerank_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/rerank_create_response.rbs b/sig/hanzoai/models/rerank_create_response.rbs new file mode 100644 index 00000000..ac31eb89 --- /dev/null +++ b/sig/hanzoai/models/rerank_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + RerankCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/rerank_create_v1_params.rbs b/sig/hanzoai/models/rerank_create_v1_params.rbs index 8c54589c..004b6cf0 100644 --- a/sig/hanzoai/models/rerank_create_v1_params.rbs +++ b/sig/hanzoai/models/rerank_create_v1_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::rerank_create_v1_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/rerank_create_v1_response.rbs b/sig/hanzoai/models/rerank_create_v1_response.rbs new file mode 100644 index 00000000..16d5a3f5 --- /dev/null +++ b/sig/hanzoai/models/rerank_create_v1_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + RerankCreateV1Response: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/rerank_create_v2_params.rbs b/sig/hanzoai/models/rerank_create_v2_params.rbs index 6aa30fe5..ff72000f 100644 --- a/sig/hanzoai/models/rerank_create_v2_params.rbs +++ b/sig/hanzoai/models/rerank_create_v2_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::rerank_create_v2_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/rerank_create_v2_response.rbs b/sig/hanzoai/models/rerank_create_v2_response.rbs new file mode 100644 index 00000000..d773d385 --- /dev/null +++ b/sig/hanzoai/models/rerank_create_v2_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + RerankCreateV2Response: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/response_create_params.rbs b/sig/hanzoai/models/response_create_params.rbs index b0911917..09e4be57 100644 --- a/sig/hanzoai/models/response_create_params.rbs +++ b/sig/hanzoai/models/response_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::response_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/response_create_response.rbs b/sig/hanzoai/models/response_create_response.rbs new file mode 100644 index 00000000..b5c20c7c --- /dev/null +++ b/sig/hanzoai/models/response_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ResponseCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/response_delete_params.rbs b/sig/hanzoai/models/response_delete_params.rbs index f6a47246..50c13cb9 100644 --- a/sig/hanzoai/models/response_delete_params.rbs +++ b/sig/hanzoai/models/response_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::response_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/response_delete_response.rbs b/sig/hanzoai/models/response_delete_response.rbs new file mode 100644 index 00000000..618e719f --- /dev/null +++ b/sig/hanzoai/models/response_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ResponseDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/response_retrieve_params.rbs b/sig/hanzoai/models/response_retrieve_params.rbs index d2cff2c4..e7700618 100644 --- a/sig/hanzoai/models/response_retrieve_params.rbs +++ b/sig/hanzoai/models/response_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::response_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/response_retrieve_response.rbs b/sig/hanzoai/models/response_retrieve_response.rbs new file mode 100644 index 00000000..84063d37 --- /dev/null +++ b/sig/hanzoai/models/response_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ResponseRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/responses/input_item_list_params.rbs b/sig/hanzoai/models/responses/input_item_list_params.rbs index 09d1385b..11242a9f 100644 --- a/sig/hanzoai/models/responses/input_item_list_params.rbs +++ b/sig/hanzoai/models/responses/input_item_list_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Responses::input_item_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/responses/input_item_list_response.rbs b/sig/hanzoai/models/responses/input_item_list_response.rbs new file mode 100644 index 00000000..1ef95712 --- /dev/null +++ b/sig/hanzoai/models/responses/input_item_list_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Responses + InputItemListResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/route_list_params.rbs b/sig/hanzoai/models/route_list_params.rbs index b9e1ae53..21669591 100644 --- a/sig/hanzoai/models/route_list_params.rbs +++ b/sig/hanzoai/models/route_list_params.rbs @@ -8,7 +8,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::route_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/route_list_response.rbs b/sig/hanzoai/models/route_list_response.rbs new file mode 100644 index 00000000..67e42c9e --- /dev/null +++ b/sig/hanzoai/models/route_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + RouteListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/setting_retrieve_params.rbs b/sig/hanzoai/models/setting_retrieve_params.rbs index 4555343a..1d6e5e98 100644 --- a/sig/hanzoai/models/setting_retrieve_params.rbs +++ b/sig/hanzoai/models/setting_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::setting_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/setting_retrieve_response.rbs b/sig/hanzoai/models/setting_retrieve_response.rbs new file mode 100644 index 00000000..13bdef4e --- /dev/null +++ b/sig/hanzoai/models/setting_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + SettingRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/spend_calculate_spend_params.rbs b/sig/hanzoai/models/spend_calculate_spend_params.rbs index 920bbef3..ffb2a0e0 100644 --- a/sig/hanzoai/models/spend_calculate_spend_params.rbs +++ b/sig/hanzoai/models/spend_calculate_spend_params.rbs @@ -1,27 +1,36 @@ module Hanzoai module Models type spend_calculate_spend_params = - { completion_response: top?, messages: ::Array[top]?, model: String? } + { + completion_response: ::Hash[Symbol, top]?, + messages: ::Array[top]?, + model: String? + } & Hanzoai::Internal::Type::request_parameters class SpendCalculateSpendParams < Hanzoai::Internal::Type::BaseModel extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor completion_response: top? + attr_accessor completion_response: ::Hash[Symbol, top]? attr_accessor messages: ::Array[top]? attr_accessor model: String? def initialize: ( - ?completion_response: top?, + ?completion_response: ::Hash[Symbol, top]?, ?messages: ::Array[top]?, ?model: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::spend_calculate_spend_params + def to_hash: -> { + completion_response: ::Hash[Symbol, top]?, + messages: ::Array[top]?, + model: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/spend_calculate_spend_response.rbs b/sig/hanzoai/models/spend_calculate_spend_response.rbs new file mode 100644 index 00000000..56f07ae2 --- /dev/null +++ b/sig/hanzoai/models/spend_calculate_spend_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + SpendCalculateSpendResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/spend_list_logs_params.rbs b/sig/hanzoai/models/spend_list_logs_params.rbs index 76a79911..8b7b7eff 100644 --- a/sig/hanzoai/models/spend_list_logs_params.rbs +++ b/sig/hanzoai/models/spend_list_logs_params.rbs @@ -6,6 +6,7 @@ module Hanzoai end_date: String?, request_id: String?, start_date: String?, + summarize: bool, user_id: String? } & Hanzoai::Internal::Type::request_parameters @@ -22,6 +23,10 @@ module Hanzoai attr_accessor start_date: String? + attr_reader summarize: bool? + + def summarize=: (bool) -> bool + attr_accessor user_id: String? def initialize: ( @@ -29,11 +34,20 @@ module Hanzoai ?end_date: String?, ?request_id: String?, ?start_date: String?, + ?summarize: bool, ?user_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::spend_list_logs_params + def to_hash: -> { + api_key: String?, + end_date: String?, + request_id: String?, + start_date: String?, + summarize: bool, + user_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/spend_list_logs_response.rbs b/sig/hanzoai/models/spend_list_logs_response.rbs index 675fcc7d..908fe5aa 100644 --- a/sig/hanzoai/models/spend_list_logs_response.rbs +++ b/sig/hanzoai/models/spend_list_logs_response.rbs @@ -88,38 +88,58 @@ module Hanzoai ?user: String? ) -> void - def to_hash: -> Hanzoai::Models::spend_list_logs_response_item + def to_hash: -> { + api_key: String, + call_type: String, + end_time: Hanzoai::Models::SpendListLogsResponseItem::end_time?, + messages: Hanzoai::Models::SpendListLogsResponseItem::messages?, + request_id: String, + response: Hanzoai::Models::SpendListLogsResponseItem::response?, + start_time: Hanzoai::Models::SpendListLogsResponseItem::start_time?, + api_base: String?, + cache_hit: String?, + cache_key: String?, + completion_tokens: Integer?, + metadata: top, + model: String?, + prompt_tokens: Integer?, + request_tags: top, + requester_ip_address: String?, + spend: Float?, + total_tokens: Integer?, + user: String? + } type end_time = String | Time module EndTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListLogsResponseItem::end_time] end - type messages = String | ::Array[top] | top + type messages = String | ::Array[top] | ::Hash[Symbol, top] module Messages extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListLogsResponseItem::messages] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end - type response = String | ::Array[top] | top + type response = String | ::Array[top] | ::Hash[Symbol, top] module Response extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListLogsResponseItem::response] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end type start_time = String | Time @@ -127,13 +147,13 @@ module Hanzoai module StartTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListLogsResponseItem::start_time] end end type spend_list_logs_response = ::Array[Hanzoai::Models::SpendListLogsResponseItem] - SpendListLogsResponse: spend_list_logs_response + SpendListLogsResponse: Hanzoai::Internal::Type::Converter end end diff --git a/sig/hanzoai/models/spend_list_tags_params.rbs b/sig/hanzoai/models/spend_list_tags_params.rbs index 60ad8038..f527847d 100644 --- a/sig/hanzoai/models/spend_list_tags_params.rbs +++ b/sig/hanzoai/models/spend_list_tags_params.rbs @@ -18,7 +18,11 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::spend_list_tags_params + def to_hash: -> { + end_date: String?, + start_date: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/spend_list_tags_response.rbs b/sig/hanzoai/models/spend_list_tags_response.rbs index d723c9df..e77f1e1d 100644 --- a/sig/hanzoai/models/spend_list_tags_response.rbs +++ b/sig/hanzoai/models/spend_list_tags_response.rbs @@ -88,38 +88,58 @@ module Hanzoai ?user: String? ) -> void - def to_hash: -> Hanzoai::Models::spend_list_tags_response_item + def to_hash: -> { + api_key: String, + call_type: String, + end_time: Hanzoai::Models::SpendListTagsResponseItem::end_time?, + messages: Hanzoai::Models::SpendListTagsResponseItem::messages?, + request_id: String, + response: Hanzoai::Models::SpendListTagsResponseItem::response?, + start_time: Hanzoai::Models::SpendListTagsResponseItem::start_time?, + api_base: String?, + cache_hit: String?, + cache_key: String?, + completion_tokens: Integer?, + metadata: top, + model: String?, + prompt_tokens: Integer?, + request_tags: top, + requester_ip_address: String?, + spend: Float?, + total_tokens: Integer?, + user: String? + } type end_time = String | Time module EndTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListTagsResponseItem::end_time] end - type messages = String | ::Array[top] | top + type messages = String | ::Array[top] | ::Hash[Symbol, top] module Messages extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListTagsResponseItem::messages] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end - type response = String | ::Array[top] | top + type response = String | ::Array[top] | ::Hash[Symbol, top] module Response extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, ::Array[top], top] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListTagsResponseItem::response] - type union_member1_array = ::Array[top] + UnionMember1Array: Hanzoai::Internal::Type::Converter - UnionMember1Array: union_member1_array + UnionMember2Map: Hanzoai::Internal::Type::Converter end type start_time = String | Time @@ -127,13 +147,13 @@ module Hanzoai module StartTime extend Hanzoai::Internal::Type::Union - def self?.variants: -> [String, Time] + def self?.variants: -> ::Array[Hanzoai::Models::SpendListTagsResponseItem::start_time] end end type spend_list_tags_response = ::Array[Hanzoai::Models::SpendListTagsResponseItem] - SpendListTagsResponse: spend_list_tags_response + SpendListTagsResponse: Hanzoai::Internal::Type::Converter end end diff --git a/sig/hanzoai/models/team/callback_add_params.rbs b/sig/hanzoai/models/team/callback_add_params.rbs index 3600cc45..7162c060 100644 --- a/sig/hanzoai/models/team/callback_add_params.rbs +++ b/sig/hanzoai/models/team/callback_add_params.rbs @@ -6,7 +6,7 @@ module Hanzoai callback_name: String, callback_vars: ::Hash[Symbol, String], callback_type: Hanzoai::Models::Team::CallbackAddParams::callback_type?, - llm_changed_by: String + litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters @@ -20,19 +20,25 @@ module Hanzoai attr_accessor callback_type: Hanzoai::Models::Team::CallbackAddParams::callback_type? - attr_reader llm_changed_by: String? + attr_reader litellm_changed_by: String? - def llm_changed_by=: (String) -> String + def litellm_changed_by=: (String) -> String def initialize: ( callback_name: String, callback_vars: ::Hash[Symbol, String], ?callback_type: Hanzoai::Models::Team::CallbackAddParams::callback_type?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Team::callback_add_params + def to_hash: -> { + callback_name: String, + callback_vars: ::Hash[Symbol, String], + callback_type: Hanzoai::Models::Team::CallbackAddParams::callback_type?, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } type callback_type = :success | :failure | :success_and_failure diff --git a/sig/hanzoai/models/team/callback_add_response.rbs b/sig/hanzoai/models/team/callback_add_response.rbs new file mode 100644 index 00000000..2d5878f4 --- /dev/null +++ b/sig/hanzoai/models/team/callback_add_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Team + CallbackAddResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/team/callback_retrieve_params.rbs b/sig/hanzoai/models/team/callback_retrieve_params.rbs index f3de97b0..5e4bffe5 100644 --- a/sig/hanzoai/models/team/callback_retrieve_params.rbs +++ b/sig/hanzoai/models/team/callback_retrieve_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Team::callback_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/team/callback_retrieve_response.rbs b/sig/hanzoai/models/team/callback_retrieve_response.rbs new file mode 100644 index 00000000..cc72ef13 --- /dev/null +++ b/sig/hanzoai/models/team/callback_retrieve_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Team + CallbackRetrieveResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/team/model_add_params.rbs b/sig/hanzoai/models/team/model_add_params.rbs index 3c472842..14a3e069 100644 --- a/sig/hanzoai/models/team/model_add_params.rbs +++ b/sig/hanzoai/models/team/model_add_params.rbs @@ -19,7 +19,11 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Team::model_add_params + def to_hash: -> { + models: ::Array[String], + team_id: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/team/model_add_response.rbs b/sig/hanzoai/models/team/model_add_response.rbs new file mode 100644 index 00000000..6c3810b7 --- /dev/null +++ b/sig/hanzoai/models/team/model_add_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Team + ModelAddResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/team/model_remove_params.rbs b/sig/hanzoai/models/team/model_remove_params.rbs index 52f6a130..b3c573fe 100644 --- a/sig/hanzoai/models/team/model_remove_params.rbs +++ b/sig/hanzoai/models/team/model_remove_params.rbs @@ -19,7 +19,11 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::Team::model_remove_params + def to_hash: -> { + models: ::Array[String], + team_id: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/team/model_remove_response.rbs b/sig/hanzoai/models/team/model_remove_response.rbs new file mode 100644 index 00000000..40b1482a --- /dev/null +++ b/sig/hanzoai/models/team/model_remove_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Team + ModelRemoveResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/team_add_member_params.rbs b/sig/hanzoai/models/team_add_member_params.rbs index 724cc2d3..f1a1a2e9 100644 --- a/sig/hanzoai/models/team_add_member_params.rbs +++ b/sig/hanzoai/models/team_add_member_params.rbs @@ -25,18 +25,21 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_add_member_params + def to_hash: -> { + member: Hanzoai::Models::TeamAddMemberParams::member, + team_id: String, + max_budget_in_team: Float?, + request_options: Hanzoai::RequestOptions + } - type member = ::Array[Hanzoai::Models::Member] | Hanzoai::Models::Member + type member = ::Array[Hanzoai::Member] | Hanzoai::Member module Member extend Hanzoai::Internal::Type::Union - def self?.variants: -> [::Array[Hanzoai::Models::Member], Hanzoai::Models::Member] - - type member_array = ::Array[Hanzoai::Models::Member] + def self?.variants: -> ::Array[Hanzoai::Models::TeamAddMemberParams::member] - MemberArray: member_array + MemberArray: Hanzoai::Internal::Type::Converter end end end diff --git a/sig/hanzoai/models/team_add_member_response.rbs b/sig/hanzoai/models/team_add_member_response.rbs index a9767f2e..3aadc879 100644 --- a/sig/hanzoai/models/team_add_member_response.rbs +++ b/sig/hanzoai/models/team_add_member_response.rbs @@ -10,19 +10,24 @@ module Hanzoai budget_duration: String?, budget_reset_at: Time?, created_at: Time?, - llm_model_table: Hanzoai::Models::TeamAddMemberResponse::LlmModelTable?, + litellm_model_table: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable?, max_budget: Float?, max_parallel_requests: Integer?, members: ::Array[top], - members_with_roles: ::Array[Hanzoai::Models::Member], - metadata: top?, + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, model_id: Integer?, models: ::Array[top], + object_permission: Hanzoai::Models::TeamAddMemberResponse::ObjectPermission?, + object_permission_id: String?, organization_id: String?, + router_settings: ::Hash[Symbol, top]?, rpm_limit: Integer?, spend: Float?, team_alias: String?, - tpm_limit: Integer? + team_member_permissions: ::Array[String]?, + tpm_limit: Integer?, + updated_at: Time? } class TeamAddMemberResponse < Hanzoai::Internal::Type::BaseModel @@ -46,7 +51,7 @@ module Hanzoai attr_accessor created_at: Time? - attr_accessor llm_model_table: Hanzoai::Models::TeamAddMemberResponse::LlmModelTable? + attr_accessor litellm_model_table: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable? attr_accessor max_budget: Float? @@ -56,13 +61,13 @@ module Hanzoai def members=: (::Array[top]) -> ::Array[top] - attr_reader members_with_roles: ::Array[Hanzoai::Models::Member]? + attr_reader members_with_roles: ::Array[Hanzoai::Member]? def members_with_roles=: ( - ::Array[Hanzoai::Models::Member] - ) -> ::Array[Hanzoai::Models::Member] + ::Array[Hanzoai::Member] + ) -> ::Array[Hanzoai::Member] - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? attr_accessor model_id: Integer? @@ -70,16 +75,26 @@ module Hanzoai def models=: (::Array[top]) -> ::Array[top] + attr_accessor object_permission: Hanzoai::Models::TeamAddMemberResponse::ObjectPermission? + + attr_accessor object_permission_id: String? + attr_accessor organization_id: String? + attr_accessor router_settings: ::Hash[Symbol, top]? + attr_accessor rpm_limit: Integer? attr_accessor spend: Float? attr_accessor team_alias: String? + attr_accessor team_member_permissions: ::Array[String]? + attr_accessor tpm_limit: Integer? + attr_accessor updated_at: Time? + def initialize: ( team_id: String, updated_team_memberships: ::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership], @@ -89,87 +104,90 @@ module Hanzoai ?budget_duration: String?, ?budget_reset_at: Time?, ?created_at: Time?, - ?llm_model_table: Hanzoai::Models::TeamAddMemberResponse::LlmModelTable?, + ?litellm_model_table: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable?, ?max_budget: Float?, ?max_parallel_requests: Integer?, ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, + ?members_with_roles: ::Array[Hanzoai::Member], + ?metadata: ::Hash[Symbol, top]?, ?model_id: Integer?, ?models: ::Array[top], + ?object_permission: Hanzoai::Models::TeamAddMemberResponse::ObjectPermission?, + ?object_permission_id: String?, ?organization_id: String?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, ?spend: Float?, ?team_alias: String?, - ?tpm_limit: Integer? + ?team_member_permissions: ::Array[String]?, + ?tpm_limit: Integer?, + ?updated_at: Time? ) -> void - def to_hash: -> Hanzoai::Models::team_add_member_response + def to_hash: -> { + team_id: String, + updated_team_memberships: ::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership], + updated_users: ::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser], + admins: ::Array[top], + blocked: bool, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + litellm_model_table: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable?, + max_budget: Float?, + max_parallel_requests: Integer?, + members: ::Array[top], + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, + model_id: Integer?, + models: ::Array[top], + object_permission: Hanzoai::Models::TeamAddMemberResponse::ObjectPermission?, + object_permission_id: String?, + organization_id: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + spend: Float?, + team_alias: String?, + team_member_permissions: ::Array[String]?, + tpm_limit: Integer?, + updated_at: Time? + } type updated_team_membership = { - budget_id: String, - llm_budget_table: Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable?, + litellm_budget_table: Hanzoai::BudgetTable?, team_id: String, - user_id: String + user_id: String, + budget_id: String?, + spend: Float? } class UpdatedTeamMembership < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_id: String - - attr_accessor llm_budget_table: Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable? + attr_accessor litellm_budget_table: Hanzoai::BudgetTable? attr_accessor team_id: String attr_accessor user_id: String + attr_accessor budget_id: String? + + attr_accessor spend: Float? + def initialize: ( - budget_id: String, - llm_budget_table: Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::LlmBudgetTable?, + litellm_budget_table: Hanzoai::BudgetTable?, team_id: String, - user_id: String + user_id: String, + ?budget_id: String?, + ?spend: Float? ) -> void - def to_hash: -> Hanzoai::Models::TeamAddMemberResponse::updated_team_membership - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership::llm_budget_table - end + def to_hash: -> { + litellm_budget_table: Hanzoai::BudgetTable?, + team_id: String, + user_id: String, + budget_id: String?, + spend: Float? + } end type updated_user = @@ -177,17 +195,21 @@ module Hanzoai user_id: String, budget_duration: String?, budget_reset_at: Time?, + created_at: Time?, max_budget: Float?, - metadata: top?, - model_max_budget: top?, - model_spend: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, models: ::Array[top], - organization_memberships: ::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership]?, + object_permission: Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, rpm_limit: Integer?, spend: Float, sso_user_id: String?, teams: ::Array[String], tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, user_email: String?, user_role: String? } @@ -199,19 +221,23 @@ module Hanzoai attr_accessor budget_reset_at: Time? + attr_accessor created_at: Time? + attr_accessor max_budget: Float? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_spend: top? + attr_accessor model_spend: ::Hash[Symbol, top]? attr_reader models: ::Array[top]? def models=: (::Array[top]) -> ::Array[top] - attr_accessor organization_memberships: ::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership]? + attr_accessor object_permission: Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission? + + attr_accessor organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]? attr_accessor rpm_limit: Integer? @@ -227,6 +253,10 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor updated_at: Time? + + attr_accessor user_alias: String? + attr_accessor user_email: String? attr_accessor user_role: String? @@ -235,144 +265,191 @@ module Hanzoai user_id: String, ?budget_duration: String?, ?budget_reset_at: Time?, + ?created_at: Time?, ?max_budget: Float?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_spend: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_spend: ::Hash[Symbol, top]?, ?models: ::Array[top], - ?organization_memberships: ::Array[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership]?, + ?object_permission: Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission?, + ?organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, ?rpm_limit: Integer?, ?spend: Float, ?sso_user_id: String?, ?teams: ::Array[String], ?tpm_limit: Integer?, + ?updated_at: Time?, + ?user_alias: String?, ?user_email: String?, ?user_role: String? ) -> void - def to_hash: -> Hanzoai::Models::TeamAddMemberResponse::updated_user + def to_hash: -> { + user_id: String, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + max_budget: Float?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_spend: ::Hash[Symbol, top]?, + models: ::Array[top], + object_permission: Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::ObjectPermission?, + organization_memberships: ::Array[Hanzoai::OrganizationMembershipTable]?, + rpm_limit: Integer?, + spend: Float, + sso_user_id: String?, + teams: ::Array[String], + tpm_limit: Integer?, + updated_at: Time?, + user_alias: String?, + user_email: String?, + user_role: String? + } - type organization_membership = + type object_permission = { - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - budget_id: String?, - llm_budget_table: Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable?, - spend: Float, - user: top, - user_role: String? + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? } - class OrganizationMembership < Hanzoai::Internal::Type::BaseModel - attr_accessor created_at: Time - - attr_accessor organization_id: String + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String - attr_accessor updated_at: Time + attr_accessor agent_access_groups: ::Array[String]? - attr_accessor user_id: String + attr_accessor agents: ::Array[String]? - attr_accessor budget_id: String? + attr_accessor mcp_access_groups: ::Array[String]? - attr_accessor llm_budget_table: Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable? + attr_accessor mcp_servers: ::Array[String]? - attr_reader spend: Float? + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? - def spend=: (Float) -> Float - - attr_reader user: top? - - def user=: (top) -> top - - attr_accessor user_role: String? + attr_accessor vector_stores: ::Array[String]? def initialize: ( - created_at: Time, - organization_id: String, - updated_at: Time, - user_id: String, - ?budget_id: String?, - ?llm_budget_table: Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::LlmBudgetTable?, - ?spend: Float, - ?user: top, - ?user_role: String? + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? ) -> void - def to_hash: -> Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::organization_membership - - type llm_budget_table = - { - budget_duration: String?, - max_budget: Float?, - max_parallel_requests: Integer?, - model_max_budget: top?, - rpm_limit: Integer?, - soft_budget: Float?, - tpm_limit: Integer? - } - - class LlmBudgetTable < Hanzoai::Internal::Type::BaseModel - attr_accessor budget_duration: String? - - attr_accessor max_budget: Float? - - attr_accessor max_parallel_requests: Integer? - - attr_accessor model_max_budget: top? - - attr_accessor rpm_limit: Integer? - - attr_accessor soft_budget: Float? - - attr_accessor tpm_limit: Integer? - - def initialize: ( - ?budget_duration: String?, - ?max_budget: Float?, - ?max_parallel_requests: Integer?, - ?model_max_budget: top?, - ?rpm_limit: Integer?, - ?soft_budget: Float?, - ?tpm_limit: Integer? - ) -> void - - def to_hash: -> Hanzoai::Models::TeamAddMemberResponse::UpdatedUser::OrganizationMembership::llm_budget_table - end + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } end end - type llm_model_table = + type litellm_model_table = { created_by: String, updated_by: String, - model_aliases: Hanzoai::Models::TeamAddMemberResponse::LlmModelTable::model_aliases? + id: Integer?, + model_aliases: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::model_aliases?, + team: top } - class LlmModelTable < Hanzoai::Internal::Type::BaseModel + class LitellmModelTable < Hanzoai::Internal::Type::BaseModel attr_accessor created_by: String attr_accessor updated_by: String - attr_accessor model_aliases: Hanzoai::Models::TeamAddMemberResponse::LlmModelTable::model_aliases? + attr_accessor id: Integer? + + attr_accessor model_aliases: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::model_aliases? + + attr_reader team: top? + + def team=: (top) -> top def initialize: ( created_by: String, updated_by: String, - ?model_aliases: Hanzoai::Models::TeamAddMemberResponse::LlmModelTable::model_aliases? + ?id: Integer?, + ?model_aliases: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::model_aliases?, + ?team: top ) -> void - def to_hash: -> Hanzoai::Models::TeamAddMemberResponse::llm_model_table + def to_hash: -> { + created_by: String, + updated_by: String, + id: Integer?, + model_aliases: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::model_aliases?, + team: top + } - type model_aliases = top | String + type model_aliases = ::Hash[Symbol, top] | String module ModelAliases extend Hanzoai::Internal::Type::Union - def self?.variants: -> [top, String] + def self?.variants: -> ::Array[Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable::model_aliases] + + UnionMember0Map: Hanzoai::Internal::Type::Converter end end + + type object_permission = + { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String + + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end end end end diff --git a/sig/hanzoai/models/team_block_params.rbs b/sig/hanzoai/models/team_block_params.rbs index da7b6f50..2d4f9a2f 100644 --- a/sig/hanzoai/models/team_block_params.rbs +++ b/sig/hanzoai/models/team_block_params.rbs @@ -8,7 +8,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::team_block_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/team_block_response.rbs b/sig/hanzoai/models/team_block_response.rbs new file mode 100644 index 00000000..5998c87b --- /dev/null +++ b/sig/hanzoai/models/team_block_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamBlockResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_create_params.rbs b/sig/hanzoai/models/team_create_params.rbs index ed9f4497..114a2ad3 100644 --- a/sig/hanzoai/models/team_create_params.rbs +++ b/sig/hanzoai/models/team_create_params.rbs @@ -3,22 +3,37 @@ module Hanzoai type team_create_params = { admins: ::Array[top], + allowed_passthrough_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex]?, blocked: bool, budget_duration: String?, guardrails: ::Array[String]?, max_budget: Float?, members: ::Array[top], - members_with_roles: ::Array[Hanzoai::Models::Member], - metadata: top?, - model_aliases: top?, + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, + model_aliases: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, Integer]?, + model_tpm_limit: ::Hash[Symbol, Integer]?, models: ::Array[top], + object_permission: Hanzoai::TeamCreateParams::ObjectPermission?, organization_id: String?, + prompts: ::Array[String]?, + router_settings: ::Hash[Symbol, top]?, rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::TeamCreateParams::rpm_limit_type?, + secret_manager_settings: ::Hash[Symbol, top]?, tags: ::Array[top]?, team_alias: String?, team_id: String?, + team_member_budget: Float?, + team_member_key_duration: String?, + team_member_permissions: ::Array[String]?, + team_member_rpm_limit: Integer?, + team_member_tpm_limit: Integer?, tpm_limit: Integer?, - llm_changed_by: String + tpm_limit_type: Hanzoai::Models::TeamCreateParams::tpm_limit_type?, + litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters @@ -30,6 +45,10 @@ module Hanzoai def admins=: (::Array[top]) -> ::Array[top] + attr_accessor allowed_passthrough_routes: ::Array[top]? + + attr_accessor allowed_vector_store_indexes: ::Array[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex]? + attr_reader blocked: bool? def blocked=: (bool) -> bool @@ -44,58 +63,230 @@ module Hanzoai def members=: (::Array[top]) -> ::Array[top] - attr_reader members_with_roles: ::Array[Hanzoai::Models::Member]? + attr_reader members_with_roles: ::Array[Hanzoai::Member]? def members_with_roles=: ( - ::Array[Hanzoai::Models::Member] - ) -> ::Array[Hanzoai::Models::Member] + ::Array[Hanzoai::Member] + ) -> ::Array[Hanzoai::Member] + + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor model_aliases: ::Hash[Symbol, top]? - attr_accessor metadata: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, Integer]? - attr_accessor model_aliases: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, Integer]? attr_reader models: ::Array[top]? def models=: (::Array[top]) -> ::Array[top] + attr_accessor object_permission: Hanzoai::TeamCreateParams::ObjectPermission? + attr_accessor organization_id: String? + attr_accessor prompts: ::Array[String]? + + attr_accessor router_settings: ::Hash[Symbol, top]? + attr_accessor rpm_limit: Integer? + attr_accessor rpm_limit_type: Hanzoai::Models::TeamCreateParams::rpm_limit_type? + + attr_accessor secret_manager_settings: ::Hash[Symbol, top]? + attr_accessor tags: ::Array[top]? attr_accessor team_alias: String? attr_accessor team_id: String? + attr_accessor team_member_budget: Float? + + attr_accessor team_member_key_duration: String? + + attr_accessor team_member_permissions: ::Array[String]? + + attr_accessor team_member_rpm_limit: Integer? + + attr_accessor team_member_tpm_limit: Integer? + attr_accessor tpm_limit: Integer? - attr_reader llm_changed_by: String? + attr_accessor tpm_limit_type: Hanzoai::Models::TeamCreateParams::tpm_limit_type? - def llm_changed_by=: (String) -> String + attr_reader litellm_changed_by: String? + + def litellm_changed_by=: (String) -> String def initialize: ( ?admins: ::Array[top], + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex]?, ?blocked: bool, ?budget_duration: String?, ?guardrails: ::Array[String]?, ?max_budget: Float?, ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, - ?model_aliases: top?, + ?members_with_roles: ::Array[Hanzoai::Member], + ?metadata: ::Hash[Symbol, top]?, + ?model_aliases: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, Integer]?, + ?model_tpm_limit: ::Hash[Symbol, Integer]?, ?models: ::Array[top], + ?object_permission: Hanzoai::TeamCreateParams::ObjectPermission?, ?organization_id: String?, + ?prompts: ::Array[String]?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::TeamCreateParams::rpm_limit_type?, + ?secret_manager_settings: ::Hash[Symbol, top]?, ?tags: ::Array[top]?, ?team_alias: String?, ?team_id: String?, + ?team_member_budget: Float?, + ?team_member_key_duration: String?, + ?team_member_permissions: ::Array[String]?, + ?team_member_rpm_limit: Integer?, + ?team_member_tpm_limit: Integer?, ?tpm_limit: Integer?, - ?llm_changed_by: String, + ?tpm_limit_type: Hanzoai::Models::TeamCreateParams::tpm_limit_type?, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_create_params + def to_hash: -> { + admins: ::Array[top], + allowed_passthrough_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex]?, + blocked: bool, + budget_duration: String?, + guardrails: ::Array[String]?, + max_budget: Float?, + members: ::Array[top], + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, + model_aliases: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, Integer]?, + model_tpm_limit: ::Hash[Symbol, Integer]?, + models: ::Array[top], + object_permission: Hanzoai::TeamCreateParams::ObjectPermission?, + organization_id: String?, + prompts: ::Array[String]?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::TeamCreateParams::rpm_limit_type?, + secret_manager_settings: ::Hash[Symbol, top]?, + tags: ::Array[top]?, + team_alias: String?, + team_id: String?, + team_member_budget: Float?, + team_member_key_duration: String?, + team_member_permissions: ::Array[String]?, + team_member_rpm_limit: Integer?, + team_member_tpm_limit: Integer?, + tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::TeamCreateParams::tpm_limit_type?, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + + type allowed_vector_store_index = + { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::TeamCreateParams::AllowedVectorStoreIndex::index_permission] + } + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + attr_accessor index_name: String + + attr_accessor index_permissions: ::Array[Hanzoai::Models::TeamCreateParams::AllowedVectorStoreIndex::index_permission] + + def initialize: ( + index_name: String, + index_permissions: ::Array[Hanzoai::Models::TeamCreateParams::AllowedVectorStoreIndex::index_permission] + ) -> void + + def to_hash: -> { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::TeamCreateParams::AllowedVectorStoreIndex::index_permission] + } + + type index_permission = :read | :write + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ: :read + WRITE: :write + + def self?.values: -> ::Array[Hanzoai::Models::TeamCreateParams::AllowedVectorStoreIndex::index_permission] + end + end + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type rpm_limit_type = :guaranteed_throughput | :best_effort_throughput + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + + def self?.values: -> ::Array[Hanzoai::Models::TeamCreateParams::rpm_limit_type] + end + + type tpm_limit_type = :guaranteed_throughput | :best_effort_throughput + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + + def self?.values: -> ::Array[Hanzoai::Models::TeamCreateParams::tpm_limit_type] + end end end end diff --git a/sig/hanzoai/models/team_create_response.rbs b/sig/hanzoai/models/team_create_response.rbs index d934b5ac..fc2e1708 100644 --- a/sig/hanzoai/models/team_create_response.rbs +++ b/sig/hanzoai/models/team_create_response.rbs @@ -8,19 +8,24 @@ module Hanzoai budget_duration: String?, budget_reset_at: Time?, created_at: Time?, - llm_model_table: Hanzoai::Models::TeamCreateResponse::LlmModelTable?, + litellm_model_table: top, max_budget: Float?, max_parallel_requests: Integer?, members: ::Array[top], - members_with_roles: ::Array[Hanzoai::Models::Member], - metadata: top?, + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, model_id: Integer?, models: ::Array[top], + object_permission: Hanzoai::Models::TeamCreateResponse::ObjectPermission?, + object_permission_id: String?, organization_id: String?, + router_settings: ::Hash[Symbol, top]?, rpm_limit: Integer?, spend: Float?, team_alias: String?, - tpm_limit: Integer? + team_member_permissions: ::Array[String]?, + tpm_limit: Integer?, + updated_at: Time? } class TeamCreateResponse < Hanzoai::Internal::Type::BaseModel @@ -40,7 +45,9 @@ module Hanzoai attr_accessor created_at: Time? - attr_accessor llm_model_table: Hanzoai::Models::TeamCreateResponse::LlmModelTable? + attr_reader litellm_model_table: top? + + def litellm_model_table=: (top) -> top attr_accessor max_budget: Float? @@ -50,13 +57,13 @@ module Hanzoai def members=: (::Array[top]) -> ::Array[top] - attr_reader members_with_roles: ::Array[Hanzoai::Models::Member]? + attr_reader members_with_roles: ::Array[Hanzoai::Member]? def members_with_roles=: ( - ::Array[Hanzoai::Models::Member] - ) -> ::Array[Hanzoai::Models::Member] + ::Array[Hanzoai::Member] + ) -> ::Array[Hanzoai::Member] - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? attr_accessor model_id: Integer? @@ -64,16 +71,26 @@ module Hanzoai def models=: (::Array[top]) -> ::Array[top] + attr_accessor object_permission: Hanzoai::Models::TeamCreateResponse::ObjectPermission? + + attr_accessor object_permission_id: String? + attr_accessor organization_id: String? + attr_accessor router_settings: ::Hash[Symbol, top]? + attr_accessor rpm_limit: Integer? attr_accessor spend: Float? attr_accessor team_alias: String? + attr_accessor team_member_permissions: ::Array[String]? + attr_accessor tpm_limit: Integer? + attr_accessor updated_at: Time? + def initialize: ( team_id: String, ?admins: ::Array[top], @@ -81,52 +98,98 @@ module Hanzoai ?budget_duration: String?, ?budget_reset_at: Time?, ?created_at: Time?, - ?llm_model_table: Hanzoai::Models::TeamCreateResponse::LlmModelTable?, + ?litellm_model_table: top, ?max_budget: Float?, ?max_parallel_requests: Integer?, ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, + ?members_with_roles: ::Array[Hanzoai::Member], + ?metadata: ::Hash[Symbol, top]?, ?model_id: Integer?, ?models: ::Array[top], + ?object_permission: Hanzoai::Models::TeamCreateResponse::ObjectPermission?, + ?object_permission_id: String?, ?organization_id: String?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, ?spend: Float?, ?team_alias: String?, - ?tpm_limit: Integer? + ?team_member_permissions: ::Array[String]?, + ?tpm_limit: Integer?, + ?updated_at: Time? ) -> void - def to_hash: -> Hanzoai::Models::team_create_response + def to_hash: -> { + team_id: String, + admins: ::Array[top], + blocked: bool, + budget_duration: String?, + budget_reset_at: Time?, + created_at: Time?, + litellm_model_table: top, + max_budget: Float?, + max_parallel_requests: Integer?, + members: ::Array[top], + members_with_roles: ::Array[Hanzoai::Member], + metadata: ::Hash[Symbol, top]?, + model_id: Integer?, + models: ::Array[top], + object_permission: Hanzoai::Models::TeamCreateResponse::ObjectPermission?, + object_permission_id: String?, + organization_id: String?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + spend: Float?, + team_alias: String?, + team_member_permissions: ::Array[String]?, + tpm_limit: Integer?, + updated_at: Time? + } - type llm_model_table = + type object_permission = { - created_by: String, - updated_by: String, - model_aliases: Hanzoai::Models::TeamCreateResponse::LlmModelTable::model_aliases? + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? } - class LlmModelTable < Hanzoai::Internal::Type::BaseModel - attr_accessor created_by: String + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor object_permission_id: String - attr_accessor updated_by: String + attr_accessor agent_access_groups: ::Array[String]? - attr_accessor model_aliases: Hanzoai::Models::TeamCreateResponse::LlmModelTable::model_aliases? + attr_accessor agents: ::Array[String]? - def initialize: ( - created_by: String, - updated_by: String, - ?model_aliases: Hanzoai::Models::TeamCreateResponse::LlmModelTable::model_aliases? - ) -> void + attr_accessor mcp_access_groups: ::Array[String]? - def to_hash: -> Hanzoai::Models::TeamCreateResponse::llm_model_table + attr_accessor mcp_servers: ::Array[String]? - type model_aliases = top | String + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? - module ModelAliases - extend Hanzoai::Internal::Type::Union + attr_accessor vector_stores: ::Array[String]? - def self?.variants: -> [top, String] - end + def initialize: ( + object_permission_id: String, + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + object_permission_id: String, + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } end end end diff --git a/sig/hanzoai/models/team_delete_params.rbs b/sig/hanzoai/models/team_delete_params.rbs index e0517dc1..8ad054ab 100644 --- a/sig/hanzoai/models/team_delete_params.rbs +++ b/sig/hanzoai/models/team_delete_params.rbs @@ -1,7 +1,7 @@ module Hanzoai module Models type team_delete_params = - { team_ids: ::Array[String], llm_changed_by: String } + { team_ids: ::Array[String], litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters class TeamDeleteParams < Hanzoai::Internal::Type::BaseModel @@ -10,17 +10,21 @@ module Hanzoai attr_accessor team_ids: ::Array[String] - attr_reader llm_changed_by: String? + attr_reader litellm_changed_by: String? - def llm_changed_by=: (String) -> String + def litellm_changed_by=: (String) -> String def initialize: ( team_ids: ::Array[String], - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_delete_params + def to_hash: -> { + team_ids: ::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/team_delete_response.rbs b/sig/hanzoai/models/team_delete_response.rbs new file mode 100644 index 00000000..de3c86d3 --- /dev/null +++ b/sig/hanzoai/models/team_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_disable_logging_params.rbs b/sig/hanzoai/models/team_disable_logging_params.rbs index 881f99e5..f478b35c 100644 --- a/sig/hanzoai/models/team_disable_logging_params.rbs +++ b/sig/hanzoai/models/team_disable_logging_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::team_disable_logging_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/team_disable_logging_response.rbs b/sig/hanzoai/models/team_disable_logging_response.rbs new file mode 100644 index 00000000..15917323 --- /dev/null +++ b/sig/hanzoai/models/team_disable_logging_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamDisableLoggingResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_list_available_params.rbs b/sig/hanzoai/models/team_list_available_params.rbs index 9018e70a..db2e3c73 100644 --- a/sig/hanzoai/models/team_list_available_params.rbs +++ b/sig/hanzoai/models/team_list_available_params.rbs @@ -16,7 +16,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_list_available_params + def to_hash: -> { + response_model: top, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/team_list_available_response.rbs b/sig/hanzoai/models/team_list_available_response.rbs new file mode 100644 index 00000000..f7f4c9e6 --- /dev/null +++ b/sig/hanzoai/models/team_list_available_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamListAvailableResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_list_params.rbs b/sig/hanzoai/models/team_list_params.rbs index 4e259a43..9fa07931 100644 --- a/sig/hanzoai/models/team_list_params.rbs +++ b/sig/hanzoai/models/team_list_params.rbs @@ -18,7 +18,11 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_list_params + def to_hash: -> { + organization_id: String?, + user_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/team_list_response.rbs b/sig/hanzoai/models/team_list_response.rbs new file mode 100644 index 00000000..ca700399 --- /dev/null +++ b/sig/hanzoai/models/team_list_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamListResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_remove_member_params.rbs b/sig/hanzoai/models/team_remove_member_params.rbs index 8e5ca9af..924b68d8 100644 --- a/sig/hanzoai/models/team_remove_member_params.rbs +++ b/sig/hanzoai/models/team_remove_member_params.rbs @@ -21,7 +21,12 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_remove_member_params + def to_hash: -> { + team_id: String, + user_email: String?, + user_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/team_remove_member_response.rbs b/sig/hanzoai/models/team_remove_member_response.rbs new file mode 100644 index 00000000..241dfd2c --- /dev/null +++ b/sig/hanzoai/models/team_remove_member_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamRemoveMemberResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_retrieve_info_params.rbs b/sig/hanzoai/models/team_retrieve_info_params.rbs index 4cf5990e..374695ac 100644 --- a/sig/hanzoai/models/team_retrieve_info_params.rbs +++ b/sig/hanzoai/models/team_retrieve_info_params.rbs @@ -16,7 +16,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_retrieve_info_params + def to_hash: -> { + team_id: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/team_retrieve_info_response.rbs b/sig/hanzoai/models/team_retrieve_info_response.rbs new file mode 100644 index 00000000..43ecb71c --- /dev/null +++ b/sig/hanzoai/models/team_retrieve_info_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamRetrieveInfoResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_unblock_params.rbs b/sig/hanzoai/models/team_unblock_params.rbs index bf21bc37..7ab530f0 100644 --- a/sig/hanzoai/models/team_unblock_params.rbs +++ b/sig/hanzoai/models/team_unblock_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::team_unblock_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/team_unblock_response.rbs b/sig/hanzoai/models/team_unblock_response.rbs new file mode 100644 index 00000000..05c0cd32 --- /dev/null +++ b/sig/hanzoai/models/team_unblock_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamUnblockResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/team_update_member_params.rbs b/sig/hanzoai/models/team_update_member_params.rbs index 4596e161..2248d79e 100644 --- a/sig/hanzoai/models/team_update_member_params.rbs +++ b/sig/hanzoai/models/team_update_member_params.rbs @@ -5,6 +5,8 @@ module Hanzoai team_id: String, max_budget_in_team: Float?, role: Hanzoai::Models::TeamUpdateMemberParams::role?, + rpm_limit: Integer?, + tpm_limit: Integer?, user_email: String?, user_id: String? } @@ -20,6 +22,10 @@ module Hanzoai attr_accessor role: Hanzoai::Models::TeamUpdateMemberParams::role? + attr_accessor rpm_limit: Integer? + + attr_accessor tpm_limit: Integer? + attr_accessor user_email: String? attr_accessor user_id: String? @@ -28,12 +34,23 @@ module Hanzoai team_id: String, ?max_budget_in_team: Float?, ?role: Hanzoai::Models::TeamUpdateMemberParams::role?, + ?rpm_limit: Integer?, + ?tpm_limit: Integer?, ?user_email: String?, ?user_id: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_update_member_params + def to_hash: -> { + team_id: String, + max_budget_in_team: Float?, + role: Hanzoai::Models::TeamUpdateMemberParams::role?, + rpm_limit: Integer?, + tpm_limit: Integer?, + user_email: String?, + user_id: String?, + request_options: Hanzoai::RequestOptions + } type role = :admin | :user diff --git a/sig/hanzoai/models/team_update_member_response.rbs b/sig/hanzoai/models/team_update_member_response.rbs index d754df1a..d24a9f83 100644 --- a/sig/hanzoai/models/team_update_member_response.rbs +++ b/sig/hanzoai/models/team_update_member_response.rbs @@ -5,6 +5,8 @@ module Hanzoai team_id: String, user_id: String, max_budget_in_team: Float?, + rpm_limit: Integer?, + tpm_limit: Integer?, user_email: String? } @@ -15,16 +17,29 @@ module Hanzoai attr_accessor max_budget_in_team: Float? + attr_accessor rpm_limit: Integer? + + attr_accessor tpm_limit: Integer? + attr_accessor user_email: String? def initialize: ( team_id: String, user_id: String, ?max_budget_in_team: Float?, + ?rpm_limit: Integer?, + ?tpm_limit: Integer?, ?user_email: String? ) -> void - def to_hash: -> Hanzoai::Models::team_update_member_response + def to_hash: -> { + team_id: String, + user_id: String, + max_budget_in_team: Float?, + rpm_limit: Integer?, + tpm_limit: Integer?, + user_email: String? + } end end end diff --git a/sig/hanzoai/models/team_update_params.rbs b/sig/hanzoai/models/team_update_params.rbs index 362af1b0..5e29e67b 100644 --- a/sig/hanzoai/models/team_update_params.rbs +++ b/sig/hanzoai/models/team_update_params.rbs @@ -3,19 +3,32 @@ module Hanzoai type team_update_params = { team_id: String, + allowed_passthrough_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex]?, blocked: bool?, budget_duration: String?, guardrails: ::Array[String]?, max_budget: Float?, - metadata: top?, - model_aliases: top?, + metadata: ::Hash[Symbol, top]?, + model_aliases: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, Integer]?, + model_tpm_limit: ::Hash[Symbol, Integer]?, models: ::Array[top]?, + object_permission: Hanzoai::TeamUpdateParams::ObjectPermission?, organization_id: String?, + prompts: ::Array[String]?, + router_settings: ::Hash[Symbol, top]?, rpm_limit: Integer?, + secret_manager_settings: ::Hash[Symbol, top]?, tags: ::Array[top]?, team_alias: String?, + team_member_budget: Float?, + team_member_budget_duration: String?, + team_member_key_duration: String?, + team_member_rpm_limit: Integer?, + team_member_tpm_limit: Integer?, tpm_limit: Integer?, - llm_changed_by: String + litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters @@ -25,6 +38,10 @@ module Hanzoai attr_accessor team_id: String + attr_accessor allowed_passthrough_routes: ::Array[top]? + + attr_accessor allowed_vector_store_indexes: ::Array[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex]? + attr_accessor blocked: bool? attr_accessor budget_duration: String? @@ -33,45 +50,184 @@ module Hanzoai attr_accessor max_budget: Float? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? + + attr_accessor model_aliases: ::Hash[Symbol, top]? - attr_accessor model_aliases: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, Integer]? + + attr_accessor model_tpm_limit: ::Hash[Symbol, Integer]? attr_accessor models: ::Array[top]? + attr_accessor object_permission: Hanzoai::TeamUpdateParams::ObjectPermission? + attr_accessor organization_id: String? + attr_accessor prompts: ::Array[String]? + + attr_accessor router_settings: ::Hash[Symbol, top]? + attr_accessor rpm_limit: Integer? + attr_accessor secret_manager_settings: ::Hash[Symbol, top]? + attr_accessor tags: ::Array[top]? attr_accessor team_alias: String? + attr_accessor team_member_budget: Float? + + attr_accessor team_member_budget_duration: String? + + attr_accessor team_member_key_duration: String? + + attr_accessor team_member_rpm_limit: Integer? + + attr_accessor team_member_tpm_limit: Integer? + attr_accessor tpm_limit: Integer? - attr_reader llm_changed_by: String? + attr_reader litellm_changed_by: String? - def llm_changed_by=: (String) -> String + def litellm_changed_by=: (String) -> String def initialize: ( team_id: String, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex]?, ?blocked: bool?, ?budget_duration: String?, ?guardrails: ::Array[String]?, ?max_budget: Float?, - ?metadata: top?, - ?model_aliases: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_aliases: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, Integer]?, + ?model_tpm_limit: ::Hash[Symbol, Integer]?, ?models: ::Array[top]?, + ?object_permission: Hanzoai::TeamUpdateParams::ObjectPermission?, ?organization_id: String?, + ?prompts: ::Array[String]?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, + ?secret_manager_settings: ::Hash[Symbol, top]?, ?tags: ::Array[top]?, ?team_alias: String?, + ?team_member_budget: Float?, + ?team_member_budget_duration: String?, + ?team_member_key_duration: String?, + ?team_member_rpm_limit: Integer?, + ?team_member_tpm_limit: Integer?, ?tpm_limit: Integer?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::team_update_params + def to_hash: -> { + team_id: String, + allowed_passthrough_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex]?, + blocked: bool?, + budget_duration: String?, + guardrails: ::Array[String]?, + max_budget: Float?, + metadata: ::Hash[Symbol, top]?, + model_aliases: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, Integer]?, + model_tpm_limit: ::Hash[Symbol, Integer]?, + models: ::Array[top]?, + object_permission: Hanzoai::TeamUpdateParams::ObjectPermission?, + organization_id: String?, + prompts: ::Array[String]?, + router_settings: ::Hash[Symbol, top]?, + rpm_limit: Integer?, + secret_manager_settings: ::Hash[Symbol, top]?, + tags: ::Array[top]?, + team_alias: String?, + team_member_budget: Float?, + team_member_budget_duration: String?, + team_member_key_duration: String?, + team_member_rpm_limit: Integer?, + team_member_tpm_limit: Integer?, + tpm_limit: Integer?, + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } + + type allowed_vector_store_index = + { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::TeamUpdateParams::AllowedVectorStoreIndex::index_permission] + } + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + attr_accessor index_name: String + + attr_accessor index_permissions: ::Array[Hanzoai::Models::TeamUpdateParams::AllowedVectorStoreIndex::index_permission] + + def initialize: ( + index_name: String, + index_permissions: ::Array[Hanzoai::Models::TeamUpdateParams::AllowedVectorStoreIndex::index_permission] + ) -> void + + def to_hash: -> { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::TeamUpdateParams::AllowedVectorStoreIndex::index_permission] + } + + type index_permission = :read | :write + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ: :read + WRITE: :write + + def self?.values: -> ::Array[Hanzoai::Models::TeamUpdateParams::AllowedVectorStoreIndex::index_permission] + end + end + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end end end end diff --git a/sig/hanzoai/models/team_update_response.rbs b/sig/hanzoai/models/team_update_response.rbs new file mode 100644 index 00000000..6f450884 --- /dev/null +++ b/sig/hanzoai/models/team_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TeamUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/test_ping_params.rbs b/sig/hanzoai/models/test_ping_params.rbs index 6263a317..1659b7c4 100644 --- a/sig/hanzoai/models/test_ping_params.rbs +++ b/sig/hanzoai/models/test_ping_params.rbs @@ -8,7 +8,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::test_ping_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/test_ping_response.rbs b/sig/hanzoai/models/test_ping_response.rbs new file mode 100644 index 00000000..6597b215 --- /dev/null +++ b/sig/hanzoai/models/test_ping_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + TestPingResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/thread_create_params.rbs b/sig/hanzoai/models/thread_create_params.rbs index a7254a7d..76c71538 100644 --- a/sig/hanzoai/models/thread_create_params.rbs +++ b/sig/hanzoai/models/thread_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::thread_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/thread_create_response.rbs b/sig/hanzoai/models/thread_create_response.rbs new file mode 100644 index 00000000..0dd623c1 --- /dev/null +++ b/sig/hanzoai/models/thread_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ThreadCreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/thread_retrieve_params.rbs b/sig/hanzoai/models/thread_retrieve_params.rbs index d237cca8..10c1c8d8 100644 --- a/sig/hanzoai/models/thread_retrieve_params.rbs +++ b/sig/hanzoai/models/thread_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::thread_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/thread_retrieve_response.rbs b/sig/hanzoai/models/thread_retrieve_response.rbs new file mode 100644 index 00000000..31915337 --- /dev/null +++ b/sig/hanzoai/models/thread_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + ThreadRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/threads/message_create_params.rbs b/sig/hanzoai/models/threads/message_create_params.rbs index 6b5576fe..9a0fe0d8 100644 --- a/sig/hanzoai/models/threads/message_create_params.rbs +++ b/sig/hanzoai/models/threads/message_create_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Threads::message_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/threads/message_create_response.rbs b/sig/hanzoai/models/threads/message_create_response.rbs new file mode 100644 index 00000000..d72facdd --- /dev/null +++ b/sig/hanzoai/models/threads/message_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Threads + MessageCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/threads/message_list_params.rbs b/sig/hanzoai/models/threads/message_list_params.rbs index 130b4fb8..93d7fa61 100644 --- a/sig/hanzoai/models/threads/message_list_params.rbs +++ b/sig/hanzoai/models/threads/message_list_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Threads::message_list_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/threads/message_list_response.rbs b/sig/hanzoai/models/threads/message_list_response.rbs new file mode 100644 index 00000000..4e89bdb2 --- /dev/null +++ b/sig/hanzoai/models/threads/message_list_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Threads + MessageListResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/threads/run_create_params.rbs b/sig/hanzoai/models/threads/run_create_params.rbs index 236d41a5..2aab44c3 100644 --- a/sig/hanzoai/models/threads/run_create_params.rbs +++ b/sig/hanzoai/models/threads/run_create_params.rbs @@ -10,7 +10,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::Threads::run_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/threads/run_create_response.rbs b/sig/hanzoai/models/threads/run_create_response.rbs new file mode 100644 index 00000000..40eac1ea --- /dev/null +++ b/sig/hanzoai/models/threads/run_create_response.rbs @@ -0,0 +1,7 @@ +module Hanzoai + module Models + module Threads + RunCreateResponse: Hanzoai::Internal::Type::Converter + end + end +end diff --git a/sig/hanzoai/models/user_create_params.rbs b/sig/hanzoai/models/user_create_params.rbs index c78e8056..1bd2969b 100644 --- a/sig/hanzoai/models/user_create_params.rbs +++ b/sig/hanzoai/models/user_create_params.rbs @@ -2,28 +2,32 @@ module Hanzoai module Models type user_create_params = { - aliases: top?, + aliases: ::Hash[Symbol, top]?, allowed_cache_controls: ::Array[top]?, auto_create_key: bool, blocked: bool?, budget_duration: String?, - config: top?, + config: ::Hash[Symbol, top]?, duration: String?, guardrails: ::Array[String]?, key_alias: String?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, - model_rpm_limit: top?, - model_tpm_limit: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, models: ::Array[top]?, - permissions: top?, + object_permission: Hanzoai::UserCreateParams::ObjectPermission?, + organizations: ::Array[String]?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, rpm_limit: Integer?, send_invite_email: bool?, spend: Float?, + sso_user_id: String?, team_id: String?, - teams: ::Array[top]?, + teams: Hanzoai::Models::UserCreateParams::teams?, tpm_limit: Integer?, user_alias: String?, user_email: String?, @@ -36,7 +40,7 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor aliases: top? + attr_accessor aliases: ::Hash[Symbol, top]? attr_accessor allowed_cache_controls: ::Array[top]? @@ -48,7 +52,7 @@ module Hanzoai attr_accessor budget_duration: String? - attr_accessor config: top? + attr_accessor config: ::Hash[Symbol, top]? attr_accessor duration: String? @@ -60,17 +64,23 @@ module Hanzoai attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_rpm_limit: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, top]? - attr_accessor model_tpm_limit: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, top]? attr_accessor models: ::Array[top]? - attr_accessor permissions: top? + attr_accessor object_permission: Hanzoai::UserCreateParams::ObjectPermission? + + attr_accessor organizations: ::Array[String]? + + attr_accessor permissions: ::Hash[Symbol, top]? + + attr_accessor prompts: ::Array[String]? attr_accessor rpm_limit: Integer? @@ -78,9 +88,11 @@ module Hanzoai attr_accessor spend: Float? + attr_accessor sso_user_id: String? + attr_accessor team_id: String? - attr_accessor teams: ::Array[top]? + attr_accessor teams: Hanzoai::Models::UserCreateParams::teams? attr_accessor tpm_limit: Integer? @@ -93,28 +105,32 @@ module Hanzoai attr_accessor user_role: Hanzoai::Models::UserCreateParams::user_role? def initialize: ( - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, ?auto_create_key: bool, ?blocked: bool?, ?budget_duration: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::UserCreateParams::ObjectPermission?, + ?organizations: ::Array[String]?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, ?rpm_limit: Integer?, ?send_invite_email: bool?, ?spend: Float?, + ?sso_user_id: String?, ?team_id: String?, - ?teams: ::Array[top]?, + ?teams: Hanzoai::Models::UserCreateParams::teams?, ?tpm_limit: Integer?, ?user_alias: String?, ?user_email: String?, @@ -123,7 +139,138 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::user_create_params + def to_hash: -> { + aliases: ::Hash[Symbol, top]?, + allowed_cache_controls: ::Array[top]?, + auto_create_key: bool, + blocked: bool?, + budget_duration: String?, + config: ::Hash[Symbol, top]?, + duration: String?, + guardrails: ::Array[String]?, + key_alias: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, + models: ::Array[top]?, + object_permission: Hanzoai::UserCreateParams::ObjectPermission?, + organizations: ::Array[String]?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rpm_limit: Integer?, + send_invite_email: bool?, + spend: Float?, + sso_user_id: String?, + team_id: String?, + teams: Hanzoai::Models::UserCreateParams::teams?, + tpm_limit: Integer?, + user_alias: String?, + user_email: String?, + user_id: String?, + user_role: Hanzoai::Models::UserCreateParams::user_role?, + request_options: Hanzoai::RequestOptions + } + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type teams = + ::Array[String] + | ::Array[Hanzoai::UserCreateParams::Teams::UnionMember1] + + module Teams + extend Hanzoai::Internal::Type::Union + + type union_member1 = + { + team_id: String, + max_budget_in_team: Float?, + user_role: Hanzoai::Models::UserCreateParams::Teams::UnionMember1::user_role + } + + class UnionMember1 < Hanzoai::Internal::Type::BaseModel + attr_accessor team_id: String + + attr_accessor max_budget_in_team: Float? + + attr_reader user_role: Hanzoai::Models::UserCreateParams::Teams::UnionMember1::user_role? + + def user_role=: ( + Hanzoai::Models::UserCreateParams::Teams::UnionMember1::user_role + ) -> Hanzoai::Models::UserCreateParams::Teams::UnionMember1::user_role + + def initialize: ( + team_id: String, + ?max_budget_in_team: Float?, + ?user_role: Hanzoai::Models::UserCreateParams::Teams::UnionMember1::user_role + ) -> void + + def to_hash: -> { + team_id: String, + max_budget_in_team: Float?, + user_role: Hanzoai::Models::UserCreateParams::Teams::UnionMember1::user_role + } + + type user_role = :user | :admin + + module UserRole + extend Hanzoai::Internal::Type::Enum + + USER: :user + ADMIN: :admin + + def self?.values: -> ::Array[Hanzoai::Models::UserCreateParams::Teams::UnionMember1::user_role] + end + end + + def self?.variants: -> ::Array[Hanzoai::Models::UserCreateParams::teams] + + StringArray: Hanzoai::Internal::Type::Converter + + UnionMember1Array: Hanzoai::Internal::Type::Converter + end type user_role = :proxy_admin diff --git a/sig/hanzoai/models/user_create_response.rbs b/sig/hanzoai/models/user_create_response.rbs index d5d14a82..5ad113ed 100644 --- a/sig/hanzoai/models/user_create_response.rbs +++ b/sig/hanzoai/models/user_create_response.rbs @@ -2,37 +2,48 @@ module Hanzoai module Models type user_create_response = { - expires: Time?, key: String, token: String?, - aliases: top?, + aliases: ::Hash[Symbol, top]?, allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex]?, blocked: bool?, budget_duration: String?, budget_id: String?, - config: top?, + config: ::Hash[Symbol, top]?, + created_at: Time?, created_by: String?, duration: String?, enforced_params: ::Array[String]?, + expires: Time?, guardrails: ::Array[String]?, key_alias: String?, key_name: String?, - llm_budget_table: top, + litellm_budget_table: top, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, - model_rpm_limit: top?, - model_tpm_limit: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, models: ::Array[top]?, - permissions: top?, + object_permission: Hanzoai::Models::UserCreateResponse::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + router_settings: Hanzoai::Models::UserCreateResponse::RouterSettings?, rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::UserCreateResponse::rpm_limit_type?, spend: Float?, tags: ::Array[String]?, team_id: String?, teams: ::Array[top]?, token_id: String?, tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::UserCreateResponse::tpm_limit_type?, + updated_at: Time?, updated_by: String?, user_alias: String?, user_email: String?, @@ -41,23 +52,29 @@ module Hanzoai } class UserCreateResponse < Hanzoai::Internal::Type::BaseModel - attr_accessor expires: Time? - attr_accessor key: String attr_accessor token: String? - attr_accessor aliases: top? + attr_accessor aliases: ::Hash[Symbol, top]? attr_accessor allowed_cache_controls: ::Array[top]? + attr_accessor allowed_passthrough_routes: ::Array[top]? + + attr_accessor allowed_routes: ::Array[top]? + + attr_accessor allowed_vector_store_indexes: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex]? + attr_accessor blocked: bool? attr_accessor budget_duration: String? attr_accessor budget_id: String? - attr_accessor config: top? + attr_accessor config: ::Hash[Symbol, top]? + + attr_accessor created_at: Time? attr_accessor created_by: String? @@ -65,34 +82,46 @@ module Hanzoai attr_accessor enforced_params: ::Array[String]? + attr_accessor expires: Time? + attr_accessor guardrails: ::Array[String]? attr_accessor key_alias: String? attr_accessor key_name: String? - attr_reader llm_budget_table: top? + attr_reader litellm_budget_table: top? - def llm_budget_table=: (top) -> top + def litellm_budget_table=: (top) -> top attr_accessor max_budget: Float? attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_rpm_limit: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, top]? - attr_accessor model_tpm_limit: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, top]? attr_accessor models: ::Array[top]? - attr_accessor permissions: top? + attr_accessor object_permission: Hanzoai::Models::UserCreateResponse::ObjectPermission? + + attr_accessor organization_id: String? + + attr_accessor permissions: ::Hash[Symbol, top]? + + attr_accessor prompts: ::Array[String]? + + attr_accessor router_settings: Hanzoai::Models::UserCreateResponse::RouterSettings? attr_accessor rpm_limit: Integer? + attr_accessor rpm_limit_type: Hanzoai::Models::UserCreateResponse::rpm_limit_type? + attr_accessor spend: Float? attr_accessor tags: ::Array[String]? @@ -105,6 +134,10 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor tpm_limit_type: Hanzoai::Models::UserCreateResponse::tpm_limit_type? + + attr_accessor updated_at: Time? + attr_accessor updated_by: String? attr_accessor user_alias: String? @@ -116,37 +149,48 @@ module Hanzoai attr_accessor user_role: Hanzoai::Models::UserCreateResponse::user_role? def initialize: ( - expires: Time?, key: String, ?token: String?, - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex]?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, + ?created_at: Time?, ?created_by: String?, ?duration: String?, ?enforced_params: ::Array[String]?, + ?expires: Time?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?key_name: String?, - ?llm_budget_table: top, + ?litellm_budget_table: top, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::Models::UserCreateResponse::ObjectPermission?, + ?organization_id: String?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?router_settings: Hanzoai::Models::UserCreateResponse::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::UserCreateResponse::rpm_limit_type?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?teams: ::Array[top]?, ?token_id: String?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::UserCreateResponse::tpm_limit_type?, + ?updated_at: Time?, ?updated_by: String?, ?user_alias: String?, ?user_email: String?, @@ -154,7 +198,238 @@ module Hanzoai ?user_role: Hanzoai::Models::UserCreateResponse::user_role? ) -> void - def to_hash: -> Hanzoai::Models::user_create_response + def to_hash: -> { + key: String, + token: String?, + aliases: ::Hash[Symbol, top]?, + allowed_cache_controls: ::Array[top]?, + allowed_passthrough_routes: ::Array[top]?, + allowed_routes: ::Array[top]?, + allowed_vector_store_indexes: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex]?, + blocked: bool?, + budget_duration: String?, + budget_id: String?, + config: ::Hash[Symbol, top]?, + created_at: Time?, + created_by: String?, + duration: String?, + enforced_params: ::Array[String]?, + expires: Time?, + guardrails: ::Array[String]?, + key_alias: String?, + key_name: String?, + litellm_budget_table: top, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, + models: ::Array[top]?, + object_permission: Hanzoai::Models::UserCreateResponse::ObjectPermission?, + organization_id: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + router_settings: Hanzoai::Models::UserCreateResponse::RouterSettings?, + rpm_limit: Integer?, + rpm_limit_type: Hanzoai::Models::UserCreateResponse::rpm_limit_type?, + spend: Float?, + tags: ::Array[String]?, + team_id: String?, + teams: ::Array[top]?, + token_id: String?, + tpm_limit: Integer?, + tpm_limit_type: Hanzoai::Models::UserCreateResponse::tpm_limit_type?, + updated_at: Time?, + updated_by: String?, + user_alias: String?, + user_email: String?, + user_id: String?, + user_role: Hanzoai::Models::UserCreateResponse::user_role? + } + + type allowed_vector_store_index = + { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::index_permission] + } + + class AllowedVectorStoreIndex < Hanzoai::Internal::Type::BaseModel + attr_accessor index_name: String + + attr_accessor index_permissions: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::index_permission] + + def initialize: ( + index_name: String, + index_permissions: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::index_permission] + ) -> void + + def to_hash: -> { + index_name: String, + index_permissions: ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::index_permission] + } + + type index_permission = :read | :write + + module IndexPermission + extend Hanzoai::Internal::Type::Enum + + READ: :read + WRITE: :write + + def self?.values: -> ::Array[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex::index_permission] + end + end + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end + + type router_settings = + { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::UserCreateResponse::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + class RouterSettings < Hanzoai::Internal::Type::BaseModel + attr_accessor allowed_fails: Integer? + + attr_accessor context_window_fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor cooldown_time: Float? + + attr_accessor fallbacks: ::Array[::Hash[Symbol, top]]? + + attr_accessor max_retries: Integer? + + attr_accessor model_group_alias: ::Hash[Symbol, Hanzoai::Models::UserCreateResponse::RouterSettings::model_group_alias]? + + attr_accessor model_group_retry_policy: ::Hash[Symbol, top]? + + attr_accessor num_retries: Integer? + + attr_accessor retry_after: Float? + + attr_accessor routing_strategy: String? + + attr_accessor routing_strategy_args: ::Hash[Symbol, top]? + + attr_accessor timeout: Float? + + def initialize: ( + ?allowed_fails: Integer?, + ?context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + ?cooldown_time: Float?, + ?fallbacks: ::Array[::Hash[Symbol, top]]?, + ?max_retries: Integer?, + ?model_group_alias: ::Hash[Symbol, Hanzoai::Models::UserCreateResponse::RouterSettings::model_group_alias]?, + ?model_group_retry_policy: ::Hash[Symbol, top]?, + ?num_retries: Integer?, + ?retry_after: Float?, + ?routing_strategy: String?, + ?routing_strategy_args: ::Hash[Symbol, top]?, + ?timeout: Float? + ) -> void + + def to_hash: -> { + allowed_fails: Integer?, + context_window_fallbacks: ::Array[::Hash[Symbol, top]]?, + cooldown_time: Float?, + fallbacks: ::Array[::Hash[Symbol, top]]?, + max_retries: Integer?, + model_group_alias: ::Hash[Symbol, Hanzoai::Models::UserCreateResponse::RouterSettings::model_group_alias]?, + model_group_retry_policy: ::Hash[Symbol, top]?, + num_retries: Integer?, + retry_after: Float?, + routing_strategy: String?, + routing_strategy_args: ::Hash[Symbol, top]?, + timeout: Float? + } + + type model_group_alias = String | ::Hash[Symbol, top] + + module ModelGroupAlias + extend Hanzoai::Internal::Type::Union + + def self?.variants: -> ::Array[Hanzoai::Models::UserCreateResponse::RouterSettings::model_group_alias] + + UnionMember1Map: Hanzoai::Internal::Type::Converter + end + end + + type rpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module RpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::UserCreateResponse::rpm_limit_type] + end + + type tpm_limit_type = + :guaranteed_throughput | :best_effort_throughput | :dynamic + + module TpmLimitType + extend Hanzoai::Internal::Type::Enum + + GUARANTEED_THROUGHPUT: :guaranteed_throughput + BEST_EFFORT_THROUGHPUT: :best_effort_throughput + DYNAMIC: :dynamic + + def self?.values: -> ::Array[Hanzoai::Models::UserCreateResponse::tpm_limit_type] + end type user_role = :proxy_admin diff --git a/sig/hanzoai/models/user_delete_params.rbs b/sig/hanzoai/models/user_delete_params.rbs index bd0f1b2f..717e3158 100644 --- a/sig/hanzoai/models/user_delete_params.rbs +++ b/sig/hanzoai/models/user_delete_params.rbs @@ -1,7 +1,7 @@ module Hanzoai module Models type user_delete_params = - { user_ids: ::Array[String], llm_changed_by: String } + { user_ids: ::Array[String], litellm_changed_by: String } & Hanzoai::Internal::Type::request_parameters class UserDeleteParams < Hanzoai::Internal::Type::BaseModel @@ -10,17 +10,21 @@ module Hanzoai attr_accessor user_ids: ::Array[String] - attr_reader llm_changed_by: String? + attr_reader litellm_changed_by: String? - def llm_changed_by=: (String) -> String + def litellm_changed_by=: (String) -> String def initialize: ( user_ids: ::Array[String], - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::user_delete_params + def to_hash: -> { + user_ids: ::Array[String], + litellm_changed_by: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/user_delete_response.rbs b/sig/hanzoai/models/user_delete_response.rbs new file mode 100644 index 00000000..1ce5dd9b --- /dev/null +++ b/sig/hanzoai/models/user_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + UserDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/user_list_params.rbs b/sig/hanzoai/models/user_list_params.rbs deleted file mode 100644 index b4b7f1fb..00000000 --- a/sig/hanzoai/models/user_list_params.rbs +++ /dev/null @@ -1,34 +0,0 @@ -module Hanzoai - module Models - type user_list_params = - { page: Integer, page_size: Integer, role: String?, user_ids: String? } - & Hanzoai::Internal::Type::request_parameters - - class UserListParams < Hanzoai::Internal::Type::BaseModel - extend Hanzoai::Internal::Type::RequestParameters::Converter - include Hanzoai::Internal::Type::RequestParameters - - attr_reader page: Integer? - - def page=: (Integer) -> Integer - - attr_reader page_size: Integer? - - def page_size=: (Integer) -> Integer - - attr_accessor role: String? - - attr_accessor user_ids: String? - - def initialize: ( - ?page: Integer, - ?page_size: Integer, - ?role: String?, - ?user_ids: String?, - ?request_options: Hanzoai::request_opts - ) -> void - - def to_hash: -> Hanzoai::Models::user_list_params - end - end -end diff --git a/sig/hanzoai/models/user_retrieve_info_params.rbs b/sig/hanzoai/models/user_retrieve_info_params.rbs index 487cc96b..ca222c8e 100644 --- a/sig/hanzoai/models/user_retrieve_info_params.rbs +++ b/sig/hanzoai/models/user_retrieve_info_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::user_retrieve_info_params + def to_hash: -> { + user_id: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/user_retrieve_info_response.rbs b/sig/hanzoai/models/user_retrieve_info_response.rbs new file mode 100644 index 00000000..0725a5be --- /dev/null +++ b/sig/hanzoai/models/user_retrieve_info_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + UserRetrieveInfoResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/user_roles.rbs b/sig/hanzoai/models/user_roles.rbs new file mode 100644 index 00000000..36926d9e --- /dev/null +++ b/sig/hanzoai/models/user_roles.rbs @@ -0,0 +1,26 @@ +module Hanzoai + module Models + type user_roles = + :proxy_admin + | :proxy_admin_viewer + | :org_admin + | :internal_user + | :internal_user_viewer + | :team + | :customer + + module UserRoles + extend Hanzoai::Internal::Type::Enum + + PROXY_ADMIN: :proxy_admin + PROXY_ADMIN_VIEWER: :proxy_admin_viewer + ORG_ADMIN: :org_admin + INTERNAL_USER: :internal_user + INTERNAL_USER_VIEWER: :internal_user_viewer + TEAM: :team + CUSTOMER: :customer + + def self?.values: -> ::Array[Hanzoai::Models::user_roles] + end + end +end diff --git a/sig/hanzoai/models/user_update_params.rbs b/sig/hanzoai/models/user_update_params.rbs index b5ddaeab..a3ee081f 100644 --- a/sig/hanzoai/models/user_update_params.rbs +++ b/sig/hanzoai/models/user_update_params.rbs @@ -2,27 +2,30 @@ module Hanzoai module Models type user_update_params = { - aliases: top?, + aliases: ::Hash[Symbol, top]?, allowed_cache_controls: ::Array[top]?, blocked: bool?, budget_duration: String?, - config: top?, + config: ::Hash[Symbol, top]?, duration: String?, guardrails: ::Array[String]?, key_alias: String?, max_budget: Float?, max_parallel_requests: Integer?, - metadata: top?, - model_max_budget: top?, - model_rpm_limit: top?, - model_tpm_limit: top?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, models: ::Array[top]?, + object_permission: Hanzoai::UserUpdateParams::ObjectPermission?, password: String?, - permissions: top?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, rpm_limit: Integer?, spend: Float?, team_id: String?, tpm_limit: Integer?, + user_alias: String?, user_email: String?, user_id: String?, user_role: Hanzoai::Models::UserUpdateParams::user_role? @@ -33,7 +36,7 @@ module Hanzoai extend Hanzoai::Internal::Type::RequestParameters::Converter include Hanzoai::Internal::Type::RequestParameters - attr_accessor aliases: top? + attr_accessor aliases: ::Hash[Symbol, top]? attr_accessor allowed_cache_controls: ::Array[top]? @@ -41,7 +44,7 @@ module Hanzoai attr_accessor budget_duration: String? - attr_accessor config: top? + attr_accessor config: ::Hash[Symbol, top]? attr_accessor duration: String? @@ -53,19 +56,23 @@ module Hanzoai attr_accessor max_parallel_requests: Integer? - attr_accessor metadata: top? + attr_accessor metadata: ::Hash[Symbol, top]? - attr_accessor model_max_budget: top? + attr_accessor model_max_budget: ::Hash[Symbol, top]? - attr_accessor model_rpm_limit: top? + attr_accessor model_rpm_limit: ::Hash[Symbol, top]? - attr_accessor model_tpm_limit: top? + attr_accessor model_tpm_limit: ::Hash[Symbol, top]? attr_accessor models: ::Array[top]? + attr_accessor object_permission: Hanzoai::UserUpdateParams::ObjectPermission? + attr_accessor password: String? - attr_accessor permissions: top? + attr_accessor permissions: ::Hash[Symbol, top]? + + attr_accessor prompts: ::Array[String]? attr_accessor rpm_limit: Integer? @@ -75,6 +82,8 @@ module Hanzoai attr_accessor tpm_limit: Integer? + attr_accessor user_alias: String? + attr_accessor user_email: String? attr_accessor user_id: String? @@ -82,34 +91,108 @@ module Hanzoai attr_accessor user_role: Hanzoai::Models::UserUpdateParams::user_role? def initialize: ( - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, ?blocked: bool?, ?budget_duration: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, + ?object_permission: Hanzoai::UserUpdateParams::ObjectPermission?, ?password: String?, - ?permissions: top?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, ?rpm_limit: Integer?, ?spend: Float?, ?team_id: String?, ?tpm_limit: Integer?, + ?user_alias: String?, ?user_email: String?, ?user_id: String?, ?user_role: Hanzoai::Models::UserUpdateParams::user_role?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::user_update_params + def to_hash: -> { + aliases: ::Hash[Symbol, top]?, + allowed_cache_controls: ::Array[top]?, + blocked: bool?, + budget_duration: String?, + config: ::Hash[Symbol, top]?, + duration: String?, + guardrails: ::Array[String]?, + key_alias: String?, + max_budget: Float?, + max_parallel_requests: Integer?, + metadata: ::Hash[Symbol, top]?, + model_max_budget: ::Hash[Symbol, top]?, + model_rpm_limit: ::Hash[Symbol, top]?, + model_tpm_limit: ::Hash[Symbol, top]?, + models: ::Array[top]?, + object_permission: Hanzoai::UserUpdateParams::ObjectPermission?, + password: String?, + permissions: ::Hash[Symbol, top]?, + prompts: ::Array[String]?, + rpm_limit: Integer?, + spend: Float?, + team_id: String?, + tpm_limit: Integer?, + user_alias: String?, + user_email: String?, + user_id: String?, + user_role: Hanzoai::Models::UserUpdateParams::user_role?, + request_options: Hanzoai::RequestOptions + } + + type object_permission = + { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + + class ObjectPermission < Hanzoai::Internal::Type::BaseModel + attr_accessor agent_access_groups: ::Array[String]? + + attr_accessor agents: ::Array[String]? + + attr_accessor mcp_access_groups: ::Array[String]? + + attr_accessor mcp_servers: ::Array[String]? + + attr_accessor mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]? + + attr_accessor vector_stores: ::Array[String]? + + def initialize: ( + ?agent_access_groups: ::Array[String]?, + ?agents: ::Array[String]?, + ?mcp_access_groups: ::Array[String]?, + ?mcp_servers: ::Array[String]?, + ?mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + ?vector_stores: ::Array[String]? + ) -> void + + def to_hash: -> { + agent_access_groups: ::Array[String]?, + agents: ::Array[String]?, + mcp_access_groups: ::Array[String]?, + mcp_servers: ::Array[String]?, + mcp_tool_permissions: ::Hash[Symbol, ::Array[String]]?, + vector_stores: ::Array[String]? + } + end type user_role = :proxy_admin diff --git a/sig/hanzoai/models/user_update_response.rbs b/sig/hanzoai/models/user_update_response.rbs new file mode 100644 index 00000000..3935bf5e --- /dev/null +++ b/sig/hanzoai/models/user_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + UserUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/util_get_supported_openai_params_params.rbs b/sig/hanzoai/models/util_get_supported_openai_params_params.rbs index 285f13bf..af29989c 100644 --- a/sig/hanzoai/models/util_get_supported_openai_params_params.rbs +++ b/sig/hanzoai/models/util_get_supported_openai_params_params.rbs @@ -14,7 +14,10 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::util_get_supported_openai_params_params + def to_hash: -> { + model: String, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/util_get_supported_openai_params_response.rbs b/sig/hanzoai/models/util_get_supported_openai_params_response.rbs new file mode 100644 index 00000000..38c96091 --- /dev/null +++ b/sig/hanzoai/models/util_get_supported_openai_params_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + UtilGetSupportedOpenAIParamsResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/util_token_counter_params.rbs b/sig/hanzoai/models/util_token_counter_params.rbs index 6a39f376..b6908a5c 100644 --- a/sig/hanzoai/models/util_token_counter_params.rbs +++ b/sig/hanzoai/models/util_token_counter_params.rbs @@ -1,7 +1,13 @@ module Hanzoai module Models type util_token_counter_params = - { model: String, messages: ::Array[top]?, prompt: String? } + { + model: String, + call_endpoint: bool, + contents: ::Array[::Hash[Symbol, top]]?, + messages: ::Array[::Hash[Symbol, top]]?, + prompt: String? + } & Hanzoai::Internal::Type::request_parameters class UtilTokenCounterParams < Hanzoai::Internal::Type::BaseModel @@ -10,18 +16,33 @@ module Hanzoai attr_accessor model: String - attr_accessor messages: ::Array[top]? + attr_reader call_endpoint: bool? + + def call_endpoint=: (bool) -> bool + + attr_accessor contents: ::Array[::Hash[Symbol, top]]? + + attr_accessor messages: ::Array[::Hash[Symbol, top]]? attr_accessor prompt: String? def initialize: ( model: String, - ?messages: ::Array[top]?, + ?call_endpoint: bool, + ?contents: ::Array[::Hash[Symbol, top]]?, + ?messages: ::Array[::Hash[Symbol, top]]?, ?prompt: String?, ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::util_token_counter_params + def to_hash: -> { + model: String, + call_endpoint: bool, + contents: ::Array[::Hash[Symbol, top]]?, + messages: ::Array[::Hash[Symbol, top]]?, + prompt: String?, + request_options: Hanzoai::RequestOptions + } end end end diff --git a/sig/hanzoai/models/util_token_counter_response.rbs b/sig/hanzoai/models/util_token_counter_response.rbs index e2c41068..2eb61978 100644 --- a/sig/hanzoai/models/util_token_counter_response.rbs +++ b/sig/hanzoai/models/util_token_counter_response.rbs @@ -5,7 +5,11 @@ module Hanzoai model_used: String, request_model: String, tokenizer_type: String, - total_tokens: Integer + total_tokens: Integer, + error: bool, + error_message: String?, + original_response: ::Hash[Symbol, top]?, + status_code: Integer? } class UtilTokenCounterResponse < Hanzoai::Internal::Type::BaseModel @@ -17,14 +21,37 @@ module Hanzoai attr_accessor total_tokens: Integer + attr_reader error: bool? + + def error=: (bool) -> bool + + attr_accessor error_message: String? + + attr_accessor original_response: ::Hash[Symbol, top]? + + attr_accessor status_code: Integer? + def initialize: ( model_used: String, request_model: String, tokenizer_type: String, - total_tokens: Integer + total_tokens: Integer, + ?error: bool, + ?error_message: String?, + ?original_response: ::Hash[Symbol, top]?, + ?status_code: Integer? ) -> void - def to_hash: -> Hanzoai::Models::util_token_counter_response + def to_hash: -> { + model_used: String, + request_model: String, + tokenizer_type: String, + total_tokens: Integer, + error: bool, + error_message: String?, + original_response: ::Hash[Symbol, top]?, + status_code: Integer? + } end end end diff --git a/sig/hanzoai/models/util_transform_request_params.rbs b/sig/hanzoai/models/util_transform_request_params.rbs index ee328a2f..cac4c627 100644 --- a/sig/hanzoai/models/util_transform_request_params.rbs +++ b/sig/hanzoai/models/util_transform_request_params.rbs @@ -3,7 +3,7 @@ module Hanzoai type util_transform_request_params = { call_type: Hanzoai::Models::UtilTransformRequestParams::call_type, - request_body: top + request_body: ::Hash[Symbol, top] } & Hanzoai::Internal::Type::request_parameters @@ -13,15 +13,19 @@ module Hanzoai attr_accessor call_type: Hanzoai::Models::UtilTransformRequestParams::call_type - attr_accessor request_body: top + attr_accessor request_body: ::Hash[Symbol, top] def initialize: ( call_type: Hanzoai::Models::UtilTransformRequestParams::call_type, - request_body: top, + request_body: ::Hash[Symbol, top], ?request_options: Hanzoai::request_opts ) -> void - def to_hash: -> Hanzoai::Models::util_transform_request_params + def to_hash: -> { + call_type: Hanzoai::Models::UtilTransformRequestParams::call_type, + request_body: ::Hash[Symbol, top], + request_options: Hanzoai::RequestOptions + } type call_type = :embedding @@ -32,6 +36,8 @@ module Hanzoai | :text_completion | :image_generation | :aimage_generation + | :image_edit + | :aimage_edit | :moderation | :amoderation | :atranscription @@ -40,6 +46,8 @@ module Hanzoai | :speech | :rerank | :arerank + | :search + | :asearch | :_arealtime | :create_batch | :acreate_batch @@ -77,6 +85,48 @@ module Hanzoai | :file_content | :create_fine_tuning_job | :acreate_fine_tuning_job + | :create_video + | :acreate_video + | :avideo_retrieve + | :video_retrieve + | :avideo_content + | :video_content + | :video_remix + | :avideo_remix + | :video_list + | :avideo_list + | :video_retrieve_job + | :avideo_retrieve_job + | :video_delete + | :avideo_delete + | :vector_store_file_create + | :avector_store_file_create + | :vector_store_file_list + | :avector_store_file_list + | :vector_store_file_retrieve + | :avector_store_file_retrieve + | :vector_store_file_content + | :avector_store_file_content + | :vector_store_file_update + | :avector_store_file_update + | :vector_store_file_delete + | :avector_store_file_delete + | :vector_store_create + | :avector_store_create + | :vector_store_search + | :avector_store_search + | :create_container + | :acreate_container + | :list_containers + | :alist_containers + | :retrieve_container + | :aretrieve_container + | :delete_container + | :adelete_container + | :list_container_files + | :alist_container_files + | :upload_container_file + | :aupload_container_file | :acancel_fine_tuning_job | :cancel_fine_tuning_job | :alist_fine_tuning_jobs @@ -85,6 +135,19 @@ module Hanzoai | :retrieve_fine_tuning_job | :responses | :aresponses + | :alist_input_items + | :llm_passthrough_route + | :allm_passthrough_route + | :generate_content + | :agenerate_content + | :generate_content_stream + | :agenerate_content_stream + | :ocr + | :aocr + | :call_mcp_tool + | :asend_message + | :send_message + | :acreate_skill module CallType extend Hanzoai::Internal::Type::Enum @@ -97,6 +160,8 @@ module Hanzoai TEXT_COMPLETION: :text_completion IMAGE_GENERATION: :image_generation AIMAGE_GENERATION: :aimage_generation + IMAGE_EDIT: :image_edit + AIMAGE_EDIT: :aimage_edit MODERATION: :moderation AMODERATION: :amoderation ATRANSCRIPTION: :atranscription @@ -105,6 +170,8 @@ module Hanzoai SPEECH: :speech RERANK: :rerank ARERANK: :arerank + SEARCH: :search + ASEARCH: :asearch AREALTIME: :_arealtime CREATE_BATCH: :create_batch ACREATE_BATCH: :acreate_batch @@ -142,6 +209,48 @@ module Hanzoai FILE_CONTENT: :file_content CREATE_FINE_TUNING_JOB: :create_fine_tuning_job ACREATE_FINE_TUNING_JOB: :acreate_fine_tuning_job + CREATE_VIDEO: :create_video + ACREATE_VIDEO: :acreate_video + AVIDEO_RETRIEVE: :avideo_retrieve + VIDEO_RETRIEVE: :video_retrieve + AVIDEO_CONTENT: :avideo_content + VIDEO_CONTENT: :video_content + VIDEO_REMIX: :video_remix + AVIDEO_REMIX: :avideo_remix + VIDEO_LIST: :video_list + AVIDEO_LIST: :avideo_list + VIDEO_RETRIEVE_JOB: :video_retrieve_job + AVIDEO_RETRIEVE_JOB: :avideo_retrieve_job + VIDEO_DELETE: :video_delete + AVIDEO_DELETE: :avideo_delete + VECTOR_STORE_FILE_CREATE: :vector_store_file_create + AVECTOR_STORE_FILE_CREATE: :avector_store_file_create + VECTOR_STORE_FILE_LIST: :vector_store_file_list + AVECTOR_STORE_FILE_LIST: :avector_store_file_list + VECTOR_STORE_FILE_RETRIEVE: :vector_store_file_retrieve + AVECTOR_STORE_FILE_RETRIEVE: :avector_store_file_retrieve + VECTOR_STORE_FILE_CONTENT: :vector_store_file_content + AVECTOR_STORE_FILE_CONTENT: :avector_store_file_content + VECTOR_STORE_FILE_UPDATE: :vector_store_file_update + AVECTOR_STORE_FILE_UPDATE: :avector_store_file_update + VECTOR_STORE_FILE_DELETE: :vector_store_file_delete + AVECTOR_STORE_FILE_DELETE: :avector_store_file_delete + VECTOR_STORE_CREATE: :vector_store_create + AVECTOR_STORE_CREATE: :avector_store_create + VECTOR_STORE_SEARCH: :vector_store_search + AVECTOR_STORE_SEARCH: :avector_store_search + CREATE_CONTAINER: :create_container + ACREATE_CONTAINER: :acreate_container + LIST_CONTAINERS: :list_containers + ALIST_CONTAINERS: :alist_containers + RETRIEVE_CONTAINER: :retrieve_container + ARETRIEVE_CONTAINER: :aretrieve_container + DELETE_CONTAINER: :delete_container + ADELETE_CONTAINER: :adelete_container + LIST_CONTAINER_FILES: :list_container_files + ALIST_CONTAINER_FILES: :alist_container_files + UPLOAD_CONTAINER_FILE: :upload_container_file + AUPLOAD_CONTAINER_FILE: :aupload_container_file ACANCEL_FINE_TUNING_JOB: :acancel_fine_tuning_job CANCEL_FINE_TUNING_JOB: :cancel_fine_tuning_job ALIST_FINE_TUNING_JOBS: :alist_fine_tuning_jobs @@ -150,6 +259,19 @@ module Hanzoai RETRIEVE_FINE_TUNING_JOB: :retrieve_fine_tuning_job RESPONSES: :responses ARESPONSES: :aresponses + ALIST_INPUT_ITEMS: :alist_input_items + LLM_PASSTHROUGH_ROUTE: :llm_passthrough_route + ALLM_PASSTHROUGH_ROUTE: :allm_passthrough_route + GENERATE_CONTENT: :generate_content + AGENERATE_CONTENT: :agenerate_content + GENERATE_CONTENT_STREAM: :generate_content_stream + AGENERATE_CONTENT_STREAM: :agenerate_content_stream + OCR: :ocr + AOCR: :aocr + CALL_MCP_TOOL: :call_mcp_tool + ASEND_MESSAGE: :asend_message + SEND_MESSAGE: :send_message + ACREATE_SKILL: :acreate_skill def self?.values: -> ::Array[Hanzoai::Models::UtilTransformRequestParams::call_type] end diff --git a/sig/hanzoai/models/util_transform_request_response.rbs b/sig/hanzoai/models/util_transform_request_response.rbs index 46ccc195..7487de2e 100644 --- a/sig/hanzoai/models/util_transform_request_response.rbs +++ b/sig/hanzoai/models/util_transform_request_response.rbs @@ -4,8 +4,8 @@ module Hanzoai { error: String?, raw_request_api_base: String?, - raw_request_body: top?, - raw_request_headers: top? + raw_request_body: ::Hash[Symbol, top]?, + raw_request_headers: ::Hash[Symbol, top]? } class UtilTransformRequestResponse < Hanzoai::Internal::Type::BaseModel @@ -13,18 +13,23 @@ module Hanzoai attr_accessor raw_request_api_base: String? - attr_accessor raw_request_body: top? + attr_accessor raw_request_body: ::Hash[Symbol, top]? - attr_accessor raw_request_headers: top? + attr_accessor raw_request_headers: ::Hash[Symbol, top]? def initialize: ( ?error: String?, ?raw_request_api_base: String?, - ?raw_request_body: top?, - ?raw_request_headers: top? + ?raw_request_body: ::Hash[Symbol, top]?, + ?raw_request_headers: ::Hash[Symbol, top]? ) -> void - def to_hash: -> Hanzoai::Models::util_transform_request_response + def to_hash: -> { + error: String?, + raw_request_api_base: String?, + raw_request_body: ::Hash[Symbol, top]?, + raw_request_headers: ::Hash[Symbol, top]? + } end end end diff --git a/sig/hanzoai/models/vertex_ai_create_params.rbs b/sig/hanzoai/models/vertex_ai_create_params.rbs index 2a16f7f7..2b5a52b1 100644 --- a/sig/hanzoai/models/vertex_ai_create_params.rbs +++ b/sig/hanzoai/models/vertex_ai_create_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::vertex_ai_create_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/vertex_ai_create_response.rbs b/sig/hanzoai/models/vertex_ai_create_response.rbs new file mode 100644 index 00000000..271e243d --- /dev/null +++ b/sig/hanzoai/models/vertex_ai_create_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + VertexAICreateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/vertex_ai_delete_params.rbs b/sig/hanzoai/models/vertex_ai_delete_params.rbs index ca560dc3..18acf7bb 100644 --- a/sig/hanzoai/models/vertex_ai_delete_params.rbs +++ b/sig/hanzoai/models/vertex_ai_delete_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::vertex_ai_delete_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/vertex_ai_delete_response.rbs b/sig/hanzoai/models/vertex_ai_delete_response.rbs new file mode 100644 index 00000000..b566cde6 --- /dev/null +++ b/sig/hanzoai/models/vertex_ai_delete_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + VertexAIDeleteResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/vertex_ai_patch_params.rbs b/sig/hanzoai/models/vertex_ai_patch_params.rbs index f0956558..6214bb3a 100644 --- a/sig/hanzoai/models/vertex_ai_patch_params.rbs +++ b/sig/hanzoai/models/vertex_ai_patch_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::vertex_ai_patch_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/vertex_ai_patch_response.rbs b/sig/hanzoai/models/vertex_ai_patch_response.rbs new file mode 100644 index 00000000..77a76e53 --- /dev/null +++ b/sig/hanzoai/models/vertex_ai_patch_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + VertexAIPatchResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/vertex_ai_retrieve_params.rbs b/sig/hanzoai/models/vertex_ai_retrieve_params.rbs index dd16f7c7..05fafbbe 100644 --- a/sig/hanzoai/models/vertex_ai_retrieve_params.rbs +++ b/sig/hanzoai/models/vertex_ai_retrieve_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::vertex_ai_retrieve_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/vertex_ai_retrieve_response.rbs b/sig/hanzoai/models/vertex_ai_retrieve_response.rbs new file mode 100644 index 00000000..5988ef0f --- /dev/null +++ b/sig/hanzoai/models/vertex_ai_retrieve_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + VertexAIRetrieveResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/models/vertex_ai_update_params.rbs b/sig/hanzoai/models/vertex_ai_update_params.rbs index 4cbfc88b..e835cfd4 100644 --- a/sig/hanzoai/models/vertex_ai_update_params.rbs +++ b/sig/hanzoai/models/vertex_ai_update_params.rbs @@ -9,7 +9,7 @@ module Hanzoai def initialize: (?request_options: Hanzoai::request_opts) -> void - def to_hash: -> Hanzoai::Models::vertex_ai_update_params + def to_hash: -> { request_options: Hanzoai::RequestOptions } end end end diff --git a/sig/hanzoai/models/vertex_ai_update_response.rbs b/sig/hanzoai/models/vertex_ai_update_response.rbs new file mode 100644 index 00000000..4999e7e7 --- /dev/null +++ b/sig/hanzoai/models/vertex_ai_update_response.rbs @@ -0,0 +1,5 @@ +module Hanzoai + module Models + VertexAIUpdateResponse: Hanzoai::Internal::Type::Converter + end +end diff --git a/sig/hanzoai/request_options.rbs b/sig/hanzoai/request_options.rbs index 28fce412..21c6c02b 100644 --- a/sig/hanzoai/request_options.rbs +++ b/sig/hanzoai/request_options.rbs @@ -13,7 +13,7 @@ module Hanzoai } class RequestOptions < Hanzoai::Internal::Type::BaseModel - def self.validate!: (self | ::Hash[Symbol, top] opts) -> void + def self.validate!: (Hanzoai::request_opts opts) -> void attr_accessor idempotency_key: String? diff --git a/sig/hanzoai/resources/audio/transcriptions.rbs b/sig/hanzoai/resources/audio/transcriptions.rbs index 04333f87..7f4ab972 100644 --- a/sig/hanzoai/resources/audio/transcriptions.rbs +++ b/sig/hanzoai/resources/audio/transcriptions.rbs @@ -3,7 +3,7 @@ module Hanzoai class Audio class Transcriptions def create: ( - file: IO | StringIO, + file: Hanzoai::Internal::file_input, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/batches.rbs b/sig/hanzoai/resources/batches.rbs index 9fbc01a3..f2b6ad4f 100644 --- a/sig/hanzoai/resources/batches.rbs +++ b/sig/hanzoai/resources/batches.rbs @@ -18,6 +18,7 @@ module Hanzoai ?after: String?, ?limit: Integer?, ?provider: String?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> top @@ -36,6 +37,7 @@ module Hanzoai String provider, ?after: String?, ?limit: Integer?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/budget.rbs b/sig/hanzoai/resources/budget.rbs index 470b52b5..4e1503b5 100644 --- a/sig/hanzoai/resources/budget.rbs +++ b/sig/hanzoai/resources/budget.rbs @@ -4,9 +4,10 @@ module Hanzoai def create: ( ?budget_duration: String?, ?budget_id: String?, + ?budget_reset_at: Time?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?model_max_budget: ::Hash[Symbol, Hanzoai::Models::BudgetNew::ModelMaxBudget]?, + ?model_max_budget: ::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget]?, ?rpm_limit: Integer?, ?soft_budget: Float?, ?tpm_limit: Integer?, @@ -16,9 +17,10 @@ module Hanzoai def update: ( ?budget_duration: String?, ?budget_id: String?, + ?budget_reset_at: Time?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?model_max_budget: ::Hash[Symbol, Hanzoai::Models::BudgetNew::ModelMaxBudget]?, + ?model_max_budget: ::Hash[Symbol, Hanzoai::BudgetNew::ModelMaxBudget]?, ?rpm_limit: Integer?, ?soft_budget: Float?, ?tpm_limit: Integer?, diff --git a/sig/hanzoai/resources/chat/completions.rbs b/sig/hanzoai/resources/chat/completions.rbs index 501c2793..1119af98 100644 --- a/sig/hanzoai/resources/chat/completions.rbs +++ b/sig/hanzoai/resources/chat/completions.rbs @@ -3,7 +3,35 @@ module Hanzoai class Chat class Completions def create: ( - ?model: String?, + messages: ::Array[Hanzoai::Models::Chat::CompletionCreateParams::message], + model: String, + ?caching: bool?, + ?context_window_fallback_dict: ::Hash[Symbol, String]?, + ?fallbacks: ::Array[String]?, + ?frequency_penalty: Float?, + ?function_call: Hanzoai::Models::Chat::CompletionCreateParams::function_call?, + ?functions: ::Array[::Hash[Symbol, top]]?, + ?guardrails: ::Array[String]?, + ?logit_bias: ::Hash[Symbol, Float]?, + ?logprobs: bool?, + ?max_tokens: Integer?, + ?metadata: ::Hash[Symbol, top]?, + ?n: Integer?, + ?num_retries: Integer?, + ?parallel_tool_calls: bool?, + ?presence_penalty: Float?, + ?response_format: ::Hash[Symbol, top]?, + ?seed: Integer?, + ?service_tier: String?, + ?stop: Hanzoai::Models::Chat::CompletionCreateParams::stop?, + ?stream: bool?, + ?stream_options: ::Hash[Symbol, top]?, + ?temperature: Float?, + ?tool_choice: Hanzoai::Models::Chat::CompletionCreateParams::tool_choice?, + ?tools: ::Array[::Hash[Symbol, top]]?, + ?top_logprobs: Integer?, + ?top_p: Float?, + ?user: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/config/pass_through_endpoint.rbs b/sig/hanzoai/resources/config/pass_through_endpoint.rbs index 1f293aab..0921e40a 100644 --- a/sig/hanzoai/resources/config/pass_through_endpoint.rbs +++ b/sig/hanzoai/resources/config/pass_through_endpoint.rbs @@ -3,26 +3,40 @@ module Hanzoai class Config class PassThroughEndpoint def create: ( - headers: top, path: String, target: String, + ?id: String?, + ?auth: bool, + ?cost_per_request: Float, + ?guardrails: ::Hash[Symbol, Hanzoai::Config::PassThroughGenericEndpoint::Guardrail?]?, + ?headers: ::Hash[Symbol, top], + ?include_subpath: bool, ?request_options: Hanzoai::request_opts ) -> top def update: ( String endpoint_id, + path: String, + target: String, + ?id: String?, + ?auth: bool, + ?cost_per_request: Float, + ?guardrails: ::Hash[Symbol, Hanzoai::Config::PassThroughGenericEndpoint::Guardrail?]?, + ?headers: ::Hash[Symbol, top], + ?include_subpath: bool, ?request_options: Hanzoai::request_opts ) -> top def list: ( ?endpoint_id: String?, + ?team_id: String?, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::Config::PassThroughEndpointResponse + ) -> Hanzoai::Config::PassThroughEndpointResponse def delete: ( endpoint_id: String, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::Config::PassThroughEndpointResponse + ) -> Hanzoai::Config::PassThroughEndpointResponse def initialize: (client: Hanzoai::Client) -> void end diff --git a/sig/hanzoai/resources/credentials.rbs b/sig/hanzoai/resources/credentials.rbs index 3e712559..aad4455d 100644 --- a/sig/hanzoai/resources/credentials.rbs +++ b/sig/hanzoai/resources/credentials.rbs @@ -2,9 +2,9 @@ module Hanzoai module Resources class Credentials def create: ( - credential_info: top, + credential_info: ::Hash[Symbol, top], credential_name: String, - ?credential_values: top?, + ?credential_values: ::Hash[Symbol, top]?, ?model_id: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/customer.rbs b/sig/hanzoai/resources/customer.rbs index 05861def..fe0e2191 100644 --- a/sig/hanzoai/resources/customer.rbs +++ b/sig/hanzoai/resources/customer.rbs @@ -8,12 +8,14 @@ module Hanzoai ?blocked: bool, ?budget_duration: String?, ?budget_id: String?, + ?budget_reset_at: Time?, ?default_model: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?model_max_budget: ::Hash[Symbol, Hanzoai::Models::CustomerCreateParams::ModelMaxBudget]?, + ?model_max_budget: ::Hash[Symbol, Hanzoai::CustomerCreateParams::ModelMaxBudget]?, ?rpm_limit: Integer?, ?soft_budget: Float?, + ?spend: Float?, ?tpm_limit: Integer?, ?request_options: Hanzoai::request_opts ) -> top @@ -46,7 +48,7 @@ module Hanzoai def retrieve_info: ( end_user_id: String, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::CustomerRetrieveInfoResponse + ) -> Hanzoai::LiteLlmEndUserTable def unblock: ( user_ids: ::Array[String], diff --git a/sig/hanzoai/resources/embeddings.rbs b/sig/hanzoai/resources/embeddings.rbs index e41a96f5..a90e1e9c 100644 --- a/sig/hanzoai/resources/embeddings.rbs +++ b/sig/hanzoai/resources/embeddings.rbs @@ -2,7 +2,19 @@ module Hanzoai module Resources class Embeddings def create: ( - ?model: String?, + model: String, + ?api_base: String?, + ?api_key: String?, + ?api_type: String?, + ?api_version: String?, + ?caching: bool, + ?custom_llm_provider: Hanzoai::Models::EmbeddingCreateParams::custom_llm_provider?, + ?input: ::Array[String], + ?litellm_call_id: String?, + ?litellm_logging_obj: ::Hash[Symbol, top]?, + ?logger_fn: String?, + ?timeout: Integer, + ?user: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/engines.rbs b/sig/hanzoai/resources/engines.rbs index 2f8dd5fc..aa3dde49 100644 --- a/sig/hanzoai/resources/engines.rbs +++ b/sig/hanzoai/resources/engines.rbs @@ -8,7 +8,23 @@ module Hanzoai ?request_options: Hanzoai::request_opts ) -> top - def embed: (String model, ?request_options: Hanzoai::request_opts) -> top + def embed: ( + String path_model, + body_model: String, + ?api_base: String?, + ?api_key: String?, + ?api_type: String?, + ?api_version: String?, + ?caching: bool, + ?custom_llm_provider: Hanzoai::Models::EngineEmbedParams::custom_llm_provider?, + ?input: ::Array[String], + ?litellm_call_id: String?, + ?litellm_logging_obj: ::Hash[Symbol, top]?, + ?logger_fn: String?, + ?timeout: Integer, + ?user: String?, + ?request_options: Hanzoai::request_opts + ) -> top def initialize: (client: Hanzoai::Client) -> void end diff --git a/sig/hanzoai/resources/engines/chat.rbs b/sig/hanzoai/resources/engines/chat.rbs index 1e631fc2..061eebb6 100644 --- a/sig/hanzoai/resources/engines/chat.rbs +++ b/sig/hanzoai/resources/engines/chat.rbs @@ -3,7 +3,36 @@ module Hanzoai class Engines class Chat def complete: ( - String model, + String path_model, + messages: ::Array[Hanzoai::Models::Engines::ChatCompleteParams::message], + body_model: String, + ?caching: bool?, + ?context_window_fallback_dict: ::Hash[Symbol, String]?, + ?fallbacks: ::Array[String]?, + ?frequency_penalty: Float?, + ?function_call: Hanzoai::Models::Engines::ChatCompleteParams::function_call?, + ?functions: ::Array[::Hash[Symbol, top]]?, + ?guardrails: ::Array[String]?, + ?logit_bias: ::Hash[Symbol, Float]?, + ?logprobs: bool?, + ?max_tokens: Integer?, + ?metadata: ::Hash[Symbol, top]?, + ?n: Integer?, + ?num_retries: Integer?, + ?parallel_tool_calls: bool?, + ?presence_penalty: Float?, + ?response_format: ::Hash[Symbol, top]?, + ?seed: Integer?, + ?service_tier: String?, + ?stop: Hanzoai::Models::Engines::ChatCompleteParams::stop?, + ?stream: bool?, + ?stream_options: ::Hash[Symbol, top]?, + ?temperature: Float?, + ?tool_choice: Hanzoai::Models::Engines::ChatCompleteParams::tool_choice?, + ?tools: ::Array[::Hash[Symbol, top]]?, + ?top_logprobs: Integer?, + ?top_p: Float?, + ?user: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/files.rbs b/sig/hanzoai/resources/files.rbs index 271e6542..5a501d4f 100644 --- a/sig/hanzoai/resources/files.rbs +++ b/sig/hanzoai/resources/files.rbs @@ -5,9 +5,12 @@ module Hanzoai def create: ( String provider, - file: IO | StringIO, + file: Hanzoai::Internal::file_input, purpose: String, ?custom_llm_provider: String, + ?litellm_metadata: String?, + ?target_model_names: String, + ?target_storage: String, ?request_options: Hanzoai::request_opts ) -> top @@ -20,6 +23,7 @@ module Hanzoai def list: ( String provider, ?purpose: String?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/fine_tuning/jobs.rbs b/sig/hanzoai/resources/fine_tuning/jobs.rbs index d966ad70..2c12705d 100644 --- a/sig/hanzoai/resources/fine_tuning/jobs.rbs +++ b/sig/hanzoai/resources/fine_tuning/jobs.rbs @@ -5,10 +5,10 @@ module Hanzoai attr_reader cancel: Hanzoai::Resources::FineTuning::Jobs::Cancel def create: ( - custom_llm_provider: Hanzoai::Models::FineTuning::JobCreateParams::custom_llm_provider, model: String, training_file: String, - ?hyperparameters: Hanzoai::Models::FineTuning::JobCreateParams::Hyperparameters?, + ?custom_llm_provider: Hanzoai::Models::FineTuning::LiteLlmFineTuningJobCreate::custom_llm_provider?, + ?hyperparameters: Hanzoai::FineTuning::LiteLlmFineTuningJobCreate::Hyperparameters?, ?integrations: ::Array[String]?, ?seed: Integer?, ?suffix: String?, @@ -18,14 +18,15 @@ module Hanzoai def retrieve: ( String fine_tuning_job_id, - custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider, + ?custom_llm_provider: Hanzoai::Models::FineTuning::JobRetrieveParams::custom_llm_provider?, ?request_options: Hanzoai::request_opts ) -> top def list: ( - custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider, ?after: String?, + ?custom_llm_provider: Hanzoai::Models::FineTuning::JobListParams::custom_llm_provider?, ?limit: Integer?, + ?target_model_names: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/health.rbs b/sig/hanzoai/resources/health.rbs index 98aae1f0..95cfb726 100644 --- a/sig/hanzoai/resources/health.rbs +++ b/sig/hanzoai/resources/health.rbs @@ -3,6 +3,7 @@ module Hanzoai class Health def check_all: ( ?model: String?, + ?model_id: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/images/generations.rbs b/sig/hanzoai/resources/images/generations.rbs index 4ec5d149..bf52e9ed 100644 --- a/sig/hanzoai/resources/images/generations.rbs +++ b/sig/hanzoai/resources/images/generations.rbs @@ -2,7 +2,10 @@ module Hanzoai module Resources class Images class Generations - def create: (?request_options: Hanzoai::request_opts) -> top + def create: ( + ?model: String?, + ?request_options: Hanzoai::request_opts + ) -> top def initialize: (client: Hanzoai::Client) -> void end diff --git a/sig/hanzoai/resources/key.rbs b/sig/hanzoai/resources/key.rbs index b47e9d79..addd2b1d 100644 --- a/sig/hanzoai/resources/key.rbs +++ b/sig/hanzoai/resources/key.rbs @@ -5,43 +5,59 @@ module Hanzoai def update: ( key: String, - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::KeyUpdateParams::AllowedVectorStoreIndex]?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?enforced_params: ::Array[String]?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::KeyUpdateParams::ObjectPermission?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?rotation_interval: String?, + ?router_settings: Hanzoai::KeyUpdateParams::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::KeyUpdateParams::rpm_limit_type?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?temp_budget_expiry: Time?, ?temp_budget_increase: Float?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::KeyUpdateParams::tpm_limit_type?, ?user_id: String?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> top def list: ( + ?expand: ::Array[String]?, + ?include_created_by_keys: bool, ?include_team_keys: bool, ?key_alias: String?, + ?key_hash: String?, ?organization_id: String?, ?page: Integer, ?return_full_object: bool, ?size: Integer, + ?sort_by: String?, + ?sort_order: String, + ?status: String?, ?team_id: String?, ?user_id: String?, ?request_options: Hanzoai::request_opts @@ -50,13 +66,13 @@ module Hanzoai def delete: ( ?key_aliases: ::Array[String]?, ?keys: ::Array[String]?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> top def block: ( key: String, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> Hanzoai::Models::KeyBlockResponse? @@ -65,70 +81,95 @@ module Hanzoai ) -> Hanzoai::Models::KeyCheckHealthResponse def generate: ( - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::KeyGenerateParams::AllowedVectorStoreIndex]?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?enforced_params: ::Array[String]?, ?guardrails: ::Array[String]?, ?key: String?, ?key_alias: String?, + ?key_type: Hanzoai::Models::KeyGenerateParams::key_type?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::KeyGenerateParams::ObjectPermission?, + ?organization_id: String?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?rotation_interval: String?, + ?router_settings: Hanzoai::KeyGenerateParams::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::KeyGenerateParams::rpm_limit_type?, ?send_invite_email: bool?, ?soft_budget: Float?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::KeyGenerateParams::tpm_limit_type?, ?user_id: String?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::GenerateKeyResponse + ) -> Hanzoai::GenerateKeyResponse def regenerate_by_key: ( String path_key, - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::Key::RegenerateKeyRequest::AllowedVectorStoreIndex]?, + ?auto_rotate: bool?, ?blocked: bool?, ?budget_duration: String?, ?budget_id: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?enforced_params: ::Array[String]?, ?guardrails: ::Array[String]?, ?body_key: String?, ?key_alias: String?, + ?key_type: Hanzoai::Models::Key::RegenerateKeyRequest::key_type?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, + ?new_key: String?, ?new_master_key: String?, - ?permissions: top?, + ?object_permission: Hanzoai::Key::RegenerateKeyRequest::ObjectPermission?, + ?organization_id: String?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, + ?rotation_interval: String?, + ?router_settings: Hanzoai::Key::RegenerateKeyRequest::RouterSettings?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::rpm_limit_type?, ?send_invite_email: bool?, ?soft_budget: Float?, ?spend: Float?, ?tags: ::Array[String]?, ?team_id: String?, ?tpm_limit: Integer?, + ?tpm_limit_type: Hanzoai::Models::Key::RegenerateKeyRequest::tpm_limit_type?, ?user_id: String?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::GenerateKeyResponse? + ) -> Hanzoai::GenerateKeyResponse? def retrieve_info: ( ?key: String?, @@ -137,7 +178,7 @@ module Hanzoai def unblock: ( key: String, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/model.rbs b/sig/hanzoai/resources/model.rbs index 9a3f13dd..1ad4d595 100644 --- a/sig/hanzoai/resources/model.rbs +++ b/sig/hanzoai/resources/model.rbs @@ -6,8 +6,8 @@ module Hanzoai attr_reader update: Hanzoai::Resources::Model::Update def create: ( - llm_params: Hanzoai::Models::ModelCreateParams::LlmParams, - model_info: Hanzoai::Models::ModelInfo, + litellm_params: Hanzoai::ModelCreateParams::LitellmParams, + model_info: Hanzoai::ModelInfo, model_name: String, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/model/info.rbs b/sig/hanzoai/resources/model/info.rbs index 77a1fe3a..38cbd000 100644 --- a/sig/hanzoai/resources/model/info.rbs +++ b/sig/hanzoai/resources/model/info.rbs @@ -3,7 +3,7 @@ module Hanzoai class Model class Info def list: ( - ?llm_model_id: String?, + ?litellm_model_id: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/model/update.rbs b/sig/hanzoai/resources/model/update.rbs index d51dffba..6962c0e6 100644 --- a/sig/hanzoai/resources/model/update.rbs +++ b/sig/hanzoai/resources/model/update.rbs @@ -3,16 +3,16 @@ module Hanzoai class Model class Update def full: ( - ?llm_params: Hanzoai::Models::Model::UpdateDeployment::LlmParams?, - ?model_info: Hanzoai::Models::ModelInfo?, + ?litellm_params: Hanzoai::Model::UpdateDeployment::LitellmParams?, + ?model_info: Hanzoai::ModelInfo?, ?model_name: String?, ?request_options: Hanzoai::request_opts ) -> top def partial: ( String model_id, - ?llm_params: Hanzoai::Models::Model::UpdateDeployment::LlmParams?, - ?model_info: Hanzoai::Models::ModelInfo?, + ?litellm_params: Hanzoai::Model::UpdateDeployment::LitellmParams?, + ?model_info: Hanzoai::ModelInfo?, ?model_name: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/models.rbs b/sig/hanzoai/resources/models.rbs index 0dc5420f..64ce34c0 100644 --- a/sig/hanzoai/resources/models.rbs +++ b/sig/hanzoai/resources/models.rbs @@ -2,6 +2,10 @@ module Hanzoai module Resources class Models def list: ( + ?fallback_type: String?, + ?include_metadata: bool?, + ?include_model_access_groups: bool?, + ?only_model_access_groups: bool?, ?return_wildcard_routes: bool?, ?team_id: String?, ?request_options: Hanzoai::request_opts diff --git a/sig/hanzoai/resources/openai/deployments.rbs b/sig/hanzoai/resources/openai/deployments.rbs index 36da5662..0ddf0a6e 100644 --- a/sig/hanzoai/resources/openai/deployments.rbs +++ b/sig/hanzoai/resources/openai/deployments.rbs @@ -10,7 +10,20 @@ module Hanzoai ) -> top def embed: ( - String model, + String path_model, + body_model: String, + ?api_base: String?, + ?api_key: String?, + ?api_type: String?, + ?api_version: String?, + ?caching: bool, + ?custom_llm_provider: Hanzoai::Models::OpenAI::DeploymentEmbedParams::custom_llm_provider?, + ?input: ::Array[String], + ?litellm_call_id: String?, + ?litellm_logging_obj: ::Hash[Symbol, top]?, + ?logger_fn: String?, + ?timeout: Integer, + ?user: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/openai/deployments/chat.rbs b/sig/hanzoai/resources/openai/deployments/chat.rbs index 6a28443d..79fa83fa 100644 --- a/sig/hanzoai/resources/openai/deployments/chat.rbs +++ b/sig/hanzoai/resources/openai/deployments/chat.rbs @@ -4,7 +4,36 @@ module Hanzoai class Deployments class Chat def complete: ( - String model, + String path_model, + messages: ::Array[Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::message], + body_model: String, + ?caching: bool?, + ?context_window_fallback_dict: ::Hash[Symbol, String]?, + ?fallbacks: ::Array[String]?, + ?frequency_penalty: Float?, + ?function_call: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::function_call?, + ?functions: ::Array[::Hash[Symbol, top]]?, + ?guardrails: ::Array[String]?, + ?logit_bias: ::Hash[Symbol, Float]?, + ?logprobs: bool?, + ?max_tokens: Integer?, + ?metadata: ::Hash[Symbol, top]?, + ?n: Integer?, + ?num_retries: Integer?, + ?parallel_tool_calls: bool?, + ?presence_penalty: Float?, + ?response_format: ::Hash[Symbol, top]?, + ?seed: Integer?, + ?service_tier: String?, + ?stop: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::stop?, + ?stream: bool?, + ?stream_options: ::Hash[Symbol, top]?, + ?temperature: Float?, + ?tool_choice: Hanzoai::Models::OpenAI::Deployments::ChatCompleteParams::tool_choice?, + ?tools: ::Array[::Hash[Symbol, top]]?, + ?top_logprobs: Integer?, + ?top_p: Float?, + ?user: String?, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/organization.rbs b/sig/hanzoai/resources/organization.rbs index e6ec84aa..f410deca 100644 --- a/sig/hanzoai/resources/organization.rbs +++ b/sig/hanzoai/resources/organization.rbs @@ -9,9 +9,12 @@ module Hanzoai ?budget_id: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, Integer]?, + ?model_tpm_limit: ::Hash[Symbol, Integer]?, ?models: ::Array[top], + ?object_permission: Hanzoai::OrganizationCreateParams::ObjectPermission?, ?organization_id: String?, ?rpm_limit: Integer?, ?soft_budget: Float?, @@ -20,17 +23,12 @@ module Hanzoai ) -> Hanzoai::Models::OrganizationCreateResponse def update: ( - ?budget_id: String?, - ?metadata: top?, - ?models: ::Array[String]?, - ?organization_alias: String?, - ?organization_id: String?, - ?spend: Float?, - ?updated_by: String?, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::OrganizationUpdateResponse + ) -> Hanzoai::OrganizationTableWithMembers def list: ( + ?org_alias: String?, + ?org_id: String?, ?request_options: Hanzoai::request_opts ) -> Hanzoai::Models::organization_list_response @@ -56,11 +54,11 @@ module Hanzoai def update_member: ( organization_id: String, ?max_budget_in_organization: Float?, - ?role: Hanzoai::Models::OrganizationUpdateMemberParams::role?, + ?role: Hanzoai::Models::user_roles?, ?user_email: String?, ?user_id: String?, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::OrganizationUpdateMemberResponse + ) -> Hanzoai::OrganizationMembershipTable def initialize: (client: Hanzoai::Client) -> void end diff --git a/sig/hanzoai/resources/organization/info.rbs b/sig/hanzoai/resources/organization/info.rbs index 7ebb198c..e815299a 100644 --- a/sig/hanzoai/resources/organization/info.rbs +++ b/sig/hanzoai/resources/organization/info.rbs @@ -5,7 +5,7 @@ module Hanzoai def retrieve: ( organization_id: String, ?request_options: Hanzoai::request_opts - ) -> Hanzoai::Models::Organization::InfoRetrieveResponse + ) -> Hanzoai::OrganizationTableWithMembers def deprecated: ( organizations: ::Array[String], diff --git a/sig/hanzoai/resources/spend.rbs b/sig/hanzoai/resources/spend.rbs index 48803e05..d8cd2d6f 100644 --- a/sig/hanzoai/resources/spend.rbs +++ b/sig/hanzoai/resources/spend.rbs @@ -2,7 +2,7 @@ module Hanzoai module Resources class Spend def calculate_spend: ( - ?completion_response: top?, + ?completion_response: ::Hash[Symbol, top]?, ?messages: ::Array[top]?, ?model: String?, ?request_options: Hanzoai::request_opts @@ -13,6 +13,7 @@ module Hanzoai ?end_date: String?, ?request_id: String?, ?start_date: String?, + ?summarize: bool, ?user_id: String?, ?request_options: Hanzoai::request_opts ) -> Hanzoai::Models::spend_list_logs_response diff --git a/sig/hanzoai/resources/team.rbs b/sig/hanzoai/resources/team.rbs index 7b4c1b7e..31a0657c 100644 --- a/sig/hanzoai/resources/team.rbs +++ b/sig/hanzoai/resources/team.rbs @@ -7,40 +7,68 @@ module Hanzoai def create: ( ?admins: ::Array[top], + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::TeamCreateParams::AllowedVectorStoreIndex]?, ?blocked: bool, ?budget_duration: String?, ?guardrails: ::Array[String]?, ?max_budget: Float?, ?members: ::Array[top], - ?members_with_roles: ::Array[Hanzoai::Models::Member], - ?metadata: top?, - ?model_aliases: top?, + ?members_with_roles: ::Array[Hanzoai::Member], + ?metadata: ::Hash[Symbol, top]?, + ?model_aliases: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, Integer]?, + ?model_tpm_limit: ::Hash[Symbol, Integer]?, ?models: ::Array[top], + ?object_permission: Hanzoai::TeamCreateParams::ObjectPermission?, ?organization_id: String?, + ?prompts: ::Array[String]?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, + ?rpm_limit_type: Hanzoai::Models::TeamCreateParams::rpm_limit_type?, + ?secret_manager_settings: ::Hash[Symbol, top]?, ?tags: ::Array[top]?, ?team_alias: String?, ?team_id: String?, + ?team_member_budget: Float?, + ?team_member_key_duration: String?, + ?team_member_permissions: ::Array[String]?, + ?team_member_rpm_limit: Integer?, + ?team_member_tpm_limit: Integer?, ?tpm_limit: Integer?, - ?llm_changed_by: String, + ?tpm_limit_type: Hanzoai::Models::TeamCreateParams::tpm_limit_type?, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> Hanzoai::Models::TeamCreateResponse def update: ( team_id: String, + ?allowed_passthrough_routes: ::Array[top]?, + ?allowed_vector_store_indexes: ::Array[Hanzoai::TeamUpdateParams::AllowedVectorStoreIndex]?, ?blocked: bool?, ?budget_duration: String?, ?guardrails: ::Array[String]?, ?max_budget: Float?, - ?metadata: top?, - ?model_aliases: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_aliases: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, Integer]?, + ?model_tpm_limit: ::Hash[Symbol, Integer]?, ?models: ::Array[top]?, + ?object_permission: Hanzoai::TeamUpdateParams::ObjectPermission?, ?organization_id: String?, + ?prompts: ::Array[String]?, + ?router_settings: ::Hash[Symbol, top]?, ?rpm_limit: Integer?, + ?secret_manager_settings: ::Hash[Symbol, top]?, ?tags: ::Array[top]?, ?team_alias: String?, + ?team_member_budget: Float?, + ?team_member_budget_duration: String?, + ?team_member_key_duration: String?, + ?team_member_rpm_limit: Integer?, + ?team_member_tpm_limit: Integer?, ?tpm_limit: Integer?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> top @@ -52,7 +80,7 @@ module Hanzoai def delete: ( team_ids: ::Array[String], - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> top @@ -99,6 +127,8 @@ module Hanzoai team_id: String, ?max_budget_in_team: Float?, ?role: Hanzoai::Models::TeamUpdateMemberParams::role?, + ?rpm_limit: Integer?, + ?tpm_limit: Integer?, ?user_email: String?, ?user_id: String?, ?request_options: Hanzoai::request_opts diff --git a/sig/hanzoai/resources/team/callback.rbs b/sig/hanzoai/resources/team/callback.rbs index c08becdb..6277fd55 100644 --- a/sig/hanzoai/resources/team/callback.rbs +++ b/sig/hanzoai/resources/team/callback.rbs @@ -12,7 +12,7 @@ module Hanzoai callback_name: String, callback_vars: ::Hash[Symbol, String], ?callback_type: Hanzoai::Models::Team::CallbackAddParams::callback_type?, - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/user.rbs b/sig/hanzoai/resources/user.rbs index f9132e23..444f3bf9 100644 --- a/sig/hanzoai/resources/user.rbs +++ b/sig/hanzoai/resources/user.rbs @@ -2,28 +2,32 @@ module Hanzoai module Resources class User def create: ( - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, ?auto_create_key: bool, ?blocked: bool?, ?budget_duration: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, - ?permissions: top?, + ?object_permission: Hanzoai::UserCreateParams::ObjectPermission?, + ?organizations: ::Array[String]?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, ?rpm_limit: Integer?, ?send_invite_email: bool?, ?spend: Float?, + ?sso_user_id: String?, ?team_id: String?, - ?teams: ::Array[top]?, + ?teams: Hanzoai::Models::UserCreateParams::teams?, ?tpm_limit: Integer?, ?user_alias: String?, ?user_email: String?, @@ -33,44 +37,39 @@ module Hanzoai ) -> Hanzoai::Models::UserCreateResponse def update: ( - ?aliases: top?, + ?aliases: ::Hash[Symbol, top]?, ?allowed_cache_controls: ::Array[top]?, ?blocked: bool?, ?budget_duration: String?, - ?config: top?, + ?config: ::Hash[Symbol, top]?, ?duration: String?, ?guardrails: ::Array[String]?, ?key_alias: String?, ?max_budget: Float?, ?max_parallel_requests: Integer?, - ?metadata: top?, - ?model_max_budget: top?, - ?model_rpm_limit: top?, - ?model_tpm_limit: top?, + ?metadata: ::Hash[Symbol, top]?, + ?model_max_budget: ::Hash[Symbol, top]?, + ?model_rpm_limit: ::Hash[Symbol, top]?, + ?model_tpm_limit: ::Hash[Symbol, top]?, ?models: ::Array[top]?, + ?object_permission: Hanzoai::UserUpdateParams::ObjectPermission?, ?password: String?, - ?permissions: top?, + ?permissions: ::Hash[Symbol, top]?, + ?prompts: ::Array[String]?, ?rpm_limit: Integer?, ?spend: Float?, ?team_id: String?, ?tpm_limit: Integer?, + ?user_alias: String?, ?user_email: String?, ?user_id: String?, ?user_role: Hanzoai::Models::UserUpdateParams::user_role?, ?request_options: Hanzoai::request_opts ) -> top - def list: ( - ?page: Integer, - ?page_size: Integer, - ?role: String?, - ?user_ids: String?, - ?request_options: Hanzoai::request_opts - ) -> top - def delete: ( user_ids: ::Array[String], - ?llm_changed_by: String, + ?litellm_changed_by: String, ?request_options: Hanzoai::request_opts ) -> top diff --git a/sig/hanzoai/resources/utils.rbs b/sig/hanzoai/resources/utils.rbs index 2a4125cf..9346157f 100644 --- a/sig/hanzoai/resources/utils.rbs +++ b/sig/hanzoai/resources/utils.rbs @@ -8,14 +8,16 @@ module Hanzoai def token_counter: ( model: String, - ?messages: ::Array[top]?, + ?call_endpoint: bool, + ?contents: ::Array[::Hash[Symbol, top]]?, + ?messages: ::Array[::Hash[Symbol, top]]?, ?prompt: String?, ?request_options: Hanzoai::request_opts ) -> Hanzoai::Models::UtilTokenCounterResponse def transform_request: ( call_type: Hanzoai::Models::UtilTransformRequestParams::call_type, - request_body: top, + request_body: ::Hash[Symbol, top], ?request_options: Hanzoai::request_opts ) -> Hanzoai::Models::UtilTransformRequestResponse diff --git a/sorbet/config b/sorbet/config index 538c1528..6fe84ed8 100644 --- a/sorbet/config +++ b/sorbet/config @@ -1,2 +1,2 @@ ---dir=rbi +--dir=rbi/ --ignore=test/ diff --git a/sorbet/rbi/.gitignore b/sorbet/rbi/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/sorbet/rbi/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/test/hanzoai/client_test.rb b/test/hanzoai/client_test.rb index d8dc4b27..d4b76a66 100644 --- a/test/hanzoai/client_test.rb +++ b/test/hanzoai/client_test.rb @@ -3,22 +3,28 @@ require_relative "test_helper" class HanzoaiTest < Minitest::Test + extend Minitest::Serial + include WebMock::API + + def before_all + super + WebMock.enable! + end + def setup + super Thread.current.thread_variable_set(:mock_sleep, []) end def teardown Thread.current.thread_variable_set(:mock_sleep, nil) + WebMock.reset! + super end - def test_raises_on_both_base_url_and_environment - e = assert_raises(ArgumentError) do - Hanzoai::Client.new( - base_url: "https://localhost:8000", - environment: "production" - ) - end - assert_match(/both environment and base_url given/, e.message) + def after_all + WebMock.disable! + super end def test_raises_on_unknown_environment @@ -35,103 +41,79 @@ def test_raises_on_missing_non_nullable_opts assert_match(/is required/, e.message) end - class MockRequester - # @return [Integer] - attr_reader :response_code - - # @return [Hash{String=>String}] - attr_reader :response_headers - - # @return [Object] - attr_reader :response_data - - # @return [ArrayObject}>] - attr_accessor :attempts - - # @param response_code [Integer] - # @param response_headers [Hash{String=>String}] - # @param response_data [Object] - def initialize(response_code, response_headers, response_data) - @response_code = response_code - @response_headers = response_headers - @response_data = JSON.fast_generate(response_data) - @attempts = [] - end - - # @param req [Hash{Symbol=>Object}] - def execute(req) - # Deep copy the request because it is mutated on each retry. - attempts.push(Marshal.load(Marshal.dump(req))) - headers = {"content-type" => "application/json", **response_headers} - [response_code, headers, response_data.grapheme_clusters] - end - end - def test_client_default_request_default_retry_attempts - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(500, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 500, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home end - assert_equal(3, requester.attempts.length) + assert_requested(:any, /./, times: 3) end def test_client_given_request_default_retry_attempts - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key", max_retries: 3) - requester = MockRequester.new(500, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 500, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home end - assert_equal(4, requester.attempts.length) + assert_requested(:any, /./, times: 4) end def test_client_default_request_given_retry_attempts - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(500, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 500, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home(request_options: {max_retries: 3}) end - assert_equal(4, requester.attempts.length) + assert_requested(:any, /./, times: 4) end def test_client_given_request_given_retry_attempts - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key", max_retries: 3) - requester = MockRequester.new(500, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 500, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 3) assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home(request_options: {max_retries: 4}) end - assert_equal(5, requester.attempts.length) + assert_requested(:any, /./, times: 5) end def test_client_retry_after_seconds - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key", max_retries: 1) - requester = MockRequester.new(500, {"retry-after" => "1.3"}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json( + status: 500, + headers: {"retry-after" => "1.3"}, + body: {} + ) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home end - assert_equal(2, requester.attempts.length) + assert_requested(:any, /./, times: 2) assert_equal(1.3, Thread.current.thread_variable_get(:mock_sleep).last) end def test_client_retry_after_date - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key", max_retries: 1) - requester = MockRequester.new(500, {"retry-after" => (Time.now + 10).httpdate}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json( + status: 500, + headers: {"retry-after" => (Time.now + 10).httpdate}, + body: {} + ) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Hanzoai::Errors::InternalServerError) do Thread.current.thread_variable_set(:time_now, Time.now) @@ -139,130 +121,180 @@ def test_client_retry_after_date Thread.current.thread_variable_set(:time_now, nil) end - assert_equal(2, requester.attempts.length) + assert_requested(:any, /./, times: 2) assert_in_delta(10, Thread.current.thread_variable_get(:mock_sleep).last, 1.0) end def test_client_retry_after_ms - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key", max_retries: 1) - requester = MockRequester.new(500, {"retry-after-ms" => "1300"}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json( + status: 500, + headers: {"retry-after-ms" => "1300"}, + body: {} + ) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home end - assert_equal(2, requester.attempts.length) + assert_requested(:any, /./, times: 2) assert_equal(1.3, Thread.current.thread_variable_get(:mock_sleep).last) end def test_retry_count_header - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(500, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 500, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home end - retry_count_headers = requester.attempts.map { _1[:headers]["x-stainless-retry-count"] } - assert_equal(%w[0 1 2], retry_count_headers) + 3.times do + assert_requested(:any, /./, headers: {"x-stainless-retry-count" => _1}) + end end def test_omit_retry_count_header - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(500, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 500, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home(request_options: {extra_headers: {"x-stainless-retry-count" => nil}}) end - retry_count_headers = requester.attempts.map { _1[:headers]["x-stainless-retry-count"] } - assert_equal([nil, nil, nil], retry_count_headers) + assert_requested(:any, /./, times: 3) do + refute_includes(_1.headers.keys.map(&:downcase), "x-stainless-retry-count") + end end def test_overwrite_retry_count_header - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(500, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 500, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::InternalServerError) do hanzo.get_home(request_options: {extra_headers: {"x-stainless-retry-count" => "42"}}) end - retry_count_headers = requester.attempts.map { _1[:headers]["x-stainless-retry-count"] } - assert_equal(%w[42 42 42], retry_count_headers) + assert_requested(:any, /./, headers: {"x-stainless-retry-count" => "42"}, times: 3) end def test_client_redirect_307 - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(307, {"location" => "/redirected"}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json( + status: 307, + headers: {"location" => "/redirected"}, + body: {} + ) + stub_request(:any, "http://localhost/redirected").to_return( + status: 307, + headers: {"location" => "/redirected"} + ) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::APIConnectionError) do hanzo.get_home(request_options: {extra_headers: {}}) end - assert_equal("/redirected", requester.attempts.last[:url].path) - assert_equal(requester.attempts.first[:method], requester.attempts.last[:method]) - assert_equal(requester.attempts.first[:body], requester.attempts.last[:body]) - assert_equal( - requester.attempts.first[:headers]["content-type"], - requester.attempts.last[:headers]["content-type"] - ) + recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first + + assert_requested(:any, "http://localhost/redirected", times: Hanzoai::Client::MAX_REDIRECTS) do + assert_equal(recorded.method, _1.method) + assert_equal(recorded.body, _1.body) + assert_equal( + recorded.headers.transform_keys(&:downcase).fetch("content-type"), + _1.headers.transform_keys(&:downcase).fetch("content-type") + ) + end end def test_client_redirect_303 - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(303, {"location" => "/redirected"}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json( + status: 303, + headers: {"location" => "/redirected"}, + body: {} + ) + stub_request(:get, "http://localhost/redirected").to_return( + status: 303, + headers: {"location" => "/redirected"} + ) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::APIConnectionError) do hanzo.get_home(request_options: {extra_headers: {}}) end - assert_equal("/redirected", requester.attempts.last[:url].path) - assert_equal(:get, requester.attempts.last[:method]) - assert_nil(requester.attempts.last[:body]) - assert_nil(requester.attempts.last[:headers]["Content-Type"]) + assert_requested(:get, "http://localhost/redirected", times: Hanzoai::Client::MAX_REDIRECTS) do + headers = _1.headers.keys.map(&:downcase) + refute_includes(headers, "content-type") + assert_nil(_1.body) + end end def test_client_redirect_auth_keep_same_origin - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(307, {"location" => "/redirected"}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json( + status: 307, + headers: {"location" => "/redirected"}, + body: {} + ) + stub_request(:any, "http://localhost/redirected").to_return( + status: 307, + headers: {"location" => "/redirected"} + ) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::APIConnectionError) do - hanzo.get_home(request_options: {extra_headers: {"Authorization" => "Bearer xyz"}}) + hanzo.get_home(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end - assert_equal( - requester.attempts.first[:headers]["authorization"], - requester.attempts.last[:headers]["authorization"] - ) + recorded, = WebMock::RequestRegistry.instance.requested_signatures.hash.first + auth_header = recorded.headers.transform_keys(&:downcase).fetch("authorization") + + assert_equal("Bearer xyz", auth_header) + assert_requested(:any, "http://localhost/redirected", times: Hanzoai::Client::MAX_REDIRECTS) do + auth_header = _1.headers.transform_keys(&:downcase).fetch("authorization") + assert_equal("Bearer xyz", auth_header) + end end def test_client_redirect_auth_strip_cross_origin - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(307, {"location" => "https://example.com/redirected"}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json( + status: 307, + headers: {"location" => "https://example.com/redirected"}, + body: {} + ) + stub_request(:any, "https://example.com/redirected").to_return( + status: 307, + headers: {"location" => "https://example.com/redirected"} + ) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") assert_raises(Hanzoai::Errors::APIConnectionError) do - hanzo.get_home(request_options: {extra_headers: {"Authorization" => "Bearer xyz"}}) + hanzo.get_home(request_options: {extra_headers: {"authorization" => "Bearer xyz"}}) end - assert_nil(requester.attempts.last[:headers]["Authorization"]) + assert_requested(:any, "https://example.com/redirected", times: Hanzoai::Client::MAX_REDIRECTS) do + headers = _1.headers.keys.map(&:downcase) + refute_includes(headers, "authorization") + end end def test_default_headers - hanzo = Hanzoai::Client.new(base_url: "http://localhost:4010", api_key: "My API Key") - requester = MockRequester.new(200, {}, {}) - hanzo.requester = requester + stub_request(:get, "http://localhost/").to_return_json(status: 200, body: {}) + + hanzo = Hanzoai::Client.new(base_url: "http://localhost", api_key: "My API Key") + hanzo.get_home - headers = requester.attempts.first[:headers] - refute_empty(headers["accept"]) - refute_empty(headers["content-type"]) + assert_requested(:any, /./) do |req| + headers = req.headers.transform_keys(&:downcase).fetch_values("accept", "content-type") + headers.each { refute_empty(_1) } + end end end diff --git a/test/hanzoai/file_part_test.rb b/test/hanzoai/file_part_test.rb new file mode 100644 index 00000000..a25129c8 --- /dev/null +++ b/test/hanzoai/file_part_test.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require_relative "test_helper" + +class Hanzoai::Test::FilePartTest < Minitest::Test + def test_to_json + text = "gray" + filepart = Hanzoai::FilePart.new(StringIO.new(text)) + + assert_equal(text.to_json, filepart.to_json) + assert_equal(text.to_yaml, filepart.to_yaml) + end +end diff --git a/test/hanzoai/internal/sorbet_runtime_support_test.rb b/test/hanzoai/internal/sorbet_runtime_support_test.rb new file mode 100644 index 00000000..6b6ff576 --- /dev/null +++ b/test/hanzoai/internal/sorbet_runtime_support_test.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +class Hanzoai::Test::SorbetRuntimeSupportTest < Minitest::Test + extend Minitest::Serial + + i_suck_and_my_tests_are_order_dependent! + + module E + extend Hanzoai::Internal::Type::Enum + + define_sorbet_constant!(:TaggedSymbol) { 1 } + end + + module U + extend Hanzoai::Internal::Type::Union + + define_sorbet_constant!(:Variants) { 2 } + end + + class M < Hanzoai::Internal::Type::BaseModel + define_sorbet_constant!(:OrHash) { 3 } + end + + def test_nil_aliases + err = Hanzoai::Internal::Util::SorbetRuntimeSupport::MissingSorbetRuntimeError + + assert_raises(err) { Hanzoai::Internal::AnyHash } + assert_raises(err) { Hanzoai::Internal::FileInput } + assert_raises(err) { Hanzoai::Internal::Type::Converter::Input } + assert_raises(err) { Hanzoai::Internal::Type::Converter::CoerceState } + assert_raises(err) { Hanzoai::Internal::Type::Converter::DumpState } + assert_raises(err) { Hanzoai::Internal::Type::BaseModel::KnownField } + assert_raises(err) { Hanzoai::Internal::Util::ParsedUri } + assert_raises(err) { Hanzoai::Internal::Util::ServerSentEvent } + assert_raises(err) { Hanzoai::Internal::Transport::BaseClient::RequestComponents } + assert_raises(err) { Hanzoai::Internal::Transport::BaseClient::RequestInput } + assert_raises(err) { Hanzoai::Internal::Transport::PooledNetRequester::Request } + assert_raises(err) { E::TaggedSymbol } + assert_raises(err) { U::Variants } + assert_raises(err) { M::OrHash } + end + + def test_stubbed_aliases + Kernel.instance_eval { const_set(:T, nil) } + + assert_equal(1, E::TaggedSymbol) + assert_equal(2, U::Variants) + assert_equal(3, M::OrHash) + end +end diff --git a/test/hanzoai/internal/type/base_model_test.rb b/test/hanzoai/internal/type/base_model_test.rb index 2f31f70b..2624ef6f 100644 --- a/test/hanzoai/internal/type/base_model_test.rb +++ b/test/hanzoai/internal/type/base_model_test.rb @@ -22,7 +22,7 @@ class B < Hanzoai::Internal::Type::BaseModel def test_typing converters = [ Hanzoai::Internal::Type::Unknown, - Hanzoai::Internal::Type::BooleanModel, + Hanzoai::Internal::Type::Boolean, A, H, E, @@ -42,8 +42,8 @@ def test_coerce [Hanzoai::Internal::Type::Unknown, :a] => [{yes: 1}, :a], [NilClass, :a] => [{maybe: 1}, nil], [NilClass, nil] => [{yes: 1}, nil], - [Hanzoai::Internal::Type::BooleanModel, true] => [{yes: 1}, true], - [Hanzoai::Internal::Type::BooleanModel, "true"] => [{no: 1}, "true"], + [Hanzoai::Internal::Type::Boolean, true] => [{yes: 1}, true], + [Hanzoai::Internal::Type::Boolean, "true"] => [{no: 1}, "true"], [Integer, 1] => [{yes: 1}, 1], [Integer, 1.0] => [{maybe: 1}, 1], [Integer, "1"] => [{maybe: 1}, 1], @@ -66,7 +66,7 @@ def test_coerce cases.each do |lhs, rhs| target, input = lhs exactness, expect = rhs - state = {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} + state = Hanzoai::Internal::Type::Converter.new_coerce_state assert_pattern do Hanzoai::Internal::Type::Converter.coerce(target, input, state: state) => ^expect state.fetch(:exactness).filter { _2.nonzero? }.to_h => ^exactness @@ -85,14 +85,16 @@ def test_dump [String, B.new(a: "one", b: B.new(a: 1.0))] => {a: "one", b: {a: 1}}, [:b, B.new(a: "one", b: B.new(a: 1.0))] => {a: "one", b: {a: 1}}, [nil, B.new(a: "one", b: B.new(a: 1.0))] => {a: "one", b: {a: 1}}, - [Hanzoai::Internal::Type::BooleanModel, true] => true, - [Hanzoai::Internal::Type::BooleanModel, "true"] => "true", + [Hanzoai::Internal::Type::Boolean, true] => true, + [Hanzoai::Internal::Type::Boolean, "true"] => "true", [Integer, "1"] => "1", [Float, 1] => 1, [String, "one"] => "one", [String, :one] => :one, [:a, :b] => :b, - [:a, "a"] => "a" + [:a, "a"] => "a", + [String, StringIO.new("one")] => "one", + [String, Pathname(__FILE__)] => Hanzoai::FilePart } cases.each do @@ -106,25 +108,61 @@ def test_dump def test_coerce_errors cases = { - [Integer, "one"] => TypeError, - [Float, "one"] => TypeError, + [Integer, "one"] => ArgumentError, + [Float, "one"] => ArgumentError, [String, Time] => TypeError, - [:a, "one"] => ArgumentError, [Date, "one"] => ArgumentError, [Time, "one"] => ArgumentError } - cases.each do - target, input = _1 - state = {strictness: :strong, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} - assert_raises(_2) do - Hanzoai::Internal::Type::Converter.coerce(target, input, state: state) + cases.each do |testcase, expect| + target, input = testcase + state = Hanzoai::Internal::Type::Converter.new_coerce_state + Hanzoai::Internal::Type::Converter.coerce(target, input, state: state) + assert_pattern do + state => {error: ^expect} + end + end + end + + def test_dump_retry + types = [ + Hanzoai::Internal::Type::Unknown, + Hanzoai::Internal::Type::Boolean, + A, + H, + E, + U, + B + ] + Pathname(__FILE__).open do |fd| + cases = [ + fd, + [fd], + {a: fd}, + {a: {b: fd}} + ] + types.product(cases).each do |target, input| + state = {can_retry: true} + Hanzoai::Internal::Type::Converter.dump(target, input, state: state) + + assert_pattern do + state => {can_retry: false} + end end end end end class Hanzoai::Test::EnumModelTest < Minitest::Test + class E0 + include Hanzoai::Internal::Type::Enum + + attr_reader :values + + def initialize(*values) = (@values = values) + end + module E1 extend Hanzoai::Internal::Type::Enum @@ -154,11 +192,13 @@ module E4 def test_coerce cases = { - # rubocop:disable Style/BooleanSymbol + [E0.new, "one"] => [{no: 1}, "one"], + [E0.new(:one), "one"] => [{yes: 1}, :one], + [E0.new(:two), "one"] => [{maybe: 1}, "one"], + [E1, true] => [{yes: 1}, true], [E1, false] => [{no: 1}, false], [E1, :true] => [{no: 1}, :true], - # rubocop:enable Style/BooleanSymbol [E2, 1] => [{yes: 1}, 1], [E2, 1.0] => [{yes: 1}, 1], @@ -179,7 +219,7 @@ def test_coerce cases.each do |lhs, rhs| target, input = lhs exactness, expect = rhs - state = {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} + state = Hanzoai::Internal::Type::Converter.new_coerce_state assert_pattern do Hanzoai::Internal::Type::Converter.coerce(target, input, state: state) => ^expect state.fetch(:exactness).filter { _2.nonzero? }.to_h => ^exactness @@ -253,7 +293,7 @@ def test_coerce cases.each do |lhs, rhs| target, input = lhs exactness, expect = rhs - state = {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} + state = Hanzoai::Internal::Type::Converter.new_coerce_state assert_pattern do Hanzoai::Internal::Type::Converter.coerce(target, input, state: state) => ^expect state.fetch(:exactness).filter { _2.nonzero? }.to_h => ^exactness @@ -302,6 +342,7 @@ class M5 < Hanzoai::Internal::Type::BaseModel class M6 < M1 required :a, Hanzoai::Internal::Type::ArrayOf[M6] + optional :b, M6 end def test_coerce @@ -316,7 +357,7 @@ def test_coerce [M2, {a: "1990-09-19", c: nil}] => [{yes: 2, maybe: 2}, {a: "1990-09-19", c: nil}], [M3, {c: "c", d: "d"}] => [{yes: 3}, {c: :c, d: :d}], - [M3, {c: "d", d: "c"}] => [{yes: 1, no: 2}, {c: "d", d: "c"}], + [M3, {c: "d", d: "c"}] => [{yes: 1, maybe: 2}, {c: "d", d: "c"}], [M4, {c: 2}] => [{yes: 5}, {c: 2}], [M4, {a: "1", c: 2}] => [{yes: 4, maybe: 1}, {a: "1", c: 2}], @@ -327,13 +368,14 @@ def test_coerce [M5, {d: "d"}] => [{yes: 3}, {d: :d}], [M5, {d: nil}] => [{yes: 2, no: 1}, {d: nil}], - [M6, {a: [{a: []}]}] => [{yes: 4}, -> { _1 in {a: [M6]} }] + [M6, {a: [{a: []}]}] => [{yes: 6}, -> { _1 in {a: [M6]} }], + [M6, {b: {a: []}}] => [{yes: 4, no: 1}, -> { _1 in {b: M6} }] } cases.each do |lhs, rhs| target, input = lhs exactness, expect = rhs - state = {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} + state = Hanzoai::Internal::Type::Converter.new_coerce_state assert_pattern do coerced = Hanzoai::Internal::Type::Converter.coerce(target, input, state: state) assert_equal(coerced, coerced) @@ -372,19 +414,26 @@ def test_dump def test_accessors cases = { - M2.new({a: "1990-09-19", b: "1"}) => {a: Time.new(1990, 9, 19), b: TypeError}, - M2.new(a: "one", b: "one") => {a: ArgumentError, b: TypeError}, - M2.new(a: nil, b: 2.0) => {a: TypeError, b: TypeError}, + M2.new({a: "1990-09-19", b: "1"}) => [{a: "1990-09-19", b: "1"}, {a: Time.new(1990, 9, 19), b: 1}], + M2.new(a: "one", b: "one") => [{a: "one", b: "one"}, {a: ArgumentError, b: ArgumentError}], + M2.new(a: nil, b: 2.0) => [{a: nil, b: 2.0}, {a: TypeError}], + M2.new(a: nil, b: 2.2) => [{a: nil, b: 2.2}, {a: TypeError, b: 2}], - M3.new => {d: :d}, - M3.new(d: 1) => {d: ArgumentError}, + M3.new => [{}, {d: :d}], + M3.new(d: 1) => [{d: 1}, {d: ArgumentError}], - M5.new => {c: :c, d: :d} + M5.new => [{}, {c: :c, d: :d}] } cases.each do target = _1 - _2.each do |accessor, expect| + data, attributes = _2 + + assert_pattern do + target.to_h => ^data + end + + attributes.each do |accessor, expect| case expect in Class if expect <= StandardError tap do @@ -399,15 +448,36 @@ def test_accessors end end end + + def test_inplace_modification + m1 = M6.new(a: []) + m1.a << M6.new(a: []) + + m2 = M6.new(b: M6.new(a: [])) + m2.b.a << M6.new(a: []) + + m3 = M6.new(a: []) + m4 = M6.new(b: m3) + m3.a << M6.new(a: []) + + assert_pattern do + m1 => {a: [{a: []}]} + m2 => {b: {a: [{a: []}]}} + m4 => {b: {a: [{a: []}]}} + end + end end class Hanzoai::Test::UnionTest < Minitest::Test - module U0 - extend Hanzoai::Internal::Type::Union + class U0 + include Hanzoai::Internal::Type::Union + + def initialize(*variants) = variants.each { variant(_1) } end module U1 extend Hanzoai::Internal::Type::Union + variant const: :a variant const: 2 end @@ -424,6 +494,7 @@ class M2 < Hanzoai::Internal::Type::BaseModel module U2 extend Hanzoai::Internal::Type::Union + discriminator :type variant :a, M1 @@ -432,6 +503,7 @@ module U2 module U3 extend Hanzoai::Internal::Type::Union + discriminator :type variant :a, M1 @@ -440,6 +512,7 @@ module U3 module U4 extend Hanzoai::Internal::Type::Union + discriminator :type variant String @@ -489,9 +562,14 @@ def test_coerce cases = { [U0, :""] => [{no: 1}, 0, :""], + [U0.new(Integer, Float), "one"] => [{no: 1}, 2, "one"], + [U0.new(Integer, Float), 1.0] => [{yes: 1}, 2, 1.0], + [U0.new({const: :a}), "a"] => [{yes: 1}, 1, :a], + [U0.new({const: :a}), "2"] => [{maybe: 1}, 1, "2"], + [U1, "a"] => [{yes: 1}, 1, :a], - [U1, "2"] => [{maybe: 1}, 2, 2], - [U1, :b] => [{no: 1}, 2, :b], + [U1, "2"] => [{maybe: 1}, 2, "2"], + [U1, :b] => [{maybe: 1}, 2, :b], [U2, {type: :a}] => [{yes: 3}, 0, {t: :a}], [U2, {type: "b"}] => [{yes: 3}, 0, {type: :b}], @@ -509,7 +587,7 @@ def test_coerce cases.each do |lhs, rhs| target, input = lhs exactness, branched, expect = rhs - state = {strictness: true, exactness: {yes: 0, no: 0, maybe: 0}, branched: 0} + state = Hanzoai::Internal::Type::Converter.new_coerce_state assert_pattern do coerced = Hanzoai::Internal::Type::Converter.coerce(target, input, state: state) assert_equal(coerced, coerced) @@ -526,6 +604,14 @@ def test_coerce end class Hanzoai::Test::BaseModelQoLTest < Minitest::Test + class E0 + include Hanzoai::Internal::Type::Enum + + attr_reader :values + + def initialize(*values) = (@values = values) + end + module E1 extend Hanzoai::Internal::Type::Enum @@ -545,6 +631,26 @@ module E3 B = 3 end + class U0 + include Hanzoai::Internal::Type::Union + + def initialize(*variants) = variants.each { variant(_1) } + end + + module U1 + extend Hanzoai::Internal::Type::Union + + variant String + variant Integer + end + + module U2 + extend Hanzoai::Internal::Type::Union + + variant String + variant Integer + end + class M1 < Hanzoai::Internal::Type::BaseModel required :a, Integer end @@ -560,20 +666,62 @@ class M3 < M2 def test_equality cases = { [Hanzoai::Internal::Type::Unknown, Hanzoai::Internal::Type::Unknown] => true, - [Hanzoai::Internal::Type::BooleanModel, Hanzoai::Internal::Type::BooleanModel] => true, - [Hanzoai::Internal::Type::Unknown, Hanzoai::Internal::Type::BooleanModel] => false, + [Hanzoai::Internal::Type::Boolean, Hanzoai::Internal::Type::Boolean] => true, + [Hanzoai::Internal::Type::Unknown, Hanzoai::Internal::Type::Boolean] => false, + [E0.new(:a, :b), E0.new(:a, :b)] => true, + [E0.new(:a, :b), E0.new(:b, :a)] => true, + [E0.new(:a, :b), E0.new(:b, :c)] => false, [E1, E2] => true, [E1, E3] => false, + [U0.new(String, Integer), U0.new(String, Integer)] => true, + [U0.new(String, Integer), U0.new(Integer, String)] => false, + [U0.new(String, Float), U0.new(String, Integer)] => false, + [U1, U2] => true, [M1, M2] => false, - [M1, M3] => true + [M1, M3] => true, + [M1.new(a: 1), M1.new(a: 1)] => true } cases.each do if _2 assert_equal(*_1) + assert_equal(*_1.map(&:hash)) else refute_equal(*_1) + refute_equal(*_1.map(&:hash)) end end end end + +class Hanzoai::Test::MetaInfoTest < Minitest::Test + A1 = Hanzoai::Internal::Type::ArrayOf[Integer, nil?: true, doc: "dog"] + H1 = Hanzoai::Internal::Type::HashOf[-> { String }, nil?: true, doc: "dawg"] + + class M1 < Hanzoai::Internal::Type::BaseModel + required :a, Integer, doc: "dog" + optional :b, -> { String }, nil?: true, doc: "dawg" + end + + module U1 + extend Hanzoai::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 diff --git a/test/hanzoai/internal/util_test.rb b/test/hanzoai/internal/util_test.rb index bb411ac9..84cb5b5e 100644 --- a/test/hanzoai/internal/util_test.rb +++ b/test/hanzoai/internal/util_test.rb @@ -87,8 +87,9 @@ def test_dig Hanzoai::Internal::Util.dig([], 1.0) => nil Hanzoai::Internal::Util.dig(Object, 1) => nil - Hanzoai::Internal::Util.dig([], 1.0, 2) => 2 Hanzoai::Internal::Util.dig([], 1.0) { 2 } => 2 + Hanzoai::Internal::Util.dig([], ->(_) { 2 }) => 2 + Hanzoai::Internal::Util.dig([1], -> { _1 in [1] }) => true end end end @@ -123,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"]} + } ] ] @@ -157,14 +166,47 @@ def test_joining_queries end end +class Hanzoai::Test::RegexMatchTest < Minitest::Test + def test_json_content + cases = { + "application/json" => true, + "application/jsonl" => false, + "application/vnd.github.v3+json" => true, + "application/vnd.api+json" => true + } + cases.each do |header, verdict| + assert_pattern do + Hanzoai::Internal::Util::JSON_CONTENT.match?(header) => ^verdict + end + end + end + + def test_jsonl_content + cases = { + "application/x-ndjson" => true, + "application/x-ldjson" => true, + "application/jsonl" => true, + "application/x-jsonl" => true, + "application/json" => false, + "application/vnd.api+json" => false + } + cases.each do |header, verdict| + assert_pattern do + Hanzoai::Internal::Util::JSONL_CONTENT.match?(header) => ^verdict + end + end + end +end + class Hanzoai::Test::UtilFormDataEncodingTest < Minitest::Test class FakeCGI < CGI def initialize(headers, io) + encoded = io.to_a @ctype = headers["content-type"] # rubocop:disable Lint/EmptyBlock - @io = Hanzoai::Internal::Util::ReadIOAdapter.new(io) {} + @io = Hanzoai::Internal::Util::ReadIOAdapter.new(encoded.to_enum) {} # rubocop:enable Lint/EmptyBlock - @c_len = io.to_a.join.bytesize.to_s + @c_len = encoded.join.bytesize.to_s super() end @@ -179,16 +221,38 @@ def env_table end end + def test_encoding_length + headers, = Hanzoai::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__) + fileinput = Hanzoai::Internal::Type::Converter.dump(Hanzoai::Internal::Type::FileInput, "abc") headers = {"content-type" => "multipart/form-data"} cases = { - StringIO.new("abc") => "abc" + "abc" => ["", "abc"], + StringIO.new("abc") => ["", "abc"], + fileinput => %w[upload abc], + Hanzoai::FilePart.new(StringIO.new("abc")) => ["", "abc"], + file => [file.basename.to_path, /^class Hanzoai/], + Hanzoai::FilePart.new(file, filename: "d o g") => ["d%20o%20g", /^class Hanzoai/] } - cases.each do |body, val| + cases.each do |body, testcase| + filename, val = testcase encoded = Hanzoai::Internal::Util.encode_content(headers, body) cgi = FakeCGI.new(*encoded) + io = cgi[""] assert_pattern do - cgi[""] => ^val + io.original_filename => ^filename + io.read => ^val end end end @@ -199,13 +263,25 @@ def test_hash_encode {a: 2, b: 3} => {"a" => "2", "b" => "3"}, {a: 2, b: nil} => {"a" => "2", "b" => "null"}, {a: 2, b: [1, 2, 3]} => {"a" => "2", "b" => "1"}, - {file: StringIO.new("a")} => {"file" => "a"} + {strio: StringIO.new("a")} => {"strio" => "a"}, + {strio: Hanzoai::FilePart.new("a")} => {"strio" => "a"}, + {pathname: Pathname(__FILE__)} => {"pathname" => -> { _1.read in /^class Hanzoai/ }}, + {pathname: Hanzoai::FilePart.new(Pathname(__FILE__))} => {"pathname" => -> { _1.read in /^class Hanzoai/ }} } cases.each do |body, testcase| encoded = Hanzoai::Internal::Util.encode_content(headers, body) cgi = FakeCGI.new(*encoded) testcase.each do |key, val| - assert_equal(val, cgi[key]) + assert_pattern do + parsed = + case (p = cgi[key]) + in StringIO + p.read + else + p + end + parsed => ^val + end end end end @@ -242,6 +318,54 @@ def test_copy_write end class Hanzoai::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 = Hanzoai::Internal::Util.fused_enum(enum, external: true) do + touched = true + loop { enum.next } + end + Hanzoai::Internal::Util.close_fused!(fused) + + assert_equal(1, once) + 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 = Hanzoai::Internal::Util.fused_enum(enum, external: true) { loop { enum.next } } + fused_2 = Hanzoai::Internal::Util.chain_fused(fused_1) { fused_1.each(&_1) } + fused_3 = Hanzoai::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 @@ -275,9 +399,9 @@ def test_rewind_chain end def test_external_iteration - it = [1, 2, 3].to_enum - first = it.next - fused = Hanzoai::Internal::Util.fused_enum(it, external: true) + iter = [1, 2, 3].to_enum + first = iter.next + fused = Hanzoai::Internal::Util.fused_enum(iter, external: true) assert_equal(1, first) assert_equal([2, 3], fused.to_a) @@ -362,6 +486,24 @@ def test_close_fused_sse_chain end end +class Hanzoai::Test::UtilContentDecodingTest < Minitest::Test + def test_charset + cases = { + "application/json" => Encoding::BINARY, + "application/json; charset=utf-8" => Encoding::UTF_8, + "charset=uTf-8 application/json; " => Encoding::UTF_8, + "charset=UTF-8; application/json; " => Encoding::UTF_8, + "charset=ISO-8859-1 ;application/json; " => Encoding::ISO_8859_1, + "charset=EUC-KR ;application/json; " => Encoding::EUC_KR + } + text = String.new.force_encoding(Encoding::BINARY) + cases.each do |content_type, encoding| + Hanzoai::Internal::Util.force_charset!(content_type, text: text) + assert_equal(encoding, text.encoding) + end + end +end + class Hanzoai::Test::UtilSseTest < Minitest::Test def test_decode_lines cases = { @@ -375,7 +517,9 @@ def test_decode_lines %W[\na b\n\n] => %W[\n ab\n \n], %W[\na b] => %W[\n ab], %W[\u1F62E\u200D\u1F4A8] => %W[\u1F62E\u200D\u1F4A8], - %W[\u1F62E \u200D \u1F4A8] => %W[\u1F62E\u200D\u1F4A8] + %W[\u1F62E \u200D \u1F4A8] => %W[\u1F62E\u200D\u1F4A8], + ["\xf0\x9f".b, "\xa5\xba".b] => ["\xf0\x9f\xa5\xba".b], + ["\xf0".b, "\x9f".b, "\xa5".b, "\xba".b] => ["\xf0\x9f\xa5\xba".b] } eols = %W[\n \r \r\n] cases.each do |enum, expected| diff --git a/test/hanzoai/resources/active_test.rb b/test/hanzoai/resources/active_test.rb index e32bed20..3aa03a54 100644 --- a/test/hanzoai/resources/active_test.rb +++ b/test/hanzoai/resources/active_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::ActiveTest < Hanzoai::Test::ResourceTest def test_list_callbacks + skip("Prism tests are disabled") + response = @hanzo.active.list_callbacks assert_pattern do diff --git a/test/hanzoai/resources/add_test.rb b/test/hanzoai/resources/add_test.rb index 53728d59..77677745 100644 --- a/test/hanzoai/resources/add_test.rb +++ b/test/hanzoai/resources/add_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::AddTest < Hanzoai::Test::ResourceTest def test_add_allowed_ip_required_params + skip("Prism tests are disabled") + response = @hanzo.add.add_allowed_ip(ip: "ip") assert_pattern do diff --git a/test/hanzoai/resources/anthropic_test.rb b/test/hanzoai/resources/anthropic_test.rb index 47c53b0d..04d12373 100644 --- a/test/hanzoai/resources/anthropic_test.rb +++ b/test/hanzoai/resources/anthropic_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::AnthropicTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.anthropic.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.anthropic.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.anthropic.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.anthropic.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_modify + skip("Prism tests are disabled") + response = @hanzo.anthropic.modify("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/assemblyai_test.rb b/test/hanzoai/resources/assemblyai_test.rb index 9f57d2bf..8e867254 100644 --- a/test/hanzoai/resources/assemblyai_test.rb +++ b/test/hanzoai/resources/assemblyai_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::AssemblyaiTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.assemblyai.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.assemblyai.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.assemblyai.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.assemblyai.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_patch + skip("Prism tests are disabled") + response = @hanzo.assemblyai.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/assistants_test.rb b/test/hanzoai/resources/assistants_test.rb index 5aeb242a..66719b23 100644 --- a/test/hanzoai/resources/assistants_test.rb +++ b/test/hanzoai/resources/assistants_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::AssistantsTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.assistants.create assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_list + skip("Prism tests are disabled") + response = @hanzo.assistants.list assert_pattern do @@ -20,6 +24,8 @@ def test_list end def test_delete + skip("Prism tests are disabled") + response = @hanzo.assistants.delete("assistant_id") assert_pattern do diff --git a/test/hanzoai/resources/audio/speech_test.rb b/test/hanzoai/resources/audio/speech_test.rb index d65cd84f..df08b507 100644 --- a/test/hanzoai/resources/audio/speech_test.rb +++ b/test/hanzoai/resources/audio/speech_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Audio::SpeechTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.audio.speech.create assert_pattern do diff --git a/test/hanzoai/resources/audio/transcriptions_test.rb b/test/hanzoai/resources/audio/transcriptions_test.rb index ebf7caec..96f471c4 100644 --- a/test/hanzoai/resources/audio/transcriptions_test.rb +++ b/test/hanzoai/resources/audio/transcriptions_test.rb @@ -4,7 +4,9 @@ class Hanzoai::Test::Resources::Audio::TranscriptionsTest < Hanzoai::Test::ResourceTest def test_create_required_params - response = @hanzo.audio.transcriptions.create(file: StringIO.new("some file contents")) + skip("Prism tests are disabled") + + response = @hanzo.audio.transcriptions.create(file: Pathname(__FILE__)) assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/azure_test.rb b/test/hanzoai/resources/azure_test.rb index 301649b9..a8d09068 100644 --- a/test/hanzoai/resources/azure_test.rb +++ b/test/hanzoai/resources/azure_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::AzureTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.azure.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_update + skip("Prism tests are disabled") + response = @hanzo.azure.update("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.azure.delete("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_delete end def test_call + skip("Prism tests are disabled") + response = @hanzo.azure.call("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_call end def test_patch + skip("Prism tests are disabled") + response = @hanzo.azure.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/batches/cancel_test.rb b/test/hanzoai/resources/batches/cancel_test.rb index 6e8ee2ba..00aec4e0 100644 --- a/test/hanzoai/resources/batches/cancel_test.rb +++ b/test/hanzoai/resources/batches/cancel_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Batches::CancelTest < Hanzoai::Test::ResourceTest def test_cancel + skip("Prism tests are disabled") + response = @hanzo.batches.cancel.cancel("batch_id") assert_pattern do diff --git a/test/hanzoai/resources/batches_test.rb b/test/hanzoai/resources/batches_test.rb index af411d8e..701b99de 100644 --- a/test/hanzoai/resources/batches_test.rb +++ b/test/hanzoai/resources/batches_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::BatchesTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.batches.create assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.batches.retrieve("batch_id") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_list + skip("Prism tests are disabled") + response = @hanzo.batches.list assert_pattern do @@ -28,6 +34,8 @@ def test_list end def test_cancel_with_provider_required_params + skip("Prism tests are disabled") + response = @hanzo.batches.cancel_with_provider("batch_id", provider: "provider") assert_pattern do @@ -36,6 +44,8 @@ def test_cancel_with_provider_required_params end def test_create_with_provider + skip("Prism tests are disabled") + response = @hanzo.batches.create_with_provider("provider") assert_pattern do @@ -44,6 +54,8 @@ def test_create_with_provider end def test_list_with_provider + skip("Prism tests are disabled") + response = @hanzo.batches.list_with_provider("provider") assert_pattern do @@ -52,6 +64,8 @@ def test_list_with_provider end def test_retrieve_with_provider_required_params + skip("Prism tests are disabled") + response = @hanzo.batches.retrieve_with_provider("batch_id", provider: "provider") assert_pattern do diff --git a/test/hanzoai/resources/bedrock_test.rb b/test/hanzoai/resources/bedrock_test.rb index 86700c7c..f501d52b 100644 --- a/test/hanzoai/resources/bedrock_test.rb +++ b/test/hanzoai/resources/bedrock_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::BedrockTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.bedrock.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.bedrock.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.bedrock.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.bedrock.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_patch + skip("Prism tests are disabled") + response = @hanzo.bedrock.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/budget_test.rb b/test/hanzoai/resources/budget_test.rb index 7db11929..e5239c21 100644 --- a/test/hanzoai/resources/budget_test.rb +++ b/test/hanzoai/resources/budget_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::BudgetTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.budget.create assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_update + skip("Prism tests are disabled") + response = @hanzo.budget.update assert_pattern do @@ -20,6 +24,8 @@ def test_update end def test_list + skip("Prism tests are disabled") + response = @hanzo.budget.list assert_pattern do @@ -28,6 +34,8 @@ def test_list end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.budget.delete(id: "id") assert_pattern do @@ -36,6 +44,8 @@ def test_delete_required_params end def test_info_required_params + skip("Prism tests are disabled") + response = @hanzo.budget.info(budgets: ["string"]) assert_pattern do @@ -44,6 +54,8 @@ def test_info_required_params end def test_settings_required_params + skip("Prism tests are disabled") + response = @hanzo.budget.settings(budget_id: "budget_id") assert_pattern do diff --git a/test/hanzoai/resources/cache/redis_test.rb b/test/hanzoai/resources/cache/redis_test.rb index 191a0e52..f43a51ff 100644 --- a/test/hanzoai/resources/cache/redis_test.rb +++ b/test/hanzoai/resources/cache/redis_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Cache::RedisTest < Hanzoai::Test::ResourceTest def test_retrieve_info + skip("Prism tests are disabled") + response = @hanzo.cache.redis.retrieve_info assert_pattern do diff --git a/test/hanzoai/resources/cache_test.rb b/test/hanzoai/resources/cache_test.rb index 4462f533..066af364 100644 --- a/test/hanzoai/resources/cache_test.rb +++ b/test/hanzoai/resources/cache_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::CacheTest < Hanzoai::Test::ResourceTest def test_delete + skip("Prism tests are disabled") + response = @hanzo.cache.delete assert_pattern do @@ -12,6 +14,8 @@ def test_delete end def test_flush_all + skip("Prism tests are disabled") + response = @hanzo.cache.flush_all assert_pattern do @@ -20,6 +24,8 @@ def test_flush_all end def test_ping + skip("Prism tests are disabled") + response = @hanzo.cache.ping assert_pattern do @@ -30,9 +36,9 @@ def test_ping response => { cache_type: String, status: String, - health_check_cache_params: Hanzoai::Internal::Type::Unknown | nil, - llm_cache_params: String | nil, - ping_response: Hanzoai::Internal::Type::BooleanModel | nil, + health_check_cache_params: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + litellm_cache_params: String | nil, + ping_response: Hanzoai::Internal::Type::Boolean | nil, set_cache_response: String | nil } end diff --git a/test/hanzoai/resources/chat/completions_test.rb b/test/hanzoai/resources/chat/completions_test.rb index 7c0a2b54..1736d668 100644 --- a/test/hanzoai/resources/chat/completions_test.rb +++ b/test/hanzoai/resources/chat/completions_test.rb @@ -3,8 +3,14 @@ require_relative "../../test_helper" class Hanzoai::Test::Resources::Chat::CompletionsTest < Hanzoai::Test::ResourceTest - def test_create - response = @hanzo.chat.completions.create + def test_create_required_params + skip("Prism tests are disabled") + + response = + @hanzo.chat.completions.create( + messages: [{content: "Hello, how are you?", role: :user}], + model: "model" + ) assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/cohere_test.rb b/test/hanzoai/resources/cohere_test.rb index dfc59198..2e239c8a 100644 --- a/test/hanzoai/resources/cohere_test.rb +++ b/test/hanzoai/resources/cohere_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::CohereTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.cohere.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.cohere.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.cohere.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.cohere.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_modify + skip("Prism tests are disabled") + response = @hanzo.cohere.modify("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/completions_test.rb b/test/hanzoai/resources/completions_test.rb index e3055ad3..b20e355d 100644 --- a/test/hanzoai/resources/completions_test.rb +++ b/test/hanzoai/resources/completions_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::CompletionsTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.completions.create assert_pattern do diff --git a/test/hanzoai/resources/config/pass_through_endpoint_test.rb b/test/hanzoai/resources/config/pass_through_endpoint_test.rb index aca0f8e1..bbea22cb 100644 --- a/test/hanzoai/resources/config/pass_through_endpoint_test.rb +++ b/test/hanzoai/resources/config/pass_through_endpoint_test.rb @@ -4,15 +4,19 @@ class Hanzoai::Test::Resources::Config::PassThroughEndpointTest < Hanzoai::Test::ResourceTest def test_create_required_params - response = @hanzo.config.pass_through_endpoint.create(headers: {}, path: "path", target: "target") + skip("Prism tests are disabled") + + response = @hanzo.config.pass_through_endpoint.create(path: "path", target: "target") assert_pattern do response => Hanzoai::Internal::Type::Unknown end end - def test_update - response = @hanzo.config.pass_through_endpoint.update("endpoint_id") + def test_update_required_params + skip("Prism tests are disabled") + + response = @hanzo.config.pass_through_endpoint.update("endpoint_id", path: "path", target: "target") assert_pattern do response => Hanzoai::Internal::Type::Unknown @@ -20,29 +24,33 @@ def test_update end def test_list + skip("Prism tests are disabled") + response = @hanzo.config.pass_through_endpoint.list assert_pattern do - response => Hanzoai::Models::Config::PassThroughEndpointResponse + response => Hanzoai::Config::PassThroughEndpointResponse end assert_pattern do response => { - endpoints: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Config::PassThroughGenericEndpoint]) + endpoints: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Config::PassThroughGenericEndpoint]) } end end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.config.pass_through_endpoint.delete(endpoint_id: "endpoint_id") assert_pattern do - response => Hanzoai::Models::Config::PassThroughEndpointResponse + response => Hanzoai::Config::PassThroughEndpointResponse end assert_pattern do response => { - endpoints: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Config::PassThroughGenericEndpoint]) + endpoints: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Config::PassThroughGenericEndpoint]) } end end diff --git a/test/hanzoai/resources/credentials_test.rb b/test/hanzoai/resources/credentials_test.rb index cfec7db0..8eea013c 100644 --- a/test/hanzoai/resources/credentials_test.rb +++ b/test/hanzoai/resources/credentials_test.rb @@ -4,7 +4,9 @@ class Hanzoai::Test::Resources::CredentialsTest < Hanzoai::Test::ResourceTest def test_create_required_params - response = @hanzo.credentials.create(credential_info: {}, credential_name: "credential_name") + skip("Prism tests are disabled") + + response = @hanzo.credentials.create(credential_info: {foo: "bar"}, credential_name: "credential_name") assert_pattern do response => Hanzoai::Internal::Type::Unknown @@ -12,6 +14,8 @@ def test_create_required_params end def test_list + skip("Prism tests are disabled") + response = @hanzo.credentials.list assert_pattern do @@ -20,6 +24,8 @@ def test_list end def test_delete + skip("Prism tests are disabled") + response = @hanzo.credentials.delete("credential_name") assert_pattern do diff --git a/test/hanzoai/resources/customer_test.rb b/test/hanzoai/resources/customer_test.rb index a147a670..b2ccec40 100644 --- a/test/hanzoai/resources/customer_test.rb +++ b/test/hanzoai/resources/customer_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::CustomerTest < Hanzoai::Test::ResourceTest def test_create_required_params + skip("Prism tests are disabled") + response = @hanzo.customer.create(user_id: "user_id") assert_pattern do @@ -12,6 +14,8 @@ def test_create_required_params end def test_update_required_params + skip("Prism tests are disabled") + response = @hanzo.customer.update(user_id: "user_id") assert_pattern do @@ -20,14 +24,18 @@ def test_update_required_params end def test_list + skip("Prism tests are disabled") + response = @hanzo.customer.list assert_pattern do - response => ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::CustomerListResponseItem]) + response => ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::LiteLlmEndUserTable]) end end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.customer.delete(user_ids: ["string"]) assert_pattern do @@ -36,6 +44,8 @@ def test_delete_required_params end def test_block_required_params + skip("Prism tests are disabled") + response = @hanzo.customer.block(user_ids: ["string"]) assert_pattern do @@ -44,26 +54,30 @@ def test_block_required_params end def test_retrieve_info_required_params + skip("Prism tests are disabled") + response = @hanzo.customer.retrieve_info(end_user_id: "end_user_id") assert_pattern do - response => Hanzoai::Models::CustomerRetrieveInfoResponse + response => Hanzoai::LiteLlmEndUserTable end assert_pattern do response => { - blocked: Hanzoai::Internal::Type::BooleanModel, + blocked: Hanzoai::Internal::Type::Boolean, user_id: String, alias_: String | nil, - allowed_model_region: Hanzoai::Models::CustomerRetrieveInfoResponse::AllowedModelRegion | nil, + allowed_model_region: Hanzoai::LiteLlmEndUserTable::AllowedModelRegion | nil, default_model: String | nil, - llm_budget_table: Hanzoai::Models::CustomerRetrieveInfoResponse::LlmBudgetTable | nil, + litellm_budget_table: Hanzoai::BudgetTable | nil, spend: Float | nil } end end def test_unblock_required_params + skip("Prism tests are disabled") + response = @hanzo.customer.unblock(user_ids: ["string"]) assert_pattern do diff --git a/test/hanzoai/resources/delete_test.rb b/test/hanzoai/resources/delete_test.rb index d3b307f8..6905680f 100644 --- a/test/hanzoai/resources/delete_test.rb +++ b/test/hanzoai/resources/delete_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::DeleteTest < Hanzoai::Test::ResourceTest def test_create_allowed_ip_required_params + skip("Prism tests are disabled") + response = @hanzo.delete.create_allowed_ip(ip: "ip") assert_pattern do diff --git a/test/hanzoai/resources/embeddings_test.rb b/test/hanzoai/resources/embeddings_test.rb index d215f076..1bea4258 100644 --- a/test/hanzoai/resources/embeddings_test.rb +++ b/test/hanzoai/resources/embeddings_test.rb @@ -3,8 +3,10 @@ require_relative "../test_helper" class Hanzoai::Test::Resources::EmbeddingsTest < Hanzoai::Test::ResourceTest - def test_create - response = @hanzo.embeddings.create + def test_create_required_params + skip("Prism tests are disabled") + + response = @hanzo.embeddings.create(model: "model") assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/engines/chat_test.rb b/test/hanzoai/resources/engines/chat_test.rb index 131fecc4..dce95e6e 100644 --- a/test/hanzoai/resources/engines/chat_test.rb +++ b/test/hanzoai/resources/engines/chat_test.rb @@ -3,8 +3,15 @@ require_relative "../../test_helper" class Hanzoai::Test::Resources::Engines::ChatTest < Hanzoai::Test::ResourceTest - def test_complete - response = @hanzo.engines.chat.complete("model") + def test_complete_required_params + skip("Prism tests are disabled") + + response = + @hanzo.engines.chat.complete( + "model", + messages: [{content: "Hello, how are you?", role: :user}], + body_model: "model" + ) assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/engines_test.rb b/test/hanzoai/resources/engines_test.rb index 8a55ef0e..5579b989 100644 --- a/test/hanzoai/resources/engines_test.rb +++ b/test/hanzoai/resources/engines_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::EnginesTest < Hanzoai::Test::ResourceTest def test_complete + skip("Prism tests are disabled") + response = @hanzo.engines.complete("model") assert_pattern do @@ -11,8 +13,10 @@ def test_complete end end - def test_embed - response = @hanzo.engines.embed("model") + def test_embed_required_params + skip("Prism tests are disabled") + + response = @hanzo.engines.embed("model", body_model: "model") assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/eu_assemblyai_test.rb b/test/hanzoai/resources/eu_assemblyai_test.rb index e5c473a3..03143125 100644 --- a/test/hanzoai/resources/eu_assemblyai_test.rb +++ b/test/hanzoai/resources/eu_assemblyai_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::EuAssemblyaiTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.eu_assemblyai.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.eu_assemblyai.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.eu_assemblyai.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.eu_assemblyai.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_patch + skip("Prism tests are disabled") + response = @hanzo.eu_assemblyai.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/files/content_test.rb b/test/hanzoai/resources/files/content_test.rb index 276c6e3e..304a19ac 100644 --- a/test/hanzoai/resources/files/content_test.rb +++ b/test/hanzoai/resources/files/content_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Files::ContentTest < Hanzoai::Test::ResourceTest def test_retrieve_required_params + skip("Prism tests are disabled") + response = @hanzo.files.content.retrieve("file_id", provider: "provider") assert_pattern do diff --git a/test/hanzoai/resources/files_test.rb b/test/hanzoai/resources/files_test.rb index 2576f993..004c8ddd 100644 --- a/test/hanzoai/resources/files_test.rb +++ b/test/hanzoai/resources/files_test.rb @@ -4,7 +4,9 @@ class Hanzoai::Test::Resources::FilesTest < Hanzoai::Test::ResourceTest def test_create_required_params - response = @hanzo.files.create("provider", file: StringIO.new("some file contents"), purpose: "purpose") + skip("Prism tests are disabled") + + response = @hanzo.files.create("provider", file: Pathname(__FILE__), purpose: "purpose") assert_pattern do response => Hanzoai::Internal::Type::Unknown @@ -12,6 +14,8 @@ def test_create_required_params end def test_retrieve_required_params + skip("Prism tests are disabled") + response = @hanzo.files.retrieve("file_id", provider: "provider") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve_required_params end def test_list + skip("Prism tests are disabled") + response = @hanzo.files.list("provider") assert_pattern do @@ -28,6 +34,8 @@ def test_list end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.files.delete("file_id", provider: "provider") assert_pattern do diff --git a/test/hanzoai/resources/fine_tuning/jobs/cancel_test.rb b/test/hanzoai/resources/fine_tuning/jobs/cancel_test.rb index 3f057649..10267a3e 100644 --- a/test/hanzoai/resources/fine_tuning/jobs/cancel_test.rb +++ b/test/hanzoai/resources/fine_tuning/jobs/cancel_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::FineTuning::Jobs::CancelTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.fine_tuning.jobs.cancel.create("fine_tuning_job_id") assert_pattern do diff --git a/test/hanzoai/resources/fine_tuning/jobs_test.rb b/test/hanzoai/resources/fine_tuning/jobs_test.rb index ef0309a4..56e46f07 100644 --- a/test/hanzoai/resources/fine_tuning/jobs_test.rb +++ b/test/hanzoai/resources/fine_tuning/jobs_test.rb @@ -4,28 +4,29 @@ class Hanzoai::Test::Resources::FineTuning::JobsTest < Hanzoai::Test::ResourceTest def test_create_required_params - response = - @hanzo.fine_tuning.jobs.create( - custom_llm_provider: :openai, - model: "model", - training_file: "training_file" - ) + skip("Prism tests are disabled") + + response = @hanzo.fine_tuning.jobs.create(model: "model", training_file: "training_file") assert_pattern do response => Hanzoai::Internal::Type::Unknown end end - def test_retrieve_required_params - response = @hanzo.fine_tuning.jobs.retrieve("fine_tuning_job_id", custom_llm_provider: :openai) + def test_retrieve + skip("Prism tests are disabled") + + response = @hanzo.fine_tuning.jobs.retrieve("fine_tuning_job_id") assert_pattern do response => Hanzoai::Internal::Type::Unknown end end - def test_list_required_params - response = @hanzo.fine_tuning.jobs.list(custom_llm_provider: :openai) + def test_list + skip("Prism tests are disabled") + + response = @hanzo.fine_tuning.jobs.list assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/gemini_test.rb b/test/hanzoai/resources/gemini_test.rb index 258048c8..bcb77bf3 100644 --- a/test/hanzoai/resources/gemini_test.rb +++ b/test/hanzoai/resources/gemini_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::GeminiTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.gemini.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.gemini.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.gemini.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.gemini.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_patch + skip("Prism tests are disabled") + response = @hanzo.gemini.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/global/spend_test.rb b/test/hanzoai/resources/global/spend_test.rb index 719dfde9..05de6f7e 100644 --- a/test/hanzoai/resources/global/spend_test.rb +++ b/test/hanzoai/resources/global/spend_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Global::SpendTest < Hanzoai::Test::ResourceTest def test_list_tags + skip("Prism tests are disabled") + response = @hanzo.global.spend.list_tags assert_pattern do @@ -12,6 +14,8 @@ def test_list_tags end def test_reset + skip("Prism tests are disabled") + response = @hanzo.global.spend.reset assert_pattern do @@ -20,6 +24,8 @@ def test_reset end def test_retrieve_report + skip("Prism tests are disabled") + response = @hanzo.global.spend.retrieve_report assert_pattern do diff --git a/test/hanzoai/resources/guardrails_test.rb b/test/hanzoai/resources/guardrails_test.rb index 720401dd..ec326c7e 100644 --- a/test/hanzoai/resources/guardrails_test.rb +++ b/test/hanzoai/resources/guardrails_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::GuardrailsTest < Hanzoai::Test::ResourceTest def test_list + skip("Prism tests are disabled") + response = @hanzo.guardrails.list assert_pattern do diff --git a/test/hanzoai/resources/health_test.rb b/test/hanzoai/resources/health_test.rb index d384c10a..087d533d 100644 --- a/test/hanzoai/resources/health_test.rb +++ b/test/hanzoai/resources/health_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::HealthTest < Hanzoai::Test::ResourceTest def test_check_all + skip("Prism tests are disabled") + response = @hanzo.health.check_all assert_pattern do @@ -12,6 +14,8 @@ def test_check_all end def test_check_liveliness + skip("Prism tests are disabled") + response = @hanzo.health.check_liveliness assert_pattern do @@ -20,6 +24,8 @@ def test_check_liveliness end def test_check_liveness + skip("Prism tests are disabled") + response = @hanzo.health.check_liveness assert_pattern do @@ -28,6 +34,8 @@ def test_check_liveness end def test_check_readiness + skip("Prism tests are disabled") + response = @hanzo.health.check_readiness assert_pattern do @@ -36,6 +44,8 @@ def test_check_readiness end def test_check_services_required_params + skip("Prism tests are disabled") + response = @hanzo.health.check_services(service: :slack_budget_alerts) assert_pattern do diff --git a/test/hanzoai/resources/images/generations_test.rb b/test/hanzoai/resources/images/generations_test.rb index ce4fdf55..53e5dff7 100644 --- a/test/hanzoai/resources/images/generations_test.rb +++ b/test/hanzoai/resources/images/generations_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Images::GenerationsTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.images.generations.create assert_pattern do diff --git a/test/hanzoai/resources/key_test.rb b/test/hanzoai/resources/key_test.rb index a86509a3..2e478388 100644 --- a/test/hanzoai/resources/key_test.rb +++ b/test/hanzoai/resources/key_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::KeyTest < Hanzoai::Test::ResourceTest def test_update_required_params + skip("Prism tests are disabled") + response = @hanzo.key.update(key: "key") assert_pattern do @@ -12,6 +14,8 @@ def test_update_required_params end def test_list + skip("Prism tests are disabled") + response = @hanzo.key.list assert_pattern do @@ -29,6 +33,8 @@ def test_list end def test_delete + skip("Prism tests are disabled") + response = @hanzo.key.delete assert_pattern do @@ -37,6 +43,8 @@ def test_delete end def test_block_required_params + skip("Prism tests are disabled") + response = @hanzo.key.block(key: "key") assert_pattern do @@ -46,28 +54,37 @@ def test_block_required_params assert_pattern do response => { token: String | nil, - aliases: Hanzoai::Internal::Type::Unknown | nil, + aliases: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, allowed_cache_controls: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - blocked: Hanzoai::Internal::Type::BooleanModel | nil, + allowed_routes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + auto_rotate: Hanzoai::Internal::Type::Boolean | nil, + blocked: Hanzoai::Internal::Type::Boolean | nil, budget_duration: String | nil, budget_reset_at: Time | nil, - config: Hanzoai::Internal::Type::Unknown | nil, + config: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, created_at: Time | nil, created_by: String | nil, expires: Hanzoai::Models::KeyBlockResponse::Expires | nil, key_alias: String | nil, key_name: String | nil, - llm_budget_table: Hanzoai::Internal::Type::Unknown | nil, + key_rotation_at: Time | nil, + last_rotation_at: Time | nil, + litellm_budget_table: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, max_budget: Float | nil, max_parallel_requests: Integer | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, - model_max_budget: Hanzoai::Internal::Type::Unknown | nil, - model_spend: Hanzoai::Internal::Type::Unknown | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_max_budget: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_spend: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, models: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + object_permission: Hanzoai::Models::KeyBlockResponse::ObjectPermission | nil, + object_permission_id: String | nil, org_id: String | nil, - permissions: Hanzoai::Internal::Type::Unknown | nil, + permissions: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + rotation_count: Integer | nil, + rotation_interval: String | nil, + router_settings: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, rpm_limit: Integer | nil, - soft_budget_cooldown: Hanzoai::Internal::Type::BooleanModel | nil, + soft_budget_cooldown: Hanzoai::Internal::Type::Boolean | nil, spend: Float | nil, team_id: String | nil, tpm_limit: Integer | nil, @@ -79,6 +96,8 @@ def test_block_required_params end def test_check_health + skip("Prism tests are disabled") + response = @hanzo.key.check_health assert_pattern do @@ -94,44 +113,57 @@ def test_check_health end def test_generate + skip("Prism tests are disabled") + response = @hanzo.key.generate assert_pattern do - response => Hanzoai::Models::GenerateKeyResponse + response => Hanzoai::GenerateKeyResponse end assert_pattern do response => { - expires: Time | nil, key: String, token: String | nil, - aliases: Hanzoai::Internal::Type::Unknown | nil, + aliases: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, allowed_cache_controls: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - blocked: Hanzoai::Internal::Type::BooleanModel | nil, + allowed_passthrough_routes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + allowed_routes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + allowed_vector_store_indexes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex]) | nil, + blocked: Hanzoai::Internal::Type::Boolean | nil, budget_duration: String | nil, budget_id: String | nil, - config: Hanzoai::Internal::Type::Unknown | nil, + config: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + created_at: Time | nil, created_by: String | nil, duration: String | nil, enforced_params: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + expires: Time | nil, guardrails: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, key_alias: String | nil, key_name: String | nil, - llm_budget_table: Hanzoai::Internal::Type::Unknown | nil, + litellm_budget_table: Hanzoai::Internal::Type::Unknown | nil, max_budget: Float | nil, max_parallel_requests: Integer | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, - model_max_budget: Hanzoai::Internal::Type::Unknown | nil, - model_rpm_limit: Hanzoai::Internal::Type::Unknown | nil, - model_tpm_limit: Hanzoai::Internal::Type::Unknown | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_max_budget: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_rpm_limit: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_tpm_limit: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, models: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - permissions: Hanzoai::Internal::Type::Unknown | nil, + object_permission: Hanzoai::GenerateKeyResponse::ObjectPermission | nil, + organization_id: String | nil, + permissions: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + prompts: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + router_settings: Hanzoai::GenerateKeyResponse::RouterSettings | nil, rpm_limit: Integer | nil, + rpm_limit_type: Hanzoai::GenerateKeyResponse::RpmLimitType | nil, spend: Float | nil, tags: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, team_id: String | nil, token_id: String | nil, tpm_limit: Integer | nil, + tpm_limit_type: Hanzoai::GenerateKeyResponse::TpmLimitType | nil, + updated_at: Time | nil, updated_by: String | nil, user_id: String | nil } @@ -139,44 +171,57 @@ def test_generate end def test_regenerate_by_key + skip("Prism tests are disabled") + response = @hanzo.key.regenerate_by_key("key") assert_pattern do - response => Hanzoai::Models::GenerateKeyResponse + response => Hanzoai::GenerateKeyResponse end assert_pattern do response => { - expires: Time | nil, key: String, token: String | nil, - aliases: Hanzoai::Internal::Type::Unknown | nil, + aliases: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, allowed_cache_controls: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - blocked: Hanzoai::Internal::Type::BooleanModel | nil, + allowed_passthrough_routes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + allowed_routes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + allowed_vector_store_indexes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::GenerateKeyResponse::AllowedVectorStoreIndex]) | nil, + blocked: Hanzoai::Internal::Type::Boolean | nil, budget_duration: String | nil, budget_id: String | nil, - config: Hanzoai::Internal::Type::Unknown | nil, + config: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + created_at: Time | nil, created_by: String | nil, duration: String | nil, enforced_params: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + expires: Time | nil, guardrails: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, key_alias: String | nil, key_name: String | nil, - llm_budget_table: Hanzoai::Internal::Type::Unknown | nil, + litellm_budget_table: Hanzoai::Internal::Type::Unknown | nil, max_budget: Float | nil, max_parallel_requests: Integer | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, - model_max_budget: Hanzoai::Internal::Type::Unknown | nil, - model_rpm_limit: Hanzoai::Internal::Type::Unknown | nil, - model_tpm_limit: Hanzoai::Internal::Type::Unknown | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_max_budget: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_rpm_limit: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_tpm_limit: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, models: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - permissions: Hanzoai::Internal::Type::Unknown | nil, + object_permission: Hanzoai::GenerateKeyResponse::ObjectPermission | nil, + organization_id: String | nil, + permissions: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + prompts: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + router_settings: Hanzoai::GenerateKeyResponse::RouterSettings | nil, rpm_limit: Integer | nil, + rpm_limit_type: Hanzoai::GenerateKeyResponse::RpmLimitType | nil, spend: Float | nil, tags: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, team_id: String | nil, token_id: String | nil, tpm_limit: Integer | nil, + tpm_limit_type: Hanzoai::GenerateKeyResponse::TpmLimitType | nil, + updated_at: Time | nil, updated_by: String | nil, user_id: String | nil } @@ -184,6 +229,8 @@ def test_regenerate_by_key end def test_retrieve_info + skip("Prism tests are disabled") + response = @hanzo.key.retrieve_info assert_pattern do @@ -192,6 +239,8 @@ def test_retrieve_info end def test_unblock_required_params + skip("Prism tests are disabled") + response = @hanzo.key.unblock(key: "key") assert_pattern do diff --git a/test/hanzoai/resources/langfuse_test.rb b/test/hanzoai/resources/langfuse_test.rb index a7347f50..b409e693 100644 --- a/test/hanzoai/resources/langfuse_test.rb +++ b/test/hanzoai/resources/langfuse_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::LangfuseTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.langfuse.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.langfuse.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.langfuse.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.langfuse.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_patch + skip("Prism tests are disabled") + response = @hanzo.langfuse.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/model/info_test.rb b/test/hanzoai/resources/model/info_test.rb index 4dc659cc..9e7d1b24 100644 --- a/test/hanzoai/resources/model/info_test.rb +++ b/test/hanzoai/resources/model/info_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Model::InfoTest < Hanzoai::Test::ResourceTest def test_list + skip("Prism tests are disabled") + response = @hanzo.model.info.list assert_pattern do diff --git a/test/hanzoai/resources/model/update_test.rb b/test/hanzoai/resources/model/update_test.rb index 58865b7c..ebdfacb5 100644 --- a/test/hanzoai/resources/model/update_test.rb +++ b/test/hanzoai/resources/model/update_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Model::UpdateTest < Hanzoai::Test::ResourceTest def test_full + skip("Prism tests are disabled") + response = @hanzo.model.update.full assert_pattern do @@ -12,6 +14,8 @@ def test_full end def test_partial + skip("Prism tests are disabled") + response = @hanzo.model.update.partial("model_id") assert_pattern do diff --git a/test/hanzoai/resources/model_group_test.rb b/test/hanzoai/resources/model_group_test.rb index 5deb0ce7..e5be7c03 100644 --- a/test/hanzoai/resources/model_group_test.rb +++ b/test/hanzoai/resources/model_group_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::ModelGroupTest < Hanzoai::Test::ResourceTest def test_retrieve_info + skip("Prism tests are disabled") + response = @hanzo.model_group.retrieve_info assert_pattern do diff --git a/test/hanzoai/resources/model_test.rb b/test/hanzoai/resources/model_test.rb index 51ea327a..f8f053eb 100644 --- a/test/hanzoai/resources/model_test.rb +++ b/test/hanzoai/resources/model_test.rb @@ -4,8 +4,10 @@ class Hanzoai::Test::Resources::ModelTest < Hanzoai::Test::ResourceTest def test_create_required_params + skip("Prism tests are disabled") + response = - @hanzo.model.create(llm_params: {model: "model"}, model_info: {id: "id"}, model_name: "model_name") + @hanzo.model.create(litellm_params: {model: "model"}, model_info: {id: "id"}, model_name: "model_name") assert_pattern do response => Hanzoai::Internal::Type::Unknown @@ -13,6 +15,8 @@ def test_create_required_params end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.model.delete(id: "id") assert_pattern do diff --git a/test/hanzoai/resources/models_test.rb b/test/hanzoai/resources/models_test.rb index a9c38324..98ee26ee 100644 --- a/test/hanzoai/resources/models_test.rb +++ b/test/hanzoai/resources/models_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::ModelsTest < Hanzoai::Test::ResourceTest def test_list + skip("Prism tests are disabled") + response = @hanzo.models.list assert_pattern do diff --git a/test/hanzoai/resources/moderations_test.rb b/test/hanzoai/resources/moderations_test.rb index 8a4d5ffe..0cbd793d 100644 --- a/test/hanzoai/resources/moderations_test.rb +++ b/test/hanzoai/resources/moderations_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::ModerationsTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.moderations.create assert_pattern do diff --git a/test/hanzoai/resources/openai/deployments/chat_test.rb b/test/hanzoai/resources/openai/deployments/chat_test.rb index f62826b8..ec048313 100644 --- a/test/hanzoai/resources/openai/deployments/chat_test.rb +++ b/test/hanzoai/resources/openai/deployments/chat_test.rb @@ -3,8 +3,15 @@ require_relative "../../../test_helper" class Hanzoai::Test::Resources::OpenAI::Deployments::ChatTest < Hanzoai::Test::ResourceTest - def test_complete - response = @hanzo.openai.deployments.chat.complete("model") + def test_complete_required_params + skip("Prism tests are disabled") + + response = + @hanzo.openai.deployments.chat.complete( + "model", + messages: [{content: "Hello, how are you?", role: :user}], + body_model: "model" + ) assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/openai/deployments_test.rb b/test/hanzoai/resources/openai/deployments_test.rb index 9a167871..1801bc9d 100644 --- a/test/hanzoai/resources/openai/deployments_test.rb +++ b/test/hanzoai/resources/openai/deployments_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::OpenAI::DeploymentsTest < Hanzoai::Test::ResourceTest def test_complete + skip("Prism tests are disabled") + response = @hanzo.openai.deployments.complete("model") assert_pattern do @@ -11,8 +13,10 @@ def test_complete end end - def test_embed - response = @hanzo.openai.deployments.embed("model") + def test_embed_required_params + skip("Prism tests are disabled") + + response = @hanzo.openai.deployments.embed("model", body_model: "model") assert_pattern do response => Hanzoai::Internal::Type::Unknown diff --git a/test/hanzoai/resources/openai_test.rb b/test/hanzoai/resources/openai_test.rb index 769e8d1e..20f0b34f 100644 --- a/test/hanzoai/resources/openai_test.rb +++ b/test/hanzoai/resources/openai_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::OpenAITest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.openai.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.openai.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.openai.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.openai.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_patch + skip("Prism tests are disabled") + response = @hanzo.openai.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/resources/organization/info_test.rb b/test/hanzoai/resources/organization/info_test.rb index 212b9b0a..86d8aca9 100644 --- a/test/hanzoai/resources/organization/info_test.rb +++ b/test/hanzoai/resources/organization/info_test.rb @@ -4,10 +4,12 @@ class Hanzoai::Test::Resources::Organization::InfoTest < Hanzoai::Test::ResourceTest def test_retrieve_required_params + skip("Prism tests are disabled") + response = @hanzo.organization.info.retrieve(organization_id: "organization_id") assert_pattern do - response => Hanzoai::Models::Organization::InfoRetrieveResponse + response => Hanzoai::OrganizationTableWithMembers end assert_pattern do @@ -18,18 +20,23 @@ def test_retrieve_required_params models: ^(Hanzoai::Internal::Type::ArrayOf[String]), updated_at: Time, updated_by: String, - llm_budget_table: Hanzoai::Models::Organization::InfoRetrieveResponse::LlmBudgetTable | nil, - members: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Organization::InfoRetrieveResponse::Member]) | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, + litellm_budget_table: Hanzoai::BudgetTable | nil, + members: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable]) | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + object_permission: Hanzoai::OrganizationTableWithMembers::ObjectPermission | nil, + object_permission_id: String | nil, organization_alias: String | nil, organization_id: String | nil, spend: Float | nil, - teams: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Organization::InfoRetrieveResponse::Team]) | nil + teams: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers::Team]) | nil, + users: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers::User]) | nil } end end def test_deprecated_required_params + skip("Prism tests are disabled") + response = @hanzo.organization.info.deprecated(organizations: ["string"]) assert_pattern do diff --git a/test/hanzoai/resources/organization_test.rb b/test/hanzoai/resources/organization_test.rb index 0aff2ded..16e227dd 100644 --- a/test/hanzoai/resources/organization_test.rb +++ b/test/hanzoai/resources/organization_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::OrganizationTest < Hanzoai::Test::ResourceTest def test_create_required_params + skip("Prism tests are disabled") + response = @hanzo.organization.create(organization_alias: "organization_alias") assert_pattern do @@ -19,18 +21,24 @@ def test_create_required_params organization_id: String, updated_at: Time, updated_by: String, - metadata: Hanzoai::Internal::Type::Unknown | nil, + litellm_budget_table: Hanzoai::BudgetTable | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + object_permission: Hanzoai::Models::OrganizationCreateResponse::ObjectPermission | nil, + object_permission_id: String | nil, organization_alias: String | nil, - spend: Float | nil + spend: Float | nil, + users: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationCreateResponse::User]) | nil } end end def test_update + skip("Prism tests are disabled") + response = @hanzo.organization.update assert_pattern do - response => Hanzoai::Models::OrganizationUpdateResponse + response => Hanzoai::OrganizationTableWithMembers end assert_pattern do @@ -41,34 +49,43 @@ def test_update models: ^(Hanzoai::Internal::Type::ArrayOf[String]), updated_at: Time, updated_by: String, - llm_budget_table: Hanzoai::Models::OrganizationUpdateResponse::LlmBudgetTable | nil, - members: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationUpdateResponse::Member]) | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, + litellm_budget_table: Hanzoai::BudgetTable | nil, + members: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable]) | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + object_permission: Hanzoai::OrganizationTableWithMembers::ObjectPermission | nil, + object_permission_id: String | nil, organization_alias: String | nil, organization_id: String | nil, spend: Float | nil, - teams: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationUpdateResponse::Team]) | nil + teams: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers::Team]) | nil, + users: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers::User]) | nil } end end def test_list + skip("Prism tests are disabled") + response = @hanzo.organization.list assert_pattern do - response => ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationListResponseItem]) + response => ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers]) end end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.organization.delete(organization_ids: ["string"]) assert_pattern do - response => ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationDeleteResponseItem]) + response => ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationTableWithMembers]) end end def test_add_member_required_params + skip("Prism tests are disabled") + response = @hanzo.organization.add_member(member: [{role: :org_admin}], organization_id: "organization_id") @@ -79,13 +96,15 @@ def test_add_member_required_params assert_pattern do response => { organization_id: String, - updated_organization_memberships: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedOrganizationMembership]), + updated_organization_memberships: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::OrganizationMembershipTable]), updated_users: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::OrganizationAddMemberResponse::UpdatedUser]) } end end def test_delete_member_required_params + skip("Prism tests are disabled") + response = @hanzo.organization.delete_member(organization_id: "organization_id") assert_pattern do @@ -94,10 +113,12 @@ def test_delete_member_required_params end def test_update_member_required_params + skip("Prism tests are disabled") + response = @hanzo.organization.update_member(organization_id: "organization_id") assert_pattern do - response => Hanzoai::Models::OrganizationUpdateMemberResponse + response => Hanzoai::OrganizationMembershipTable end assert_pattern do @@ -107,7 +128,7 @@ def test_update_member_required_params updated_at: Time, user_id: String, budget_id: String | nil, - llm_budget_table: Hanzoai::Models::OrganizationUpdateMemberResponse::LlmBudgetTable | nil, + litellm_budget_table: Hanzoai::BudgetTable | nil, spend: Float | nil, user: Hanzoai::Internal::Type::Unknown | nil, user_role: String | nil diff --git a/test/hanzoai/resources/provider_test.rb b/test/hanzoai/resources/provider_test.rb index e3917a79..9a75c1d4 100644 --- a/test/hanzoai/resources/provider_test.rb +++ b/test/hanzoai/resources/provider_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::ProviderTest < Hanzoai::Test::ResourceTest def test_list_budgets + skip("Prism tests are disabled") + response = @hanzo.provider.list_budgets assert_pattern do diff --git a/test/hanzoai/resources/rerank_test.rb b/test/hanzoai/resources/rerank_test.rb index d1fe24e6..0db76aac 100644 --- a/test/hanzoai/resources/rerank_test.rb +++ b/test/hanzoai/resources/rerank_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::RerankTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.rerank.create assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_create_v1 + skip("Prism tests are disabled") + response = @hanzo.rerank.create_v1 assert_pattern do @@ -20,6 +24,8 @@ def test_create_v1 end def test_create_v2 + skip("Prism tests are disabled") + response = @hanzo.rerank.create_v2 assert_pattern do diff --git a/test/hanzoai/resources/responses/input_items_test.rb b/test/hanzoai/resources/responses/input_items_test.rb index 954b3fcc..c9bcc687 100644 --- a/test/hanzoai/resources/responses/input_items_test.rb +++ b/test/hanzoai/resources/responses/input_items_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Responses::InputItemsTest < Hanzoai::Test::ResourceTest def test_list + skip("Prism tests are disabled") + response = @hanzo.responses.input_items.list("response_id") assert_pattern do diff --git a/test/hanzoai/resources/responses_test.rb b/test/hanzoai/resources/responses_test.rb index a1e93c41..c045625c 100644 --- a/test/hanzoai/resources/responses_test.rb +++ b/test/hanzoai/resources/responses_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::ResponsesTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.responses.create assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.responses.retrieve("response_id") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_delete + skip("Prism tests are disabled") + response = @hanzo.responses.delete("response_id") assert_pattern do diff --git a/test/hanzoai/resources/routes_test.rb b/test/hanzoai/resources/routes_test.rb index 0f9a002e..c9c5037f 100644 --- a/test/hanzoai/resources/routes_test.rb +++ b/test/hanzoai/resources/routes_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::RoutesTest < Hanzoai::Test::ResourceTest def test_list + skip("Prism tests are disabled") + response = @hanzo.routes.list assert_pattern do diff --git a/test/hanzoai/resources/settings_test.rb b/test/hanzoai/resources/settings_test.rb index 0ce85966..196b6811 100644 --- a/test/hanzoai/resources/settings_test.rb +++ b/test/hanzoai/resources/settings_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::SettingsTest < Hanzoai::Test::ResourceTest def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.settings.retrieve assert_pattern do diff --git a/test/hanzoai/resources/spend_test.rb b/test/hanzoai/resources/spend_test.rb index 53e37d8e..2b74f28c 100644 --- a/test/hanzoai/resources/spend_test.rb +++ b/test/hanzoai/resources/spend_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::SpendTest < Hanzoai::Test::ResourceTest def test_calculate_spend + skip("Prism tests are disabled") + response = @hanzo.spend.calculate_spend assert_pattern do @@ -12,6 +14,8 @@ def test_calculate_spend end def test_list_logs + skip("Prism tests are disabled") + response = @hanzo.spend.list_logs assert_pattern do @@ -20,6 +24,8 @@ def test_list_logs end def test_list_tags + skip("Prism tests are disabled") + response = @hanzo.spend.list_tags assert_pattern do diff --git a/test/hanzoai/resources/team/callback_test.rb b/test/hanzoai/resources/team/callback_test.rb index 0accd92f..0d739b03 100644 --- a/test/hanzoai/resources/team/callback_test.rb +++ b/test/hanzoai/resources/team/callback_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Team::CallbackTest < Hanzoai::Test::ResourceTest def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.team.callback.retrieve("team_id") assert_pattern do @@ -12,6 +14,8 @@ def test_retrieve end def test_add_required_params + skip("Prism tests are disabled") + response = @hanzo.team.callback.add("team_id", callback_name: "callback_name", callback_vars: {foo: "string"}) diff --git a/test/hanzoai/resources/team/model_test.rb b/test/hanzoai/resources/team/model_test.rb index 6992ea47..c095709b 100644 --- a/test/hanzoai/resources/team/model_test.rb +++ b/test/hanzoai/resources/team/model_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Team::ModelTest < Hanzoai::Test::ResourceTest def test_add_required_params + skip("Prism tests are disabled") + response = @hanzo.team.model.add(models: ["string"], team_id: "team_id") assert_pattern do @@ -12,6 +14,8 @@ def test_add_required_params end def test_remove_required_params + skip("Prism tests are disabled") + response = @hanzo.team.model.remove(models: ["string"], team_id: "team_id") assert_pattern do diff --git a/test/hanzoai/resources/team_test.rb b/test/hanzoai/resources/team_test.rb index 5fc14ff1..ec99785a 100644 --- a/test/hanzoai/resources/team_test.rb +++ b/test/hanzoai/resources/team_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::TeamTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.team.create assert_pattern do @@ -14,28 +16,35 @@ def test_create response => { team_id: String, admins: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - blocked: Hanzoai::Internal::Type::BooleanModel | nil, + blocked: Hanzoai::Internal::Type::Boolean | nil, budget_duration: String | nil, budget_reset_at: Time | nil, created_at: Time | nil, - llm_model_table: Hanzoai::Models::TeamCreateResponse::LlmModelTable | nil, + litellm_model_table: Hanzoai::Internal::Type::Unknown | nil, max_budget: Float | nil, max_parallel_requests: Integer | nil, members: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - members_with_roles: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member]) | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, + members_with_roles: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Member]) | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, model_id: Integer | nil, models: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + object_permission: Hanzoai::Models::TeamCreateResponse::ObjectPermission | nil, + object_permission_id: String | nil, organization_id: String | nil, + router_settings: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, rpm_limit: Integer | nil, spend: Float | nil, team_alias: String | nil, - tpm_limit: Integer | nil + team_member_permissions: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + tpm_limit: Integer | nil, + updated_at: Time | nil } end end def test_update_required_params + skip("Prism tests are disabled") + response = @hanzo.team.update(team_id: "team_id") assert_pattern do @@ -44,6 +53,8 @@ def test_update_required_params end def test_list + skip("Prism tests are disabled") + response = @hanzo.team.list assert_pattern do @@ -52,6 +63,8 @@ def test_list end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.team.delete(team_ids: ["string"]) assert_pattern do @@ -60,6 +73,8 @@ def test_delete_required_params end def test_add_member_required_params + skip("Prism tests are disabled") + response = @hanzo.team.add_member(member: [{role: :admin}], team_id: "team_id") assert_pattern do @@ -72,28 +87,35 @@ def test_add_member_required_params updated_team_memberships: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::TeamAddMemberResponse::UpdatedTeamMembership]), updated_users: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::TeamAddMemberResponse::UpdatedUser]), admins: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - blocked: Hanzoai::Internal::Type::BooleanModel | nil, + blocked: Hanzoai::Internal::Type::Boolean | nil, budget_duration: String | nil, budget_reset_at: Time | nil, created_at: Time | nil, - llm_model_table: Hanzoai::Models::TeamAddMemberResponse::LlmModelTable | nil, + litellm_model_table: Hanzoai::Models::TeamAddMemberResponse::LitellmModelTable | nil, max_budget: Float | nil, max_parallel_requests: Integer | nil, members: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - members_with_roles: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::Member]) | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, + members_with_roles: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Member]) | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, model_id: Integer | nil, models: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + object_permission: Hanzoai::Models::TeamAddMemberResponse::ObjectPermission | nil, + object_permission_id: String | nil, organization_id: String | nil, + router_settings: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, rpm_limit: Integer | nil, spend: Float | nil, team_alias: String | nil, - tpm_limit: Integer | nil + team_member_permissions: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + tpm_limit: Integer | nil, + updated_at: Time | nil } end end def test_block_required_params + skip("Prism tests are disabled") + response = @hanzo.team.block(team_id: "team_id") assert_pattern do @@ -102,6 +124,8 @@ def test_block_required_params end def test_disable_logging + skip("Prism tests are disabled") + response = @hanzo.team.disable_logging("team_id") assert_pattern do @@ -110,6 +134,8 @@ def test_disable_logging end def test_list_available + skip("Prism tests are disabled") + response = @hanzo.team.list_available assert_pattern do @@ -118,6 +144,8 @@ def test_list_available end def test_remove_member_required_params + skip("Prism tests are disabled") + response = @hanzo.team.remove_member(team_id: "team_id") assert_pattern do @@ -126,6 +154,8 @@ def test_remove_member_required_params end def test_retrieve_info + skip("Prism tests are disabled") + response = @hanzo.team.retrieve_info assert_pattern do @@ -134,6 +164,8 @@ def test_retrieve_info end def test_unblock_required_params + skip("Prism tests are disabled") + response = @hanzo.team.unblock(team_id: "team_id") assert_pattern do @@ -142,6 +174,8 @@ def test_unblock_required_params end def test_update_member_required_params + skip("Prism tests are disabled") + response = @hanzo.team.update_member(team_id: "team_id") assert_pattern do @@ -153,6 +187,8 @@ def test_update_member_required_params team_id: String, user_id: String, max_budget_in_team: Float | nil, + rpm_limit: Integer | nil, + tpm_limit: Integer | nil, user_email: String | nil } end diff --git a/test/hanzoai/resources/test_test.rb b/test/hanzoai/resources/test_test.rb index 3163a5db..bfeb9bda 100644 --- a/test/hanzoai/resources/test_test.rb +++ b/test/hanzoai/resources/test_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::TestTest < Hanzoai::Test::ResourceTest def test_ping + skip("Prism tests are disabled") + response = @hanzo.test_.ping assert_pattern do diff --git a/test/hanzoai/resources/threads/messages_test.rb b/test/hanzoai/resources/threads/messages_test.rb index 0c238c03..c82f7056 100644 --- a/test/hanzoai/resources/threads/messages_test.rb +++ b/test/hanzoai/resources/threads/messages_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Threads::MessagesTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.threads.messages.create("thread_id") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_list + skip("Prism tests are disabled") + response = @hanzo.threads.messages.list("thread_id") assert_pattern do diff --git a/test/hanzoai/resources/threads/runs_test.rb b/test/hanzoai/resources/threads/runs_test.rb index 8af632e7..e0ddc5ad 100644 --- a/test/hanzoai/resources/threads/runs_test.rb +++ b/test/hanzoai/resources/threads/runs_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::Threads::RunsTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.threads.runs.create("thread_id") assert_pattern do diff --git a/test/hanzoai/resources/threads_test.rb b/test/hanzoai/resources/threads_test.rb index a08c96b8..6f4ba8d4 100644 --- a/test/hanzoai/resources/threads_test.rb +++ b/test/hanzoai/resources/threads_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::ThreadsTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.threads.create assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.threads.retrieve("thread_id") assert_pattern do diff --git a/test/hanzoai/resources/user_test.rb b/test/hanzoai/resources/user_test.rb index 74afdd63..b35495f2 100644 --- a/test/hanzoai/resources/user_test.rb +++ b/test/hanzoai/resources/user_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::UserTest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.user.create assert_pattern do @@ -12,37 +14,48 @@ def test_create assert_pattern do response => { - expires: Time | nil, key: String, token: String | nil, - aliases: Hanzoai::Internal::Type::Unknown | nil, + aliases: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, allowed_cache_controls: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - blocked: Hanzoai::Internal::Type::BooleanModel | nil, + allowed_passthrough_routes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + allowed_routes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, + allowed_vector_store_indexes: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Models::UserCreateResponse::AllowedVectorStoreIndex]) | nil, + blocked: Hanzoai::Internal::Type::Boolean | nil, budget_duration: String | nil, budget_id: String | nil, - config: Hanzoai::Internal::Type::Unknown | nil, + config: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + created_at: Time | nil, created_by: String | nil, duration: String | nil, enforced_params: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + expires: Time | nil, guardrails: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, key_alias: String | nil, key_name: String | nil, - llm_budget_table: Hanzoai::Internal::Type::Unknown | nil, + litellm_budget_table: Hanzoai::Internal::Type::Unknown | nil, max_budget: Float | nil, max_parallel_requests: Integer | nil, - metadata: Hanzoai::Internal::Type::Unknown | nil, - model_max_budget: Hanzoai::Internal::Type::Unknown | nil, - model_rpm_limit: Hanzoai::Internal::Type::Unknown | nil, - model_tpm_limit: Hanzoai::Internal::Type::Unknown | nil, + metadata: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_max_budget: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_rpm_limit: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + model_tpm_limit: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, models: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, - permissions: Hanzoai::Internal::Type::Unknown | nil, + object_permission: Hanzoai::Models::UserCreateResponse::ObjectPermission | nil, + organization_id: String | nil, + permissions: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + prompts: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, + router_settings: Hanzoai::Models::UserCreateResponse::RouterSettings | nil, rpm_limit: Integer | nil, + rpm_limit_type: Hanzoai::Models::UserCreateResponse::RpmLimitType | nil, spend: Float | nil, tags: ^(Hanzoai::Internal::Type::ArrayOf[String]) | nil, team_id: String | nil, teams: ^(Hanzoai::Internal::Type::ArrayOf[Hanzoai::Internal::Type::Unknown]) | nil, token_id: String | nil, tpm_limit: Integer | nil, + tpm_limit_type: Hanzoai::Models::UserCreateResponse::TpmLimitType | nil, + updated_at: Time | nil, updated_by: String | nil, user_alias: String | nil, user_email: String | nil, @@ -53,15 +66,9 @@ def test_create end def test_update - response = @hanzo.user.update - - assert_pattern do - response => Hanzoai::Internal::Type::Unknown - end - end + skip("Prism tests are disabled") - def test_list - response = @hanzo.user.list + response = @hanzo.user.update assert_pattern do response => Hanzoai::Internal::Type::Unknown @@ -69,6 +76,8 @@ def test_list end def test_delete_required_params + skip("Prism tests are disabled") + response = @hanzo.user.delete(user_ids: ["string"]) assert_pattern do @@ -77,6 +86,8 @@ def test_delete_required_params end def test_retrieve_info + skip("Prism tests are disabled") + response = @hanzo.user.retrieve_info assert_pattern do diff --git a/test/hanzoai/resources/utils_test.rb b/test/hanzoai/resources/utils_test.rb index 32d05b6f..c17d7be1 100644 --- a/test/hanzoai/resources/utils_test.rb +++ b/test/hanzoai/resources/utils_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::UtilsTest < Hanzoai::Test::ResourceTest def test_get_supported_openai_params_required_params + skip("Prism tests are disabled") + response = @hanzo.utils.get_supported_openai_params(model: "model") assert_pattern do @@ -12,6 +14,8 @@ def test_get_supported_openai_params_required_params end def test_token_counter_required_params + skip("Prism tests are disabled") + response = @hanzo.utils.token_counter(model: "model") assert_pattern do @@ -23,13 +27,19 @@ def test_token_counter_required_params model_used: String, request_model: String, tokenizer_type: String, - total_tokens: Integer + total_tokens: Integer, + error: Hanzoai::Internal::Type::Boolean | nil, + error_message: String | nil, + original_response: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + status_code: Integer | nil } end end def test_transform_request_required_params - response = @hanzo.utils.transform_request(call_type: :embedding, request_body: {}) + skip("Prism tests are disabled") + + response = @hanzo.utils.transform_request(call_type: :embedding, request_body: {foo: "bar"}) assert_pattern do response => Hanzoai::Models::UtilTransformRequestResponse @@ -39,8 +49,8 @@ def test_transform_request_required_params response => { error: String | nil, raw_request_api_base: String | nil, - raw_request_body: Hanzoai::Internal::Type::Unknown | nil, - raw_request_headers: Hanzoai::Internal::Type::Unknown | nil + raw_request_body: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil, + raw_request_headers: ^(Hanzoai::Internal::Type::HashOf[Hanzoai::Internal::Type::Unknown]) | nil } end end diff --git a/test/hanzoai/resources/vertex_ai_test.rb b/test/hanzoai/resources/vertex_ai_test.rb index 810e0fd0..baa750c9 100644 --- a/test/hanzoai/resources/vertex_ai_test.rb +++ b/test/hanzoai/resources/vertex_ai_test.rb @@ -4,6 +4,8 @@ class Hanzoai::Test::Resources::VertexAITest < Hanzoai::Test::ResourceTest def test_create + skip("Prism tests are disabled") + response = @hanzo.vertex_ai.create("endpoint") assert_pattern do @@ -12,6 +14,8 @@ def test_create end def test_retrieve + skip("Prism tests are disabled") + response = @hanzo.vertex_ai.retrieve("endpoint") assert_pattern do @@ -20,6 +24,8 @@ def test_retrieve end def test_update + skip("Prism tests are disabled") + response = @hanzo.vertex_ai.update("endpoint") assert_pattern do @@ -28,6 +34,8 @@ def test_update end def test_delete + skip("Prism tests are disabled") + response = @hanzo.vertex_ai.delete("endpoint") assert_pattern do @@ -36,6 +44,8 @@ def test_delete end def test_patch + skip("Prism tests are disabled") + response = @hanzo.vertex_ai.patch("endpoint") assert_pattern do diff --git a/test/hanzoai/test_helper.rb b/test/hanzoai/test_helper.rb index 8dd8a603..aa715a36 100644 --- a/test/hanzoai/test_helper.rb +++ b/test/hanzoai/test_helper.rb @@ -15,6 +15,7 @@ require "minitest/hooks/test" require "minitest/proveit" require "minitest/rg" +require "webmock" require_relative "../../lib/hanzoai" require_relative "resource_namespaces" @@ -44,11 +45,19 @@ def self.now = Thread.current.thread_variable_get(:time_now) || _now class Hanzoai::Test::SingletonClient < Hanzoai::Client include Singleton + TEST_API_BASE_URL = ENV.fetch("TEST_API_BASE_URL", "http://localhost:4010") + def initialize - super(base_url: ENV.fetch("TEST_API_BASE_URL", "http://localhost:4010"), api_key: "My API Key") + super(base_url: Hanzoai::Test::SingletonClient::TEST_API_BASE_URL, api_key: "My API Key") end end +module Minitest::Serial + def test_order = :random + + def run_one_method(...) = Minitest::Runnable.run_one_method(...) +end + class Minitest::Test include Minitest::Hooks @@ -72,3 +81,7 @@ def around_all = async? ? Sync { super } : super def around = async? ? Async { super }.wait : super end + +module WebMock + AssertionFailure.error_class = Minitest::Assertion +end