# coding: utf-8

"""
    BeeL Public API

    Public invoicing API for self-employed professionals in Spain with full VeriFactu support.  **Authentication:** This API uses **API Keys** for authentication. Endpoints are designed for external integrations, automation, and programmatic access.  For browser-based authentication, use the Private API (with Session Cookies).  **Key Features:** - VeriFactu regulatory compliance - Complete invoice management (standard, corrective, simplified) - Customer management - Tax and invoice series configuration - PDF generation - Email sending - Duplicate prevention (idempotency)  **Idempotency:** Creation endpoints (POST) support the `Idempotency-Key` header to prevent duplicates in case of retries.  **Identifiers:** - All resources use UUIDs for technical identification - Invoice numbers are human-readable and searchable 

    The version of the OpenAPI document: 1.0.0
    Contact: it@beel.es
    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 RegimeKey(str, Enum):
    """
    Regime key according to VeriFactu regulations: - 01: General regime operation - 02: Export - 03: Used goods, art, antiques - 04: Investment gold - 05: Travel agencies - 06: Group of entities - 07: Cash basis - 08: IPSI/IVA/IGIC operations - 09: Mediating agencies - 10: Third-party collections - 11: Local rental - 14: VAT pending in certifications - 15: VAT pending successive tract - 17: OSS and IOSS - 18: Equivalence surcharge - 19: REAGYP - 20: Simplified regime 
    """

    """
    allowed enum values
    """
    ENUM_01 = '01'
    ENUM_02 = '02'
    ENUM_03 = '03'
    ENUM_04 = '04'
    ENUM_05 = '05'
    ENUM_06 = '06'
    ENUM_07 = '07'
    ENUM_08 = '08'
    ENUM_09 = '09'
    ENUM_10 = '10'
    ENUM_11 = '11'
    ENUM_14 = '14'
    ENUM_15 = '15'
    ENUM_17 = '17'
    ENUM_18 = '18'
    ENUM_19 = '19'
    ENUM_20 = '20'

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


