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

from __future__ import annotations
from .environment import Environment, EnvironmentTypedDict
from .httptooldefinition import HTTPToolDefinition, HTTPToolDefinitionTypedDict
from .prompttemplate import PromptTemplate, PromptTemplateTypedDict
from gram_ai.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict


class GetInstanceResultTypedDict(TypedDict):
    environment: EnvironmentTypedDict
    r"""Model representing an environment"""
    name: str
    r"""The name of the toolset"""
    tools: List[HTTPToolDefinitionTypedDict]
    r"""The list of tools"""
    description: NotRequired[str]
    r"""The description of the toolset"""
    prompt_templates: NotRequired[List[PromptTemplateTypedDict]]
    r"""The list of prompt templates"""
    relevant_environment_variables: NotRequired[List[str]]
    r"""The environment variables that are relevant to the toolset"""


class GetInstanceResult(BaseModel):
    environment: Environment
    r"""Model representing an environment"""

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

    tools: List[HTTPToolDefinition]
    r"""The list of tools"""

    description: Optional[str] = None
    r"""The description of the toolset"""

    prompt_templates: Optional[List[PromptTemplate]] = None
    r"""The list of prompt templates"""

    relevant_environment_variables: Optional[List[str]] = None
    r"""The environment variables that are relevant to the toolset"""
