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

from __future__ import annotations
from gram_ai.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class CanonicalToolAttributesTypedDict(TypedDict):
    r"""The original details of a tool"""

    name: str
    r"""The name of the tool"""
    variation_id: str
    r"""The ID of the variation that was applied to the tool"""
    confirm: NotRequired[str]
    r"""Confirmation mode for the tool"""
    confirm_prompt: NotRequired[str]
    r"""Prompt for the confirmation"""
    description: NotRequired[str]
    r"""Description of the tool"""
    summarizer: NotRequired[str]
    r"""Summarizer for the tool"""
    summary: NotRequired[str]
    r"""Summary of the tool"""
    tags: NotRequired[List[str]]
    r"""The tags list for this http tool"""


class CanonicalToolAttributes(BaseModel):
    r"""The original details of a tool"""

    name: str
    r"""The name of the tool"""

    variation_id: str
    r"""The ID of the variation that was applied to the tool"""

    confirm: Optional[str] = None
    r"""Confirmation mode for the tool"""

    confirm_prompt: Optional[str] = None
    r"""Prompt for the confirmation"""

    description: Optional[str] = None
    r"""Description of the tool"""

    summarizer: Optional[str] = None
    r"""Summarizer for the tool"""

    summary: Optional[str] = None
    r"""Summary of the tool"""

    tags: Optional[List[str]] = None
    r"""The tags list for this http tool"""
