# 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 BucketSchemaFieldType(str, Enum):
    """
    Supported data types for bucket schema fields.  Types fall into two categories:  1. **Metadata Types** (JSON types):    - Stored as object metadata    - Standard JSON-compatible types    - Not processed by extractors (unless explicitly mapped)    - Examples: string, number, boolean, date  2. **File Types** (blobs):    - Stored as files/blobs    - Processed by extractors    - Require file content (URL or base64)    - Examples: text, image, video, pdf  **GIF Special Handling**:     GIF files can be declared as either IMAGE or VIDEO type:      - As IMAGE: GIF is embedded as a single static image (first frame)     - As VIDEO: GIF is decomposed frame-by-frame with embeddings per frame      The multimodal extractor detects GIFs via MIME type (image/gif) and routes     them based on your schema declaration. Use VIDEO for animated GIFs where     frame-level search is needed, IMAGE for static/thumbnail use cases.  NOTE: For retriever input schemas that need to accept document references (e.g., \"find similar documents\"), use RetrieverInputSchemaFieldType instead, which includes all bucket types plus document_reference.
    """

    """
    allowed enum values
    """
    STRING = 'string'
    NUMBER = 'number'
    INTEGER = 'integer'
    FLOAT = 'float'
    BOOLEAN = 'boolean'
    OBJECT = 'object'
    ARRAY = 'array'
    DATE = 'date'
    DATETIME = 'datetime'
    TEXT = 'text'
    IMAGE = 'image'
    AUDIO = 'audio'
    VIDEO = 'video'
    PDF = 'pdf'
    EXCEL = 'excel'

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


