# coding: utf-8

"""
    The version of the OpenAPI document: 1.0
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import json
import pprint
import re  # noqa: F401
from aenum import Enum, no_arg





class NotificationType(str, Enum):
    """
    NotificationType
    """

    """
    allowed enum values
    """
    STAR = '*'
    TRANSACTIONS_DOT_STAR = 'transactions.*'
    TRANSACTIONS_DOT_INBOUND = 'transactions.inbound'
    TRANSACTIONS_DOT_OUTBOUND = 'transactions.outbound'
    CHALLENGES_DOT_STAR = 'challenges.*'
    CHALLENGES_DOT_ACCELERATE_TRANSACTION = 'challenges.accelerateTransaction'
    CHALLENGES_DOT_CANCEL_TRANSACTION = 'challenges.cancelTransaction'
    CHALLENGES_DOT_CHANGE_PIN = 'challenges.changePin'
    CHALLENGES_DOT_CONTRACT_EXECUTION = 'challenges.contractExecution'
    CHALLENGES_DOT_CREATE_TRANSACTION = 'challenges.createTransaction'
    CHALLENGES_DOT_CREATE_WALLET = 'challenges.createWallet'
    CHALLENGES_DOT_INITIALIZE = 'challenges.initialize'
    CHALLENGES_DOT_RESTORE_PIN = 'challenges.restorePin'
    CHALLENGES_DOT_SET_PIN = 'challenges.setPin'
    CHALLENGES_DOT_SET_SECURITY_QUESTIONS = 'challenges.setSecurityQuestions'
    CONTRACTS_DOT_STAR = 'contracts.*'
    CONTRACTS_DOT_EVENT_LOG = 'contracts.eventLog'
    MODULAR_WALLET_DOT_STAR = 'modularWallet.*'
    MODULAR_WALLET_DOT_USER_OPERATION = 'modularWallet.userOperation'
    MODULAR_WALLET_DOT_INBOUND_TRANSFER = 'modularWallet.inboundTransfer'
    MODULAR_WALLET_DOT_OUTBOUND_TRANSFER = 'modularWallet.outboundTransfer'
    TRAVEL_RULE_DOT_STAR = 'travelRule.*'
    TRAVEL_RULE_DOT_STATUS_UPDATE = 'travelRule.statusUpdate'
    TRAVEL_RULE_DOT_DENY = 'travelRule.deny'
    TRAVEL_RULE_DOT_APPROVE = 'travelRule.approve'
    RAMP_SESSION_DOT_STAR = 'rampSession.*'
    RAMP_SESSION_DOT_COMPLETED = 'rampSession.completed'
    RAMP_SESSION_DOT_DEPOSIT_RECEIVED = 'rampSession.depositReceived'
    RAMP_SESSION_DOT_EXPIRED = 'rampSession.expired'
    RAMP_SESSION_DOT_FAILED = 'rampSession.failed'
    RAMP_SESSION_DOT_KYC_APPROVED = 'rampSession.kycApproved'
    RAMP_SESSION_DOT_KYC_REJECTED = 'rampSession.kycRejected'
    RAMP_SESSION_DOT_KYC_SUBMITTED = 'rampSession.kycSubmitted'

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


