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

from __future__ import annotations
from .toolargumentlocation import ToolArgumentLocation
from .toolhttpmethod import ToolHTTPMethod
from syllable_sdk.types import BaseModel
from typing_extensions import TypedDict


class ToolHTTPEndpointTypedDict(TypedDict):
    r"""The configuration for an HTTP API call by a tool."""

    url: str
    r"""The endpoint URL of the external service to call."""
    method: ToolHTTPMethod
    r"""The HTTP method to use for a tool HTTP request."""
    argument_location: ToolArgumentLocation
    r"""The location of the argument in a tool HTTP request.
    'body' is used for JSON data in the POST request body.
    'form' is used for form data in the POST request body.
    'path' is used for URL path parameters.
    'query' is used for query parameters in the URL.
    """


class ToolHTTPEndpoint(BaseModel):
    r"""The configuration for an HTTP API call by a tool."""

    url: str
    r"""The endpoint URL of the external service to call."""

    method: ToolHTTPMethod
    r"""The HTTP method to use for a tool HTTP request."""

    argument_location: ToolArgumentLocation
    r"""The location of the argument in a tool HTTP request.
    'body' is used for JSON data in the POST request body.
    'form' is used for form data in the POST request body.
    'path' is used for URL path parameters.
    'query' is used for query parameters in the URL.
    """
