# 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 .harsh_brake_sensitivity_v_2_settings_object_response_body_heavy_duty import (
    HarshBrakeSensitivityV2SettingsObjectResponseBodyHeavyDuty,
)
from .harsh_brake_sensitivity_v_2_settings_object_response_body_light_duty import (
    HarshBrakeSensitivityV2SettingsObjectResponseBodyLightDuty,
)
from .harsh_brake_sensitivity_v_2_settings_object_response_body_passenger import (
    HarshBrakeSensitivityV2SettingsObjectResponseBodyPassenger,
)


class HarshBrakeSensitivityV2SettingsObjectResponseBody(UniversalBaseModel):
    """
    The harsh brake sensitivity settings.
    """

    heavy_duty: typing_extensions.Annotated[
        typing.Optional[HarshBrakeSensitivityV2SettingsObjectResponseBodyHeavyDuty],
        FieldMetadata(alias="heavyDuty"),
        pydantic.Field(
            alias="heavyDuty",
            description="Harsh brake sensitivity settings for heavy duty vehicle.  Valid values: `unknown`, `invalid`, `off`, `veryLow`, `low`, `normal`, `high`",
        ),
    ] = None
    light_duty: typing_extensions.Annotated[
        typing.Optional[HarshBrakeSensitivityV2SettingsObjectResponseBodyLightDuty],
        FieldMetadata(alias="lightDuty"),
        pydantic.Field(
            alias="lightDuty",
            description="Harsh brake sensitivity settings for light duty vehicle.  Valid values: `unknown`, `invalid`, `off`, `veryLow`, `low`, `normal`, `high`",
        ),
    ] = None
    passenger: typing.Optional[HarshBrakeSensitivityV2SettingsObjectResponseBodyPassenger] = pydantic.Field(
        default=None
    )
    """
    Harsh brake sensitivity settings for passenger car.  Valid values: `unknown`, `invalid`, `off`, `veryLow`, `low`, `normal`, `high`
    """

    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
