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

from __future__ import annotations
from openrouter.types import UnrecognizedStr
from openrouter.utils import validate_open_enum
from pydantic.functional_validators import PlainValidator
from typing import Literal, Union
from typing_extensions import Annotated, TypeAliasType


Schema5Enum = Union[
    Literal[
        "AI21",
        "AionLabs",
        "Alibaba",
        "Ambient",
        "Amazon Bedrock",
        "Amazon Nova",
        "Anthropic",
        "Arcee AI",
        "AtlasCloud",
        "Avian",
        "Azure",
        "BaseTen",
        "BytePlus",
        "Black Forest Labs",
        "Cerebras",
        "Chutes",
        "Cirrascale",
        "Clarifai",
        "Cloudflare",
        "Cohere",
        "Crusoe",
        "DeepInfra",
        "DeepSeek",
        "Featherless",
        "Fireworks",
        "Friendli",
        "GMICloud",
        "Google",
        "Google AI Studio",
        "Groq",
        "Hyperbolic",
        "Inception",
        "Inceptron",
        "InferenceNet",
        "Infermatic",
        "Inflection",
        "Liquid",
        "Mara",
        "Mancer 2",
        "Minimax",
        "ModelRun",
        "Mistral",
        "Modular",
        "Moonshot AI",
        "Morph",
        "NCompass",
        "Nebius",
        "NextBit",
        "Novita",
        "Nvidia",
        "OpenAI",
        "OpenInference",
        "Parasail",
        "Perplexity",
        "Phala",
        "Relace",
        "SambaNova",
        "Seed",
        "SiliconFlow",
        "Sourceful",
        "StepFun",
        "Stealth",
        "StreamLake",
        "Switchpoint",
        "Together",
        "Upstage",
        "Venice",
        "WandB",
        "Xiaomi",
        "xAI",
        "Z.AI",
        "FakeProvider",
    ],
    UnrecognizedStr,
]


Schema5TypedDict = TypeAliasType("Schema5TypedDict", Union[Schema5Enum, str])


Schema5 = TypeAliasType(
    "Schema5",
    Union[Annotated[Schema5Enum, PlainValidator(validate_open_enum(False))], str],
)
