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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from .safety_event_v_2_behavior_labels_response_body_label import SafetyEventV2BehaviorLabelsResponseBodyLabel
from .safety_event_v_2_behavior_labels_response_body_source import SafetyEventV2BehaviorLabelsResponseBodySource


class SafetyEventV2BehaviorLabelsResponseBody(UniversalBaseModel):
    """
    The most up-to-date behavior labels associated with the safety event. These labels can be updated by Safety Admins.
    """

    label: typing.Optional[SafetyEventV2BehaviorLabelsResponseBodyLabel] = pydantic.Field(default=None)
    """
    The label associated with the safety event. Labels can be updated by Safety Admins, if a label is removed from a safety event it will be removed from this list.  Valid values: `Acceleration`, `AggressiveDriving`, `BluetoothHeadset`, `Braking`, `ContextConstructionOrWorkZone`, `ContextSnowyOrIcy`, `ContextVulnerableRoadUser`, `ContextWet`, `Crash`, `DefensiveDriving`, `DidNotYield`, `Drinking`, `Drowsy`, `Eating`, `EatingDrinking`, `EdgeDistractedDriving`, `EdgeRailroadCrossingViolation`, `FollowingDistance`, `FollowingDistanceModerate`, `FollowingDistanceSevere`, `ForwardCollisionWarning`, `GenericDistraction`, `GenericTailgating`, `HarshTurn`, `HeavySpeeding`, `HighSpeedSuddenDisconnect`, `HosViolation`, `Idling`, `Invalid`, `LaneDeparture`, `LateResponse`, `LeftTurn`, `LightSpeeding`, `MaxSpeed`, `MobileUsage`, `ModerateSpeeding`, `NearCollison`, `NearPedestrianCollision`, `NoSeatbelt`, `ObstructedCamera`, `OperationalEvent`, `OtherViolation`, `Passenger`, `PolicyViolationMask`, `ProtectiveEquipment`, `RanRedLight`, `RearCollisionWarning`, `Reversing`, `RollingStop`, `RolloverProtection`, `SevereSpeeding`, `Smoking`, `Speeding`, `UTurn`, `UnsafeManeuver`, `UnsafeParking`, `VehicleInBlindSpotWarning`, `VulnerableRoadUserCollisionWarning`, `YawControl`
    """

    source: typing.Optional[SafetyEventV2BehaviorLabelsResponseBodySource] = pydantic.Field(default=None)
    """
    The source of the label associated with the safety event.  Valid values: `automated`, `userGenerated`
    """

    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
