Project import generated by Copybara.

GitOrigin-RevId: 2592bdc8b4b7c695a3d689390aedc9a42914acc8
This commit is contained in:
OpenRouter Team
2026-01-22 01:26:28 +00:00
parent 5832c0495b
commit 5f2c0ee2ea
130 changed files with 16948 additions and 1127 deletions
+281 -30
View File
@@ -6,6 +6,38 @@ import builtins
import sys
if TYPE_CHECKING:
from .bulkassignkeystoguardrail import (
BulkAssignKeysToGuardrailRequest,
BulkAssignKeysToGuardrailRequestBody,
BulkAssignKeysToGuardrailRequestBodyTypedDict,
BulkAssignKeysToGuardrailRequestTypedDict,
BulkAssignKeysToGuardrailResponse,
BulkAssignKeysToGuardrailResponseTypedDict,
)
from .bulkassignmemberstoguardrail import (
BulkAssignMembersToGuardrailRequest,
BulkAssignMembersToGuardrailRequestBody,
BulkAssignMembersToGuardrailRequestBodyTypedDict,
BulkAssignMembersToGuardrailRequestTypedDict,
BulkAssignMembersToGuardrailResponse,
BulkAssignMembersToGuardrailResponseTypedDict,
)
from .bulkunassignkeysfromguardrail import (
BulkUnassignKeysFromGuardrailRequest,
BulkUnassignKeysFromGuardrailRequestBody,
BulkUnassignKeysFromGuardrailRequestBodyTypedDict,
BulkUnassignKeysFromGuardrailRequestTypedDict,
BulkUnassignKeysFromGuardrailResponse,
BulkUnassignKeysFromGuardrailResponseTypedDict,
)
from .bulkunassignmembersfromguardrail import (
BulkUnassignMembersFromGuardrailRequest,
BulkUnassignMembersFromGuardrailRequestBody,
BulkUnassignMembersFromGuardrailRequestBodyTypedDict,
BulkUnassignMembersFromGuardrailRequestTypedDict,
BulkUnassignMembersFromGuardrailResponse,
BulkUnassignMembersFromGuardrailResponseTypedDict,
)
from .createauthkeyscode import (
CreateAuthKeysCodeCodeChallengeMethod,
CreateAuthKeysCodeData,
@@ -62,6 +94,16 @@ if TYPE_CHECKING:
Usage,
UsageTypedDict,
)
from .createguardrail import (
CreateGuardrailData,
CreateGuardrailDataTypedDict,
CreateGuardrailRequest,
CreateGuardrailRequestTypedDict,
CreateGuardrailResetIntervalRequest,
CreateGuardrailResetIntervalResponse,
CreateGuardrailResponse,
CreateGuardrailResponseTypedDict,
)
from .createkeys import (
CreateKeysData,
CreateKeysDataTypedDict,
@@ -77,6 +119,12 @@ if TYPE_CHECKING:
CreateResponsesResponseBodyTypedDict,
CreateResponsesResponseTypedDict,
)
from .deleteguardrail import (
DeleteGuardrailRequest,
DeleteGuardrailRequestTypedDict,
DeleteGuardrailResponse,
DeleteGuardrailResponseTypedDict,
)
from .deletekeys import (
DeleteKeysRequest,
DeleteKeysRequestTypedDict,
@@ -113,6 +161,15 @@ if TYPE_CHECKING:
GetGenerationResponse,
GetGenerationResponseTypedDict,
)
from .getguardrail import (
GetGuardrailData,
GetGuardrailDataTypedDict,
GetGuardrailRequest,
GetGuardrailRequestTypedDict,
GetGuardrailResetInterval,
GetGuardrailResponse,
GetGuardrailResponseTypedDict,
)
from .getkey import (
GetKeyData,
GetKeyDataTypedDict,
@@ -121,18 +178,7 @@ if TYPE_CHECKING:
GetKeyResponse,
GetKeyResponseTypedDict,
)
from .getmodels import GetModelsRequest, GetModelsRequestTypedDict
from .getparameters import (
GetParametersData,
GetParametersDataTypedDict,
GetParametersRequest,
GetParametersRequestTypedDict,
GetParametersResponse,
GetParametersResponseTypedDict,
GetParametersSecurity,
GetParametersSecurityTypedDict,
SupportedParameter,
)
from .getmodels import Category, GetModelsRequest, GetModelsRequestTypedDict
from .getuseractivity import (
GetUserActivityRequest,
GetUserActivityRequestTypedDict,
@@ -157,6 +203,47 @@ if TYPE_CHECKING:
ListEndpointsZdrResponse,
ListEndpointsZdrResponseTypedDict,
)
from .listguardrailkeyassignments import (
ListGuardrailKeyAssignmentsData,
ListGuardrailKeyAssignmentsDataTypedDict,
ListGuardrailKeyAssignmentsRequest,
ListGuardrailKeyAssignmentsRequestTypedDict,
ListGuardrailKeyAssignmentsResponse,
ListGuardrailKeyAssignmentsResponseTypedDict,
)
from .listguardrailmemberassignments import (
ListGuardrailMemberAssignmentsData,
ListGuardrailMemberAssignmentsDataTypedDict,
ListGuardrailMemberAssignmentsRequest,
ListGuardrailMemberAssignmentsRequestTypedDict,
ListGuardrailMemberAssignmentsResponse,
ListGuardrailMemberAssignmentsResponseTypedDict,
)
from .listguardrails import (
ListGuardrailsData,
ListGuardrailsDataTypedDict,
ListGuardrailsRequest,
ListGuardrailsRequestTypedDict,
ListGuardrailsResetInterval,
ListGuardrailsResponse,
ListGuardrailsResponseTypedDict,
)
from .listkeyassignments import (
ListKeyAssignmentsData,
ListKeyAssignmentsDataTypedDict,
ListKeyAssignmentsRequest,
ListKeyAssignmentsRequestTypedDict,
ListKeyAssignmentsResponse,
ListKeyAssignmentsResponseTypedDict,
)
from .listmemberassignments import (
ListMemberAssignmentsData,
ListMemberAssignmentsDataTypedDict,
ListMemberAssignmentsRequest,
ListMemberAssignmentsRequestTypedDict,
ListMemberAssignmentsResponse,
ListMemberAssignmentsResponseTypedDict,
)
from .listmodelsuser import ListModelsUserSecurity, ListModelsUserSecurityTypedDict
from .listproviders import (
ListProvidersData,
@@ -168,6 +255,18 @@ if TYPE_CHECKING:
SendChatCompletionRequestResponse,
SendChatCompletionRequestResponseTypedDict,
)
from .updateguardrail import (
UpdateGuardrailData,
UpdateGuardrailDataTypedDict,
UpdateGuardrailRequest,
UpdateGuardrailRequestBody,
UpdateGuardrailRequestBodyTypedDict,
UpdateGuardrailRequestTypedDict,
UpdateGuardrailResetIntervalRequest,
UpdateGuardrailResetIntervalResponse,
UpdateGuardrailResponse,
UpdateGuardrailResponseTypedDict,
)
from .updatekeys import (
UpdateKeysData,
UpdateKeysDataTypedDict,
@@ -182,8 +281,33 @@ if TYPE_CHECKING:
__all__ = [
"APIType",
"BulkAssignKeysToGuardrailRequest",
"BulkAssignKeysToGuardrailRequestBody",
"BulkAssignKeysToGuardrailRequestBodyTypedDict",
"BulkAssignKeysToGuardrailRequestTypedDict",
"BulkAssignKeysToGuardrailResponse",
"BulkAssignKeysToGuardrailResponseTypedDict",
"BulkAssignMembersToGuardrailRequest",
"BulkAssignMembersToGuardrailRequestBody",
"BulkAssignMembersToGuardrailRequestBodyTypedDict",
"BulkAssignMembersToGuardrailRequestTypedDict",
"BulkAssignMembersToGuardrailResponse",
"BulkAssignMembersToGuardrailResponseTypedDict",
"BulkUnassignKeysFromGuardrailRequest",
"BulkUnassignKeysFromGuardrailRequestBody",
"BulkUnassignKeysFromGuardrailRequestBodyTypedDict",
"BulkUnassignKeysFromGuardrailRequestTypedDict",
"BulkUnassignKeysFromGuardrailResponse",
"BulkUnassignKeysFromGuardrailResponseTypedDict",
"BulkUnassignMembersFromGuardrailRequest",
"BulkUnassignMembersFromGuardrailRequestBody",
"BulkUnassignMembersFromGuardrailRequestBodyTypedDict",
"BulkUnassignMembersFromGuardrailRequestTypedDict",
"BulkUnassignMembersFromGuardrailResponse",
"BulkUnassignMembersFromGuardrailResponseTypedDict",
"CallData",
"CallDataTypedDict",
"Category",
"Content",
"ContentImageURL",
"ContentImageURLTypedDict",
@@ -211,6 +335,14 @@ __all__ = [
"CreateEmbeddingsResponseBody",
"CreateEmbeddingsResponseBodyTypedDict",
"CreateEmbeddingsResponseTypedDict",
"CreateGuardrailData",
"CreateGuardrailDataTypedDict",
"CreateGuardrailRequest",
"CreateGuardrailRequestTypedDict",
"CreateGuardrailResetIntervalRequest",
"CreateGuardrailResetIntervalResponse",
"CreateGuardrailResponse",
"CreateGuardrailResponseTypedDict",
"CreateKeysData",
"CreateKeysDataTypedDict",
"CreateKeysLimitReset",
@@ -222,6 +354,10 @@ __all__ = [
"CreateResponsesResponseBody",
"CreateResponsesResponseBodyTypedDict",
"CreateResponsesResponseTypedDict",
"DeleteGuardrailRequest",
"DeleteGuardrailRequestTypedDict",
"DeleteGuardrailResponse",
"DeleteGuardrailResponseTypedDict",
"DeleteKeysRequest",
"DeleteKeysRequestTypedDict",
"DeleteKeysResponse",
@@ -248,6 +384,13 @@ __all__ = [
"GetGenerationRequestTypedDict",
"GetGenerationResponse",
"GetGenerationResponseTypedDict",
"GetGuardrailData",
"GetGuardrailDataTypedDict",
"GetGuardrailRequest",
"GetGuardrailRequestTypedDict",
"GetGuardrailResetInterval",
"GetGuardrailResponse",
"GetGuardrailResponseTypedDict",
"GetKeyData",
"GetKeyDataTypedDict",
"GetKeyRequest",
@@ -256,14 +399,6 @@ __all__ = [
"GetKeyResponseTypedDict",
"GetModelsRequest",
"GetModelsRequestTypedDict",
"GetParametersData",
"GetParametersDataTypedDict",
"GetParametersRequest",
"GetParametersRequestTypedDict",
"GetParametersResponse",
"GetParametersResponseTypedDict",
"GetParametersSecurity",
"GetParametersSecurityTypedDict",
"GetUserActivityRequest",
"GetUserActivityRequestTypedDict",
"GetUserActivityResponse",
@@ -282,6 +417,37 @@ __all__ = [
"ListEndpointsResponseTypedDict",
"ListEndpointsZdrResponse",
"ListEndpointsZdrResponseTypedDict",
"ListGuardrailKeyAssignmentsData",
"ListGuardrailKeyAssignmentsDataTypedDict",
"ListGuardrailKeyAssignmentsRequest",
"ListGuardrailKeyAssignmentsRequestTypedDict",
"ListGuardrailKeyAssignmentsResponse",
"ListGuardrailKeyAssignmentsResponseTypedDict",
"ListGuardrailMemberAssignmentsData",
"ListGuardrailMemberAssignmentsDataTypedDict",
"ListGuardrailMemberAssignmentsRequest",
"ListGuardrailMemberAssignmentsRequestTypedDict",
"ListGuardrailMemberAssignmentsResponse",
"ListGuardrailMemberAssignmentsResponseTypedDict",
"ListGuardrailsData",
"ListGuardrailsDataTypedDict",
"ListGuardrailsRequest",
"ListGuardrailsRequestTypedDict",
"ListGuardrailsResetInterval",
"ListGuardrailsResponse",
"ListGuardrailsResponseTypedDict",
"ListKeyAssignmentsData",
"ListKeyAssignmentsDataTypedDict",
"ListKeyAssignmentsRequest",
"ListKeyAssignmentsRequestTypedDict",
"ListKeyAssignmentsResponse",
"ListKeyAssignmentsResponseTypedDict",
"ListMemberAssignmentsData",
"ListMemberAssignmentsDataTypedDict",
"ListMemberAssignmentsRequest",
"ListMemberAssignmentsRequestTypedDict",
"ListMemberAssignmentsResponse",
"ListMemberAssignmentsResponseTypedDict",
"ListModelsUserSecurity",
"ListModelsUserSecurityTypedDict",
"ListProvidersData",
@@ -300,11 +466,20 @@ __all__ = [
"RateLimitTypedDict",
"SendChatCompletionRequestResponse",
"SendChatCompletionRequestResponseTypedDict",
"SupportedParameter",
"TransferIntent",
"TransferIntentTypedDict",
"TypeImageURL",
"TypeText",
"UpdateGuardrailData",
"UpdateGuardrailDataTypedDict",
"UpdateGuardrailRequest",
"UpdateGuardrailRequestBody",
"UpdateGuardrailRequestBodyTypedDict",
"UpdateGuardrailRequestTypedDict",
"UpdateGuardrailResetIntervalRequest",
"UpdateGuardrailResetIntervalResponse",
"UpdateGuardrailResponse",
"UpdateGuardrailResponseTypedDict",
"UpdateKeysData",
"UpdateKeysDataTypedDict",
"UpdateKeysLimitReset",
@@ -321,6 +496,30 @@ __all__ = [
]
_dynamic_imports: dict[str, str] = {
"BulkAssignKeysToGuardrailRequest": ".bulkassignkeystoguardrail",
"BulkAssignKeysToGuardrailRequestBody": ".bulkassignkeystoguardrail",
"BulkAssignKeysToGuardrailRequestBodyTypedDict": ".bulkassignkeystoguardrail",
"BulkAssignKeysToGuardrailRequestTypedDict": ".bulkassignkeystoguardrail",
"BulkAssignKeysToGuardrailResponse": ".bulkassignkeystoguardrail",
"BulkAssignKeysToGuardrailResponseTypedDict": ".bulkassignkeystoguardrail",
"BulkAssignMembersToGuardrailRequest": ".bulkassignmemberstoguardrail",
"BulkAssignMembersToGuardrailRequestBody": ".bulkassignmemberstoguardrail",
"BulkAssignMembersToGuardrailRequestBodyTypedDict": ".bulkassignmemberstoguardrail",
"BulkAssignMembersToGuardrailRequestTypedDict": ".bulkassignmemberstoguardrail",
"BulkAssignMembersToGuardrailResponse": ".bulkassignmemberstoguardrail",
"BulkAssignMembersToGuardrailResponseTypedDict": ".bulkassignmemberstoguardrail",
"BulkUnassignKeysFromGuardrailRequest": ".bulkunassignkeysfromguardrail",
"BulkUnassignKeysFromGuardrailRequestBody": ".bulkunassignkeysfromguardrail",
"BulkUnassignKeysFromGuardrailRequestBodyTypedDict": ".bulkunassignkeysfromguardrail",
"BulkUnassignKeysFromGuardrailRequestTypedDict": ".bulkunassignkeysfromguardrail",
"BulkUnassignKeysFromGuardrailResponse": ".bulkunassignkeysfromguardrail",
"BulkUnassignKeysFromGuardrailResponseTypedDict": ".bulkunassignkeysfromguardrail",
"BulkUnassignMembersFromGuardrailRequest": ".bulkunassignmembersfromguardrail",
"BulkUnassignMembersFromGuardrailRequestBody": ".bulkunassignmembersfromguardrail",
"BulkUnassignMembersFromGuardrailRequestBodyTypedDict": ".bulkunassignmembersfromguardrail",
"BulkUnassignMembersFromGuardrailRequestTypedDict": ".bulkunassignmembersfromguardrail",
"BulkUnassignMembersFromGuardrailResponse": ".bulkunassignmembersfromguardrail",
"BulkUnassignMembersFromGuardrailResponseTypedDict": ".bulkunassignmembersfromguardrail",
"CreateAuthKeysCodeCodeChallengeMethod": ".createauthkeyscode",
"CreateAuthKeysCodeData": ".createauthkeyscode",
"CreateAuthKeysCodeDataTypedDict": ".createauthkeyscode",
@@ -371,6 +570,14 @@ _dynamic_imports: dict[str, str] = {
"TypeText": ".createembeddings",
"Usage": ".createembeddings",
"UsageTypedDict": ".createembeddings",
"CreateGuardrailData": ".createguardrail",
"CreateGuardrailDataTypedDict": ".createguardrail",
"CreateGuardrailRequest": ".createguardrail",
"CreateGuardrailRequestTypedDict": ".createguardrail",
"CreateGuardrailResetIntervalRequest": ".createguardrail",
"CreateGuardrailResetIntervalResponse": ".createguardrail",
"CreateGuardrailResponse": ".createguardrail",
"CreateGuardrailResponseTypedDict": ".createguardrail",
"CreateKeysData": ".createkeys",
"CreateKeysDataTypedDict": ".createkeys",
"CreateKeysLimitReset": ".createkeys",
@@ -382,6 +589,10 @@ _dynamic_imports: dict[str, str] = {
"CreateResponsesResponseBody": ".createresponses",
"CreateResponsesResponseBodyTypedDict": ".createresponses",
"CreateResponsesResponseTypedDict": ".createresponses",
"DeleteGuardrailRequest": ".deleteguardrail",
"DeleteGuardrailRequestTypedDict": ".deleteguardrail",
"DeleteGuardrailResponse": ".deleteguardrail",
"DeleteGuardrailResponseTypedDict": ".deleteguardrail",
"DeleteKeysRequest": ".deletekeys",
"DeleteKeysRequestTypedDict": ".deletekeys",
"DeleteKeysResponse": ".deletekeys",
@@ -408,23 +619,22 @@ _dynamic_imports: dict[str, str] = {
"GetGenerationRequestTypedDict": ".getgeneration",
"GetGenerationResponse": ".getgeneration",
"GetGenerationResponseTypedDict": ".getgeneration",
"GetGuardrailData": ".getguardrail",
"GetGuardrailDataTypedDict": ".getguardrail",
"GetGuardrailRequest": ".getguardrail",
"GetGuardrailRequestTypedDict": ".getguardrail",
"GetGuardrailResetInterval": ".getguardrail",
"GetGuardrailResponse": ".getguardrail",
"GetGuardrailResponseTypedDict": ".getguardrail",
"GetKeyData": ".getkey",
"GetKeyDataTypedDict": ".getkey",
"GetKeyRequest": ".getkey",
"GetKeyRequestTypedDict": ".getkey",
"GetKeyResponse": ".getkey",
"GetKeyResponseTypedDict": ".getkey",
"Category": ".getmodels",
"GetModelsRequest": ".getmodels",
"GetModelsRequestTypedDict": ".getmodels",
"GetParametersData": ".getparameters",
"GetParametersDataTypedDict": ".getparameters",
"GetParametersRequest": ".getparameters",
"GetParametersRequestTypedDict": ".getparameters",
"GetParametersResponse": ".getparameters",
"GetParametersResponseTypedDict": ".getparameters",
"GetParametersSecurity": ".getparameters",
"GetParametersSecurityTypedDict": ".getparameters",
"SupportedParameter": ".getparameters",
"GetUserActivityRequest": ".getuseractivity",
"GetUserActivityRequestTypedDict": ".getuseractivity",
"GetUserActivityResponse": ".getuseractivity",
@@ -441,6 +651,37 @@ _dynamic_imports: dict[str, str] = {
"ListEndpointsResponseTypedDict": ".listendpoints",
"ListEndpointsZdrResponse": ".listendpointszdr",
"ListEndpointsZdrResponseTypedDict": ".listendpointszdr",
"ListGuardrailKeyAssignmentsData": ".listguardrailkeyassignments",
"ListGuardrailKeyAssignmentsDataTypedDict": ".listguardrailkeyassignments",
"ListGuardrailKeyAssignmentsRequest": ".listguardrailkeyassignments",
"ListGuardrailKeyAssignmentsRequestTypedDict": ".listguardrailkeyassignments",
"ListGuardrailKeyAssignmentsResponse": ".listguardrailkeyassignments",
"ListGuardrailKeyAssignmentsResponseTypedDict": ".listguardrailkeyassignments",
"ListGuardrailMemberAssignmentsData": ".listguardrailmemberassignments",
"ListGuardrailMemberAssignmentsDataTypedDict": ".listguardrailmemberassignments",
"ListGuardrailMemberAssignmentsRequest": ".listguardrailmemberassignments",
"ListGuardrailMemberAssignmentsRequestTypedDict": ".listguardrailmemberassignments",
"ListGuardrailMemberAssignmentsResponse": ".listguardrailmemberassignments",
"ListGuardrailMemberAssignmentsResponseTypedDict": ".listguardrailmemberassignments",
"ListGuardrailsData": ".listguardrails",
"ListGuardrailsDataTypedDict": ".listguardrails",
"ListGuardrailsRequest": ".listguardrails",
"ListGuardrailsRequestTypedDict": ".listguardrails",
"ListGuardrailsResetInterval": ".listguardrails",
"ListGuardrailsResponse": ".listguardrails",
"ListGuardrailsResponseTypedDict": ".listguardrails",
"ListKeyAssignmentsData": ".listkeyassignments",
"ListKeyAssignmentsDataTypedDict": ".listkeyassignments",
"ListKeyAssignmentsRequest": ".listkeyassignments",
"ListKeyAssignmentsRequestTypedDict": ".listkeyassignments",
"ListKeyAssignmentsResponse": ".listkeyassignments",
"ListKeyAssignmentsResponseTypedDict": ".listkeyassignments",
"ListMemberAssignmentsData": ".listmemberassignments",
"ListMemberAssignmentsDataTypedDict": ".listmemberassignments",
"ListMemberAssignmentsRequest": ".listmemberassignments",
"ListMemberAssignmentsRequestTypedDict": ".listmemberassignments",
"ListMemberAssignmentsResponse": ".listmemberassignments",
"ListMemberAssignmentsResponseTypedDict": ".listmemberassignments",
"ListModelsUserSecurity": ".listmodelsuser",
"ListModelsUserSecurityTypedDict": ".listmodelsuser",
"ListProvidersData": ".listproviders",
@@ -449,6 +690,16 @@ _dynamic_imports: dict[str, str] = {
"ListProvidersResponseTypedDict": ".listproviders",
"SendChatCompletionRequestResponse": ".sendchatcompletionrequest",
"SendChatCompletionRequestResponseTypedDict": ".sendchatcompletionrequest",
"UpdateGuardrailData": ".updateguardrail",
"UpdateGuardrailDataTypedDict": ".updateguardrail",
"UpdateGuardrailRequest": ".updateguardrail",
"UpdateGuardrailRequestBody": ".updateguardrail",
"UpdateGuardrailRequestBodyTypedDict": ".updateguardrail",
"UpdateGuardrailRequestTypedDict": ".updateguardrail",
"UpdateGuardrailResetIntervalRequest": ".updateguardrail",
"UpdateGuardrailResetIntervalResponse": ".updateguardrail",
"UpdateGuardrailResponse": ".updateguardrail",
"UpdateGuardrailResponseTypedDict": ".updateguardrail",
"UpdateKeysData": ".updatekeys",
"UpdateKeysDataTypedDict": ".updatekeys",
"UpdateKeysLimitReset": ".updatekeys",
@@ -0,0 +1,49 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel
from openrouter.utils import FieldMetadata, PathParamMetadata, RequestMetadata
from typing import List
from typing_extensions import Annotated, TypedDict
class BulkAssignKeysToGuardrailRequestBodyTypedDict(TypedDict):
key_hashes: List[str]
r"""Array of API key hashes to assign to the guardrail"""
class BulkAssignKeysToGuardrailRequestBody(BaseModel):
key_hashes: List[str]
r"""Array of API key hashes to assign to the guardrail"""
class BulkAssignKeysToGuardrailRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail"""
request_body: BulkAssignKeysToGuardrailRequestBodyTypedDict
class BulkAssignKeysToGuardrailRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail"""
request_body: Annotated[
BulkAssignKeysToGuardrailRequestBody,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
class BulkAssignKeysToGuardrailResponseTypedDict(TypedDict):
r"""Assignment result"""
assigned_count: float
r"""Number of keys successfully assigned"""
class BulkAssignKeysToGuardrailResponse(BaseModel):
r"""Assignment result"""
assigned_count: float
r"""Number of keys successfully assigned"""
@@ -0,0 +1,49 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel
from openrouter.utils import FieldMetadata, PathParamMetadata, RequestMetadata
from typing import List
from typing_extensions import Annotated, TypedDict
class BulkAssignMembersToGuardrailRequestBodyTypedDict(TypedDict):
member_user_ids: List[str]
r"""Array of member user IDs to assign to the guardrail"""
class BulkAssignMembersToGuardrailRequestBody(BaseModel):
member_user_ids: List[str]
r"""Array of member user IDs to assign to the guardrail"""
class BulkAssignMembersToGuardrailRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail"""
request_body: BulkAssignMembersToGuardrailRequestBodyTypedDict
class BulkAssignMembersToGuardrailRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail"""
request_body: Annotated[
BulkAssignMembersToGuardrailRequestBody,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
class BulkAssignMembersToGuardrailResponseTypedDict(TypedDict):
r"""Assignment result"""
assigned_count: float
r"""Number of members successfully assigned"""
class BulkAssignMembersToGuardrailResponse(BaseModel):
r"""Assignment result"""
assigned_count: float
r"""Number of members successfully assigned"""
@@ -0,0 +1,49 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel
from openrouter.utils import FieldMetadata, PathParamMetadata, RequestMetadata
from typing import List
from typing_extensions import Annotated, TypedDict
class BulkUnassignKeysFromGuardrailRequestBodyTypedDict(TypedDict):
key_hashes: List[str]
r"""Array of API key hashes to unassign from the guardrail"""
class BulkUnassignKeysFromGuardrailRequestBody(BaseModel):
key_hashes: List[str]
r"""Array of API key hashes to unassign from the guardrail"""
class BulkUnassignKeysFromGuardrailRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail"""
request_body: BulkUnassignKeysFromGuardrailRequestBodyTypedDict
class BulkUnassignKeysFromGuardrailRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail"""
request_body: Annotated[
BulkUnassignKeysFromGuardrailRequestBody,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
class BulkUnassignKeysFromGuardrailResponseTypedDict(TypedDict):
r"""Unassignment result"""
unassigned_count: float
r"""Number of keys successfully unassigned"""
class BulkUnassignKeysFromGuardrailResponse(BaseModel):
r"""Unassignment result"""
unassigned_count: float
r"""Number of keys successfully unassigned"""
@@ -0,0 +1,49 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel
from openrouter.utils import FieldMetadata, PathParamMetadata, RequestMetadata
from typing import List
from typing_extensions import Annotated, TypedDict
class BulkUnassignMembersFromGuardrailRequestBodyTypedDict(TypedDict):
member_user_ids: List[str]
r"""Array of member user IDs to unassign from the guardrail"""
class BulkUnassignMembersFromGuardrailRequestBody(BaseModel):
member_user_ids: List[str]
r"""Array of member user IDs to unassign from the guardrail"""
class BulkUnassignMembersFromGuardrailRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail"""
request_body: BulkUnassignMembersFromGuardrailRequestBodyTypedDict
class BulkUnassignMembersFromGuardrailRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail"""
request_body: Annotated[
BulkUnassignMembersFromGuardrailRequestBody,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
class BulkUnassignMembersFromGuardrailResponseTypedDict(TypedDict):
r"""Unassignment result"""
unassigned_count: float
r"""Number of members successfully unassigned"""
class BulkUnassignMembersFromGuardrailResponse(BaseModel):
r"""Unassignment result"""
unassigned_count: float
r"""Number of members successfully unassigned"""
@@ -0,0 +1,247 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
UnrecognizedStr,
)
from openrouter.utils import validate_open_enum
from pydantic import model_serializer
from pydantic.functional_validators import PlainValidator
from typing import List, Literal, Union
from typing_extensions import Annotated, NotRequired, TypedDict
CreateGuardrailResetIntervalRequest = Union[
Literal[
"daily",
"weekly",
"monthly",
],
UnrecognizedStr,
]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
class CreateGuardrailRequestTypedDict(TypedDict):
name: str
r"""Name for the new guardrail"""
description: NotRequired[Nullable[str]]
r"""Description of the guardrail"""
limit_usd: NotRequired[Nullable[float]]
r"""Spending limit in USD"""
reset_interval: NotRequired[Nullable[CreateGuardrailResetIntervalRequest]]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: NotRequired[Nullable[List[str]]]
r"""List of allowed provider IDs"""
allowed_models: NotRequired[Nullable[List[str]]]
r"""Array of model identifiers (slug or canonical_slug accepted)"""
enforce_zdr: NotRequired[Nullable[bool]]
r"""Whether to enforce zero data retention"""
class CreateGuardrailRequest(BaseModel):
name: str
r"""Name for the new guardrail"""
description: OptionalNullable[str] = UNSET
r"""Description of the guardrail"""
limit_usd: OptionalNullable[float] = UNSET
r"""Spending limit in USD"""
reset_interval: Annotated[
OptionalNullable[CreateGuardrailResetIntervalRequest],
PlainValidator(validate_open_enum(False)),
] = UNSET
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: OptionalNullable[List[str]] = UNSET
r"""List of allowed provider IDs"""
allowed_models: OptionalNullable[List[str]] = UNSET
r"""Array of model identifiers (slug or canonical_slug accepted)"""
enforce_zdr: OptionalNullable[bool] = UNSET
r"""Whether to enforce zero data retention"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
]
nullable_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
CreateGuardrailResetIntervalResponse = Union[
Literal[
"daily",
"weekly",
"monthly",
],
UnrecognizedStr,
]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
class CreateGuardrailDataTypedDict(TypedDict):
r"""The created guardrail"""
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: NotRequired[Nullable[str]]
r"""Description of the guardrail"""
limit_usd: NotRequired[Nullable[float]]
r"""Spending limit in USD"""
reset_interval: NotRequired[Nullable[CreateGuardrailResetIntervalResponse]]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: NotRequired[Nullable[List[str]]]
r"""List of allowed provider IDs"""
allowed_models: NotRequired[Nullable[List[str]]]
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: NotRequired[Nullable[bool]]
r"""Whether to enforce zero data retention"""
updated_at: NotRequired[Nullable[str]]
r"""ISO 8601 timestamp of when the guardrail was last updated"""
class CreateGuardrailData(BaseModel):
r"""The created guardrail"""
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: OptionalNullable[str] = UNSET
r"""Description of the guardrail"""
limit_usd: OptionalNullable[float] = UNSET
r"""Spending limit in USD"""
reset_interval: Annotated[
OptionalNullable[CreateGuardrailResetIntervalResponse],
PlainValidator(validate_open_enum(False)),
] = UNSET
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: OptionalNullable[List[str]] = UNSET
r"""List of allowed provider IDs"""
allowed_models: OptionalNullable[List[str]] = UNSET
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: OptionalNullable[bool] = UNSET
r"""Whether to enforce zero data retention"""
updated_at: OptionalNullable[str] = UNSET
r"""ISO 8601 timestamp of when the guardrail was last updated"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
nullable_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class CreateGuardrailResponseTypedDict(TypedDict):
r"""Guardrail created successfully"""
data: CreateGuardrailDataTypedDict
r"""The created guardrail"""
class CreateGuardrailResponse(BaseModel):
r"""Guardrail created successfully"""
data: CreateGuardrailData
r"""The created guardrail"""
@@ -0,0 +1,38 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel
from openrouter.utils import FieldMetadata, PathParamMetadata, validate_const
import pydantic
from pydantic.functional_validators import AfterValidator
from typing import Literal
from typing_extensions import Annotated, TypedDict
class DeleteGuardrailRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail to delete"""
class DeleteGuardrailRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail to delete"""
class DeleteGuardrailResponseTypedDict(TypedDict):
r"""Guardrail deleted successfully"""
deleted: Literal[True]
r"""Confirmation that the guardrail was deleted"""
class DeleteGuardrailResponse(BaseModel):
r"""Guardrail deleted successfully"""
DELETED: Annotated[
Annotated[Literal[True], AfterValidator(validate_const(True))],
pydantic.Field(alias="deleted"),
] = True
r"""Confirmation that the guardrail was deleted"""
+161
View File
@@ -0,0 +1,161 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
UnrecognizedStr,
)
from openrouter.utils import FieldMetadata, PathParamMetadata, validate_open_enum
from pydantic import model_serializer
from pydantic.functional_validators import PlainValidator
from typing import List, Literal, Union
from typing_extensions import Annotated, NotRequired, TypedDict
class GetGuardrailRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail to retrieve"""
class GetGuardrailRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail to retrieve"""
GetGuardrailResetInterval = Union[
Literal[
"daily",
"weekly",
"monthly",
],
UnrecognizedStr,
]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
class GetGuardrailDataTypedDict(TypedDict):
r"""The guardrail"""
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: NotRequired[Nullable[str]]
r"""Description of the guardrail"""
limit_usd: NotRequired[Nullable[float]]
r"""Spending limit in USD"""
reset_interval: NotRequired[Nullable[GetGuardrailResetInterval]]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: NotRequired[Nullable[List[str]]]
r"""List of allowed provider IDs"""
allowed_models: NotRequired[Nullable[List[str]]]
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: NotRequired[Nullable[bool]]
r"""Whether to enforce zero data retention"""
updated_at: NotRequired[Nullable[str]]
r"""ISO 8601 timestamp of when the guardrail was last updated"""
class GetGuardrailData(BaseModel):
r"""The guardrail"""
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: OptionalNullable[str] = UNSET
r"""Description of the guardrail"""
limit_usd: OptionalNullable[float] = UNSET
r"""Spending limit in USD"""
reset_interval: Annotated[
OptionalNullable[GetGuardrailResetInterval],
PlainValidator(validate_open_enum(False)),
] = UNSET
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: OptionalNullable[List[str]] = UNSET
r"""List of allowed provider IDs"""
allowed_models: OptionalNullable[List[str]] = UNSET
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: OptionalNullable[bool] = UNSET
r"""Whether to enforce zero data retention"""
updated_at: OptionalNullable[str] = UNSET
r"""ISO 8601 timestamp of when the guardrail was last updated"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
nullable_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class GetGuardrailResponseTypedDict(TypedDict):
r"""Guardrail details"""
data: GetGuardrailDataTypedDict
r"""The guardrail"""
class GetGuardrailResponse(BaseModel):
r"""Guardrail details"""
data: GetGuardrailData
r"""The guardrail"""
+28 -5
View File
@@ -1,22 +1,45 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel
from openrouter.utils import FieldMetadata, QueryParamMetadata
from typing import Optional
from openrouter.types import BaseModel, UnrecognizedStr
from openrouter.utils import FieldMetadata, QueryParamMetadata, validate_open_enum
from pydantic.functional_validators import PlainValidator
from typing import Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
Category = Union[
Literal[
"programming",
"roleplay",
"marketing",
"marketing/seo",
"technology",
"science",
"translation",
"legal",
"finance",
"health",
"trivia",
"academia",
],
UnrecognizedStr,
]
r"""Filter models by use case category"""
class GetModelsRequestTypedDict(TypedDict):
category: NotRequired[str]
category: NotRequired[Category]
r"""Filter models by use case category"""
supported_parameters: NotRequired[str]
class GetModelsRequest(BaseModel):
category: Annotated[
Optional[str],
Annotated[Optional[Category], PlainValidator(validate_open_enum(False))],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Filter models by use case category"""
supported_parameters: Annotated[
Optional[str],
-123
View File
@@ -1,123 +0,0 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.components import providername as components_providername
from openrouter.types import BaseModel, UnrecognizedStr
from openrouter.utils import (
FieldMetadata,
PathParamMetadata,
QueryParamMetadata,
SecurityMetadata,
validate_open_enum,
)
from pydantic.functional_validators import PlainValidator
from typing import List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
class GetParametersSecurityTypedDict(TypedDict):
bearer: str
class GetParametersSecurity(BaseModel):
bearer: Annotated[
str,
FieldMetadata(
security=SecurityMetadata(
scheme=True,
scheme_type="http",
sub_type="bearer",
field_name="Authorization",
)
),
]
class GetParametersRequestTypedDict(TypedDict):
author: str
slug: str
provider: NotRequired[components_providername.ProviderName]
class GetParametersRequest(BaseModel):
author: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
slug: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
provider: Annotated[
Annotated[
Optional[components_providername.ProviderName],
PlainValidator(validate_open_enum(False)),
],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
SupportedParameter = Union[
Literal[
"temperature",
"top_p",
"top_k",
"min_p",
"top_a",
"frequency_penalty",
"presence_penalty",
"repetition_penalty",
"max_tokens",
"logit_bias",
"logprobs",
"top_logprobs",
"seed",
"response_format",
"structured_outputs",
"stop",
"tools",
"tool_choice",
"parallel_tool_calls",
"include_reasoning",
"reasoning",
"reasoning_effort",
"web_search_options",
"verbosity",
],
UnrecognizedStr,
]
class GetParametersDataTypedDict(TypedDict):
r"""Parameter analytics data"""
model: str
r"""Model identifier"""
supported_parameters: List[SupportedParameter]
r"""List of parameters supported by this model"""
class GetParametersData(BaseModel):
r"""Parameter analytics data"""
model: str
r"""Model identifier"""
supported_parameters: List[
Annotated[SupportedParameter, PlainValidator(validate_open_enum(False))]
]
r"""List of parameters supported by this model"""
class GetParametersResponseTypedDict(TypedDict):
r"""Returns the parameters for the specified model"""
data: GetParametersDataTypedDict
r"""Parameter analytics data"""
class GetParametersResponse(BaseModel):
r"""Returns the parameters for the specified model"""
data: GetParametersData
r"""Parameter analytics data"""
@@ -0,0 +1,125 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL
from openrouter.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
from pydantic import model_serializer
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict
class ListGuardrailKeyAssignmentsRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail"""
offset: NotRequired[str]
r"""Number of records to skip for pagination"""
limit: NotRequired[str]
r"""Maximum number of records to return (max 100)"""
class ListGuardrailKeyAssignmentsRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail"""
offset: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Maximum number of records to return (max 100)"""
class ListGuardrailKeyAssignmentsDataTypedDict(TypedDict):
id: str
r"""Unique identifier for the assignment"""
key_hash: str
r"""Hash of the assigned API key"""
guardrail_id: str
r"""ID of the guardrail"""
key_name: str
r"""Name of the API key"""
key_label: str
r"""Label of the API key"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
class ListGuardrailKeyAssignmentsData(BaseModel):
id: str
r"""Unique identifier for the assignment"""
key_hash: str
r"""Hash of the assigned API key"""
guardrail_id: str
r"""ID of the guardrail"""
key_name: str
r"""Name of the API key"""
key_label: str
r"""Label of the API key"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = []
nullable_fields = ["assigned_by"]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class ListGuardrailKeyAssignmentsResponseTypedDict(TypedDict):
r"""List of key assignments"""
data: List[ListGuardrailKeyAssignmentsDataTypedDict]
r"""List of key assignments"""
total_count: float
r"""Total number of key assignments for this guardrail"""
class ListGuardrailKeyAssignmentsResponse(BaseModel):
r"""List of key assignments"""
data: List[ListGuardrailKeyAssignmentsData]
r"""List of key assignments"""
total_count: float
r"""Total number of key assignments for this guardrail"""
@@ -0,0 +1,120 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL
from openrouter.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
from pydantic import model_serializer
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict
class ListGuardrailMemberAssignmentsRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail"""
offset: NotRequired[str]
r"""Number of records to skip for pagination"""
limit: NotRequired[str]
r"""Maximum number of records to return (max 100)"""
class ListGuardrailMemberAssignmentsRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail"""
offset: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Maximum number of records to return (max 100)"""
class ListGuardrailMemberAssignmentsDataTypedDict(TypedDict):
id: str
r"""Unique identifier for the assignment"""
user_id: str
r"""Clerk user ID of the assigned member"""
organization_id: str
r"""Organization ID"""
guardrail_id: str
r"""ID of the guardrail"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
class ListGuardrailMemberAssignmentsData(BaseModel):
id: str
r"""Unique identifier for the assignment"""
user_id: str
r"""Clerk user ID of the assigned member"""
organization_id: str
r"""Organization ID"""
guardrail_id: str
r"""ID of the guardrail"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = []
nullable_fields = ["assigned_by"]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class ListGuardrailMemberAssignmentsResponseTypedDict(TypedDict):
r"""List of member assignments"""
data: List[ListGuardrailMemberAssignmentsDataTypedDict]
r"""List of member assignments"""
total_count: float
r"""Total number of member assignments"""
class ListGuardrailMemberAssignmentsResponse(BaseModel):
r"""List of member assignments"""
data: List[ListGuardrailMemberAssignmentsData]
r"""List of member assignments"""
total_count: float
r"""Total number of member assignments"""
+171
View File
@@ -0,0 +1,171 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
UnrecognizedStr,
)
from openrouter.utils import FieldMetadata, QueryParamMetadata, validate_open_enum
from pydantic import model_serializer
from pydantic.functional_validators import PlainValidator
from typing import List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
class ListGuardrailsRequestTypedDict(TypedDict):
offset: NotRequired[str]
r"""Number of records to skip for pagination"""
limit: NotRequired[str]
r"""Maximum number of records to return (max 100)"""
class ListGuardrailsRequest(BaseModel):
offset: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Maximum number of records to return (max 100)"""
ListGuardrailsResetInterval = Union[
Literal[
"daily",
"weekly",
"monthly",
],
UnrecognizedStr,
]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
class ListGuardrailsDataTypedDict(TypedDict):
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: NotRequired[Nullable[str]]
r"""Description of the guardrail"""
limit_usd: NotRequired[Nullable[float]]
r"""Spending limit in USD"""
reset_interval: NotRequired[Nullable[ListGuardrailsResetInterval]]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: NotRequired[Nullable[List[str]]]
r"""List of allowed provider IDs"""
allowed_models: NotRequired[Nullable[List[str]]]
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: NotRequired[Nullable[bool]]
r"""Whether to enforce zero data retention"""
updated_at: NotRequired[Nullable[str]]
r"""ISO 8601 timestamp of when the guardrail was last updated"""
class ListGuardrailsData(BaseModel):
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: OptionalNullable[str] = UNSET
r"""Description of the guardrail"""
limit_usd: OptionalNullable[float] = UNSET
r"""Spending limit in USD"""
reset_interval: Annotated[
OptionalNullable[ListGuardrailsResetInterval],
PlainValidator(validate_open_enum(False)),
] = UNSET
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: OptionalNullable[List[str]] = UNSET
r"""List of allowed provider IDs"""
allowed_models: OptionalNullable[List[str]] = UNSET
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: OptionalNullable[bool] = UNSET
r"""Whether to enforce zero data retention"""
updated_at: OptionalNullable[str] = UNSET
r"""ISO 8601 timestamp of when the guardrail was last updated"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
nullable_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class ListGuardrailsResponseTypedDict(TypedDict):
r"""List of guardrails"""
data: List[ListGuardrailsDataTypedDict]
r"""List of guardrails"""
total_count: float
r"""Total number of guardrails"""
class ListGuardrailsResponse(BaseModel):
r"""List of guardrails"""
data: List[ListGuardrailsData]
r"""List of guardrails"""
total_count: float
r"""Total number of guardrails"""
@@ -0,0 +1,118 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL
from openrouter.utils import FieldMetadata, QueryParamMetadata
from pydantic import model_serializer
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict
class ListKeyAssignmentsRequestTypedDict(TypedDict):
offset: NotRequired[str]
r"""Number of records to skip for pagination"""
limit: NotRequired[str]
r"""Maximum number of records to return (max 100)"""
class ListKeyAssignmentsRequest(BaseModel):
offset: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Maximum number of records to return (max 100)"""
class ListKeyAssignmentsDataTypedDict(TypedDict):
id: str
r"""Unique identifier for the assignment"""
key_hash: str
r"""Hash of the assigned API key"""
guardrail_id: str
r"""ID of the guardrail"""
key_name: str
r"""Name of the API key"""
key_label: str
r"""Label of the API key"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
class ListKeyAssignmentsData(BaseModel):
id: str
r"""Unique identifier for the assignment"""
key_hash: str
r"""Hash of the assigned API key"""
guardrail_id: str
r"""ID of the guardrail"""
key_name: str
r"""Name of the API key"""
key_label: str
r"""Label of the API key"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = []
nullable_fields = ["assigned_by"]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class ListKeyAssignmentsResponseTypedDict(TypedDict):
r"""List of key assignments"""
data: List[ListKeyAssignmentsDataTypedDict]
r"""List of key assignments"""
total_count: float
r"""Total number of key assignments for this guardrail"""
class ListKeyAssignmentsResponse(BaseModel):
r"""List of key assignments"""
data: List[ListKeyAssignmentsData]
r"""List of key assignments"""
total_count: float
r"""Total number of key assignments for this guardrail"""
@@ -0,0 +1,113 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL
from openrouter.utils import FieldMetadata, QueryParamMetadata
from pydantic import model_serializer
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict
class ListMemberAssignmentsRequestTypedDict(TypedDict):
offset: NotRequired[str]
r"""Number of records to skip for pagination"""
limit: NotRequired[str]
r"""Maximum number of records to return (max 100)"""
class ListMemberAssignmentsRequest(BaseModel):
offset: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Number of records to skip for pagination"""
limit: Annotated[
Optional[str],
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
] = None
r"""Maximum number of records to return (max 100)"""
class ListMemberAssignmentsDataTypedDict(TypedDict):
id: str
r"""Unique identifier for the assignment"""
user_id: str
r"""Clerk user ID of the assigned member"""
organization_id: str
r"""Organization ID"""
guardrail_id: str
r"""ID of the guardrail"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
class ListMemberAssignmentsData(BaseModel):
id: str
r"""Unique identifier for the assignment"""
user_id: str
r"""Clerk user ID of the assigned member"""
organization_id: str
r"""Organization ID"""
guardrail_id: str
r"""ID of the guardrail"""
assigned_by: Nullable[str]
r"""User ID of who made the assignment"""
created_at: str
r"""ISO 8601 timestamp of when the assignment was created"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = []
nullable_fields = ["assigned_by"]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class ListMemberAssignmentsResponseTypedDict(TypedDict):
r"""List of member assignments"""
data: List[ListMemberAssignmentsDataTypedDict]
r"""List of member assignments"""
total_count: float
r"""Total number of member assignments"""
class ListMemberAssignmentsResponse(BaseModel):
r"""List of member assignments"""
data: List[ListMemberAssignmentsData]
r"""List of member assignments"""
total_count: float
r"""Total number of member assignments"""
@@ -0,0 +1,271 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
UnrecognizedStr,
)
from openrouter.utils import (
FieldMetadata,
PathParamMetadata,
RequestMetadata,
validate_open_enum,
)
from pydantic import model_serializer
from pydantic.functional_validators import PlainValidator
from typing import List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypedDict
UpdateGuardrailResetIntervalRequest = Union[
Literal[
"daily",
"weekly",
"monthly",
],
UnrecognizedStr,
]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
class UpdateGuardrailRequestBodyTypedDict(TypedDict):
name: NotRequired[str]
r"""New name for the guardrail"""
description: NotRequired[Nullable[str]]
r"""New description for the guardrail"""
limit_usd: NotRequired[Nullable[float]]
r"""New spending limit in USD"""
reset_interval: NotRequired[Nullable[UpdateGuardrailResetIntervalRequest]]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: NotRequired[Nullable[List[str]]]
r"""New list of allowed provider IDs"""
allowed_models: NotRequired[Nullable[List[str]]]
r"""Array of model identifiers (slug or canonical_slug accepted)"""
enforce_zdr: NotRequired[Nullable[bool]]
r"""Whether to enforce zero data retention"""
class UpdateGuardrailRequestBody(BaseModel):
name: Optional[str] = None
r"""New name for the guardrail"""
description: OptionalNullable[str] = UNSET
r"""New description for the guardrail"""
limit_usd: OptionalNullable[float] = UNSET
r"""New spending limit in USD"""
reset_interval: Annotated[
OptionalNullable[UpdateGuardrailResetIntervalRequest],
PlainValidator(validate_open_enum(False)),
] = UNSET
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: OptionalNullable[List[str]] = UNSET
r"""New list of allowed provider IDs"""
allowed_models: OptionalNullable[List[str]] = UNSET
r"""Array of model identifiers (slug or canonical_slug accepted)"""
enforce_zdr: OptionalNullable[bool] = UNSET
r"""Whether to enforce zero data retention"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"name",
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
]
nullable_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class UpdateGuardrailRequestTypedDict(TypedDict):
id: str
r"""The unique identifier of the guardrail to update"""
request_body: UpdateGuardrailRequestBodyTypedDict
class UpdateGuardrailRequest(BaseModel):
id: Annotated[
str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
]
r"""The unique identifier of the guardrail to update"""
request_body: Annotated[
UpdateGuardrailRequestBody,
FieldMetadata(request=RequestMetadata(media_type="application/json")),
]
UpdateGuardrailResetIntervalResponse = Union[
Literal[
"daily",
"weekly",
"monthly",
],
UnrecognizedStr,
]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
class UpdateGuardrailDataTypedDict(TypedDict):
r"""The updated guardrail"""
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: NotRequired[Nullable[str]]
r"""Description of the guardrail"""
limit_usd: NotRequired[Nullable[float]]
r"""Spending limit in USD"""
reset_interval: NotRequired[Nullable[UpdateGuardrailResetIntervalResponse]]
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: NotRequired[Nullable[List[str]]]
r"""List of allowed provider IDs"""
allowed_models: NotRequired[Nullable[List[str]]]
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: NotRequired[Nullable[bool]]
r"""Whether to enforce zero data retention"""
updated_at: NotRequired[Nullable[str]]
r"""ISO 8601 timestamp of when the guardrail was last updated"""
class UpdateGuardrailData(BaseModel):
r"""The updated guardrail"""
id: str
r"""Unique identifier for the guardrail"""
name: str
r"""Name of the guardrail"""
created_at: str
r"""ISO 8601 timestamp of when the guardrail was created"""
description: OptionalNullable[str] = UNSET
r"""Description of the guardrail"""
limit_usd: OptionalNullable[float] = UNSET
r"""Spending limit in USD"""
reset_interval: Annotated[
OptionalNullable[UpdateGuardrailResetIntervalResponse],
PlainValidator(validate_open_enum(False)),
] = UNSET
r"""Interval at which the limit resets (daily, weekly, monthly)"""
allowed_providers: OptionalNullable[List[str]] = UNSET
r"""List of allowed provider IDs"""
allowed_models: OptionalNullable[List[str]] = UNSET
r"""Array of model canonical_slugs (immutable identifiers)"""
enforce_zdr: OptionalNullable[bool] = UNSET
r"""Whether to enforce zero data retention"""
updated_at: OptionalNullable[str] = UNSET
r"""ISO 8601 timestamp of when the guardrail was last updated"""
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
nullable_fields = [
"description",
"limit_usd",
"reset_interval",
"allowed_providers",
"allowed_models",
"enforce_zdr",
"updated_at",
]
null_default_fields = []
serialized = handler(self)
m = {}
for n, f in type(self).model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)
optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member
if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val
return m
class UpdateGuardrailResponseTypedDict(TypedDict):
r"""Guardrail updated successfully"""
data: UpdateGuardrailDataTypedDict
r"""The updated guardrail"""
class UpdateGuardrailResponse(BaseModel):
r"""Guardrail updated successfully"""
data: UpdateGuardrailData
r"""The updated guardrail"""