"""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
import pydantic
from typing import Dict, List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class GetFileRequestTypedDict(TypedDict):
    server_name: str
    path: str


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

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


class ContentTypedDict(TypedDict):
    content: NotRequired[str]
    created: NotRequired[str]
    format_: NotRequired[str]
    last_modified: NotRequired[str]
    mimetype: NotRequired[str]
    name: NotRequired[str]
    path: NotRequired[str]
    server_path: NotRequired[str]
    size: NotRequired[float]
    type: NotRequired[str]
    writable: NotRequired[bool]


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

    created: Optional[str] = None

    format_: Annotated[Optional[str], pydantic.Field(alias="format")] = None

    last_modified: Optional[str] = None

    mimetype: Optional[str] = None

    name: Optional[str] = None

    path: Optional[str] = None

    server_path: Annotated[Optional[str], pydantic.Field(alias="serverPath")] = None

    size: Optional[float] = None

    type: Optional[str] = None

    writable: Optional[bool] = None


class GetFileResponseBodyTypedDict(TypedDict):
    r"""Get File"""

    content: NotRequired[ContentTypedDict]
    status: NotRequired[str]


class GetFileResponseBody(BaseModel):
    r"""Get File"""

    content: Optional[Content] = None

    status: Optional[str] = None


class GetFileResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]
    result: GetFileResponseBodyTypedDict


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

    result: GetFileResponseBody
