"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from acuvity.types import BaseModel
import pydantic
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class McpserverTypedDict(TypedDict):
    r"""Represents an MCP server object."""

    url: str
    r"""The URL of the MCP server."""
    allowed_tools: NotRequired[List[str]]
    r"""The allowed tools that the caller has access to. If empty, this means that the
    caller has access to all tools provided by this MCP server.
    """
    name: NotRequired[str]
    r"""The name of the MCP server."""


class Mcpserver(BaseModel):
    r"""Represents an MCP server object."""

    url: str
    r"""The URL of the MCP server."""

    allowed_tools: Annotated[
        Optional[List[str]], pydantic.Field(alias="allowedTools")
    ] = None
    r"""The allowed tools that the caller has access to. If empty, this means that the
    caller has access to all tools provided by this MCP server.
    """

    name: Optional[str] = None
    r"""The name of the MCP server."""
