"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from openrouter.types import BaseModel
from typing import Literal, Optional, Union
from typing_extensions import NotRequired, TypeAliasType, TypedDict


ResponsesOutputItemFunctionCallType = Literal["function_call",]


ResponsesOutputItemFunctionCallStatusInProgress = Literal["in_progress",]


ResponsesOutputItemFunctionCallStatusIncomplete = Literal["incomplete",]


ResponsesOutputItemFunctionCallStatusCompleted = Literal["completed",]


ResponsesOutputItemFunctionCallStatusUnionTypedDict = TypeAliasType(
    "ResponsesOutputItemFunctionCallStatusUnionTypedDict",
    Union[
        ResponsesOutputItemFunctionCallStatusCompleted,
        ResponsesOutputItemFunctionCallStatusIncomplete,
        ResponsesOutputItemFunctionCallStatusInProgress,
    ],
)


ResponsesOutputItemFunctionCallStatusUnion = TypeAliasType(
    "ResponsesOutputItemFunctionCallStatusUnion",
    Union[
        ResponsesOutputItemFunctionCallStatusCompleted,
        ResponsesOutputItemFunctionCallStatusIncomplete,
        ResponsesOutputItemFunctionCallStatusInProgress,
    ],
)


class ResponsesOutputItemFunctionCallTypedDict(TypedDict):
    type: ResponsesOutputItemFunctionCallType
    name: str
    arguments: str
    call_id: str
    id: NotRequired[str]
    status: NotRequired[ResponsesOutputItemFunctionCallStatusUnionTypedDict]


class ResponsesOutputItemFunctionCall(BaseModel):
    type: ResponsesOutputItemFunctionCallType

    name: str

    arguments: str

    call_id: str

    id: Optional[str] = None

    status: Optional[ResponsesOutputItemFunctionCallStatusUnion] = None
