# 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 AuthType(str, Enum):
    """
    Authentication type for API calls.  Defines how credentials from the organization secrets vault should be injected into HTTP requests for authentication with external APIs.  Values:     NONE: No authentication (public APIs)      API_KEY: API key in header or query parameter         - Use for APIs that require API keys (Weather API, Maps, etc.)         - Header location recommended for security         - Requires: secret_ref, key, location         - Example: X-API-Key: abc123      BEARER: Bearer token authentication (OAuth 2.0, JWT)         - Use for APIs using Bearer tokens (GitHub, OpenAI, most modern APIs)         - Adds: Authorization: Bearer {secret_value}         - Requires: secret_ref         - Example: Authorization: Bearer ghp_abc123      BASIC: HTTP Basic authentication         - Use for APIs using Basic Auth (legacy systems)         - Secret format: \"username:password\"         - Adds: Authorization: Basic {base64(username:password)}         - Requires: secret_ref         - Example: Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=      CUSTOM_HEADER: Custom header with arbitrary name         - Use for APIs with non-standard auth headers         - Adds: {key}: {secret_value}         - Requires: secret_ref, key         - Example: X-Custom-Auth: token123  Examples:     - Bearer token for GitHub API: type=\"bearer\"     - API key for Weather API: type=\"api_key\", location=\"query\"     - Basic auth for legacy API: type=\"basic\"     - Custom header: type=\"custom_header\", key=\"X-Custom-Token\"
    """

    """
    allowed enum values
    """
    NONE = 'none'
    API_KEY = 'api_key'
    BEARER = 'bearer'
    BASIC = 'basic'
    CUSTOM_HEADER = 'custom_header'

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


