# coding: utf-8

"""
    Mixpeek API

    This is the Mixpeek API, providing access to various endpoints for data processing and retrieval.

    The version of the OpenAPI document: 1.3.0
    Contact: info@mixpeek.com
    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 GoogleModel(str, Enum):
    """
    Google Gemini model identifiers for LLM generation.  Gemini models excel at multimodal understanding with best-in-class video support. All models support text, images, video, audio, and PDFs.  Values:     GEMINI_2_0_FLASH: Latest Gemini 2.0 Flash model (recommended)         - Use for: Fastest generation, highest quality multimodal         - Context: 1M tokens         - Multimodal: Text, images, video (up to 2hr), audio, PDFs         - Cost: $0.075/1M input, $0.30/1M output         - Performance: 50-200ms per request (fastest multimodal model)         - When to use: Default choice for all Gemini use cases      GEMINI_2_0_FLASH_EXP: Experimental Gemini 2.0 Flash model         - Use for: Testing latest features before stable release         - Same capabilities as GEMINI_2_0_FLASH  Note: Gemini 1.5 models (gemini-1.5-flash, gemini-1.5-pro) were retired by Google in April 2025. Use GEMINI_2_0_FLASH instead.  Examples:     - Use GEMINI_2_0_FLASH for video scene understanding (best video support)     - Use GEMINI_2_0_FLASH for cost-effective PDF extraction (best price/performance)
    """

    """
    allowed enum values
    """
    GEMINI_MINUS_2_DOT_0_MINUS_FLASH = 'gemini-2.0-flash'
    GEMINI_MINUS_2_DOT_0_MINUS_FLASH_MINUS_EXP = 'gemini-2.0-flash-exp'

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


