# 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 .aemp_equipment_with_additional_fields_response_body import AempEquipmentWithAdditionalFieldsResponseBody
from .aemp_link_response_body import AempLinkResponseBody


class AempFleetListResponseBody(UniversalBaseModel):
    """
    Contains a list of equipment objects and links
    """

    equipment: typing_extensions.Annotated[
        typing.List[AempEquipmentWithAdditionalFieldsResponseBody],
        FieldMetadata(alias="Equipment"),
        pydantic.Field(alias="Equipment", description="The list of Equipment objects."),
    ]
    links: typing_extensions.Annotated[
        typing.List[AempLinkResponseBody],
        FieldMetadata(alias="Links"),
        pydantic.Field(alias="Links", description="The list of links associated with the current API request."),
    ]
    snapshot_time: typing_extensions.Annotated[
        str,
        FieldMetadata(alias="snapshotTime"),
        pydantic.Field(
            alias="snapshotTime",
            description="Date and time at which the snapshot of the fleet was created in RFC 3339 format.",
        ),
    ]
    version: str = pydantic.Field()
    """
    The version of the ISO/TS 15143-3 standard
    """

    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
