diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index f11b6c79..fcce8cf0 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: df3ca46aca5d14666fd33de83747f801 + docChecksum: 815a8ec5b2e1ee82c82c5095d3adb74a docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 1.2.24 - configChecksum: d02772c9403da27f5eb41cff25d529b1 + releaseVersion: 1.2.25 + configChecksum: 0060e4db5bf932035842b1a4ecf600e2 repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: 54a3574d-1558-40f7-874c-16f1ae802ac5 - pristine_commit_hash: 4789f649ebdd3f148d33513703a94b992d93c522 - pristine_tree_hash: 862a783b0199eeb5d4508209f14851bb4e81dc28 + generation_id: fa70824f-34c4-492b-9c18-fe0507530bd8 + pristine_commit_hash: ae8884c39a7fe749a387b18ec98945600c5c6788 + pristine_tree_hash: 3a8e6172d95b9e0742b02c8c8a5b7d84c83fe84f features: python: acceptHeaders: 3.0.0 @@ -7739,8 +7739,8 @@ trackedFiles: pristine_git_object: 5294ada2ed869243414124ab5c76e8a2b35f4512 docs/operations/listscimgroupsrequest.mdx: id: df7ed9b0f3b3 - last_write_checksum: sha1:26602f5d6904cdfe0d9bda06cf51f30eba59bb8d - pristine_git_object: 559e6e18a2281c2d63c6a7fdfa58658daa89cdd9 + last_write_checksum: sha1:49d7c2b9ba09f2e9cd6b96f5924be7c29748ff86 + pristine_git_object: d08e86e012e2dee5180fc66653f5f40c3195490a docs/operations/listscimgroupsresponse.mdx: id: b763a3eaa70b last_write_checksum: sha1:2421768f7c35319a79083c02017056bd40f21c4e @@ -8223,8 +8223,8 @@ trackedFiles: pristine_git_object: eec7232321e300a7e5c2232ec0a6754d6cac11d1 docs/sdks/scim/README.mdx: id: fd6d8a91a053 - last_write_checksum: sha1:4a44eb3431bd9590ff15e3d944309dcfbbcd551c - pristine_git_object: c7435646cf280b7b2fbb2805b2cde15b4c570896 + last_write_checksum: sha1:0a28f030bf42146fde86887c2b79831af07f1d4f + pristine_git_object: 240f5da9d86fc9dbbaa7efe345da740768c773b3 docs/sdks/stt/README.mdx: id: 190b0dc9a5d1 last_write_checksum: sha1:9a13f8f1e26550bccf3935a36e9c3426febc6fcb @@ -8255,8 +8255,8 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:71fd2dfd99167132206446e21915b3a14726faad - pristine_git_object: 9d14083354029769ccc4ab1da4adf94fd6dfc1eb + last_write_checksum: sha1:27aeee89e2c898ea60e1475abd2f9d5e0103a4ae + pristine_git_object: 95f6a529d770d06e77a08344b47e041071a6cbcf scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -8283,8 +8283,8 @@ trackedFiles: pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137 src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:882a6f542393d7fd9dc4943bf2f7a5372a57c831 - pristine_git_object: d7a17ff85772ba6c4ceff97c65e0ea6eab17e1d3 + last_write_checksum: sha1:093be2bc67de726f618f6e324aa1163e20aee980 + pristine_git_object: a3006f6b2785908f66d9c46b766df9a0ddde4373 src/openrouter/alpha.py: id: 306c4d93308d last_write_checksum: sha1:30f55a360f41376ab194b9ea725fe4e001a5ae1a @@ -11683,8 +11683,8 @@ trackedFiles: pristine_git_object: a913e2774bfb2a74def1a707076fad6cb49b6496 src/openrouter/operations/listscimgroups.py: id: 9f32309bb157 - last_write_checksum: sha1:530b9e465c38b29c313a2c3a4bc596055825fd81 - pristine_git_object: 8d3d678ade3ba25aa65c4ff0bc3cb0783d87106a + last_write_checksum: sha1:2319b023e5e8bd308df04a66e535edc2ffaa289d + pristine_git_object: ac0de5426e797ff26d835fd88c0a4d7cb86844d3 src/openrouter/operations/listvaultsecrets.py: id: 460dacce49ab last_write_checksum: sha1:c6fcb7a5e7f2f587888a3b087142a2c4c1f23cf9 @@ -11803,8 +11803,8 @@ trackedFiles: pristine_git_object: a40be38d4cbf460ecf921723841b1a414d638dee src/openrouter/scim.py: id: 351afd6b616e - last_write_checksum: sha1:7018e78ab1826c13e7b87bbc31890c7a4c272c44 - pristine_git_object: 1bea5be2496b283307c037f131a45a25bcca3c6c + last_write_checksum: sha1:2f58c4cf29650549257e79c476de0a9500a33772 + pristine_git_object: a28df9a26e2dd834e5bc8974c3a61d18609c79c0 src/openrouter/sdk.py: id: ee9846c4c9c5 last_write_checksum: sha1:524fce02fc013302916d4e533dc358c739f0cbb4 @@ -15164,4 +15164,4 @@ examples: examplesVersion: 1.0.2 releaseNotes: | ## Python SDK Changes: - * `open_router.interns.get_intern_daemon_access()`: **Added** + * `open_router.scim.list_groups()`: `request` **Changed** diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 263fba66..3a67490f 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -36,7 +36,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true python: - version: 1.2.24 + version: 1.2.25 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 3c21daff..8b982f4f 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -44196,6 +44196,22 @@ paths: maximum: 100 minimum: 1 type: 'integer' + - description: 'Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.' + in: 'query' + name: 'display_name' + required: false + schema: + description: 'Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.' + example: 'Engineering' + type: 'string' + - description: 'Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.' + in: 'query' + name: 'external_id' + required: false + schema: + description: 'Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.' + example: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890' + type: 'string' responses: '200': content: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 0933578e..9fc7cf24 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:02e1b7dd73a10f12b18a7600dc7a48ffdc3f4fcf79945fb84cf82561b114f3fa - sourceBlobDigest: sha256:0843485e905beb46e95e5c85e6181dd887ffe03c3e90ae46b2e8c2960413b4ff + sourceRevisionDigest: sha256:9422a7b44bcd649b19c441316f5f8d6b628b3cff232435a3316c399508acdfe2 + sourceBlobDigest: sha256:b8b6b4ddcb49c55a668dc303b875cb756ff974f6678b5ca1dcd507c1beee28d4 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:02e1b7dd73a10f12b18a7600dc7a48ffdc3f4fcf79945fb84cf82561b114f3fa - sourceBlobDigest: sha256:0843485e905beb46e95e5c85e6181dd887ffe03c3e90ae46b2e8c2960413b4ff + sourceRevisionDigest: sha256:9422a7b44bcd649b19c441316f5f8d6b628b3cff232435a3316c399508acdfe2 + sourceBlobDigest: sha256:b8b6b4ddcb49c55a668dc303b875cb756ff974f6678b5ca1dcd507c1beee28d4 codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:dca481e6032b170115375eac63b653a98f2e8bf08ccf70be38125d31cf96c0d8 + codeSamplesRevisionDigest: sha256:774545e78e42cb0426f209c0b0a7ff9375aa4fae805761900884feb128ac53c9 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index 83f7a490..b51bfbf5 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -2649,4 +2649,14 @@ Based on: ### Generated - [python v1.2.24] . ### Releases -- [PyPI v1.2.24] https://pypi.org/project/openrouter/1.2.24 - . \ No newline at end of file +- [PyPI v1.2.24] https://pypi.org/project/openrouter/1.2.24 - . + +## 2026-09-24 19:58:40 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v1.2.25] . +### Releases +- [PyPI v1.2.25] https://pypi.org/project/openrouter/1.2.25 - . \ No newline at end of file diff --git a/docs/operations/listscimgroupsrequest.mdx b/docs/operations/listscimgroupsrequest.mdx index 559e6e18..d08e86e0 100644 --- a/docs/operations/listscimgroupsrequest.mdx +++ b/docs/operations/listscimgroupsrequest.mdx @@ -4,10 +4,12 @@ title: "ListScimGroupsRequest" ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| `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.
| | -| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | -| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `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.
| | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | +| `display_name` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match. | Engineering | +| `external_id` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match. | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | \ No newline at end of file diff --git a/docs/sdks/scim/README.mdx b/docs/sdks/scim/README.mdx index c7435646..240f5da9 100644 --- a/docs/sdks/scim/README.mdx +++ b/docs/sdks/scim/README.mdx @@ -298,14 +298,16 @@ with OpenRouter( ### Parameters -| Parameter | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| `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.
| | -| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | -| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | -| `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 | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `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.
| | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | +| `display_name` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match. | Engineering | +| `external_id` | *Optional[str]* | :heavy_minus_sign: | Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match. | a1b2c3d4-e5f6-7890-abcd-ef1234567890 | +| `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 9d140833..95f6a529 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "1.2.24" +version = "1.2.25" 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 d7a17ff8..a3006f6b 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.24" +__version__: str = "1.2.25" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.914.0" -__user_agent__: str = "speakeasy-sdk/python 1.2.24 2.914.0 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 1.2.25 2.914.0 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/operations/listscimgroups.py b/src/openrouter/operations/listscimgroups.py index 8d3d678a..ac0de542 100644 --- a/src/openrouter/operations/listscimgroups.py +++ b/src/openrouter/operations/listscimgroups.py @@ -94,6 +94,10 @@ class ListScimGroupsRequestTypedDict(TypedDict): r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" + display_name: NotRequired[str] + r"""Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.""" + external_id: NotRequired[str] + r"""Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.""" class ListScimGroupsRequest(BaseModel): @@ -137,6 +141,18 @@ class ListScimGroupsRequest(BaseModel): ] = 50 r"""Maximum number of records to return (max 100)""" + display_name: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match.""" + + external_id: Annotated[ + Optional[str], + FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), + ] = None + r"""Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match.""" + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( @@ -146,6 +162,8 @@ def serialize_model(self, handler): "X-OpenRouter-Categories", "offset", "limit", + "display_name", + "external_id", ] ) nullable_fields = set(["offset"]) diff --git a/src/openrouter/scim.py b/src/openrouter/scim.py index 1bea5be2..a28df9a2 100644 --- a/src/openrouter/scim.py +++ b/src/openrouter/scim.py @@ -1492,6 +1492,8 @@ def list_groups( x_open_router_categories: Optional[str] = None, offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, + display_name: Optional[str] = None, + external_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1510,6 +1512,8 @@ def list_groups( :param offset: Number of records to skip for pagination :param limit: Maximum number of records to return (max 100) + :param display_name: Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match. + :param external_id: Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1531,6 +1535,8 @@ def list_groups( x_open_router_categories=x_open_router_categories, offset=offset, limit=limit, + display_name=display_name, + external_id=external_id, ) req = self._build_request( @@ -1605,6 +1611,8 @@ def next_func() -> Optional[operations.ListScimGroupsResponse]: x_open_router_categories=x_open_router_categories, offset=next_offset, limit=limit, + display_name=display_name, + external_id=external_id, retries=retries, server_url=server_url, timeout_ms=timeout_ms, @@ -1655,6 +1663,8 @@ async def list_groups_async( x_open_router_categories: Optional[str] = None, offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, + display_name: Optional[str] = None, + external_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1673,6 +1683,8 @@ async def list_groups_async( :param offset: Number of records to skip for pagination :param limit: Maximum number of records to return (max 100) + :param display_name: Exact match filter on display_name. Omitted or empty returns groups unfiltered by name (subject to offset/limit). When external_id is also present, both must match. + :param external_id: Exact match filter on external_id, e.g. the identity provider (such as Entra ID) group object ID. Omitted or empty returns groups unfiltered by external_id (subject to offset/limit). When display_name is also present, both must match. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1694,6 +1706,8 @@ async def list_groups_async( x_open_router_categories=x_open_router_categories, offset=offset, limit=limit, + display_name=display_name, + external_id=external_id, ) req = self._build_request_async( @@ -1771,6 +1785,8 @@ async def empty_result(): x_open_router_categories=x_open_router_categories, offset=next_offset, limit=limit, + display_name=display_name, + external_id=external_id, retries=retries, server_url=server_url, timeout_ms=timeout_ms, diff --git a/uv.lock b/uv.lock index 50d434fd..b6cfcc45 100644 --- a/uv.lock +++ b/uv.lock @@ -213,7 +213,7 @@ wheels = [ [[package]] name = "openrouter" -version = "1.2.24" +version = "1.2.25" source = { editable = "." } dependencies = [ { name = "httpcore" },