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

from ...core.unchecked_base_model import UncheckedBaseModel
import typing
import pydantic
from .incident_response_team_union import IncidentResponseTeamUnion
from ...common.types.id import Id
from ...engine.types.object import Object
from ...core.pydantic_utilities import IS_PYDANTIC_V2


class IncidentResponseUser(UncheckedBaseModel):
    email_addr: typing.Optional[str] = pydantic.Field(default=None)
    """
    The email address of the incident response user.
    """

    teams: typing.Optional[typing.List[IncidentResponseTeamUnion]] = pydantic.Field(
        default=None
    )
    """
    The incident response teams that the incident response user is a member of.
    """

    name: typing.Optional[str] = pydantic.Field(default=None)
    """
    The name of the incident response user.
    """

    uid: Id = pydantic.Field()
    """
    The unique identifier for the incident response user.
    """

    timezone: typing.Optional[str] = pydantic.Field(default=None)
    """
    The timezone of the incident response user. This value is represented as a IANA timezone string.
    """

    job_title: typing.Optional[str] = pydantic.Field(default=None)
    """
    The job title of the incident response user.
    """

    src_url: typing.Optional[str] = pydantic.Field(default=None)
    """
    A deep-linked url to the incident response user in a providers interface.
    """

    unmapped: typing.Optional[Object] = pydantic.Field(default=None)
    """
    The attributes that are not mapped to the incident response user schema. The names and values of those attributes are specific to each provider.
    """

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

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