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

from __future__ import annotations

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2, update_forward_refs
from ..core.unchecked_base_model import UncheckedBaseModel
from .system_tool_config_input import SystemToolConfigInput


class BuiltInToolsWorkflowOverrideInput(UncheckedBaseModel):
    end_call: typing.Optional[SystemToolConfigInput] = pydantic.Field(default=None)
    """
    The end call tool
    """

    language_detection: typing.Optional[SystemToolConfigInput] = pydantic.Field(default=None)
    """
    The language detection tool
    """

    transfer_to_agent: typing.Optional[SystemToolConfigInput] = pydantic.Field(default=None)
    """
    The transfer to agent tool
    """

    transfer_to_number: typing.Optional[SystemToolConfigInput] = pydantic.Field(default=None)
    """
    The transfer to number tool
    """

    skip_turn: typing.Optional[SystemToolConfigInput] = pydantic.Field(default=None)
    """
    The skip turn tool
    """

    play_keypad_touch_tone: typing.Optional[SystemToolConfigInput] = pydantic.Field(default=None)
    """
    The play DTMF tool
    """

    voicemail_detection: typing.Optional[SystemToolConfigInput] = pydantic.Field(default=None)
    """
    The voicemail detection tool
    """

    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


update_forward_refs(BuiltInToolsWorkflowOverrideInput)
