# coding: utf-8

"""
    Generated by: https://openapi-generator.tech
"""

from datetime import date, datetime  # noqa: F401
import decimal  # noqa: F401
import functools  # noqa: F401
import io  # noqa: F401
import re  # noqa: F401
import typing  # noqa: F401
import typing_extensions  # noqa: F401
import uuid  # noqa: F401

import frozendict  # noqa: F401

from circle import schemas  # noqa: F401


class VerificationErrorCode(
    schemas.EnumBase,
    schemas.StrBase,
    schemas.NoneBase,
    schemas.Schema,
    schemas.NoneStrMixin
):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.

    Indicates the failure reason of the card verification. Only present on cards with failed verification. Possible values are [verification_failed, verification_fraud_detected, verification_denied, verification_not_supported_by_issuer, verification_stopped_by_issuer, card_failed, card_invalid, card_address_mismatch, card_zip_mismatch, card_cvv_invalid, card_expired, card_limit_violated, card_not_honored, card_cvv_required, credit_card_not_allowed, card_account_ineligible, card_network_unsupported]'
    """


    class MetaOapg:
        enum_value_to_name = {
            "verification_failed": "VERIFICATION_FAILED",
            "verification_fraud_detected": "VERIFICATION_FRAUD_DETECTED",
            "verification_denied": "VERIFICATION_DENIED",
            "verification_not_supported_by_issuer": "VERIFICATION_NOT_SUPPORTED_BY_ISSUER",
            "verification_stopped_by_issuer": "VERIFICATION_STOPPED_BY_ISSUER",
            "card_failed": "CARD_FAILED",
            "card_invalid": "CARD_INVALID",
            "card_address_mismatch": "CARD_ADDRESS_MISMATCH",
            "card_zip_mismatch": "CARD_ZIP_MISMATCH",
            "card_cvv_invalid": "CARD_CVV_INVALID",
            "card_expired": "CARD_EXPIRED",
            "card_limit_violated": "CARD_LIMIT_VIOLATED",
            "card_not_honored": "CARD_NOT_HONORED",
            "card_cvv_required": "CARD_CVV_REQUIRED",
            "credit_card_not_allowed": "CREDIT_CARD_NOT_ALLOWED",
            "card_account_ineligible": "CARD_ACCOUNT_INELIGIBLE",
            "card_network_unsupported": "CARD_NETWORK_UNSUPPORTED",
        }
    
    @schemas.classproperty
    def VERIFICATION_FAILED(cls):
        return cls("verification_failed")
    
    @schemas.classproperty
    def VERIFICATION_FRAUD_DETECTED(cls):
        return cls("verification_fraud_detected")
    
    @schemas.classproperty
    def VERIFICATION_DENIED(cls):
        return cls("verification_denied")
    
    @schemas.classproperty
    def VERIFICATION_NOT_SUPPORTED_BY_ISSUER(cls):
        return cls("verification_not_supported_by_issuer")
    
    @schemas.classproperty
    def VERIFICATION_STOPPED_BY_ISSUER(cls):
        return cls("verification_stopped_by_issuer")
    
    @schemas.classproperty
    def CARD_FAILED(cls):
        return cls("card_failed")
    
    @schemas.classproperty
    def CARD_INVALID(cls):
        return cls("card_invalid")
    
    @schemas.classproperty
    def CARD_ADDRESS_MISMATCH(cls):
        return cls("card_address_mismatch")
    
    @schemas.classproperty
    def CARD_ZIP_MISMATCH(cls):
        return cls("card_zip_mismatch")
    
    @schemas.classproperty
    def CARD_CVV_INVALID(cls):
        return cls("card_cvv_invalid")
    
    @schemas.classproperty
    def CARD_EXPIRED(cls):
        return cls("card_expired")
    
    @schemas.classproperty
    def CARD_LIMIT_VIOLATED(cls):
        return cls("card_limit_violated")
    
    @schemas.classproperty
    def CARD_NOT_HONORED(cls):
        return cls("card_not_honored")
    
    @schemas.classproperty
    def CARD_CVV_REQUIRED(cls):
        return cls("card_cvv_required")
    
    @schemas.classproperty
    def CREDIT_CARD_NOT_ALLOWED(cls):
        return cls("credit_card_not_allowed")
    
    @schemas.classproperty
    def CARD_ACCOUNT_INELIGIBLE(cls):
        return cls("card_account_ineligible")
    
    @schemas.classproperty
    def CARD_NETWORK_UNSUPPORTED(cls):
        return cls("card_network_unsupported")


    def __new__(
        cls,
        *_args: typing.Union[None, str, ],
        _configuration: typing.Optional[schemas.Configuration] = None,
    ) -> 'VerificationErrorCode':
        return super().__new__(
            cls,
            *_args,
            _configuration=_configuration,
        )
