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

from __future__ import annotations
from enum import Enum
from honeyhive.types import BaseModel
from typing import Any, Dict, Optional, TypedDict
from typing_extensions import NotRequired


class CreateToolRequestType(str, Enum):
    FUNCTION = "function"
    TOOL = "tool"


class CreateToolRequestTypedDict(TypedDict):
    task: str
    r"""Name of the project associated with this tool"""
    name: str
    parameters: Dict[str, Any]
    r"""These can be function call params or plugin call params"""
    type: CreateToolRequestType
    description: NotRequired[str]


class CreateToolRequest(BaseModel):
    task: str
    r"""Name of the project associated with this tool"""

    name: str

    parameters: Dict[str, Any]
    r"""These can be function call params or plugin call params"""

    type: CreateToolRequestType

    description: Optional[str] = None
