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

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


ChatUserMessageContentTypedDict = TypeAliasType(
    "ChatUserMessageContentTypedDict", Union[str, List[ChatContentItemsTypedDict]]
)
r"""User message content"""


ChatUserMessageContent = TypeAliasType(
    "ChatUserMessageContent", Union[str, List[ChatContentItems]]
)
r"""User message content"""


ChatUserMessageRole = Literal["user",]


class ChatUserMessageTypedDict(TypedDict):
    r"""User message"""

    content: ChatUserMessageContentTypedDict
    r"""User message content"""
    role: ChatUserMessageRole
    name: NotRequired[str]
    r"""Optional name for the user"""


class ChatUserMessage(BaseModel):
    r"""User message"""

    content: ChatUserMessageContent
    r"""User message content"""

    role: ChatUserMessageRole

    name: Optional[str] = None
    r"""Optional name for the user"""
