# 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 StageType(str, Enum):
    """
    Categorisation of stage behaviour within a retrieval flow.  These functional categories describe how stages transform the document stream:  - FILTER: N → ≤N documents (subset, same schema) - SORT: N → N documents (same docs, different order, same schema) - REDUCE: N → 1 document (aggregation, new schema) - APPLY: N → N or N*M documents (enrichment/expansion, expanded/new schema) - ENRICH: N → N documents (enrichment with computed fields)
    """

    """
    allowed enum values
    """
    FILTER = 'filter'
    SORT = 'sort'
    REDUCE = 'reduce'
    APPLY = 'apply'
    ENRICH = 'enrich'

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


