"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations from .booleancapability import BooleanCapability, BooleanCapabilityTypedDict from .enumcapability import EnumCapability, EnumCapabilityTypedDict from .rangecapability import RangeCapability, RangeCapabilityTypedDict from functools import partial from openrouter.types import BaseModel from openrouter.utils.unions import parse_open_union from pydantic import ConfigDict from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType CapabilityDescriptorTypedDict = TypeAliasType( "CapabilityDescriptorTypedDict", Union[ BooleanCapabilityTypedDict, EnumCapabilityTypedDict, RangeCapabilityTypedDict ], ) r"""A typed descriptor for one supported request parameter.""" class UnknownCapabilityDescriptor(BaseModel): r"""A CapabilityDescriptor variant the SDK doesn't recognize. Preserves the raw payload.""" type: Literal["UNKNOWN"] = "UNKNOWN" raw: Any is_unknown: Literal[True] = True model_config = ConfigDict(frozen=True) _CAPABILITY_DESCRIPTOR_VARIANTS: dict[str, Any] = { "enum": EnumCapability, "range": RangeCapability, "boolean": BooleanCapability, } CapabilityDescriptor = Annotated[ Union[ EnumCapability, RangeCapability, BooleanCapability, UnknownCapabilityDescriptor ], BeforeValidator( partial( parse_open_union, disc_key="type", variants=_CAPABILITY_DESCRIPTOR_VARIANTS, unknown_cls=UnknownCapabilityDescriptor, union_name="CapabilityDescriptor", ) ), ] r"""A typed descriptor for one supported request parameter."""