chore: 🐝 Update SDK - Generate (spec change merged) 0.11.24 (#436)

Co-authored-by: speakeasybot <bot@speakeasyapi.dev>
Co-authored-by: speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2026-07-13 17:59:18 +00:00
committed by GitHub
co-authored by speakeasybot speakeasy-github[bot] <128539517+speakeasy-github[bot]@users.noreply.github.com>
parent cb1b9c5ac6
commit 7010ca5c2e
107 changed files with 2135 additions and 961 deletions
+18 -6
View File
@@ -92,8 +92,6 @@ if TYPE_CHECKING:
ContentText,
ContentTextTypedDict,
ContentTypedDict,
CostDetails,
CostDetailsTypedDict,
CreateEmbeddingsData,
CreateEmbeddingsDataTypedDict,
CreateEmbeddingsGlobals,
@@ -389,6 +387,8 @@ if TYPE_CHECKING:
GetModelsGlobalsTypedDict,
GetModelsRequest,
GetModelsRequestTypedDict,
GetModelsResponse,
GetModelsResponseTypedDict,
GetModelsSort,
Region,
Zdr,
@@ -471,6 +471,8 @@ if TYPE_CHECKING:
ListEmbeddingsModelsGlobalsTypedDict,
ListEmbeddingsModelsRequest,
ListEmbeddingsModelsRequestTypedDict,
ListEmbeddingsModelsResponse,
ListEmbeddingsModelsResponseTypedDict,
)
from .listendpoints import (
ListEndpointsGlobals,
@@ -565,6 +567,8 @@ if TYPE_CHECKING:
ListModelsUserGlobalsTypedDict,
ListModelsUserRequest,
ListModelsUserRequestTypedDict,
ListModelsUserResponse,
ListModelsUserResponseTypedDict,
ListModelsUserSecurity,
ListModelsUserSecurityTypedDict,
)
@@ -797,8 +801,6 @@ __all__ = [
"ContentTextTypedDict",
"ContentTypedDict",
"ContextBucket",
"CostDetails",
"CostDetailsTypedDict",
"CreateAudioSpeechGlobals",
"CreateAudioSpeechGlobalsTypedDict",
"CreateAudioSpeechRequest",
@@ -1036,6 +1038,8 @@ __all__ = [
"GetModelsGlobalsTypedDict",
"GetModelsRequest",
"GetModelsRequestTypedDict",
"GetModelsResponse",
"GetModelsResponseTypedDict",
"GetModelsSort",
"GetObservabilityDestinationGlobals",
"GetObservabilityDestinationGlobalsTypedDict",
@@ -1093,6 +1097,8 @@ __all__ = [
"ListEmbeddingsModelsGlobalsTypedDict",
"ListEmbeddingsModelsRequest",
"ListEmbeddingsModelsRequestTypedDict",
"ListEmbeddingsModelsResponse",
"ListEmbeddingsModelsResponseTypedDict",
"ListEndpointsGlobals",
"ListEndpointsGlobalsTypedDict",
"ListEndpointsRequest",
@@ -1163,6 +1169,8 @@ __all__ = [
"ListModelsUserGlobalsTypedDict",
"ListModelsUserRequest",
"ListModelsUserRequestTypedDict",
"ListModelsUserResponse",
"ListModelsUserResponseTypedDict",
"ListModelsUserSecurity",
"ListModelsUserSecurityTypedDict",
"ListObservabilityDestinationsGlobals",
@@ -1398,8 +1406,6 @@ _dynamic_imports: dict[str, str] = {
"ContentText": ".createembeddings",
"ContentTextTypedDict": ".createembeddings",
"ContentTypedDict": ".createembeddings",
"CostDetails": ".createembeddings",
"CostDetailsTypedDict": ".createembeddings",
"CreateEmbeddingsData": ".createembeddings",
"CreateEmbeddingsDataTypedDict": ".createembeddings",
"CreateEmbeddingsGlobals": ".createembeddings",
@@ -1631,6 +1637,8 @@ _dynamic_imports: dict[str, str] = {
"GetModelsGlobalsTypedDict": ".getmodels",
"GetModelsRequest": ".getmodels",
"GetModelsRequestTypedDict": ".getmodels",
"GetModelsResponse": ".getmodels",
"GetModelsResponseTypedDict": ".getmodels",
"GetModelsSort": ".getmodels",
"Region": ".getmodels",
"Zdr": ".getmodels",
@@ -1691,6 +1699,8 @@ _dynamic_imports: dict[str, str] = {
"ListEmbeddingsModelsGlobalsTypedDict": ".listembeddingsmodels",
"ListEmbeddingsModelsRequest": ".listembeddingsmodels",
"ListEmbeddingsModelsRequestTypedDict": ".listembeddingsmodels",
"ListEmbeddingsModelsResponse": ".listembeddingsmodels",
"ListEmbeddingsModelsResponseTypedDict": ".listembeddingsmodels",
"ListEndpointsGlobals": ".listendpoints",
"ListEndpointsGlobalsTypedDict": ".listendpoints",
"ListEndpointsRequest": ".listendpoints",
@@ -1759,6 +1769,8 @@ _dynamic_imports: dict[str, str] = {
"ListModelsUserGlobalsTypedDict": ".listmodelsuser",
"ListModelsUserRequest": ".listmodelsuser",
"ListModelsUserRequestTypedDict": ".listmodelsuser",
"ListModelsUserResponse": ".listmodelsuser",
"ListModelsUserResponseTypedDict": ".listmodelsuser",
"ListModelsUserSecurity": ".listmodelsuser",
"ListModelsUserSecurityTypedDict": ".listmodelsuser",
"ListObservabilityDestinationsGlobals": ".listobservabilitydestinations",
+3 -45
View File
@@ -5,6 +5,7 @@ from openrouter.components import (
contentpartinputaudio as components_contentpartinputaudio,
contentpartinputfile as components_contentpartinputfile,
contentpartinputvideo as components_contentpartinputvideo,
costdetails as components_costdetails,
providerpreferences as components_providerpreferences,
)
from openrouter.types import (
@@ -383,49 +384,6 @@ class CreateEmbeddingsData(BaseModel):
Object = Literal["list",]
class CostDetailsTypedDict(TypedDict):
r"""Breakdown of upstream inference costs"""
upstream_inference_completions_cost: float
upstream_inference_prompt_cost: float
upstream_inference_cost: NotRequired[Nullable[float]]
class CostDetails(BaseModel):
r"""Breakdown of upstream inference costs"""
upstream_inference_completions_cost: float
upstream_inference_prompt_cost: float
upstream_inference_cost: OptionalNullable[float] = UNSET
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(["upstream_inference_cost"])
nullable_fields = set(["upstream_inference_cost"])
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k, serialized.get(n))
is_nullable_and_explicitly_set = (
k in nullable_fields
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
)
if val != UNSET_SENTINEL:
if (
val is not None
or k not in optional_fields
or is_nullable_and_explicitly_set
):
m[k] = val
return m
class PromptTokensDetailsTypedDict(TypedDict):
r"""Per-modality token breakdown. Only present when the input contains 2+ modalities (e.g. text + image) and the upstream provider returns modality-level usage data. Only non-zero modality counts are included."""
@@ -493,7 +451,7 @@ class CreateEmbeddingsUsageTypedDict(TypedDict):
r"""Total number of tokens used"""
cost: NotRequired[float]
r"""Cost of the request in credits"""
cost_details: NotRequired[Nullable[CostDetailsTypedDict]]
cost_details: NotRequired[Nullable[components_costdetails.CostDetailsTypedDict]]
r"""Breakdown of upstream inference costs"""
is_byok: NotRequired[bool]
r"""Whether a request was made using a Bring Your Own Key configuration"""
@@ -513,7 +471,7 @@ class CreateEmbeddingsUsage(BaseModel):
cost: Optional[float] = None
r"""Cost of the request in credits"""
cost_details: OptionalNullable[CostDetails] = UNSET
cost_details: OptionalNullable[components_costdetails.CostDetails] = UNSET
r"""Breakdown of upstream inference costs"""
is_byok: Optional[bool] = None
+33 -1
View File
@@ -1,6 +1,7 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.components import modelslistresponse as components_modelslistresponse
from openrouter.types import (
BaseModel,
Nullable,
@@ -12,7 +13,7 @@ from openrouter.types import (
from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata
import pydantic
from pydantic import model_serializer
from typing import Literal, Optional, Union
from typing import Awaitable, Callable, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
@@ -152,6 +153,10 @@ class GetModelsRequestTypedDict(TypedDict):
r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings.
"""
offset: NotRequired[int]
r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned"""
limit: NotRequired[int]
r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned"""
category: NotRequired[GetModelsCategory]
r"""Filter models by use case category"""
supported_parameters: NotRequired[str]
@@ -237,6 +242,18 @@ class GetModelsRequest(BaseModel):
"""
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 0
r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 500
r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned"""
category: Annotated[
Optional[GetModelsCategory],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
@@ -406,6 +423,8 @@ class GetModelsRequest(BaseModel):
"HTTP-Referer",
"X-OpenRouter-Title",
"X-OpenRouter-Categories",
"offset",
"limit",
"category",
"supported_parameters",
"output_modalities",
@@ -473,3 +492,16 @@ class GetModelsRequest(BaseModel):
m[k] = val
return m
class GetModelsResponseTypedDict(TypedDict):
result: components_modelslistresponse.ModelsListResponseTypedDict
class GetModelsResponse(BaseModel):
next: Union[
Callable[[], Optional[GetModelsResponse]],
Callable[[], Awaitable[Optional[GetModelsResponse]]],
]
result: components_modelslistresponse.ModelsListResponse
+2 -2
View File
@@ -230,13 +230,13 @@ class ListBYOKKeysRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
workspace_id: Annotated[
@@ -1,11 +1,12 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.components import modelslistresponse as components_modelslistresponse
from openrouter.types import BaseModel, UNSET_SENTINEL
from openrouter.utils import FieldMetadata, HeaderMetadata
from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata
import pydantic
from pydantic import model_serializer
from typing import Optional
from typing import Awaitable, Callable, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
@@ -87,6 +88,10 @@ class ListEmbeddingsModelsRequestTypedDict(TypedDict):
r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings.
"""
offset: NotRequired[int]
r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned"""
limit: NotRequired[int]
r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned"""
class ListEmbeddingsModelsRequest(BaseModel):
@@ -118,10 +123,28 @@ class ListEmbeddingsModelsRequest(BaseModel):
"""
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 0
r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 500
r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
["HTTP-Referer", "X-OpenRouter-Title", "X-OpenRouter-Categories"]
[
"HTTP-Referer",
"X-OpenRouter-Title",
"X-OpenRouter-Categories",
"offset",
"limit",
]
)
serialized = handler(self)
m = {}
@@ -135,3 +158,16 @@ class ListEmbeddingsModelsRequest(BaseModel):
m[k] = val
return m
class ListEmbeddingsModelsResponseTypedDict(TypedDict):
result: components_modelslistresponse.ModelsListResponseTypedDict
class ListEmbeddingsModelsResponse(BaseModel):
next: Union[
Callable[[], Optional[ListEmbeddingsModelsResponse]],
Callable[[], Awaitable[Optional[ListEmbeddingsModelsResponse]]],
]
result: components_modelslistresponse.ModelsListResponse
@@ -140,13 +140,13 @@ class ListGuardrailKeyAssignmentsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
@@ -140,13 +140,13 @@ class ListGuardrailMemberAssignmentsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
+2 -2
View File
@@ -130,13 +130,13 @@ class ListGuardrailsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
workspace_id: Annotated[
@@ -128,13 +128,13 @@ class ListKeyAssignmentsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
@@ -128,13 +128,13 @@ class ListMemberAssignmentsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
+44 -3
View File
@@ -1,11 +1,17 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.components import modelslistresponse as components_modelslistresponse
from openrouter.types import BaseModel, UNSET_SENTINEL
from openrouter.utils import FieldMetadata, HeaderMetadata, SecurityMetadata
from openrouter.utils import (
FieldMetadata,
HeaderMetadata,
QueryParamMetadata,
SecurityMetadata,
)
import pydantic
from pydantic import model_serializer
from typing import Optional
from typing import Awaitable, Callable, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
@@ -105,6 +111,10 @@ class ListModelsUserRequestTypedDict(TypedDict):
r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings.
"""
offset: NotRequired[int]
r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned"""
limit: NotRequired[int]
r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned"""
class ListModelsUserRequest(BaseModel):
@@ -136,10 +146,28 @@ class ListModelsUserRequest(BaseModel):
"""
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 0
r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = 500
r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
["HTTP-Referer", "X-OpenRouter-Title", "X-OpenRouter-Categories"]
[
"HTTP-Referer",
"X-OpenRouter-Title",
"X-OpenRouter-Categories",
"offset",
"limit",
]
)
serialized = handler(self)
m = {}
@@ -153,3 +181,16 @@ class ListModelsUserRequest(BaseModel):
m[k] = val
return m
class ListModelsUserResponseTypedDict(TypedDict):
result: components_modelslistresponse.ModelsListResponseTypedDict
class ListModelsUserResponse(BaseModel):
next: Union[
Callable[[], Optional[ListModelsUserResponse]],
Callable[[], Awaitable[Optional[ListModelsUserResponse]]],
]
result: components_modelslistresponse.ModelsListResponse
@@ -130,13 +130,13 @@ class ListObservabilityDestinationsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
workspace_id: Annotated[
@@ -125,13 +125,13 @@ class ListOrganizationMembersRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
+2 -2
View File
@@ -126,13 +126,13 @@ class ListPresetsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
@@ -140,13 +140,13 @@ class ListPresetVersionsRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
@@ -140,13 +140,13 @@ class ListWorkspaceMembersRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")
+2 -2
View File
@@ -128,13 +128,13 @@ class ListWorkspacesRequest(BaseModel):
offset: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 0
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[int],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
] = 50
r"""Maximum number of records to return (max 100)"""
@model_serializer(mode="wrap")