# coding: utf-8

"""
    STACKIT Key Management Service API

    This API provides endpoints for managing keys and key rings. 

    The version of the OpenAPI document: 1.0.0
    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 WrappingAlgorithm(str, Enum):
    """
    The wrapping algorithm used to wrap the key to import.
    """

    """
    allowed enum values
    """
    RSA_2048_OAEP_SHA256 = "rsa_2048_oaep_sha256"
    RSA_3072_OAEP_SHA256 = "rsa_3072_oaep_sha256"
    RSA_4096_OAEP_SHA256 = "rsa_4096_oaep_sha256"
    RSA_4096_OAEP_SHA512 = "rsa_4096_oaep_sha512"
    RSA_2048_OAEP_SHA256_AES_256_KEY_WRAP = "rsa_2048_oaep_sha256_aes_256_key_wrap"
    RSA_3072_OAEP_SHA256_AES_256_KEY_WRAP = "rsa_3072_oaep_sha256_aes_256_key_wrap"
    RSA_4096_OAEP_SHA256_AES_256_KEY_WRAP = "rsa_4096_oaep_sha256_aes_256_key_wrap"
    RSA_4096_OAEP_SHA512_AES_256_KEY_WRAP = "rsa_4096_oaep_sha512_aes_256_key_wrap"

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