diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index bc1ffc5be..89d80c496 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: c48cf606-fb42-4a45-9c23-8f0555307828 management: - docChecksum: 1c6c707c5466d1fb0e85c3fcc78925f8 + docChecksum: 39e8b78cea1a6da8f155774d0a4b4053 docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 1.3.83 - configChecksum: 045ab02bef0b678da1d8aa8a2a5e3004 + releaseVersion: 1.3.84 + configChecksum: a5d96cccf4690c760acec1ff11bda5c8 repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: bd3d8c62-ebd6-431d-998a-b0fd3968fc8a - pristine_commit_hash: 67c259ba248abe8fe6937b9f3be694f01f927a35 - pristine_tree_hash: 4ace05f29115f4cbe42d145c2b7270d022ad58ec + generation_id: 01b2c4bb-ebfe-4d5a-b196-3a36a8724cd2 + pristine_commit_hash: 287dbf152fe38450277ddb285e5ee5195d05d9ae + pristine_tree_hash: 2f56c414732e9058f4e91d97f39089075b1b54d2 features: python: acceptHeaders: 3.0.0 @@ -9964,8 +9964,8 @@ trackedFiles: pristine_git_object: 3147d116baeb9bbb061cee09e248d4743af74c6f docs/sdks/endpoints/README.mdx: id: 62dfac9f7b71 - last_write_checksum: sha1:db7ed18401bcd4afa7382a9793c9ccafb5220497 - pristine_git_object: f8cebc2061d7428904766956be45ca70e5519be4 + last_write_checksum: sha1:c6de8ffc1c471412570a9e3908b2c0584a6742f3 + pristine_git_object: d9f8f18d7ad7ffc80628d3f3277a3db37ff10b3d docs/sdks/externalusers/README.mdx: id: 16a97e1de35f last_write_checksum: sha1:8d0542500ae82270018f1cb67ef495b6c7e1fe4f @@ -9976,8 +9976,8 @@ trackedFiles: pristine_git_object: 6a18aef850a89e56f8f7b0c507c24ab1eed0022c docs/sdks/generations/README.mdx: id: a754fecc8514 - last_write_checksum: sha1:52a07507500bccb98ea65fc194125c04cfab48b5 - pristine_git_object: c6d40a9a40b8da86373f089e6ff0de19756a7778 + last_write_checksum: sha1:16445aee1ff650591802c090bf41b14c60dbaddc + pristine_git_object: 99025e4e653ef972cf511103e851cfd6c72ddda2 docs/sdks/guardrails/README.mdx: id: a0cd4218b8fa last_write_checksum: sha1:8a7bd8b43337d429726ac461e248aca8100b54cf @@ -9988,8 +9988,8 @@ trackedFiles: pristine_git_object: 08c687694efbecf50406ae7929029d39fb121295 docs/sdks/models/README.mdx: id: 58f1ca464e0b - last_write_checksum: sha1:aab5b254f0a6dc7ab7c6d543b20c889113cc0dc9 - pristine_git_object: fb76b402a8d2da041c3ca7464e09c9ea75c1854e + last_write_checksum: sha1:9ab8eac9bda9a892da9a56574b50914a451429ba + pristine_git_object: f7f31f5fc467d46d7d160b9fc914fcc197cd5b6f docs/sdks/oauth/README.mdx: id: 42b5079343d2 last_write_checksum: sha1:3cde9bcb927f4723ccdb237d9f7a54a50f96abe7 @@ -10004,8 +10004,8 @@ trackedFiles: pristine_git_object: 053e655dd039e6dd37558c4b9af98c3d60ea8989 docs/sdks/presets/README.mdx: id: eeb505928d52 - last_write_checksum: sha1:d9fee52a78290d7e7e287d33ac5efbcd1f94d07b - pristine_git_object: 55b3f251872f0548ef7fcae3efdc73c2968e54fb + last_write_checksum: sha1:d61cbf5df8597879e007f434e8a0f2eb04c24355 + pristine_git_object: 27c97e3ee4761cd46f2d5d96be093e1663c6ed93 docs/sdks/privateendpoints/README.mdx: id: 54dee70b8cc7 last_write_checksum: sha1:2f58390d196d1c08a304b9d3c2f495281fe0c8db @@ -10060,8 +10060,8 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:7bf735478be2806297e53ef9fe5ed6b51b87d4da - pristine_git_object: 15399be72216a8119c6356435edb4c36408e7f62 + last_write_checksum: sha1:199681af9436f81350f72748a42103ae013ed197 + pristine_git_object: 02809d52b88f98f8861e673d61cd8e100c8f5a29 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -10088,8 +10088,8 @@ trackedFiles: pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137 src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:d712bd32457db4c579ae6c85c5b9570e8b8137cb - pristine_git_object: 82ca016553de358467d5d6a26497049f6d33ad76 + last_write_checksum: sha1:98fbfc39547e01e562e1769fb47df919898842d9 + pristine_git_object: 86afd260c68a15c51df81fac522d0f299136c458 src/openrouter/alpha.py: id: 306c4d93308d last_write_checksum: sha1:30f55a360f41376ab194b9ea725fe4e001a5ae1a @@ -13476,8 +13476,8 @@ trackedFiles: pristine_git_object: 71d905b15e0a7b3c140823ddb45fb34b239fe021 src/openrouter/endpoints.py: id: 465bbf2b7939 - last_write_checksum: sha1:a04548ad80c9b1cf8ae1f5dde2e24774865c1eb8 - pristine_git_object: 5c3a48759ba31aa633627707b68885b6cc367ddf + last_write_checksum: sha1:5fbcc02b5496724a81058c500254e7831fbd7233 + pristine_git_object: 2242260aa44d791e47477313e7595fb5c58b7339 src/openrouter/errors/__init__.py: id: 366154d0d60a last_write_checksum: sha1:2bf92aa2923c6564ce5b91ae5c27e95257fe0f19 @@ -13600,8 +13600,8 @@ trackedFiles: pristine_git_object: 5702b46b8a0ac74ee34216b31154b0c3928a2e7f src/openrouter/generations.py: id: 70e1c21042bc - last_write_checksum: sha1:abed878a994631f16536b57d0ff402db99862041 - pristine_git_object: f476af3df4132bef8812d9e925feb0dea7654fa9 + last_write_checksum: sha1:3be1e5755eebf249642df3b3638ad6a9556a3139 + pristine_git_object: 8c989db92d681ffe9a956bae5c16c8f09f3627ca src/openrouter/guardrails.py: id: 705839f34e66 last_write_checksum: sha1:156c955e4e751a229100a3261e297d2898b5d089 @@ -13628,8 +13628,8 @@ trackedFiles: pristine_git_object: 5b741456655ff48919d17ffd552a6410f0587966 src/openrouter/models_.py: id: 4e1ae1fe5b98 - last_write_checksum: sha1:cf453e9c9ba85da30251698de3c7c8ebcfd344d3 - pristine_git_object: 5b22dc33ede915e5769e5898dd37e4e08312583c + last_write_checksum: sha1:db8830585720bd4e97f3f504d267aad2d4d9b2c8 + pristine_git_object: f880d869b3fd46cd459a71592e61bc7cddb40c64 src/openrouter/oauth.py: id: 1948ce27255b last_write_checksum: sha1:d6470de6325431db64b08ff4468fb2d8ea781c6f @@ -14200,8 +14200,8 @@ trackedFiles: pristine_git_object: ed6685a2de0af075647def8ee786e7da58f627a6 src/openrouter/presets.py: id: bd0c40379dcd - last_write_checksum: sha1:87a04d6bac85930b6c48bd736cd78d88ff051821 - pristine_git_object: e5af234dce0a31822d5fb88360a740f540738d44 + last_write_checksum: sha1:e3eff582e7c9c51cc9c23d4716a419f4a86baa7f + pristine_git_object: 26ecf767f8e1f98145acfa7d0fa14ffcf13955d6 src/openrouter/private_endpoints.py: id: fdbce8846ed0 last_write_checksum: sha1:6b011534aab484c622e489b9abfb1545b1a77416 @@ -14581,6 +14581,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} listModelsUser: speakeasy-default-list-models-user: parameters: @@ -14598,6 +14600,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} listEndpoints: speakeasy-default-list-endpoints: parameters: @@ -14613,6 +14617,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} listEndpointsZdr: speakeasy-default-list-endpoints-zdr: responses: @@ -14622,6 +14628,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} listProviders: speakeasy-default-list-providers: responses: @@ -15516,6 +15524,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} getPreset: speakeasy-default-get-preset: parameters: @@ -15534,6 +15544,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} createPresetsChatCompletions: speakeasy-default-create-presets-chat-completions: parameters: @@ -15621,6 +15633,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} getPresetVersion: speakeasy-default-get-preset-version: parameters: @@ -15640,6 +15654,8 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "403": application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} listWorkspaces: speakeasy-default-list-workspaces: parameters: @@ -16102,6 +16118,10 @@ examples: application/json: {"error": {"code": 500, "message": "Internal Server Error"}} "409": application/json: {"error": {"code": 409, "message": "Resource conflict. Please try again later."}} + "403": + application/json: {"error": {"code": 403, "message": "Only management keys can perform this operation"}} + "503": + application/json: {"error": {"code": 503, "message": "Service temporarily unavailable"}} listScimGroupMappings: speakeasy-default-list-scim-group-mappings: parameters: @@ -18683,7 +18703,12 @@ examples: examplesVersion: 1.0.2 releaseNotes: | ## Python SDK Changes: - * `open_router.observability.list()`: `response.data[].union(s3).config` **Changed** - * `open_router.observability.create()`: `response.data.union(s3).config` **Changed** - * `open_router.observability.get()`: `response.data.union(s3).config` **Changed** - * `open_router.observability.update()`: `response.data.union(s3).config` **Changed** + * `open_router.endpoints.list_zdr_endpoints()`: `error.status[503]` **Added** + * `open_router.endpoints.list()`: `error.status[503]` **Added** + * `open_router.generations.submit_feedback()`: `error` **Changed** + * `open_router.models.list()`: `error.status[503]` **Added** + * `open_router.models.list_for_user()`: `error.status[503]` **Added** + * `open_router.presets.list()`: `error.status[503]` **Added** + * `open_router.presets.get()`: `error.status[503]` **Added** + * `open_router.presets.list_versions()`: `error.status[503]` **Added** + * `open_router.presets.get_version()`: `error.status[503]` **Added** diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 8fbf477e2..bdd08d7dd 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -36,7 +36,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true python: - version: 1.3.83 + version: 1.3.84 additionalDependencies: dev: pytest: '>=8.3' diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 5a4def1af..98f76caef 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -38760,6 +38760,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' summary: 'Preview the impact of ZDR on the available endpoints' tags: - 'Endpoints' @@ -40245,6 +40255,16 @@ paths: schema: $ref: '#/components/schemas/UnauthorizedResponse' description: 'Unauthorized - Authentication required or invalid credentials' + '403': + content: + application/json: + example: + error: + code: 403 + message: 'Only management keys can perform this operation' + schema: + $ref: '#/components/schemas/ForbiddenResponse' + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: @@ -40285,6 +40305,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' summary: 'Submit feedback for a generation' tags: - 'Generations' @@ -44423,6 +44453,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' summary: 'List all models and their properties' tags: - 'Models' @@ -44569,6 +44609,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' summary: 'List all endpoints for a model' tags: - 'Endpoints' @@ -44779,6 +44829,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' security: - bearer: [] summary: 'List models filtered by user provider preferences, privacy settings, and guardrails' @@ -45764,6 +45824,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' security: - apiKey: [] summary: 'List presets' @@ -45880,6 +45950,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' security: - apiKey: [] summary: 'Get a preset' @@ -46376,6 +46456,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' security: - apiKey: [] summary: 'List versions of a preset' @@ -46489,6 +46579,16 @@ paths: schema: $ref: '#/components/schemas/InternalServerResponse' description: 'Internal Server Error - Unexpected server error' + '503': + content: + application/json: + example: + error: + code: 503 + message: 'Service temporarily unavailable' + schema: + $ref: '#/components/schemas/ServiceUnavailableResponse' + description: 'Service Unavailable - Service temporarily unavailable' security: - apiKey: [] summary: 'Get a specific version of a preset' diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 3dce701ae..44547f75b 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:ae57d6e79c415b3724a00d445a652cdf81bf8dcc80e35cdf17abf28c3256c47e - sourceBlobDigest: sha256:640f9897e616ccbb3990bd0b3af52557683829d0a7dd20f1497a477bcec7d9df + sourceRevisionDigest: sha256:abb60a7768f107bd2d66cbcd903e100c5c7a512dec64f8eaa1436fd05f3dabf9 + sourceBlobDigest: sha256:0d90a449d2f9cf4a76fd674977bcb0cfdc4844683439c5dbcf2fc5591abf43f2 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:ae57d6e79c415b3724a00d445a652cdf81bf8dcc80e35cdf17abf28c3256c47e - sourceBlobDigest: sha256:640f9897e616ccbb3990bd0b3af52557683829d0a7dd20f1497a477bcec7d9df + sourceRevisionDigest: sha256:abb60a7768f107bd2d66cbcd903e100c5c7a512dec64f8eaa1436fd05f3dabf9 + sourceBlobDigest: sha256:0d90a449d2f9cf4a76fd674977bcb0cfdc4844683439c5dbcf2fc5591abf43f2 codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:2570859003af791de7fd54409f3da367025c94b61e056a5ecf3a01d8ad324e17 + codeSamplesRevisionDigest: sha256:9777facf5329b32d41113790ca0a3ac81c8e19e1a9450d84bd56cd38f2e35b63 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index dd2d9eded..125a9444a 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -3599,4 +3599,14 @@ Based on: ### Generated - [python v1.3.83] . ### Releases -- [PyPI v1.3.83] https://pypi.org/project/openrouter/1.3.83 - . \ No newline at end of file +- [PyPI v1.3.83] https://pypi.org/project/openrouter/1.3.83 - . + +## 2026-10-27 01:09:24 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v1.3.84] . +### Releases +- [PyPI v1.3.84] https://pypi.org/project/openrouter/1.3.84 - . \ No newline at end of file diff --git a/docs/sdks/endpoints/README.mdx b/docs/sdks/endpoints/README.mdx index bfe6c422f..0bd359387 100644 --- a/docs/sdks/endpoints/README.mdx +++ b/docs/sdks/endpoints/README.mdx @@ -52,11 +52,12 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | ## list @@ -100,9 +101,10 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.NotFoundResponseError | 404 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.NotFoundResponseError | 404 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/generations/README.mdx b/docs/sdks/generations/README.mdx index 0ef66c1f1..8c68098f8 100644 --- a/docs/sdks/generations/README.mdx +++ b/docs/sdks/generations/README.mdx @@ -165,12 +165,14 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | -| errors.BadRequestResponseError | 400 | application/json | -| errors.UnauthorizedResponseError | 401 | application/json | -| errors.NotFoundResponseError | 404 | application/json | -| errors.ConflictResponseError | 409 | application/json | -| errors.TooManyRequestsResponseError | 429 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.BadRequestResponseError | 400 | application/json | +| errors.UnauthorizedResponseError | 401 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.NotFoundResponseError | 404 | application/json | +| errors.ConflictResponseError | 409 | application/json | +| errors.TooManyRequestsResponseError | 429 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/models/README.mdx b/docs/sdks/models/README.mdx index 3a6ab001d..39351b895 100644 --- a/docs/sdks/models/README.mdx +++ b/docs/sdks/models/README.mdx @@ -134,12 +134,13 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.BadRequestResponseError | 400 | application/json | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.BadRequestResponseError | 400 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | ## count @@ -237,10 +238,11 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.UnauthorizedResponseError | 401 | application/json | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.NotFoundResponseError | 404 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.UnauthorizedResponseError | 401 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.NotFoundResponseError | 404 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/docs/sdks/presets/README.mdx b/docs/sdks/presets/README.mdx index 3f1024432..6d8402760 100644 --- a/docs/sdks/presets/README.mdx +++ b/docs/sdks/presets/README.mdx @@ -61,13 +61,14 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.BadRequestResponseError | 400 | application/json | -| errors.UnauthorizedResponseError | 401 | application/json | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.BadRequestResponseError | 400 | application/json | +| errors.UnauthorizedResponseError | 401 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | ## get @@ -110,14 +111,15 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.BadRequestResponseError | 400 | application/json | -| errors.UnauthorizedResponseError | 401 | application/json | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.NotFoundResponseError | 404 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.BadRequestResponseError | 400 | application/json | +| errors.UnauthorizedResponseError | 401 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.NotFoundResponseError | 404 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | ## create_presets_chat_completions @@ -441,14 +443,15 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.BadRequestResponseError | 400 | application/json | -| errors.UnauthorizedResponseError | 401 | application/json | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.NotFoundResponseError | 404 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.BadRequestResponseError | 400 | application/json | +| errors.UnauthorizedResponseError | 401 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.NotFoundResponseError | 404 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | ## get_version @@ -492,11 +495,12 @@ with OpenRouter( ### Errors -| Error Type | Status Code | Content Type | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| errors.BadRequestResponseError | 400 | application/json | -| errors.UnauthorizedResponseError | 401 | application/json | -| errors.ForbiddenResponseError | 403 | application/json | -| errors.NotFoundResponseError | 404 | application/json | -| errors.InternalServerResponseError | 500 | application/json | -| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.BadRequestResponseError | 400 | application/json | +| errors.UnauthorizedResponseError | 401 | application/json | +| errors.ForbiddenResponseError | 403 | application/json | +| errors.NotFoundResponseError | 404 | application/json | +| errors.InternalServerResponseError | 500 | application/json | +| errors.ServiceUnavailableResponseError | 503 | application/json | +| errors.OpenRouterDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 15399be72..02809d52b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "1.3.83" +version = "1.3.84" description = "Official Python Client SDK for OpenRouter." authors = [{ name = "OpenRouter" },] readme = "README-PYPI.md" diff --git a/src/openrouter/_version.py b/src/openrouter/_version.py index 82ca01655..86afd260c 100644 --- a/src/openrouter/_version.py +++ b/src/openrouter/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "openrouter" -__version__: str = "1.3.83" +__version__: str = "1.3.84" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.914.0" -__user_agent__: str = "speakeasy-sdk/python 1.3.83 2.914.0 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 1.3.84 2.914.0 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/endpoints.py b/src/openrouter/endpoints.py index 5c3a48759..2242260aa 100644 --- a/src/openrouter/endpoints.py +++ b/src/openrouter/endpoints.py @@ -119,6 +119,11 @@ def list_zdr_endpoints( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -239,6 +244,11 @@ async def list_zdr_endpoints_async( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( @@ -368,6 +378,11 @@ def list( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -497,6 +512,11 @@ async def list_async( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( diff --git a/src/openrouter/generations.py b/src/openrouter/generations.py index f476af3df..8c989db92 100644 --- a/src/openrouter/generations.py +++ b/src/openrouter/generations.py @@ -777,6 +777,11 @@ def submit_feedback( errors.UnauthorizedResponseErrorData, http_res ) raise errors.UnauthorizedResponseError(response_data, http_res) + if utils.match_response(http_res, "403", "application/json"): + response_data = unmarshal_json_response( + errors.ForbiddenResponseErrorData, http_res + ) + raise errors.ForbiddenResponseError(response_data, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( errors.NotFoundResponseErrorData, http_res @@ -797,6 +802,11 @@ def submit_feedback( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -937,6 +947,11 @@ async def submit_feedback_async( errors.UnauthorizedResponseErrorData, http_res ) raise errors.UnauthorizedResponseError(response_data, http_res) + if utils.match_response(http_res, "403", "application/json"): + response_data = unmarshal_json_response( + errors.ForbiddenResponseErrorData, http_res + ) + raise errors.ForbiddenResponseError(response_data, http_res) if utils.match_response(http_res, "404", "application/json"): response_data = unmarshal_json_response( errors.NotFoundResponseErrorData, http_res @@ -957,6 +972,11 @@ async def submit_feedback_async( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( diff --git a/src/openrouter/models_.py b/src/openrouter/models_.py index 5b22dc33e..f880d869b 100644 --- a/src/openrouter/models_.py +++ b/src/openrouter/models_.py @@ -529,6 +529,11 @@ def next_func() -> Optional[operations.GetModelsResponse]: errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -799,6 +804,11 @@ async def empty_result(): errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( @@ -1231,6 +1241,11 @@ def next_func() -> Optional[operations.ListModelsUserResponse]: errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -1414,6 +1429,11 @@ async def empty_result(): errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( diff --git a/src/openrouter/presets.py b/src/openrouter/presets.py index e5af234dc..26ecf767f 100644 --- a/src/openrouter/presets.py +++ b/src/openrouter/presets.py @@ -171,6 +171,11 @@ def next_func() -> Optional[operations.ListPresetsResponse]: errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -345,6 +350,11 @@ async def empty_result(): errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( @@ -486,6 +496,11 @@ def get( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -627,6 +642,11 @@ async def get_async( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( @@ -2969,6 +2989,11 @@ def next_func() -> Optional[operations.ListPresetVersionsResponse]: errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -3152,6 +3177,11 @@ async def empty_result(): errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( @@ -3298,6 +3328,11 @@ def get_version( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = utils.stream_to_text(http_res) raise errors.OpenRouterDefaultError( @@ -3444,6 +3479,11 @@ async def get_version_async( errors.InternalServerResponseErrorData, http_res ) raise errors.InternalServerResponseError(response_data, http_res) + if utils.match_response(http_res, "503", "application/json"): + response_data = unmarshal_json_response( + errors.ServiceUnavailableResponseErrorData, http_res + ) + raise errors.ServiceUnavailableResponseError(response_data, http_res) if utils.match_response(http_res, "4XX", "*"): http_res_text = await utils.stream_to_text_async(http_res) raise errors.OpenRouterDefaultError( diff --git a/uv.lock b/uv.lock index b31bd2a5b..0e539e444 100644 --- a/uv.lock +++ b/uv.lock @@ -231,7 +231,7 @@ wheels = [ [[package]] name = "openrouter" -version = "1.3.83" +version = "1.3.84" source = { editable = "." } dependencies = [ { name = "httpcore" },