"""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 Claude35HaikuMessagesTypedDict(TypedDict):
    content: NotRequired[str]
    role: NotRequired[str]


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

    role: Optional[str] = None


class Claude35HaikuRequestBodyTypedDict(TypedDict):
    messages: NotRequired[List[Claude35HaikuMessagesTypedDict]]


class Claude35HaikuRequestBody(BaseModel):
    messages: Optional[List[Claude35HaikuMessages]] = None


class Claude35HaikuRequestTypedDict(TypedDict):
    server_name: str
    request_body: NotRequired[Claude35HaikuRequestBodyTypedDict]


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

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


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


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