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

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


WebFetchPluginID = Literal["web-fetch",]


class WebFetchPluginTypedDict(TypedDict):
    id: WebFetchPluginID
    allowed_domains: NotRequired[List[str]]
    r"""Only fetch from these domains."""
    blocked_domains: NotRequired[List[str]]
    r"""Never fetch from these domains."""
    max_content_tokens: NotRequired[int]
    r"""Maximum content length in approximate tokens. Content exceeding this limit is truncated."""
    max_uses: NotRequired[int]
    r"""Maximum number of web fetches per request. Once exceeded, the tool returns an error."""


class WebFetchPlugin(BaseModel):
    id: WebFetchPluginID

    allowed_domains: Optional[List[str]] = None
    r"""Only fetch from these domains."""

    blocked_domains: Optional[List[str]] = None
    r"""Never fetch from these domains."""

    max_content_tokens: Optional[int] = None
    r"""Maximum content length in approximate tokens. Content exceeding this limit is truncated."""

    max_uses: Optional[int] = None
    r"""Maximum number of web fetches per request. Once exceeded, the tool returns an error."""
