From 11d35962ba898e653240edd0873f7ce4172ddd32 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Sat, 25 Jul 2026 23:36:30 +0000 Subject: [PATCH 1/2] ## Python SDK Changes: * `open_router.beta.responses.send()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.byok.list()`: * `request.provider` **Changed** * `response.data[].provider.enum(modal)` **Added** * `open_router.byok.create()`: * `request.provider.enum(modal)` **Added** * `response.data.provider.enum(modal)` **Added** * `open_router.byok.get()`: `response.data.provider.enum(modal)` **Added** * `open_router.byok.update()`: `response.data.provider.enum(modal)` **Added** * `open_router.chat.send()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.embeddings.generate()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.endpoints.list_zdr_endpoints()`: `response.data[].provider_name.enum(modal)` **Added** * `open_router.endpoints.list()`: `response.data.endpoints[].provider_name.enum(modal)` **Added** * `open_router.images.generate()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.presets.create_presets_chat_completions()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.presets.create_presets_messages()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.presets.create_presets_responses()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.rerank.rerank()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** * `open_router.responses.send()`: * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added** --- .speakeasy/gen.lock | 46 +++++++++---------- .speakeasy/gen.yaml | 2 +- .speakeasy/out.openapi.yaml | 3 ++ .speakeasy/workflow.lock | 10 ++-- RELEASES.md | 12 ++++- docs/components/byokproviderslug.mdx | 1 + docs/components/providername.mdx | 3 +- docs/operations/provider.mdx | 1 + pyproject.toml | 2 +- src/openrouter/_version.py | 4 +- src/openrouter/components/byokproviderslug.py | 1 + src/openrouter/components/providername.py | 1 + src/openrouter/operations/listbyokkeys.py | 1 + uv.lock | 2 +- 14 files changed, 54 insertions(+), 35 deletions(-) diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 5b06a4f8..ee647d92 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: 90efa6e079d0e8578985e558f257ac4c + docChecksum: 2732bb0597a1bae6e1c23e019d29b2d9 docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 1.1.1 - configChecksum: f08f97374b87bb465b2ca31e2fe926b7 + releaseVersion: 1.1.2 + configChecksum: 79d7c51f43cf0d18cd634a1f59d3578d repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: 58aa2efc-bb31-4cc5-a7bb-664989c4f54c - pristine_commit_hash: f4cb1d9b61eb1f89921ca4f06cd1875167417a97 - pristine_tree_hash: 766f5ea4566e236329719a51531318c99587c944 + generation_id: fa2bc6b4-6a92-49aa-beb3-a7946a5bc9e6 + pristine_commit_hash: 7738b46e149e8bb7a9179a74fd1aeb7f589eb5a2 + pristine_tree_hash: 8d8cde036dab846c58d8251ccae72a377b98bd70 features: python: acceptHeaders: 3.0.0 @@ -790,8 +790,8 @@ trackedFiles: pristine_git_object: 151dd8398dc818ff4d26d6859d25efd202d03917 docs/components/byokproviderslug.mdx: id: 6ea70819f6d8 - last_write_checksum: sha1:9f2c3114f9f3cd15e97aa793fb944a0fb9e81d62 - pristine_git_object: 6b9d061ee1892de5cdc14afdfca5503f2b0b65a7 + last_write_checksum: sha1:4394408a376d6f1663ed14130b213e00c257e73e + pristine_git_object: 61f78871c797e62eb1a9eef8760c3b73675b67cf docs/components/capabilitydescriptor.mdx: id: 34ac0e581d79 last_write_checksum: sha1:62ee9ccab6cec4572383cef654997ab4106d4676 @@ -4058,8 +4058,8 @@ trackedFiles: pristine_git_object: 1d91d32cd0bf4b64699bbbf05a7e95ab835b10cf docs/components/providername.mdx: id: aa3a4904b228 - last_write_checksum: sha1:aa29212047391cfea3cb97fd2f2c61df18a7afe9 - pristine_git_object: 9c2defb28ddef8058150daa3dcd63961cf98502d + last_write_checksum: sha1:1335de3dd4e2686ef335141fcbebd8382915091e + pristine_git_object: 32eebd3d3ffdd579f65d088421e89acc003c7945 docs/components/provideroptions.mdx: id: 2697807524fe last_write_checksum: sha1:1ebd854c1db2b8f1925ffed264e95da3369cf405 @@ -6474,8 +6474,8 @@ trackedFiles: pristine_git_object: 0f0b54e43577a8a835cd971f82e48c3921e3d88e docs/operations/provider.mdx: id: c75b3bbeeaa0 - last_write_checksum: sha1:5e49ad319b4f15113f8628630b5efb0dc36aa57d - pristine_git_object: aaa0189274ad9bc9c3853043d4b00012bb92a0b7 + last_write_checksum: sha1:1eb7a63a41de024c9d4997e244cfc460aa0d8c46 + pristine_git_object: fcd5078c8c0d6558f3402b95c4d9b7f3e413ad3c docs/operations/queryanalyticsdata1.mdx: id: 0e41beea77d0 last_write_checksum: sha1:f9a349b4fee07f786180e94b45f92002bfae0e56 @@ -6794,8 +6794,8 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:ccbbac17634ba4627964eb5611c8d2a8fddaa593 - pristine_git_object: 5a892c8c796fa6194c0e0dec8634fb3a752d6012 + last_write_checksum: sha1:a3faeb201b5b56c334ae0aa090a0d419367107a5 + pristine_git_object: bd7d6a8fcdcd04aefe23f9605ba5efffa2fb73fa scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -6822,8 +6822,8 @@ trackedFiles: pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137 src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:e250826f2198b7a3fead718b981c13165fdb2ee0 - pristine_git_object: a9b58dd830722b40906fb8b0ae42b252988e38ae + last_write_checksum: sha1:8b0dc8809ab571576936df79964c00a494fb9692 + pristine_git_object: f86fc9420669ee30d5494afc733bd19c01d78517 src/openrouter/analytics.py: id: cb406b5aaabb last_write_checksum: sha1:9e709b71dd0611056dc0cec6150b578defe32841 @@ -7218,8 +7218,8 @@ trackedFiles: pristine_git_object: 47ef267b5e0f7b615b0cd66018728e3f47440a66 src/openrouter/components/byokproviderslug.py: id: 6738a8516caf - last_write_checksum: sha1:057b714e32ab5593db320477eebaaf396ab2040f - pristine_git_object: ff02086c2d13a11a2f2da9d0c7d1f604fdf75273 + last_write_checksum: sha1:16686881d3812392b1dc74a57ec9e32492532350 + pristine_git_object: 0b3cd7df148f86f1595f9dfb3f9b6a8364f80750 src/openrouter/components/capabilitydescriptor.py: id: 368790a86f10 last_write_checksum: sha1:a167551924ee82b4b5876a0ab698a45fe8c87a95 @@ -8542,8 +8542,8 @@ trackedFiles: pristine_git_object: 170ae25c582bb8decd74e1c69bfa8353bd44e86d src/openrouter/components/providername.py: id: fcc722fa2fce - last_write_checksum: sha1:ea0d4a78c024d7ffc216855d55627b4a24383e29 - pristine_git_object: 819e924630ad9d40aaf3e5b363fcec4d01bee893 + last_write_checksum: sha1:cff8c427aa2f862e083b03d7708e4aa1aac39c38 + pristine_git_object: ca583ca696df31ba09683a77bcfd1d0db9f787b2 src/openrouter/components/provideroptions.py: id: 73dde6c8f359 last_write_checksum: sha1:b88e94dac31fa609d0cdb468dac5d3d58878158a @@ -9490,8 +9490,8 @@ trackedFiles: pristine_git_object: 75480914b4db49d02f606f22d17d1a6ef52eea2a src/openrouter/operations/listbyokkeys.py: id: b6dd42b3e05f - last_write_checksum: sha1:ef48194646eff028a8a6d2585968fd9edbb68370 - pristine_git_object: 8dfb4f2a2086ef137c2b5b8701f9187d487e3b86 + last_write_checksum: sha1:ee469b34c8beb6ef2f01ed7f192e3cdc73041391 + pristine_git_object: ea8a2771a04a6b7c3dea3f5943c1a5ad6135ed81 src/openrouter/operations/listembeddingsmodels.py: id: bf749a1f23d6 last_write_checksum: sha1:938440c9b9df0c3d8430792f262bffced0207d13 @@ -11329,4 +11329,4 @@ examples: "500": application/json: {"error": {"code": 500, "message": "Internal Server Error"}} examplesVersion: 1.0.2 -releaseNotes: "## Python SDK Changes:\n* `open_router.beta.responses.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.tts.create_speech()`: \n * `request.provider.options.claude_on_aws` **Added**\n* `open_router.stt.create_transcription()`: \n * `request.provider.options.claude_on_aws` **Added**\n* `open_router.chat.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.embeddings.generate()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.endpoints.list_zdr_endpoints()`: `response.data[].provider_name.enum(claude_platform_on_aws)` **Added**\n* `open_router.endpoints.list()`: `response.data.endpoints[].provider_name.enum(claude_platform_on_aws)` **Added**\n* `open_router.generations.get_generation()`: `response.data.provider_responses[].provider_name.enum(claude_platform_on_aws)` **Added**\n* `open_router.images.generate()`: `request.provider` **Changed**\n* `open_router.presets.create_presets_chat_completions()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.presets.create_presets_messages()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.presets.create_presets_responses()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.rerank.rerank()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.responses.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(claude_platform_on_aws)` **Added**\n* `open_router.video_generation.generate()`: \n * `request.provider.options.claude_on_aws` **Added**\n" +releaseNotes: "## Python SDK Changes:\n* `open_router.beta.responses.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.byok.list()`: \n * `request.provider` **Changed**\n * `response.data[].provider.enum(modal)` **Added**\n* `open_router.byok.create()`: \n * `request.provider.enum(modal)` **Added**\n * `response.data.provider.enum(modal)` **Added**\n* `open_router.byok.get()`: `response.data.provider.enum(modal)` **Added**\n* `open_router.byok.update()`: `response.data.provider.enum(modal)` **Added**\n* `open_router.chat.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.embeddings.generate()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.endpoints.list_zdr_endpoints()`: `response.data[].provider_name.enum(modal)` **Added**\n* `open_router.endpoints.list()`: `response.data.endpoints[].provider_name.enum(modal)` **Added**\n* `open_router.images.generate()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.presets.create_presets_chat_completions()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.presets.create_presets_messages()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.presets.create_presets_responses()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.rerank.rerank()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n* `open_router.responses.send()`: \n * `request.provider.ignore[].union(ProviderName).enum(modal)` **Added**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 35587297..0bda9d10 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -36,7 +36,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true python: - version: 1.1.1 + version: 1.1.2 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 61c81db9..c40417ff 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -4392,6 +4392,7 @@ components: - 'meta' - 'minimax' - 'mistral' + - 'modal' - 'modelrun' - 'modular' - 'moonshotai' @@ -19026,6 +19027,7 @@ components: x-speakeasy-unknown-values: allow ProviderName: enum: + - 'Modal' - 'AkashML' - 'AI21' - 'AionLabs' @@ -25961,6 +25963,7 @@ paths: - 'meta' - 'minimax' - 'mistral' + - 'modal' - 'modelrun' - 'modular' - 'moonshotai' diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index fdb3b63b..acdb1eb5 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:130e849aa059d8805da446f0ad905b86c21b5d67db5960b3c8c28d585734b3a9 - sourceBlobDigest: sha256:bc5cc9b7d339edc48790bc2a9b67874216495ac96428e92054bd7cc515b6b88b + sourceRevisionDigest: sha256:b571bb5a6ea02dba12a7d2f5bb29396365ff0cd63563e2b778090ec926f31c32 + sourceBlobDigest: sha256:ff155bf06e9875bcc3324f78f57b268b5e68dafc8fb4abc793c2bb525e9ccc28 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:130e849aa059d8805da446f0ad905b86c21b5d67db5960b3c8c28d585734b3a9 - sourceBlobDigest: sha256:bc5cc9b7d339edc48790bc2a9b67874216495ac96428e92054bd7cc515b6b88b + sourceRevisionDigest: sha256:b571bb5a6ea02dba12a7d2f5bb29396365ff0cd63563e2b778090ec926f31c32 + sourceBlobDigest: sha256:ff155bf06e9875bcc3324f78f57b268b5e68dafc8fb4abc793c2bb525e9ccc28 codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:cf469784477d2d1e6e952fdca24699002b50c26e42744a7074b0b7c1302920be + codeSamplesRevisionDigest: sha256:099311fa47c46c4944d8e6dd1eede0fa3afa5e284d50ab7a1e6ef5c31862f59a workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index c084398b..47f57452 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -809,4 +809,14 @@ Based on: ### Generated - [python v1.1.1] . ### Releases -- [PyPI v1.1.1] https://pypi.org/project/openrouter/1.1.1 - . \ No newline at end of file +- [PyPI v1.1.1] https://pypi.org/project/openrouter/1.1.1 - . + +## 2026-07-25 23:34:28 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v1.1.2] . +### Releases +- [PyPI v1.1.2] https://pypi.org/project/openrouter/1.1.2 - . \ No newline at end of file diff --git a/docs/components/byokproviderslug.mdx b/docs/components/byokproviderslug.mdx index 6b9d061e..61f78871 100644 --- a/docs/components/byokproviderslug.mdx +++ b/docs/components/byokproviderslug.mdx @@ -73,6 +73,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"meta"` - `"minimax"` - `"mistral"` +- `"modal"` - `"modelrun"` - `"modular"` - `"moonshotai"` diff --git a/docs/components/providername.mdx b/docs/components/providername.mdx index 9c2defb2..32eebd3d 100644 --- a/docs/components/providername.mdx +++ b/docs/components/providername.mdx @@ -8,7 +8,7 @@ title: "ProviderName" from openrouter.components import ProviderName # Open enum: unrecognized values are captured as UnrecognizedStr -value: ProviderName = "AkashML" +value: ProviderName = "Modal" ``` @@ -16,6 +16,7 @@ value: ProviderName = "AkashML" This is an open enum. Unrecognized values will not fail type checks. +- `"Modal"` - `"AkashML"` - `"AI21"` - `"AionLabs"` diff --git a/docs/operations/provider.mdx b/docs/operations/provider.mdx index aaa01892..fcd5078c 100644 --- a/docs/operations/provider.mdx +++ b/docs/operations/provider.mdx @@ -73,6 +73,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"meta"` - `"minimax"` - `"mistral"` +- `"modal"` - `"modelrun"` - `"modular"` - `"moonshotai"` diff --git a/pyproject.toml b/pyproject.toml index 5a892c8c..bd7d6a8f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "1.1.1" +version = "1.1.2" 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 a9b58dd8..f86fc942 100644 --- a/src/openrouter/_version.py +++ b/src/openrouter/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "openrouter" -__version__: str = "1.1.1" +__version__: str = "1.1.2" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.914.0" -__user_agent__: str = "speakeasy-sdk/python 1.1.1 2.914.0 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 1.1.2 2.914.0 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/components/byokproviderslug.py b/src/openrouter/components/byokproviderslug.py index ff02086c..0b3cd7df 100644 --- a/src/openrouter/components/byokproviderslug.py +++ b/src/openrouter/components/byokproviderslug.py @@ -62,6 +62,7 @@ "meta", "minimax", "mistral", + "modal", "modelrun", "modular", "moonshotai", diff --git a/src/openrouter/components/providername.py b/src/openrouter/components/providername.py index 819e9246..ca583ca6 100644 --- a/src/openrouter/components/providername.py +++ b/src/openrouter/components/providername.py @@ -7,6 +7,7 @@ ProviderName = Union[ Literal[ + "Modal", "AkashML", "AI21", "AionLabs", diff --git a/src/openrouter/operations/listbyokkeys.py b/src/openrouter/operations/listbyokkeys.py index 8dfb4f2a..ea8a2771 100644 --- a/src/openrouter/operations/listbyokkeys.py +++ b/src/openrouter/operations/listbyokkeys.py @@ -139,6 +139,7 @@ def serialize_model(self, handler): "meta", "minimax", "mistral", + "modal", "modelrun", "modular", "moonshotai", diff --git a/uv.lock b/uv.lock index fc5012ba..28fe8d8f 100644 --- a/uv.lock +++ b/uv.lock @@ -213,7 +213,7 @@ wheels = [ [[package]] name = "openrouter" -version = "1.1.1" +version = "1.1.2" source = { editable = "." } dependencies = [ { name = "httpcore" }, From 017888792a27348bd18a4d212273b2b950422c8a Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Sat, 25 Jul 2026 23:36:36 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow