# 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 .tiny_asset_object_response_body_asset_type import TinyAssetObjectResponseBodyAssetType


class TinyAssetObjectResponseBody(UniversalBaseModel):
    """
    Vehicle, trailer or other equipment to be tracked.
    """

    asset_id: typing_extensions.Annotated[
        str, FieldMetadata(alias="assetId"), pydantic.Field(alias="assetId", description="ID of the asset.")
    ]
    asset_type: typing_extensions.Annotated[
        TinyAssetObjectResponseBodyAssetType,
        FieldMetadata(alias="assetType"),
        pydantic.Field(
            alias="assetType",
            description="The operational context in which the asset interacts with the Samsara system. Examples: Vehicle (eg: truck, bus...), Trailer (eg: dry van, reefer, flatbed...), Powered Equipment (eg: dozer, crane...), Unpowered Equipment (eg: container, dumpster...), or Uncategorized.  Valid values: `uncategorized`, `trailer`, `equipment`, `unpowered`, `vehicle`",
        ),
    ]

    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
