# 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 BlobType(str, Enum):
    """
    Type of blob content for schema mapping.  Determines how the blob content is processed and what extractors can operate on it. This is critical for the extraction pipeline to route content correctly.  Values:     auto: Automatically infer blob type from mime_type (recommended for files)     image: Image files (JPEG, PNG, WebP, BMP, TIFF, or GIF as static)     video: Video files (MP4, MOV, WebM, AVI, MKV, or GIF as animated frames)     audio: Audio files (MP3, WAV, FLAC, AAC, OGG)     text: Text files (TXT, MD, HTML, XML)     pdf: PDF documents     excel: Spreadsheet files (XLSX, XLS, CSV)  **GIF Special Handling**:     GIF files are unique - they can be processed as either IMAGE or VIDEO:      - As IMAGE: Single static embedding (first frame), no decomposition     - As VIDEO: Frame-by-frame decomposition with per-frame embeddings      When using \"auto\", GIFs default to IMAGE. To get frame-level processing     for animated GIFs, explicitly set blob_type to VIDEO.  Usage Guidelines:     - Use \"auto\" when syncing files with accurate mime_type headers     - Use explicit types when mime_type is missing or unreliable     - Use \"video\" for animated GIFs requiring frame-level search
    """

    """
    allowed enum values
    """
    AUTO = 'auto'
    IMAGE = 'image'
    VIDEO = 'video'
    AUDIO = 'audio'
    TEXT = 'text'
    PDF = 'pdf'
    EXCEL = 'excel'

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


