Files
openrouter-python-sdk-retry…/src/openrouter/components/openairesponsesinput_union.py
T
OpenRouter Team ae623ddecf Commits included in this export:
- f35bb49a8b788937fa61c0cf4591b14f2bc8b217
  - 08a37babde9ad8df5e24e0cd865d3292b1627464
  - 7ddc8e1ed230ca489bc11a5e14696c209ea76349
  - ad31290f38f3f02627f3e1953f1d7cf3e06159a5
  - fb7f764b500618e322f56d49997fbcfaebba7e39
  - 4306c032b9b4f3cfefeacdd3d243b0336f3b2f15

GitOrigin-RevId: f35bb49a8b788937fa61c0cf4591b14f2bc8b217
2026-03-11 17:28:30 +00:00

417 lines
11 KiB
Python

"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
from __future__ import annotations
from .outputitemimagegenerationcall import (
OutputItemImageGenerationCall,
OutputItemImageGenerationCallTypedDict,
)
from .outputmessage import OutputMessage, OutputMessageTypedDict
from .responseinputaudio import ResponseInputAudio, ResponseInputAudioTypedDict
from .responseinputfile import ResponseInputFile, ResponseInputFileTypedDict
from .responseinputimage import ResponseInputImage, ResponseInputImageTypedDict
from .responseinputtext import ResponseInputText, ResponseInputTextTypedDict
from .toolcallstatus import ToolCallStatus
from openrouter.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
)
from openrouter.utils import get_discriminator, validate_open_enum
from pydantic import Discriminator, Tag, model_serializer
from pydantic.functional_validators import PlainValidator
from typing import Any, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
OpenAIResponsesInputTypeFunctionCall = Literal["function_call",]
class OpenAIResponsesInputFunctionCallTypedDict(TypedDict):
type: OpenAIResponsesInputTypeFunctionCall
call_id: str
name: str
arguments: str
id: NotRequired[str]
status: NotRequired[Nullable[ToolCallStatus]]
class OpenAIResponsesInputFunctionCall(BaseModel):
type: OpenAIResponsesInputTypeFunctionCall
call_id: str
name: str
arguments: str
id: Optional[str] = None
status: Annotated[
OptionalNullable[ToolCallStatus], PlainValidator(validate_open_enum(False))
] = UNSET
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = ["id", "status"]
nullable_fields = ["status"]
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
OpenAIResponsesInputTypeFunctionCallOutput = Literal["function_call_output",]
OpenAIResponsesInputOutput1TypedDict = TypeAliasType(
"OpenAIResponsesInputOutput1TypedDict",
Union[
ResponseInputTextTypedDict,
ResponseInputImageTypedDict,
ResponseInputFileTypedDict,
],
)
OpenAIResponsesInputOutput1 = Annotated[
Union[
Annotated[ResponseInputText, Tag("input_text")],
Annotated[ResponseInputImage, Tag("input_image")],
Annotated[ResponseInputFile, Tag("input_file")],
],
Discriminator(lambda m: get_discriminator(m, "type", "type")),
]
OpenAIResponsesInputOutput2TypedDict = TypeAliasType(
"OpenAIResponsesInputOutput2TypedDict",
Union[str, List[OpenAIResponsesInputOutput1TypedDict]],
)
OpenAIResponsesInputOutput2 = TypeAliasType(
"OpenAIResponsesInputOutput2", Union[str, List[OpenAIResponsesInputOutput1]]
)
class OpenAIResponsesInputFunctionCallOutputTypedDict(TypedDict):
type: OpenAIResponsesInputTypeFunctionCallOutput
call_id: str
output: OpenAIResponsesInputOutput2TypedDict
id: NotRequired[Nullable[str]]
status: NotRequired[Nullable[ToolCallStatus]]
class OpenAIResponsesInputFunctionCallOutput(BaseModel):
type: OpenAIResponsesInputTypeFunctionCallOutput
call_id: str
output: OpenAIResponsesInputOutput2
id: OptionalNullable[str] = UNSET
status: Annotated[
OptionalNullable[ToolCallStatus], PlainValidator(validate_open_enum(False))
] = UNSET
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = ["id", "status"]
nullable_fields = ["id", "status"]
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
OpenAIResponsesInputTypeMessage2 = Literal["message",]
OpenAIResponsesInputRoleDeveloper2 = Literal["developer",]
OpenAIResponsesInputRoleSystem2 = Literal["system",]
OpenAIResponsesInputRoleUser2 = Literal["user",]
OpenAIResponsesInputRoleUnion2TypedDict = TypeAliasType(
"OpenAIResponsesInputRoleUnion2TypedDict",
Union[
OpenAIResponsesInputRoleUser2,
OpenAIResponsesInputRoleSystem2,
OpenAIResponsesInputRoleDeveloper2,
],
)
OpenAIResponsesInputRoleUnion2 = TypeAliasType(
"OpenAIResponsesInputRoleUnion2",
Union[
OpenAIResponsesInputRoleUser2,
OpenAIResponsesInputRoleSystem2,
OpenAIResponsesInputRoleDeveloper2,
],
)
OpenAIResponsesInputContent3TypedDict = TypeAliasType(
"OpenAIResponsesInputContent3TypedDict",
Union[
ResponseInputTextTypedDict,
ResponseInputAudioTypedDict,
ResponseInputImageTypedDict,
ResponseInputFileTypedDict,
],
)
OpenAIResponsesInputContent3 = Annotated[
Union[
Annotated[ResponseInputText, Tag("input_text")],
Annotated[ResponseInputImage, Tag("input_image")],
Annotated[ResponseInputFile, Tag("input_file")],
Annotated[ResponseInputAudio, Tag("input_audio")],
],
Discriminator(lambda m: get_discriminator(m, "type", "type")),
]
class OpenAIResponsesInputMessage2TypedDict(TypedDict):
id: str
role: OpenAIResponsesInputRoleUnion2TypedDict
content: List[OpenAIResponsesInputContent3TypedDict]
type: NotRequired[OpenAIResponsesInputTypeMessage2]
class OpenAIResponsesInputMessage2(BaseModel):
id: str
role: OpenAIResponsesInputRoleUnion2
content: List[OpenAIResponsesInputContent3]
type: Optional[OpenAIResponsesInputTypeMessage2] = None
OpenAIResponsesInputTypeMessage1 = Literal["message",]
OpenAIResponsesInputRoleDeveloper1 = Literal["developer",]
OpenAIResponsesInputRoleAssistant = Literal["assistant",]
OpenAIResponsesInputRoleSystem1 = Literal["system",]
OpenAIResponsesInputRoleUser1 = Literal["user",]
OpenAIResponsesInputRoleUnion1TypedDict = TypeAliasType(
"OpenAIResponsesInputRoleUnion1TypedDict",
Union[
OpenAIResponsesInputRoleUser1,
OpenAIResponsesInputRoleSystem1,
OpenAIResponsesInputRoleAssistant,
OpenAIResponsesInputRoleDeveloper1,
],
)
OpenAIResponsesInputRoleUnion1 = TypeAliasType(
"OpenAIResponsesInputRoleUnion1",
Union[
OpenAIResponsesInputRoleUser1,
OpenAIResponsesInputRoleSystem1,
OpenAIResponsesInputRoleAssistant,
OpenAIResponsesInputRoleDeveloper1,
],
)
OpenAIResponsesInputContent1TypedDict = TypeAliasType(
"OpenAIResponsesInputContent1TypedDict",
Union[
ResponseInputTextTypedDict,
ResponseInputAudioTypedDict,
ResponseInputImageTypedDict,
ResponseInputFileTypedDict,
],
)
OpenAIResponsesInputContent1 = Annotated[
Union[
Annotated[ResponseInputText, Tag("input_text")],
Annotated[ResponseInputImage, Tag("input_image")],
Annotated[ResponseInputFile, Tag("input_file")],
Annotated[ResponseInputAudio, Tag("input_audio")],
],
Discriminator(lambda m: get_discriminator(m, "type", "type")),
]
OpenAIResponsesInputContent2TypedDict = TypeAliasType(
"OpenAIResponsesInputContent2TypedDict",
Union[List[OpenAIResponsesInputContent1TypedDict], str],
)
OpenAIResponsesInputContent2 = TypeAliasType(
"OpenAIResponsesInputContent2", Union[List[OpenAIResponsesInputContent1], str]
)
OpenAIResponsesInputPhaseFinalAnswer = Literal["final_answer",]
OpenAIResponsesInputPhaseCommentary = Literal["commentary",]
OpenAIResponsesInputPhaseUnionTypedDict = TypeAliasType(
"OpenAIResponsesInputPhaseUnionTypedDict",
Union[
OpenAIResponsesInputPhaseCommentary, OpenAIResponsesInputPhaseFinalAnswer, Any
],
)
OpenAIResponsesInputPhaseUnion = TypeAliasType(
"OpenAIResponsesInputPhaseUnion",
Union[
OpenAIResponsesInputPhaseCommentary, OpenAIResponsesInputPhaseFinalAnswer, Any
],
)
class OpenAIResponsesInputMessage1TypedDict(TypedDict):
role: OpenAIResponsesInputRoleUnion1TypedDict
content: OpenAIResponsesInputContent2TypedDict
type: NotRequired[OpenAIResponsesInputTypeMessage1]
phase: NotRequired[Nullable[OpenAIResponsesInputPhaseUnionTypedDict]]
class OpenAIResponsesInputMessage1(BaseModel):
role: OpenAIResponsesInputRoleUnion1
content: OpenAIResponsesInputContent2
type: Optional[OpenAIResponsesInputTypeMessage1] = None
phase: OptionalNullable[OpenAIResponsesInputPhaseUnion] = UNSET
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = ["type", "phase"]
nullable_fields = ["phase"]
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
OpenAIResponsesInputUnion1TypedDict = TypeAliasType(
"OpenAIResponsesInputUnion1TypedDict",
Union[
OpenAIResponsesInputMessage1TypedDict,
OpenAIResponsesInputMessage2TypedDict,
OutputItemImageGenerationCallTypedDict,
OpenAIResponsesInputFunctionCallOutputTypedDict,
OpenAIResponsesInputFunctionCallTypedDict,
OutputMessageTypedDict,
],
)
OpenAIResponsesInputUnion1 = TypeAliasType(
"OpenAIResponsesInputUnion1",
Union[
OpenAIResponsesInputMessage1,
OpenAIResponsesInputMessage2,
OutputItemImageGenerationCall,
OpenAIResponsesInputFunctionCallOutput,
OpenAIResponsesInputFunctionCall,
OutputMessage,
],
)
OpenAIResponsesInputUnionTypedDict = TypeAliasType(
"OpenAIResponsesInputUnionTypedDict",
Union[str, List[OpenAIResponsesInputUnion1TypedDict], Any],
)
OpenAIResponsesInputUnion = TypeAliasType(
"OpenAIResponsesInputUnion", Union[str, List[OpenAIResponsesInputUnion1], Any]
)