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

from __future__ import annotations
from anncsu.common.types import BaseModel
from anncsu.common.utils import FieldMetadata, QueryParamMetadata
import pydantic
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class PrognazaccGetQueryParamRequestTypedDict(TypedDict):
    prognazacc: str
    r"""Progressivo nazionale dell'accesso"""


class PrognazaccGetQueryParamRequest(BaseModel):
    prognazacc: Annotated[
        str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
    ]
    r"""Progressivo nazionale dell'accesso"""


class PrognazaccGetQueryParamDataTypedDict(TypedDict):
    prognaz: NotRequired[str]
    dug: NotRequired[str]
    denomuff: NotRequired[str]
    denomloc: NotRequired[str]
    denomlingua1: NotRequired[str]
    denomlingua2: NotRequired[str]
    prognazacc: NotRequired[str]
    civico: NotRequired[str]
    esp: NotRequired[str]
    specif: NotRequired[str]
    metrico: NotRequired[str]
    coord_x: NotRequired[str]
    coord_y: NotRequired[str]
    quota: NotRequired[str]
    metodo: NotRequired[str]


class PrognazaccGetQueryParamData(BaseModel):
    prognaz: Optional[str] = None

    dug: Optional[str] = None

    denomuff: Optional[str] = None

    denomloc: Optional[str] = None

    denomlingua1: Optional[str] = None

    denomlingua2: Optional[str] = None

    prognazacc: Optional[str] = None

    civico: Optional[str] = None

    esp: Optional[str] = None

    specif: Optional[str] = None

    metrico: Optional[str] = None

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

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

    quota: Optional[str] = None

    metodo: Optional[str] = None


class PrognazaccGetQueryParamResponseTypedDict(TypedDict):
    r"""Successful operation"""

    res: NotRequired[str]
    data: NotRequired[List[PrognazaccGetQueryParamDataTypedDict]]


class PrognazaccGetQueryParamResponse(BaseModel):
    r"""Successful operation"""

    res: Optional[str] = None

    data: Optional[List[PrognazaccGetQueryParamData]] = None
