# coding: utf-8

"""
    AI Stats Gateway API

    Programmatic access to the AI Stats AI Gateway. All endpoints forward requests to the best available provider for the specified model, and return normalised responses with clear structured metadata.

    The version of the OpenAPI document: 0.1.0
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self


class BenchmarkId(str, Enum):
    """
    Benchmark identifier.
    """

    """
    allowed enum values
    """
    ACE_MINUS_BENCH = 'ace-bench'
    AI2_MINUS_SCIARENA = 'ai2-sciarena'
    AI2D = 'ai2d'
    AIDANBENCH = 'aidanbench'
    AIDER_MINUS_POLYGLOT = 'aider-polyglot'
    AIME_MINUS_2024 = 'aime-2024'
    AIME_MINUS_2025 = 'aime-2025'
    ARC_MINUS_AGI_MINUS_1 = 'arc-agi-1'
    ARC_MINUS_AGI_MINUS_2 = 'arc-agi-2'
    AUTOLOGI = 'autologi'
    BALROG_MINUS_AI = 'balrog-ai'
    BIGCODEBENCH = 'bigcodebench'
    BROWSECOMP = 'browsecomp'
    BROWSECOMP_MINUS_LONG_MINUS_CONTEXT_MINUS_128K = 'browsecomp-long-context-128k'
    BROWSECOMP_MINUS_LONG_MINUS_CONTEXT_MINUS_256K = 'browsecomp-long-context-256k'
    C_MINUS_EVAL = 'c-eval'
    CHARTQA = 'chartqa'
    CHARXIV_MINUS_REASONING = 'charxiv-reasoning'
    CNMO_MINUS_2024 = 'cnmo-2024'
    CODEFORCES = 'codeforces'
    COLLIE = 'collie'
    CONFABULATIONS = 'confabulations'
    CREATIVE_MINUS_STORY_MINUS_WRITING = 'creative-story-writing'
    CSIMPLEQA = 'csimpleqa'
    DOCVQA = 'docvqa'
    DUBESOR_MINUS_LLM = 'dubesor-llm'
    ELIMINATION_MINUS_GAME = 'elimination-game'
    EQBENCH = 'eqbench'
    ERQA = 'erqa'
    EVALPLUS = 'evalplus'
    FACTS = 'facts'
    FACTS_MINUS_BENCHMARK_MINUS_SUITE = 'facts-benchmark-suite'
    FACTSCORE_MINUS_HALLUCIATION_MINUS_RATE = 'factscore-halluciation-rate'
    FICTION_MINUS_LIVE_MINUS_BENCH = 'fiction-live-bench'
    FRONTIER_MINUS_MATH = 'frontier-math'
    GALILEO_MINUS_AGENT = 'galileo-agent'
    GLOBAL_MINUS_PICA = 'global-pica'
    GPQA = 'gpqa'
    GPQA_MINUS_DIAMOND = 'gpqa-diamond'
    GRAPHWALKS_MINUS_BFS_MINUS_LT_MINUS_128K = 'graphwalks-bfs-lt-128k'
    GRAPHWALKS_MINUS_PARENTS_MINUS_LT_MINUS_128K = 'graphwalks-parents-lt-128k'
    GSM8K = 'gsm8k'
    HEALTHBENCH = 'healthbench'
    HEALTHBENCH_MINUS_CONCENSUS = 'healthbench-concensus'
    HEALTHBENCH_MINUS_HARD = 'healthbench-hard'
    HMMT_MINUS_2025 = 'hmmt-2025'
    HUMANEVAL = 'humaneval'
    HUMANITYS_MINUS_LAST_MINUS_EXAM = 'humanitys-last-exam'
    IF_MINUS_EVAL = 'if-eval'
    IQ_MINUS_BENCH = 'iq-bench'
    LISANBENCH = 'lisanbench'
    LIVEBENCH = 'livebench'
    LIVECODEBENCH_MINUS_PRO = 'livecodebench-pro'
    LIVECODEBENCH_MINUS_V5 = 'livecodebench-v5'
    LIVECODEBENCH_MINUS_V6 = 'livecodebench-v6'
    LMARENA_MINUS_TEXT = 'lmarena-text'
    LMARENA_MINUS_WEBDEV = 'lmarena-webdev'
    LONGFACT_MINUS_CONCEPTS_MINUS_HALLUCINATION_MINUS_RATE = 'longfact-concepts-hallucination-rate'
    LONGFACT_MINUS_OBJECTS_MINUS_HALLUCINATION_MINUS_RATE = 'longfact-objects-hallucination-rate'
    MATH = 'math'
    MATH_MINUS_500 = 'math-500'
    MATHARENA = 'matharena'
    MATHARENA_MINUS_APEX = 'matharena-apex'
    MATHVISTA = 'mathvista'
    MC_MINUS_BENCH = 'mc-bench'
    METR = 'metr'
    MISGUIDED_MINUS_ATTENTION = 'misguided-attention'
    MLE_MINUS_BENCH = 'mle-bench'
    MMLU = 'mmlu'
    MMLU_MINUS_PRO = 'mmlu-pro'
    MMLU_MINUS_REDUX = 'mmlu-redux'
    MMLU_MINUS_REDUX_MINUS_2_DOT_0 = 'mmlu-redux-2.0'
    MMMLU = 'mmmlu'
    MMMU = 'mmmu'
    MMMU_MINUS_PRO = 'mmmu-pro'
    MULTI_MINUS_CHALLENGE = 'multi-challenge'
    MULTI_PL_MINUS_E = 'multiPL-E'
    NYT_MINUS_CONNECTIONS = 'nyt-connections'
    OJBENCH = 'ojbench'
    OMNIDOCBENCH_MINUS_1_DOT_5 = 'omnidocbench-1.5'
    OPENAI_MINUS_MRCR_MINUS_2_MINUS_NEEDLE_MINUS_128K = 'openai-mrcr-2-needle-128k'
    OPENAI_MINUS_MRCR_MINUS_2_MINUS_NEEDLE_MINUS_256K = 'openai-mrcr-2-needle-256k'
    OPENAI_MINUS_MRCR_MINUS_8_MINUS_NEEDLE_MINUS_128K = 'openai-mrcr-8-needle-128k'
    OPENAI_MINUS_MRCR_MINUS_8_MINUS_NEEDLE_MINUS_1M = 'openai-mrcr-8-needle-1m'
    OS_MINUS_WORLD = 'os-world'
    PAPERBENCH = 'paperbench'
    PHYBENCH = 'phybench'
    POLYMATH_MINUS_EN = 'polymath-en'
    SCREENSPOT_MINUS_PRO = 'screenspot-pro'
    SEAL_MINUS_MULTICHALLENEGE = 'seal-multichallenege'
    SIMPLEBENCH = 'simplebench'
    SIMPLEQA = 'simpleqa'
    SMOLAGENTS_MINUS_LLM = 'smolagents-llm'
    SNAKE_MINUS_BENCH = 'snake-bench'
    SOLO_MINUS_BENCH = 'solo-bench'
    SUPERGPQA = 'supergpqa'
    SWE_MINUS_BENCH = 'swe-bench'
    SWE_MINUS_BENCH_MINUS_LIVE = 'swe-bench-live'
    SWE_MINUS_BENCH_MINUS_MULTILINGUAL = 'swe-bench-multilingual'
    SWE_MINUS_BENCH_MINUS_PRO = 'swe-bench-pro'
    SWE_MINUS_LANCER = 'swe-lancer'
    SYMFLOWER_MINUS_CODING = 'symflower-coding'
    TAU_MINUS_2_MINUS_AIRLINE = 'tau-2-airline'
    TAU_MINUS_2_MINUS_BENCH = 'tau-2-bench'
    TAU_MINUS_2_MINUS_RETAIL = 'tau-2-retail'
    TAU_MINUS_2_MINUS_TELECOM = 'tau-2-telecom'
    TAU_MINUS_BENCH = 'tau-bench'
    TAU_MINUS_BENCH_MINUS_AIRLINE = 'tau-bench-airline'
    TAU_MINUS_BENCH_MINUS_RETAIL = 'tau-bench-retail'
    TERMINAL_MINUS_BENCH = 'terminal-bench'
    TERMINAL_MINUS_BENCH_MINUS_2_DOT_0 = 'terminal-bench-2.0'
    THEMATIC_MINUS_GENERALISATION = 'thematic-generalisation'
    TRIVIAQA = 'triviaqa'
    USAMO_MINUS_2025 = 'usamo-2025'
    VENDING_MINUS_BENCH_MINUS_2 = 'vending-bench-2'
    VIDEO_MINUS_MMMU = 'video-mmmu'
    VIDEOMME = 'videomme'
    WEIRDML = 'weirdml'
    XLANG_MINUS_AGENT = 'xlang-agent'
    ZEBRALOGIC = 'zebralogic'

    @classmethod
    def from_json(cls, json_str: str) -> Self:
        """Create an instance of BenchmarkId from a JSON string"""
        return cls(json.loads(json_str))


