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

from __future__ import annotations
from amds.types import BaseModel
from amds.utils import FieldMetadata, PathParamMetadata, RequestMetadata
from typing import Dict, List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class Gpt4oMessagesTypedDict(TypedDict):
    content: NotRequired[str]
    role: NotRequired[str]


class Gpt4oMessages(BaseModel):
    content: Optional[str] = None

    role: Optional[str] = None


class Gpt4oRequestBodyTypedDict(TypedDict):
    messages: NotRequired[List[Gpt4oMessagesTypedDict]]


class Gpt4oRequestBody(BaseModel):
    messages: Optional[List[Gpt4oMessages]] = None


class Gpt4oRequestTypedDict(TypedDict):
    server_name: str
    request_body: NotRequired[Gpt4oRequestBodyTypedDict]


class Gpt4oRequest(BaseModel):
    server_name: Annotated[
        str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
    ]

    request_body: Annotated[
        Optional[Gpt4oRequestBody],
        FieldMetadata(request=RequestMetadata(media_type="application/json")),
    ] = None


class Gpt4oResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]


class Gpt4oResponse(BaseModel):
    headers: Dict[str, List[str]]
