diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 206228ad..7e1de1f5 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: 7bd9b89fbec22196d1905c5c343c5a3f + docChecksum: 77068c873b6461c3ce598e7639e7e171 docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 1.2.14 - configChecksum: 802743116b703c7d1d4da10855dfdb26 + releaseVersion: 1.2.15 + configChecksum: 43d078beaa84285feccc361371078355 repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: 9c3c1c68-6766-4a03-af9e-8c8d26193017 - pristine_commit_hash: 4847c3203bade2f349f3a6e921f66191fb329f49 - pristine_tree_hash: c1bbe1d3081315160c4967c57a55f086ee11c9e9 + generation_id: d606bc86-3789-4ac8-a973-e8c317148812 + pristine_commit_hash: af6e39c114d0eef6d6d37a87a118f0c509dcc58e + pristine_tree_hash: 5a74f690938f581187d9d3e14911a3249a1c7fe5 features: python: acceptHeaders: 3.0.0 @@ -1699,12 +1699,16 @@ trackedFiles: pristine_git_object: 578411c9c20ce29b38854cf608060bd6e6aec69e docs/components/createworkspacerequest.mdx: id: ea85d6684017 - last_write_checksum: sha1:3fd0555fe82dbdff103995079630e6bcb7503795 - pristine_git_object: 3de1021e362e3a910e0e35842e6f1cdea15cdca4 + last_write_checksum: sha1:9c2244e40338c90da6e7cab914566c1f755da1f8 + pristine_git_object: 2d5e2868284158cf355dbf7d86d4cc48b635c3c7 + docs/components/createworkspacerequestdisabledservertool.mdx: + id: 19a533b200f9 + last_write_checksum: sha1:88082fd2da7f18d74d3d66c57fca6afb7e5f104a + pristine_git_object: 8156c97be549e8be20442a45b8fc32fa5718f086 docs/components/createworkspaceresponse.mdx: id: ee0c0ca3257e - last_write_checksum: sha1:f6de7351ddd4d0bb8990ef8e40d8cdfb24fe6c53 - pristine_git_object: aee384f40812ab73fa2a94ee1ee24decaee754f3 + last_write_checksum: sha1:43fe9485ebaec2a6e9eaec713f7cfd0b791de4a3 + pristine_git_object: 27d6f40a62669b36db6ec260228cfadb36a55a09 docs/components/criteria.mdx: id: 2598471a14a2 last_write_checksum: sha1:b681aff077a72268d22afe6857d83c7da5224e9c @@ -2475,8 +2479,8 @@ trackedFiles: pristine_git_object: 2974de1ffe849cdfc1720bb7e3431a89ac4c9b14 docs/components/getworkspaceresponse.mdx: id: c8d0c4683019 - last_write_checksum: sha1:5d10c3c4510cdc869a740deee62c31e9d2b02cc9 - pristine_git_object: 42ef3f3487d6e55ad13f7ae93edd146fd46332bf + last_write_checksum: sha1:7ea1d0d8aad1bd2ddb0d3774eb1f8bc791cf7ce2 + pristine_git_object: 3028ce13a0833f97730bbe1b419396cfbdcdf0eb docs/components/goneresponseerrordata.mdx: id: e6b031c25894 last_write_checksum: sha1:89e7ba22f189a86dd12757f9f5ea3d25175b537b @@ -6135,12 +6139,16 @@ trackedFiles: pristine_git_object: 651230ce14044f67b3930628c9b0a4feaab3f7e6 docs/components/updateworkspacerequest.mdx: id: 9870d016bf28 - last_write_checksum: sha1:b798c6d985770a44b3db121bb2aa6cd983ad5387 - pristine_git_object: f7e959179cb3c4d74ad355125a253b88ef4819f2 + last_write_checksum: sha1:ecce73854de37e1a624d840d82b38114c5335c1a + pristine_git_object: d0d068f603c4f4949078d61e64a0e16e825810d7 + docs/components/updateworkspacerequestdisabledservertool.mdx: + id: 47cabb4adf1a + last_write_checksum: sha1:9a2e914479d5924d4fd303f87c93a601615f0745 + pristine_git_object: 0ac89d206b33a5466cb729ba1a6c2cc3841229d9 docs/components/updateworkspaceresponse.mdx: id: b9779063a1b3 - last_write_checksum: sha1:3af637ba6cb6624ac3390470e21ef1d38e99c104 - pristine_git_object: 62f4522181f9c1ebe5755bd3bd5851a611534c87 + last_write_checksum: sha1:51c50cb5897d47059c2f1e59255bf171475c120e + pristine_git_object: bb50c7c718e903052b16d9f73d4c3f8a6484ec2d docs/components/upscalefactor.mdx: id: d68710dea098 last_write_checksum: sha1:6f0c8ba91272969b8b4c7e4d420ed1090e6c4bb5 @@ -6391,8 +6399,8 @@ trackedFiles: pristine_git_object: e8a689098106c445424b89fe5baa348824f3a36c docs/components/workspace.mdx: id: eea9c32d09c4 - last_write_checksum: sha1:7c46c2883ef1097c719aedc1f7e685e64f5e8f10 - pristine_git_object: bfb57ad4dd097359b10a1081120300ea9f9348d8 + last_write_checksum: sha1:9a689240292bb3903033db3e5232ca191135e38c + pristine_git_object: e3866ea05c7cd0f34a152e6e6da25beece779990 docs/components/workspacebudget.mdx: id: e941741a8d84 last_write_checksum: sha1:c94db9e8e6518f8da147deddd13cdb76a34609fc @@ -7743,8 +7751,8 @@ trackedFiles: pristine_git_object: 0903d08e14ec2f3f3f2ab8668daa99cb32a638c2 docs/operations/listworkspacesresponse.mdx: id: 9c0a0733f9d1 - last_write_checksum: sha1:d4c171ab93736a42200e388ac79b280496da1be9 - pristine_git_object: f0b5fa55d7d4da9de53d73728a27e13bfbfb30bf + last_write_checksum: sha1:89b57aa3a79a4374de7c876ba1bb3d307ba3208d + pristine_git_object: 44258f9aa86a3ce9be3f77d8bb3ada3a00388081 docs/operations/metadata.mdx: id: 2dd433f031ce last_write_checksum: sha1:78b9ed1337be24abd728a68bff41a10a0e1421cc @@ -8191,16 +8199,16 @@ trackedFiles: pristine_git_object: f317b0a45ac81d17124b0286e1df39c3eec14b99 docs/sdks/workspaces/README.mdx: id: 0c75d023ef6b - last_write_checksum: sha1:25592df93519c9e742e7c2a3df49ea2337a47d64 - pristine_git_object: 056f17b892cf105c2ee6e3156a37d3260c31f4fe + last_write_checksum: sha1:e0506418eaabc2839b16e1cdc5d963dd689226bf + pristine_git_object: bf6f0de6a33d64b453e558c8023931513ac367f0 py.typed: id: 258c3ed47ae4 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:8c54b6c9af35c07744640b023191e7464607c6ad - pristine_git_object: 3c96005ec9f6061ebb0433ff241702b99831f58a + last_write_checksum: sha1:15ce6f7cff75913f1b08ceaa8749b18d9ebbf6d4 + pristine_git_object: dc0216420b8e8b2880866e9f162f81d0878cb667 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -8227,8 +8235,8 @@ trackedFiles: pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137 src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:fd01494d6e9ee077697de96692d6f1a87b26bb5a - pristine_git_object: f36d1bffdd91f724ff2e13c9a2da5d123ea77f16 + last_write_checksum: sha1:a46b9567b1482e9b54a9b56d89fe91c304c69a26 + pristine_git_object: 22d2e2ac5c13082de840aa94cf1560638b96258c src/openrouter/alpha.py: id: 306c4d93308d last_write_checksum: sha1:0c25a52ed5fb688ec1e923e4e82bcfc9cae49465 @@ -8271,8 +8279,8 @@ trackedFiles: pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1 src/openrouter/components/__init__.py: id: 81754e97b3f4 - last_write_checksum: sha1:b601eeca8f608df36c42e1b6d2f5ee4af2087eab - pristine_git_object: c72a9ee2868adf11a45fb1b3e304c7e0f1534af8 + last_write_checksum: sha1:8ec369374d1712f8a0a595de9fbcdb5068078afd + pristine_git_object: ae01b770b9ea237cd5b8f0176439c924d3ba85eb src/openrouter/components/aabenchmarkentry.py: id: e2e0f0b48c82 last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c @@ -9035,8 +9043,8 @@ trackedFiles: pristine_git_object: 3a03248b4aa36f469420c5602df4f5d21a36dd68 src/openrouter/components/createworkspacerequest.py: id: 3785d9b207c2 - last_write_checksum: sha1:26d39e88354ea17dc3a9c0156ddc8769dbae33a4 - pristine_git_object: 0596d01d9ef84ac315f8c1e1272dd16aa51517db + last_write_checksum: sha1:2ba69c97be9ccf15539646697dd4c427c02a0b42 + pristine_git_object: 70e1a4066d721ac607b1f06d6d448d07473d52c1 src/openrouter/components/createworkspaceresponse.py: id: 986d9ff993c1 last_write_checksum: sha1:7e9028b437a9e33a7541ba222cf01e6629f5c74d @@ -10875,8 +10883,8 @@ trackedFiles: pristine_git_object: 2f110211bb0a6889bb6455a7a3901e0be260b170 src/openrouter/components/updateworkspacerequest.py: id: 78d86b3b0a63 - last_write_checksum: sha1:ff25d835cf026e5401004b26067c778c9e85fe38 - pristine_git_object: f1569fcf850aeb022abbc604d6b5e206d26db6eb + last_write_checksum: sha1:4e8da8b27b81f6cd72483fc807dfff2413ae2ab3 + pristine_git_object: 48897956756399c6dfe7684094e4d28e2648e754 src/openrouter/components/updateworkspaceresponse.py: id: 46253fa9690a last_write_checksum: sha1:4708e7e4cbfddc34ffc9ed4808a88bb5b4a61ebf @@ -11019,8 +11027,8 @@ trackedFiles: pristine_git_object: fda00ebca117e6d3accc21c5252351f77cf34692 src/openrouter/components/workspace.py: id: 682282304bd8 - last_write_checksum: sha1:69434be003cd92f09b14e7a8ed2fac59ebd05446 - pristine_git_object: 68c99ace24396e1b7bd903cac6ae78a1403b9591 + last_write_checksum: sha1:947e861015caddaf1dec255e9facd1f9860a2d3f + pristine_git_object: 874f99775f6348b5ad8ec15c928476f4ab88c762 src/openrouter/components/workspacebudget.py: id: f80c6983502a last_write_checksum: sha1:14f6ab02291a2222836247463c57ed42d568a6a9 @@ -11843,8 +11851,8 @@ trackedFiles: pristine_git_object: 6186c32069bb403d19f20ab7af4bb94ac8bab563 src/openrouter/workspaces.py: id: cd6c533b1802 - last_write_checksum: sha1:68bf23158fc838c1ad63e871b5d2de6080a75931 - pristine_git_object: bf45330d15a5647564e5ac5316422909621f8b03 + last_write_checksum: sha1:7db1e53c7cca6241c73765d584904150ef13c28c + pristine_git_object: 7237e212353b6db8a55d654e64a8e0e18b934110 examples: createResponses: speakeasy-default-create-responses: @@ -15052,6 +15060,4 @@ examples: "529": application/json: {"error": {"code": 529, "message": "Provider returned error"}} examplesVersion: 1.0.2 -releaseNotes: | - ## Python SDK Changes: - * `open_router.presets.create_presets_messages()`: `request.safeguards` **Added** +releaseNotes: "## Python SDK Changes:\n* `open_router.workspaces.list()`: `response.data[].disabled_server_tools` **Added**\n* `open_router.workspaces.create()`: \n * `request.disabled_server_tools` **Added**\n * `response.data.disabled_server_tools` **Added**\n* `open_router.workspaces.get()`: `response.data.disabled_server_tools` **Added**\n* `open_router.workspaces.update()`: \n * `request.disabled_server_tools` **Added**\n * `response.data.disabled_server_tools` **Added**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 09958272..6935c0f7 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -36,7 +36,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true python: - version: 1.2.14 + version: 1.2.15 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 38fcad2d..1f006177 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -8048,6 +8048,30 @@ components: type: - 'string' - 'null' + disabled_server_tools: + description: 'OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list.' + example: + - 'openrouter:web_search' + - 'openrouter:bash' + items: + enum: + - 'openrouter:advisor' + - 'openrouter:apply_patch' + - 'openrouter:bash' + - 'openrouter:datetime' + - 'openrouter:fusion' + - 'openrouter:image_generation' + - 'openrouter:experimental__search_models' + - 'openrouter:shell' + - 'openrouter:subagent' + - 'openrouter:tool_search' + - 'openrouter:web_fetch' + - 'openrouter:web_search' + type: 'string' + x-speakeasy-unknown-values: allow + type: + - 'array' + - 'null' io_logging_api_key_ids: description: 'Optional array of API key IDs to filter I/O logging' example: null @@ -8100,6 +8124,7 @@ components: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -10782,6 +10807,7 @@ components: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -13752,6 +13778,7 @@ components: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -28309,6 +28336,30 @@ components: type: - 'string' - 'null' + disabled_server_tools: + description: 'OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list.' + example: + - 'openrouter:web_search' + - 'openrouter:bash' + items: + enum: + - 'openrouter:advisor' + - 'openrouter:apply_patch' + - 'openrouter:bash' + - 'openrouter:datetime' + - 'openrouter:fusion' + - 'openrouter:image_generation' + - 'openrouter:experimental__search_models' + - 'openrouter:shell' + - 'openrouter:subagent' + - 'openrouter:tool_search' + - 'openrouter:web_fetch' + - 'openrouter:web_search' + type: 'string' + x-speakeasy-unknown-values: allow + type: + - 'array' + - 'null' io_logging_api_key_ids: description: 'Optional array of API key IDs to filter I/O logging' example: null @@ -28358,6 +28409,7 @@ components: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -29566,6 +29618,7 @@ components: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -29616,6 +29669,14 @@ components: type: - 'string' - 'null' + disabled_server_tools: + description: 'OpenRouter server tools (e.g. openrouter:web_search) that requests in this workspace may not invoke. Null means no tools are disabled.' + example: null + items: + type: 'string' + type: + - 'array' + - 'null' id: description: 'Unique identifier for the workspace' example: '550e8400-e29b-41d4-a716-446655440000' @@ -45899,6 +45960,7 @@ paths: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -45977,6 +46039,7 @@ paths: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -46154,6 +46217,7 @@ paths: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null @@ -46236,6 +46300,7 @@ paths: default_provider_sort: 'price' default_text_model: 'openai/gpt-4o' description: 'Production environment workspace' + disabled_server_tools: null id: '550e8400-e29b-41d4-a716-446655440000' include_byok_in_budgets: false io_logging_api_key_ids: null diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 10f24c0a..e39b0d23 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:86362b59ed209d44a72e17143c0d6d553ee4a08a72794dcab7e45b2a6f4e7f5e - sourceBlobDigest: sha256:2cafada247780172cf6ddbb74c56bfe1d46414cfddcd3c6f7bf19124efdf3d46 + sourceRevisionDigest: sha256:75219678a88c6c33fb86008c9884efc70d3afa9571fb4bdcad817b0c52e38ffa + sourceBlobDigest: sha256:dce598aa43ade42a9ea54bb0cf25914cee5596a451689784f7e6f487bcd62fae tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:86362b59ed209d44a72e17143c0d6d553ee4a08a72794dcab7e45b2a6f4e7f5e - sourceBlobDigest: sha256:2cafada247780172cf6ddbb74c56bfe1d46414cfddcd3c6f7bf19124efdf3d46 + sourceRevisionDigest: sha256:75219678a88c6c33fb86008c9884efc70d3afa9571fb4bdcad817b0c52e38ffa + sourceBlobDigest: sha256:dce598aa43ade42a9ea54bb0cf25914cee5596a451689784f7e6f487bcd62fae codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:59f269e778b3e98ce2d668ed3ebdcc893d92dc5a6a07cdd26200a19e59113c02 + codeSamplesRevisionDigest: sha256:577f3c5860b667fabda4136bb17d41670751abc93c7c527c872aef179228d6fe workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index 5cf3ef5f..ddcc8449 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -2549,4 +2549,14 @@ Based on: ### Generated - [python v1.2.14] . ### Releases -- [PyPI v1.2.14] https://pypi.org/project/openrouter/1.2.14 - . \ No newline at end of file +- [PyPI v1.2.14] https://pypi.org/project/openrouter/1.2.14 - . + +## 2026-09-22 00:11:13 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v1.2.15] . +### Releases +- [PyPI v1.2.15] https://pypi.org/project/openrouter/1.2.15 - . \ No newline at end of file diff --git a/docs/components/createworkspacerequest.mdx b/docs/components/createworkspacerequest.mdx index 3de1021e..2d5e2868 100644 --- a/docs/components/createworkspacerequest.mdx +++ b/docs/components/createworkspacerequest.mdx @@ -4,16 +4,17 @@ title: "CreateWorkspaceRequest" ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | -| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | -| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | Description of the workspace | Production environment workspace | -| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | -| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | -| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | -| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | -| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | -| `name` | *str* | :heavy_check_mark: | Name for the new workspace | Production | -| `slug` | *str* | :heavy_check_mark: | URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | production | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | +| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | +| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | Description of the workspace | Production environment workspace | +| `disabled_server_tools` | List[[components.CreateWorkspaceRequestDisabledServerTool](../components/createworkspacerequestdisabledservertool.mdx)] | :heavy_minus_sign: | OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. | [
"openrouter:web_search",
"openrouter:bash"
] | +| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | +| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | +| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | +| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | +| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | +| `name` | *str* | :heavy_check_mark: | Name for the new workspace | Production | +| `slug` | *str* | :heavy_check_mark: | URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | production | \ No newline at end of file diff --git a/docs/components/createworkspacerequestdisabledservertool.mdx b/docs/components/createworkspacerequestdisabledservertool.mdx new file mode 100644 index 00000000..8156c97b --- /dev/null +++ b/docs/components/createworkspacerequestdisabledservertool.mdx @@ -0,0 +1,30 @@ +--- +title: "CreateWorkspaceRequestDisabledServerTool" +--- + +## Example Usage + +```python +from openrouter.components import CreateWorkspaceRequestDisabledServerTool + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: CreateWorkspaceRequestDisabledServerTool = "openrouter:advisor" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"openrouter:advisor"` +- `"openrouter:apply_patch"` +- `"openrouter:bash"` +- `"openrouter:datetime"` +- `"openrouter:fusion"` +- `"openrouter:image_generation"` +- `"openrouter:experimental__search_models"` +- `"openrouter:shell"` +- `"openrouter:subagent"` +- `"openrouter:tool_search"` +- `"openrouter:web_fetch"` +- `"openrouter:web_search"` diff --git a/docs/components/createworkspaceresponse.mdx b/docs/components/createworkspaceresponse.mdx index aee384f4..27d6f40a 100644 --- a/docs/components/createworkspaceresponse.mdx +++ b/docs/components/createworkspaceresponse.mdx @@ -4,6 +4,6 @@ title: "CreateWorkspaceResponse" ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `data` | [components.Workspace](../components/workspace.mdx) | :heavy_check_mark: | N/A | \{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | [components.Workspace](../components/workspace.mdx) | :heavy_check_mark: | N/A | \{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"disabled_server_tools": null,
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
} | \ No newline at end of file diff --git a/docs/components/getworkspaceresponse.mdx b/docs/components/getworkspaceresponse.mdx index 42ef3f34..3028ce13 100644 --- a/docs/components/getworkspaceresponse.mdx +++ b/docs/components/getworkspaceresponse.mdx @@ -4,6 +4,6 @@ title: "GetWorkspaceResponse" ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `data` | [components.Workspace](../components/workspace.mdx) | :heavy_check_mark: | N/A | \{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | [components.Workspace](../components/workspace.mdx) | :heavy_check_mark: | N/A | \{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"disabled_server_tools": null,
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
} | \ No newline at end of file diff --git a/docs/components/updateworkspacerequest.mdx b/docs/components/updateworkspacerequest.mdx index f7e95917..d0d068f6 100644 --- a/docs/components/updateworkspacerequest.mdx +++ b/docs/components/updateworkspacerequest.mdx @@ -4,16 +4,17 @@ title: "UpdateWorkspaceRequest" ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | -| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | -| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | New description for the workspace | Updated description | -| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | -| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | -| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | -| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | -| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | -| `name` | *Optional[str]* | :heavy_minus_sign: | New name for the workspace | Updated Workspace | -| `slug` | *Optional[str]* | :heavy_minus_sign: | New URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | updated-workspace | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | +| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | +| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | New description for the workspace | Updated description | +| `disabled_server_tools` | List[[components.UpdateWorkspaceRequestDisabledServerTool](../components/updateworkspacerequestdisabledservertool.mdx)] | :heavy_minus_sign: | OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. | [
"openrouter:web_search",
"openrouter:bash"
] | +| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | +| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | +| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | +| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | +| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | +| `name` | *Optional[str]* | :heavy_minus_sign: | New name for the workspace | Updated Workspace | +| `slug` | *Optional[str]* | :heavy_minus_sign: | New URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | updated-workspace | \ No newline at end of file diff --git a/docs/components/updateworkspacerequestdisabledservertool.mdx b/docs/components/updateworkspacerequestdisabledservertool.mdx new file mode 100644 index 00000000..0ac89d20 --- /dev/null +++ b/docs/components/updateworkspacerequestdisabledservertool.mdx @@ -0,0 +1,30 @@ +--- +title: "UpdateWorkspaceRequestDisabledServerTool" +--- + +## Example Usage + +```python +from openrouter.components import UpdateWorkspaceRequestDisabledServerTool + +# Open enum: unrecognized values are captured as UnrecognizedStr +value: UpdateWorkspaceRequestDisabledServerTool = "openrouter:advisor" +``` + + +## Values + +This is an open enum. Unrecognized values will not fail type checks. + +- `"openrouter:advisor"` +- `"openrouter:apply_patch"` +- `"openrouter:bash"` +- `"openrouter:datetime"` +- `"openrouter:fusion"` +- `"openrouter:image_generation"` +- `"openrouter:experimental__search_models"` +- `"openrouter:shell"` +- `"openrouter:subagent"` +- `"openrouter:tool_search"` +- `"openrouter:web_fetch"` +- `"openrouter:web_search"` diff --git a/docs/components/updateworkspaceresponse.mdx b/docs/components/updateworkspaceresponse.mdx index 62f45221..bb50c7c7 100644 --- a/docs/components/updateworkspaceresponse.mdx +++ b/docs/components/updateworkspaceresponse.mdx @@ -4,6 +4,6 @@ title: "UpdateWorkspaceResponse" ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `data` | [components.Workspace](../components/workspace.mdx) | :heavy_check_mark: | N/A | \{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `data` | [components.Workspace](../components/workspace.mdx) | :heavy_check_mark: | N/A | \{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"disabled_server_tools": null,
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
} | \ No newline at end of file diff --git a/docs/components/workspace.mdx b/docs/components/workspace.mdx index bfb57ad4..e3866ea0 100644 --- a/docs/components/workspace.mdx +++ b/docs/components/workspace.mdx @@ -4,22 +4,23 @@ title: "Workspace" ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `created_at` | *str* | :heavy_check_mark: | ISO 8601 timestamp of when the workspace was created | 2025-08-24T10:30:00Z | -| `created_by` | *Nullable[str]* | :heavy_check_mark: | User ID of the workspace creator | user_abc123 | -| `default_guardrail_id` | *str* | :heavy_check_mark: | Deterministic ID derived from the workspace ID. The default guardrail is materialized when its configuration is first written. | 595d5849-7e86-51fd-a7c0-705c34e4afff | -| `default_image_model` | *Nullable[str]* | :heavy_check_mark: | Default image model for this workspace | openai/dall-e-3 | -| `default_provider_sort` | *Nullable[str]* | :heavy_check_mark: | Default provider sort preference (price, throughput, latency, exacto) | price | -| `default_text_model` | *Nullable[str]* | :heavy_check_mark: | Default text model for this workspace | openai/gpt-4o | -| `description` | *Nullable[str]* | :heavy_check_mark: | Description of the workspace | Production environment workspace | -| `id` | *str* | :heavy_check_mark: | Unique identifier for the workspace | 550e8400-e29b-41d4-a716-446655440000 | -| `include_byok_in_budgets` | *Optional[bool]* | :heavy_minus_sign: | Whether BYOK (bring-your-own-key) spend counts toward this workspace's budgets. Set it via the workspace budget endpoints. | false | -| `io_logging_api_key_ids` | List[*int*] | :heavy_check_mark: | Optional array of API key IDs to filter I/O logging. Null means all keys are logged. | null | -| `io_logging_sampling_rate` | *float* | :heavy_check_mark: | Sampling rate for I/O logging (0.0001-1). 1 means 100% of requests are logged. | 1 | -| `is_data_discount_logging_enabled` | *bool* | :heavy_check_mark: | Whether data discount logging is enabled for this workspace | true | -| `is_observability_broadcast_enabled` | *bool* | :heavy_check_mark: | Whether broadcast is enabled for this workspace | false | -| `is_observability_io_logging_enabled` | *bool* | :heavy_check_mark: | Whether private logging is enabled for this workspace | false | -| `name` | *str* | :heavy_check_mark: | Name of the workspace | Production | -| `slug` | *str* | :heavy_check_mark: | URL-friendly slug for the workspace | production | -| `updated_at` | *Nullable[str]* | :heavy_check_mark: | ISO 8601 timestamp of when the workspace was last updated | 2025-08-24T15:45:00Z | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `created_at` | *str* | :heavy_check_mark: | ISO 8601 timestamp of when the workspace was created | 2025-08-24T10:30:00Z | +| `created_by` | *Nullable[str]* | :heavy_check_mark: | User ID of the workspace creator | user_abc123 | +| `default_guardrail_id` | *str* | :heavy_check_mark: | Deterministic ID derived from the workspace ID. The default guardrail is materialized when its configuration is first written. | 595d5849-7e86-51fd-a7c0-705c34e4afff | +| `default_image_model` | *Nullable[str]* | :heavy_check_mark: | Default image model for this workspace | openai/dall-e-3 | +| `default_provider_sort` | *Nullable[str]* | :heavy_check_mark: | Default provider sort preference (price, throughput, latency, exacto) | price | +| `default_text_model` | *Nullable[str]* | :heavy_check_mark: | Default text model for this workspace | openai/gpt-4o | +| `description` | *Nullable[str]* | :heavy_check_mark: | Description of the workspace | Production environment workspace | +| `disabled_server_tools` | List[*str*] | :heavy_minus_sign: | OpenRouter server tools (e.g. openrouter:web_search) that requests in this workspace may not invoke. Null means no tools are disabled. | null | +| `id` | *str* | :heavy_check_mark: | Unique identifier for the workspace | 550e8400-e29b-41d4-a716-446655440000 | +| `include_byok_in_budgets` | *Optional[bool]* | :heavy_minus_sign: | Whether BYOK (bring-your-own-key) spend counts toward this workspace's budgets. Set it via the workspace budget endpoints. | false | +| `io_logging_api_key_ids` | List[*int*] | :heavy_check_mark: | Optional array of API key IDs to filter I/O logging. Null means all keys are logged. | null | +| `io_logging_sampling_rate` | *float* | :heavy_check_mark: | Sampling rate for I/O logging (0.0001-1). 1 means 100% of requests are logged. | 1 | +| `is_data_discount_logging_enabled` | *bool* | :heavy_check_mark: | Whether data discount logging is enabled for this workspace | true | +| `is_observability_broadcast_enabled` | *bool* | :heavy_check_mark: | Whether broadcast is enabled for this workspace | false | +| `is_observability_io_logging_enabled` | *bool* | :heavy_check_mark: | Whether private logging is enabled for this workspace | false | +| `name` | *str* | :heavy_check_mark: | Name of the workspace | Production | +| `slug` | *str* | :heavy_check_mark: | URL-friendly slug for the workspace | production | +| `updated_at` | *Nullable[str]* | :heavy_check_mark: | ISO 8601 timestamp of when the workspace was last updated | 2025-08-24T15:45:00Z | \ No newline at end of file diff --git a/docs/operations/listworkspacesresponse.mdx b/docs/operations/listworkspacesresponse.mdx index f0b5fa55..44258f9a 100644 --- a/docs/operations/listworkspacesresponse.mdx +++ b/docs/operations/listworkspacesresponse.mdx @@ -4,6 +4,6 @@ title: "ListWorkspacesResponse" ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `result` | [components.ListWorkspacesResponse](../components/listworkspacesresponse.mdx) | :heavy_check_mark: | N/A | \{
"data": [
\{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
}
],
"total_count": 1
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `result` | [components.ListWorkspacesResponse](../components/listworkspacesresponse.mdx) | :heavy_check_mark: | N/A | \{
"data": [
\{
"created_at": "2025-08-24T10:30:00Z",
"created_by": "user_abc123",
"default_guardrail_id": "595d5849-7e86-51fd-a7c0-705c34e4afff",
"default_image_model": "openai/dall-e-3",
"default_provider_sort": "price",
"default_text_model": "openai/gpt-4o",
"description": "Production environment workspace",
"disabled_server_tools": null,
"id": "550e8400-e29b-41d4-a716-446655440000",
"include_byok_in_budgets": false,
"io_logging_api_key_ids": null,
"io_logging_sampling_rate": 1,
"is_data_discount_logging_enabled": true,
"is_observability_broadcast_enabled": false,
"is_observability_io_logging_enabled": false,
"name": "Production",
"slug": "production",
"updated_at": "2025-08-24T15:45:00Z"
}
],
"total_count": 1
} | \ No newline at end of file diff --git a/docs/sdks/workspaces/README.mdx b/docs/sdks/workspaces/README.mdx index 056f17b8..bf6f0de6 100644 --- a/docs/sdks/workspaces/README.mdx +++ b/docs/sdks/workspaces/README.mdx @@ -99,23 +99,24 @@ with OpenRouter( ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | *str* | :heavy_check_mark: | Name for the new workspace | Production | -| `slug` | *str* | :heavy_check_mark: | URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | production | -| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | -| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | -| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | -| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | -| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | Description of the workspace | Production environment workspace | -| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | -| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | -| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | -| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | -| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *str* | :heavy_check_mark: | Name for the new workspace | Production | +| `slug` | *str* | :heavy_check_mark: | URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | production | +| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | +| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | +| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | +| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | +| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | +| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | Description of the workspace | Production environment workspace | +| `disabled_server_tools` | List[[components.CreateWorkspaceRequestDisabledServerTool](../../components/createworkspacerequestdisabledservertool.mdx)] | :heavy_minus_sign: | OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. | [
"openrouter:web_search",
"openrouter:bash"
] | +| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | +| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | +| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | +| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | +| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response @@ -257,24 +258,25 @@ with OpenRouter( ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *str* | :heavy_check_mark: | The workspace ID (UUID) or slug | production | -| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | -| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | -| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | -| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | -| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | New description for the workspace | Updated description | -| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | -| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | -| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | -| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | -| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | -| `name` | *Optional[str]* | :heavy_minus_sign: | New name for the workspace | Updated Workspace | -| `slug` | *Optional[str]* | :heavy_minus_sign: | New URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | updated-workspace | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | +| Parameter | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | The workspace ID (UUID) or slug | production | +| `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | +| `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | +| `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | +| `default_image_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default image model for this workspace | openai/dall-e-3 | +| `default_provider_sort` | *OptionalNullable[str]* | :heavy_minus_sign: | Default provider sort preference (price, throughput, latency, exacto) | price | +| `default_text_model` | *OptionalNullable[str]* | :heavy_minus_sign: | Default text model for this workspace | openai/gpt-4o | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | New description for the workspace | Updated description | +| `disabled_server_tools` | List[[components.UpdateWorkspaceRequestDisabledServerTool](../../components/updateworkspacerequestdisabledservertool.mdx)] | :heavy_minus_sign: | OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. | [
"openrouter:web_search",
"openrouter:bash"
] | +| `io_logging_api_key_ids` | List[*int*] | :heavy_minus_sign: | Optional array of API key IDs to filter I/O logging | null | +| `io_logging_sampling_rate` | *Optional[float]* | :heavy_minus_sign: | Sampling rate for I/O logging (0.0001-1) | 1 | +| `is_data_discount_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether data discount logging is enabled | true | +| `is_observability_broadcast_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether broadcast is enabled | false | +| `is_observability_io_logging_enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether private logging is enabled | false | +| `name` | *Optional[str]* | :heavy_minus_sign: | New name for the workspace | Updated Workspace | +| `slug` | *Optional[str]* | :heavy_minus_sign: | New URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) | updated-workspace | +| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response diff --git a/pyproject.toml b/pyproject.toml index 3c96005e..dc021642 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "1.2.14" +version = "1.2.15" 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 f36d1bff..22d2e2ac 100644 --- a/src/openrouter/_version.py +++ b/src/openrouter/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "openrouter" -__version__: str = "1.2.14" +__version__: str = "1.2.15" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.914.0" -__user_agent__: str = "speakeasy-sdk/python 1.2.14 2.914.0 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 1.2.15 2.914.0 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/components/__init__.py b/src/openrouter/components/__init__.py index c72a9ee2..ae01b770 100644 --- a/src/openrouter/components/__init__.py +++ b/src/openrouter/components/__init__.py @@ -915,6 +915,7 @@ ) from .createworkspacerequest import ( CreateWorkspaceRequest, + CreateWorkspaceRequestDisabledServerTool, CreateWorkspaceRequestTypedDict, ) from .createworkspaceresponse import ( @@ -3342,6 +3343,7 @@ ) from .updateworkspacerequest import ( UpdateWorkspaceRequest, + UpdateWorkspaceRequestDisabledServerTool, UpdateWorkspaceRequestTypedDict, ) from .updateworkspaceresponse import ( @@ -4149,6 +4151,7 @@ "CreateScimSyncJobResponse", "CreateScimSyncJobResponseTypedDict", "CreateWorkspaceRequest", + "CreateWorkspaceRequestDisabledServerTool", "CreateWorkspaceRequestTypedDict", "CreateWorkspaceResponse", "CreateWorkspaceResponseTypedDict", @@ -5932,6 +5935,7 @@ "UpdateScimGroupMappingResponse", "UpdateScimGroupMappingResponseTypedDict", "UpdateWorkspaceRequest", + "UpdateWorkspaceRequestDisabledServerTool", "UpdateWorkspaceRequestTypedDict", "UpdateWorkspaceResponse", "UpdateWorkspaceResponseTypedDict", @@ -6668,6 +6672,7 @@ "CreateScimSyncJobResponse": ".createscimsyncjobresponse", "CreateScimSyncJobResponseTypedDict": ".createscimsyncjobresponse", "CreateWorkspaceRequest": ".createworkspacerequest", + "CreateWorkspaceRequestDisabledServerTool": ".createworkspacerequest", "CreateWorkspaceRequestTypedDict": ".createworkspacerequest", "CreateWorkspaceResponse": ".createworkspaceresponse", "CreateWorkspaceResponseTypedDict": ".createworkspaceresponse", @@ -8483,6 +8488,7 @@ "UpdateScimGroupMappingResponse": ".updatescimgroupmappingresponse", "UpdateScimGroupMappingResponseTypedDict": ".updatescimgroupmappingresponse", "UpdateWorkspaceRequest": ".updateworkspacerequest", + "UpdateWorkspaceRequestDisabledServerTool": ".updateworkspacerequest", "UpdateWorkspaceRequestTypedDict": ".updateworkspacerequest", "UpdateWorkspaceResponse": ".updateworkspaceresponse", "UpdateWorkspaceResponseTypedDict": ".updateworkspaceresponse", diff --git a/src/openrouter/components/createworkspacerequest.py b/src/openrouter/components/createworkspacerequest.py index 0596d01d..70e1a406 100644 --- a/src/openrouter/components/createworkspacerequest.py +++ b/src/openrouter/components/createworkspacerequest.py @@ -7,12 +7,32 @@ OptionalNullable, UNSET, UNSET_SENTINEL, + UnrecognizedStr, ) from pydantic import model_serializer -from typing import List, Optional +from typing import List, Literal, Optional, Union from typing_extensions import NotRequired, TypedDict +CreateWorkspaceRequestDisabledServerTool = Union[ + Literal[ + "openrouter:advisor", + "openrouter:apply_patch", + "openrouter:bash", + "openrouter:datetime", + "openrouter:fusion", + "openrouter:image_generation", + "openrouter:experimental__search_models", + "openrouter:shell", + "openrouter:subagent", + "openrouter:tool_search", + "openrouter:web_fetch", + "openrouter:web_search", + ], + UnrecognizedStr, +] + + class CreateWorkspaceRequestTypedDict(TypedDict): name: str r"""Name for the new workspace""" @@ -26,6 +46,10 @@ class CreateWorkspaceRequestTypedDict(TypedDict): r"""Default text model for this workspace""" description: NotRequired[Nullable[str]] r"""Description of the workspace""" + disabled_server_tools: NotRequired[ + Nullable[List[CreateWorkspaceRequestDisabledServerTool]] + ] + r"""OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list.""" io_logging_api_key_ids: NotRequired[Nullable[List[int]]] r"""Optional array of API key IDs to filter I/O logging""" io_logging_sampling_rate: NotRequired[float] @@ -57,6 +81,11 @@ class CreateWorkspaceRequest(BaseModel): description: OptionalNullable[str] = UNSET r"""Description of the workspace""" + disabled_server_tools: OptionalNullable[ + List[CreateWorkspaceRequestDisabledServerTool] + ] = UNSET + r"""OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list.""" + io_logging_api_key_ids: OptionalNullable[List[int]] = UNSET r"""Optional array of API key IDs to filter I/O logging""" @@ -80,6 +109,7 @@ def serialize_model(self, handler): "default_provider_sort", "default_text_model", "description", + "disabled_server_tools", "io_logging_api_key_ids", "io_logging_sampling_rate", "is_data_discount_logging_enabled", @@ -93,6 +123,7 @@ def serialize_model(self, handler): "default_provider_sort", "default_text_model", "description", + "disabled_server_tools", "io_logging_api_key_ids", ] ) diff --git a/src/openrouter/components/updateworkspacerequest.py b/src/openrouter/components/updateworkspacerequest.py index f1569fcf..48897956 100644 --- a/src/openrouter/components/updateworkspacerequest.py +++ b/src/openrouter/components/updateworkspacerequest.py @@ -7,12 +7,32 @@ OptionalNullable, UNSET, UNSET_SENTINEL, + UnrecognizedStr, ) from pydantic import model_serializer -from typing import List, Optional +from typing import List, Literal, Optional, Union from typing_extensions import NotRequired, TypedDict +UpdateWorkspaceRequestDisabledServerTool = Union[ + Literal[ + "openrouter:advisor", + "openrouter:apply_patch", + "openrouter:bash", + "openrouter:datetime", + "openrouter:fusion", + "openrouter:image_generation", + "openrouter:experimental__search_models", + "openrouter:shell", + "openrouter:subagent", + "openrouter:tool_search", + "openrouter:web_fetch", + "openrouter:web_search", + ], + UnrecognizedStr, +] + + class UpdateWorkspaceRequestTypedDict(TypedDict): default_image_model: NotRequired[Nullable[str]] r"""Default image model for this workspace""" @@ -22,6 +42,10 @@ class UpdateWorkspaceRequestTypedDict(TypedDict): r"""Default text model for this workspace""" description: NotRequired[Nullable[str]] r"""New description for the workspace""" + disabled_server_tools: NotRequired[ + Nullable[List[UpdateWorkspaceRequestDisabledServerTool]] + ] + r"""OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list.""" io_logging_api_key_ids: NotRequired[Nullable[List[int]]] r"""Optional array of API key IDs to filter I/O logging""" io_logging_sampling_rate: NotRequired[float] @@ -51,6 +75,11 @@ class UpdateWorkspaceRequest(BaseModel): description: OptionalNullable[str] = UNSET r"""New description for the workspace""" + disabled_server_tools: OptionalNullable[ + List[UpdateWorkspaceRequestDisabledServerTool] + ] = UNSET + r"""OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list.""" + io_logging_api_key_ids: OptionalNullable[List[int]] = UNSET r"""Optional array of API key IDs to filter I/O logging""" @@ -80,6 +109,7 @@ def serialize_model(self, handler): "default_provider_sort", "default_text_model", "description", + "disabled_server_tools", "io_logging_api_key_ids", "io_logging_sampling_rate", "is_data_discount_logging_enabled", @@ -95,6 +125,7 @@ def serialize_model(self, handler): "default_provider_sort", "default_text_model", "description", + "disabled_server_tools", "io_logging_api_key_ids", ] ) diff --git a/src/openrouter/components/workspace.py b/src/openrouter/components/workspace.py index 68c99ace..874f9977 100644 --- a/src/openrouter/components/workspace.py +++ b/src/openrouter/components/workspace.py @@ -1,7 +1,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL +from openrouter.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET, + UNSET_SENTINEL, +) from pydantic import model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -40,6 +46,8 @@ class WorkspaceTypedDict(TypedDict): r"""URL-friendly slug for the workspace""" updated_at: Nullable[str] r"""ISO 8601 timestamp of when the workspace was last updated""" + disabled_server_tools: NotRequired[Nullable[List[str]]] + r"""OpenRouter server tools (e.g. openrouter:web_search) that requests in this workspace may not invoke. Null means no tools are disabled.""" include_byok_in_budgets: NotRequired[bool] r"""Whether BYOK (bring-your-own-key) spend counts toward this workspace's budgets. Set it via the workspace budget endpoints.""" @@ -93,12 +101,15 @@ class Workspace(BaseModel): updated_at: Nullable[str] r"""ISO 8601 timestamp of when the workspace was last updated""" + disabled_server_tools: OptionalNullable[List[str]] = UNSET + r"""OpenRouter server tools (e.g. openrouter:web_search) that requests in this workspace may not invoke. Null means no tools are disabled.""" + include_byok_in_budgets: Optional[bool] = None r"""Whether BYOK (bring-your-own-key) spend counts toward this workspace's budgets. Set it via the workspace budget endpoints.""" @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["include_byok_in_budgets"]) + optional_fields = set(["disabled_server_tools", "include_byok_in_budgets"]) nullable_fields = set( [ "created_by", @@ -106,6 +117,7 @@ def serialize_model(self, handler): "default_provider_sort", "default_text_model", "description", + "disabled_server_tools", "io_logging_api_key_ids", "updated_at", ] diff --git a/src/openrouter/workspaces.py b/src/openrouter/workspaces.py index bf45330d..7237e212 100644 --- a/src/openrouter/workspaces.py +++ b/src/openrouter/workspaces.py @@ -344,6 +344,9 @@ def create( default_provider_sort: OptionalNullable[str] = UNSET, default_text_model: OptionalNullable[str] = UNSET, description: OptionalNullable[str] = UNSET, + disabled_server_tools: OptionalNullable[ + Iterable[components.CreateWorkspaceRequestDisabledServerTool] + ] = UNSET, io_logging_api_key_ids: OptionalNullable[Iterable[int]] = UNSET, io_logging_sampling_rate: Optional[float] = None, is_data_discount_logging_enabled: Optional[bool] = None, @@ -371,6 +374,7 @@ def create( :param default_provider_sort: Default provider sort preference (price, throughput, latency, exacto) :param default_text_model: Default text model for this workspace :param description: Description of the workspace + :param disabled_server_tools: OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. :param io_logging_api_key_ids: Optional array of API key IDs to filter I/O logging :param io_logging_sampling_rate: Sampling rate for I/O logging (0.0001-1) :param is_data_discount_logging_enabled: Whether data discount logging is enabled @@ -400,6 +404,12 @@ def create( default_provider_sort=default_provider_sort, default_text_model=default_text_model, description=description, + disabled_server_tools=utils.unmarshal( + disabled_server_tools, + OptionalNullable[ + List[components.CreateWorkspaceRequestDisabledServerTool] + ], + ), io_logging_api_key_ids=utils.unmarshal( io_logging_api_key_ids, OptionalNullable[List[int]] ), @@ -518,6 +528,9 @@ async def create_async( default_provider_sort: OptionalNullable[str] = UNSET, default_text_model: OptionalNullable[str] = UNSET, description: OptionalNullable[str] = UNSET, + disabled_server_tools: OptionalNullable[ + Iterable[components.CreateWorkspaceRequestDisabledServerTool] + ] = UNSET, io_logging_api_key_ids: OptionalNullable[Iterable[int]] = UNSET, io_logging_sampling_rate: Optional[float] = None, is_data_discount_logging_enabled: Optional[bool] = None, @@ -545,6 +558,7 @@ async def create_async( :param default_provider_sort: Default provider sort preference (price, throughput, latency, exacto) :param default_text_model: Default text model for this workspace :param description: Description of the workspace + :param disabled_server_tools: OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. :param io_logging_api_key_ids: Optional array of API key IDs to filter I/O logging :param io_logging_sampling_rate: Sampling rate for I/O logging (0.0001-1) :param is_data_discount_logging_enabled: Whether data discount logging is enabled @@ -574,6 +588,12 @@ async def create_async( default_provider_sort=default_provider_sort, default_text_model=default_text_model, description=description, + disabled_server_tools=utils.unmarshal( + disabled_server_tools, + OptionalNullable[ + List[components.CreateWorkspaceRequestDisabledServerTool] + ], + ), io_logging_api_key_ids=utils.unmarshal( io_logging_api_key_ids, OptionalNullable[List[int]] ), @@ -1229,6 +1249,9 @@ def update( default_provider_sort: OptionalNullable[str] = UNSET, default_text_model: OptionalNullable[str] = UNSET, description: OptionalNullable[str] = UNSET, + disabled_server_tools: OptionalNullable[ + Iterable[components.UpdateWorkspaceRequestDisabledServerTool] + ] = UNSET, io_logging_api_key_ids: OptionalNullable[Iterable[int]] = UNSET, io_logging_sampling_rate: Optional[float] = None, is_data_discount_logging_enabled: Optional[bool] = None, @@ -1257,6 +1280,7 @@ def update( :param default_provider_sort: Default provider sort preference (price, throughput, latency, exacto) :param default_text_model: Default text model for this workspace :param description: New description for the workspace + :param disabled_server_tools: OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. :param io_logging_api_key_ids: Optional array of API key IDs to filter I/O logging :param io_logging_sampling_rate: Sampling rate for I/O logging (0.0001-1) :param is_data_discount_logging_enabled: Whether data discount logging is enabled @@ -1289,6 +1313,12 @@ def update( default_provider_sort=default_provider_sort, default_text_model=default_text_model, description=description, + disabled_server_tools=utils.unmarshal( + disabled_server_tools, + OptionalNullable[ + List[components.UpdateWorkspaceRequestDisabledServerTool] + ], + ), io_logging_api_key_ids=utils.unmarshal( io_logging_api_key_ids, OptionalNullable[List[int]] ), @@ -1411,6 +1441,9 @@ async def update_async( default_provider_sort: OptionalNullable[str] = UNSET, default_text_model: OptionalNullable[str] = UNSET, description: OptionalNullable[str] = UNSET, + disabled_server_tools: OptionalNullable[ + Iterable[components.UpdateWorkspaceRequestDisabledServerTool] + ] = UNSET, io_logging_api_key_ids: OptionalNullable[Iterable[int]] = UNSET, io_logging_sampling_rate: Optional[float] = None, is_data_discount_logging_enabled: Optional[bool] = None, @@ -1439,6 +1472,7 @@ async def update_async( :param default_provider_sort: Default provider sort preference (price, throughput, latency, exacto) :param default_text_model: Default text model for this workspace :param description: New description for the workspace + :param disabled_server_tools: OpenRouter server tools that requests in this workspace may not invoke. Requests naming a disabled tool are rejected with 403. An empty array or null clears the list. :param io_logging_api_key_ids: Optional array of API key IDs to filter I/O logging :param io_logging_sampling_rate: Sampling rate for I/O logging (0.0001-1) :param is_data_discount_logging_enabled: Whether data discount logging is enabled @@ -1471,6 +1505,12 @@ async def update_async( default_provider_sort=default_provider_sort, default_text_model=default_text_model, description=description, + disabled_server_tools=utils.unmarshal( + disabled_server_tools, + OptionalNullable[ + List[components.UpdateWorkspaceRequestDisabledServerTool] + ], + ), io_logging_api_key_ids=utils.unmarshal( io_logging_api_key_ids, OptionalNullable[List[int]] ), diff --git a/uv.lock b/uv.lock index ca6b1692..980bfd46 100644 --- a/uv.lock +++ b/uv.lock @@ -213,7 +213,7 @@ wheels = [ [[package]] name = "openrouter" -version = "1.2.14" +version = "1.2.15" source = { editable = "." } dependencies = [ { name = "httpcore" },