# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
import typing_extensions
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from ..core.serialization import FieldMetadata
from .ifta_report_troubleshooting_object_response_body import IftaReportTroubleshootingObjectResponseBody
from .ifta_vehicle_report_object_response_body import IftaVehicleReportObjectResponseBody


class IftaVehicleReportDataObjectResponseBody(UniversalBaseModel):
    """
    Dictionary containing summarized vehicle report data.
    """

    month: typing.Optional[str] = pydantic.Field(default=None)
    """
    The specified month duration for this IFTA report.
    """

    quarter: typing.Optional[str] = pydantic.Field(default=None)
    """
    The specified quarter duration for this IFTA report.
    """

    troubleshooting: typing.Optional[IftaReportTroubleshootingObjectResponseBody] = None
    vehicle_reports: typing_extensions.Annotated[
        typing.List[IftaVehicleReportObjectResponseBody],
        FieldMetadata(alias="vehicleReports"),
        pydantic.Field(alias="vehicleReports", description="List of summarized vehicle reports."),
    ]
    year: int = pydantic.Field()
    """
    The specified year for this IFTA report.
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
