"""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 ElencoaccessiprogGetQueryParamRequestTypedDict(TypedDict):
    prognaz: str
    r"""Progressivo nazionale dell'odonimo"""
    accparz: str
    r"""valore anche parziale del civico(+eventuale esponente e/o specificit�) oppure metrico"""


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

    accparz: Annotated[
        str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
    ]
    r"""valore anche parziale del civico(+eventuale esponente e/o specificit�) oppure metrico"""


class ElencoaccessiprogGetQueryParamDataTypedDict(TypedDict):
    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 ElencoaccessiprogGetQueryParamData(BaseModel):
    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 ElencoaccessiprogGetQueryParamResponseTypedDict(TypedDict):
    r"""Successful operation"""

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


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

    res: Optional[str] = None

    data: Optional[List[ElencoaccessiprogGetQueryParamData]] = None
