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

import typing

import pydantic
from ..core.pydantic_utilities import IS_PYDANTIC_V2
from ..core.unchecked_base_model import UncheckedBaseModel
from .unit_test_tool_call_parameter import UnitTestToolCallParameter


class ToolResponseMockConfigInput(UncheckedBaseModel):
    parameter_conditions: typing.Optional[typing.List[UnitTestToolCallParameter]] = pydantic.Field(default=None)
    """
    If the list is empty, the mock will always activate.
    """

    mock_result: str = pydantic.Field()
    """
    The return value the LLM sees when this mock is active.
    """

    is_error: typing.Optional[bool] = pydantic.Field(default=None)
    """
    If true, the mock result is surfaced to the LLM as a tool error rather than a successful result.
    """

    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
