# 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 ComputeTier(str, Enum):
    """
    Available compute tiers for namespace workloads.  Compute tiers determine the infrastructure resources allocated to a namespace for ingestion pipelines, clustering, and other data processing operations.  Tiers:     SHARED: Multi-tenant infrastructure with dynamic resource allocation.         - Best for: Development, testing, low-volume production workloads         - Resources: Shared CPU and memory pool         - Cost: Lowest cost option, pay-per-use credits         - SLA: Best-effort availability      DEDICATED_CPU: Single-tenant CPU compute nodes.         - Best for: Production workloads requiring consistent performance         - Resources: Reserved CPU cores and memory         - Cost: Fixed monthly cost plus usage credits         - SLA: 99.9% uptime guarantee      DEDICATED_GPU: Single-tenant GPU-accelerated compute nodes.         - Best for: Video processing, embedding generation, ML inference         - Resources: Reserved GPU(s), CPU cores, and memory         - Cost: Premium pricing, fixed monthly cost plus usage credits         - SLA: 99.9% uptime guarantee  Examples:     - Use SHARED for development and staging environments     - Use DEDICATED_CPU for production document processing pipelines     - Use DEDICATED_GPU for large-scale video ingestion and analysis
    """

    """
    allowed enum values
    """
    SHARED = 'shared'
    DEDICATED_CPU = 'dedicated_cpu'
    DEDICATED_GPU = 'dedicated_gpu'

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


