# 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 .web_search_tool_parameters import WebSearchToolParameters


class InlineWebSearchToolConfiguration(UniversalBaseModel):
    """
    A web search tool configuration defined inline in the agent.
    """

    type: typing.Literal["web_search"] = "web_search"
    argument_override: typing.Optional[WebSearchToolParameters] = pydantic.Field(default=None)
    """
    Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.
    """

    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
