from __future__ import absolute_import

from enum import Enum


class Currency(str, Enum):
    ALL = 'ALL'
    STN = 'STN'
    EEK = 'EEK'
    BHD = 'BHD'
    SCR = 'SCR'
    DJF = 'DJF'
    EGP = 'EGP'
    MDL = 'MDL'
    MZN = 'MZN'
    BND = 'BND'
    ZMK = 'ZMK'
    SHP = 'SHP'
    LBP = 'LBP'
    AWG = 'AWG'
    JMD = 'JMD'
    KES = 'KES'
    BYN = 'BYN'
    KHR = 'KHR'
    LAK = 'LAK'
    MVR = 'MVR'
    AOA = 'AOA'
    TJS = 'TJS'
    SVC = 'SVC'
    GNF = 'GNF'
    BRL = 'BRL'
    MOP = 'MOP'
    BOB = 'BOB'
    CDF = 'CDF'
    NAD = 'NAD'
    LYD = 'LYD'
    VUV = 'VUV'
    QAR = 'QAR'
    CLP = 'CLP'
    HRK = 'HRK'
    ISK = 'ISK'
    FKP = 'FKP'
    XCD = 'XCD'
    NOK = 'NOK'
    CUP = 'CUP'
    VND = 'VND'
    PEN = 'PEN'
    KMF = 'KMF'
    LVL = 'LVL'
    MMK = 'MMK'
    TRY = 'TRY'
    VEF = 'VEF'
    AUD = 'AUD'
    TWD = 'TWD'
    PKR = 'PKR'
    SLL = 'SLL'
    BGN = 'BGN'
    LRD = 'LRD'
    LKR = 'LKR'
    XAF = 'XAF'
    JOD = 'JOD'
    ANG = 'ANG'
    BSD = 'BSD'
    CAD = 'CAD'
    GIP = 'GIP'
    MNT = 'MNT'
    LTL = 'LTL'
    BBD = 'BBD'
    CLF = 'CLF'
    BWP = 'BWP'
    COP = 'COP'
    PHP = 'PHP'
    HUF = 'HUF'
    FJD = 'FJD'
    MWK = 'MWK'
    THB = 'THB'
    XPF = 'XPF'
    RSD = 'RSD'
    SAR = 'SAR'
    UYU = 'UYU'
    BZD = 'BZD'
    SYP = 'SYP'
    GMD = 'GMD'
    SZL = 'SZL'
    SBD = 'SBD'
    ETB = 'ETB'
    CHF = 'CHF'
    MXN = 'MXN'
    ARS = 'ARS'
    GTQ = 'GTQ'
    GHS = 'GHS'
    NIO = 'NIO'
    JPY = 'JPY'
    BDT = 'BDT'
    UZS = 'UZS'
    SOS = 'SOS'
    BTN = 'BTN'
    NZD = 'NZD'
    TZS = 'TZS'
    IQD = 'IQD'
    MGA = 'MGA'
    DZD = 'DZD'
    GYD = 'GYD'
    USD = 'USD'
    KWD = 'KWD'
    CNY = 'CNY'
    PYG = 'PYG'
    SGD = 'SGD'
    KZT = 'KZT'
    PGK = 'PGK'
    AMD = 'AMD'
    GBP = 'GBP'
    AFN = 'AFN'
    CRC = 'CRC'
    XOF = 'XOF'
    YER = 'YER'
    MRU = 'MRU'
    DKK = 'DKK'
    TOP = 'TOP'
    INR = 'INR'
    SDG = 'SDG'
    DOP = 'DOP'
    ZWL = 'ZWL'
    UGX = 'UGX'
    SEK = 'SEK'
    LSL = 'LSL'
    MYR = 'MYR'
    TMT = 'TMT'
    OMR = 'OMR'
    BMD = 'BMD'
    KRW = 'KRW'
    HKD = 'HKD'
    KGS = 'KGS'
    BAM = 'BAM'
    NGN = 'NGN'
    ILS = 'ILS'
    MUR = 'MUR'
    RON = 'RON'
    TND = 'TND'
    AED = 'AED'
    PAB = 'PAB'
    NPR = 'NPR'
    TTD = 'TTD'
    RWF = 'RWF'
    HTG = 'HTG'
    IDR = 'IDR'
    EUR = 'EUR'
    KYD = 'KYD'
    IRR = 'IRR'
    KPW = 'KPW'
    MKD = 'MKD'
    SRD = 'SRD'
    HNL = 'HNL'
    AZN = 'AZN'
    ERN = 'ERN'
    CZK = 'CZK'
    CVE = 'CVE'
    BIF = 'BIF'
    MAD = 'MAD'
    RUB = 'RUB'
    UAH = 'UAH'
    WST = 'WST'
    PLN = 'PLN'
    ZAR = 'ZAR'
    GEL = 'GEL'
    ZMW = 'ZMW'


class Country(str, Enum):
    AF = 'AF'
    AX = 'AX'
    AL = 'AL'
    DZ = 'DZ'
    AS = 'AS'
    AD = 'AD'
    AO = 'AO'
    AI = 'AI'
    AG = 'AG'
    AR = 'AR'
    AM = 'AM'
    AW = 'AW'
    AC = 'AC'
    AU = 'AU'
    AQ = 'AQ'
    AT = 'AT'
    AZ = 'AZ'
    BS = 'BS'
    BH = 'BH'
    BD = 'BD'
    BB = 'BB'
    BY = 'BY'
    BE = 'BE'
    BZ = 'BZ'
    BJ = 'BJ'
    BM = 'BM'
    BT = 'BT'
    BO = 'BO'
    BQ = 'BQ'
    BA = 'BA'
    BW = 'BW'
    BV = 'BV'
    BR = 'BR'
    IO = 'IO'
    VG = 'VG'
    BN = 'BN'
    BG = 'BG'
    BF = 'BF'
    BI = 'BI'
    KH = 'KH'
    CM = 'CM'
    CA = 'CA'
    CV = 'CV'
    KY = 'KY'
    CF = 'CF'
    TD = 'TD'
    CL = 'CL'
    CN = 'CN'
    TW = 'TW'
    CX = 'CX'
    PF = 'PF'
    CC = 'CC'
    CO = 'CO'
    KM = 'KM'
    CG = 'CG'
    CD = 'CD'
    CK = 'CK'
    CR = 'CR'
    CI = 'CI'
    HR = 'HR'
    CU = 'CU'
    CW = 'CW'
    CY = 'CY'
    CZ = 'CZ'
    DK = 'DK'
    DJ = 'DJ'
    DM = 'DM'
    DO = 'DO'
    EC = 'EC'
    EG = 'EG'
    SV = 'SV'
    GQ = 'GQ'
    ER = 'ER'
    EE = 'EE'
    SZ = 'SZ'
    ET = 'ET'
    FK = 'FK'
    FO = 'FO'
    FJ = 'FJ'
    FI = 'FI'
    FR = 'FR'
    GF = 'GF'
    TF = 'TF'
    GA = 'GA'
    GM = 'GM'
    GE = 'GE'
    DE = 'DE'
    GH = 'GH'
    GI = 'GI'
    GR = 'GR'
    GL = 'GL'
    GD = 'GD'
    GP = 'GP'
    GU = 'GU'
    GT = 'GT'
    GG = 'GG'
    GN = 'GN'
    GW = 'GW'
    GY = 'GY'
    HT = 'HT'
    HM = 'HM'
    HN = 'HN'
    HK = 'HK'
    HU = 'HU'
    IS = 'IS'
    IN = 'IN'
    ID = 'ID'
    IR = 'IR'
    IQ = 'IQ'
    IE = 'IE'
    IM = 'IM'
    IL = 'IL'
    IT = 'IT'
    JM = 'JM'
    JP = 'JP'
    JE = 'JE'
    JO = 'JO'
    KZ = 'KZ'
    KE = 'KE'
    KI = 'KI'
    KP = 'KP'
    KR = 'KR'
    KW = 'KW'
    KG = 'KG'
    LA = 'LA'
    LV = 'LV'
    LB = 'LB'
    LS = 'LS'
    LR = 'LR'
    LY = 'LY'
    LI = 'LI'
    LT = 'LT'
    LU = 'LU'
    MO = 'MO'
    MK = 'MK'
    MG = 'MG'
    MW = 'MW'
    MY = 'MY'
    MV = 'MV'
    ML = 'ML'
    MT = 'MT'
    MH = 'MH'
    MQ = 'MQ'
    MR = 'MR'
    MU = 'MU'
    YT = 'YT'
    MX = 'MX'
    FM = 'FM'
    MD = 'MD'
    MC = 'MC'
    MN = 'MN'
    ME = 'ME'
    MS = 'MS'
    MA = 'MA'
    MZ = 'MZ'
    MM = 'MM'
    NA = 'NA'
    NR = 'NR'
    NP = 'NP'
    NL = 'NL'
    AN = 'AN'
    NC = 'NC'
    NZ = 'NZ'
    NI = 'NI'
    NE = 'NE'
    NG = 'NG'
    NU = 'NU'
    NF = 'NF'
    MP = 'MP'
    NO = 'NO'
    OM = 'OM'
    PK = 'PK'
    PW = 'PW'
    PA = 'PA'
    PG = 'PG'
    PY = 'PY'
    PE = 'PE'
    PH = 'PH'
    PN = 'PN'
    PL = 'PL'
    PT = 'PT'
    PR = 'PR'
    QA = 'QA'
    RE = 'RE'
    RO = 'RO'
    RU = 'RU'
    RW = 'RW'
    BL = 'BL'
    SH = 'SH'
    KN = 'KN'
    LC = 'LC'
    MF = 'MF'
    PM = 'PM'
    VC = 'VC'
    WS = 'WS'
    SM = 'SM'
    ST = 'ST'
    SA = 'SA'
    SN = 'SN'
    RS = 'RS'
    SC = 'SC'
    SL = 'SL'
    SG = 'SG'
    SX = 'SX'
    SK = 'SK'
    SI = 'SI'
    SB = 'SB'
    SO = 'SO'
    ZA = 'ZA'
    GS = 'GS'
    SS = 'SS'
    ES = 'ES'
    LK = 'LK'
    SD = 'SD'
    SR = 'SR'
    SJ = 'SJ'
    SE = 'SE'
    CH = 'CH'
    SY = 'SY'
    TJ = 'TJ'
    TZ = 'TZ'
    TH = 'TH'
    TL = 'TL'
    TG = 'TG'
    TK = 'TK'
    TO = 'TO'
    TT = 'TT'
    TA = 'TA'
    TN = 'TN'
    TR = 'TR'
    TM = 'TM'
    TC = 'TC'
    TV = 'TV'
    VI = 'VI'
    UG = 'UG'
    UA = 'UA'
    AE = 'AE'
    GB = 'GB'
    US = 'US'
    UY = 'UY'
    UZ = 'UZ'
    VU = 'VU'
    VA = 'VA'
    VE = 'VE'
    VN = 'VN'
    UM = 'UM'
    WF = 'WF'
    EH = 'EH'
    YE = 'YE'
    ZM = 'ZM'
    ZW = 'ZW'
    PS = 'PS'
    QZ = 'QZ'


class PaymentSourceType(str, Enum):
    CARD = 'card'
    ID = 'id'
    NETWORK_TOKEN = 'network_token'
    TOKEN = 'token'
    CUSTOMER = 'customer'
    D_LOCAL = 'dlocal'
    KLARNA = 'klarna'
    CURRENCY_ACCOUNT = 'currency_account'
    BOLETO = 'boleto'
    FAWRY = 'fawry'
    GIROPAY = 'giropay'
    IDEAL = 'ideal'
    OXXO = 'oxxo'
    PAGOFACIL = 'pagofacil'
    RAPIPAGO = 'rapipago'
    SOFORT = 'sofort'
    KNET = 'knet'
    QPAY = 'qpay'
    ALIPAY = 'alipay'
    PAYPAL = 'paypal'
    MULTIBANCO = 'multibanco'
    EPS = 'eps'
    ILLICADO = 'illicado'
    POLI = 'poli'
    P24 = 'p24'
    BENEFITPAY = 'benefitpay'
    BANCONTACT = 'bancontact'
    TAMARA = 'tamara'
    PROVIDER_TOKEN = 'provider_token'
    BANK_ACCOUNT = 'bank_account'
    WECHATPAY = 'wechatpay'
    ALIPAY_HK = 'alipay_hk'
    ALIPAY_CN = 'alipay_cn'
    ALIPAY_PLUS = 'alipay_plus'
    GCASH = 'gcash'
    DANA = 'dana'
    KAKAOPAY = 'kakaopay'
    TRUEMONEY = 'truemoney'
    TNG = 'tng'
    AFTERPAY = 'afterpay'
    BENEFIT = 'benefit'
    MBWAY = 'mbway'
    POSTFINANCE = 'postfinance'
    STCPAY = 'stcpay'
    ALMA = 'alma'
    TRUSTLY = 'trustly'
    CVCONNECT = 'cvconnect'
    SEPA = 'sepa'
    ACH = 'ach'
    BIZUM = 'bizum'
    OCTOPUS = 'octopus'
    PLAID = 'plaid'
    SEQURA = 'sequra'


class ChallengeIndicator(str, Enum):
    NO_PREFERENCE = 'no_preference'
    NO_CHALLENGE_REQUESTED = 'no_challenge_requested'
    CHALLENGE_REQUESTED = 'challenge_requested'
    CHALLENGE_REQUESTED_MANDATE = 'challenge_requested_mandate'


class InstrumentType(str, Enum):
    BANK_ACCOUNT = 'bank_account'
    TOKEN = 'token'
    CARD = 'card'
    SEPA = 'sepa'
    CARD_TOKEN = 'card_token'


class AccountType(str, Enum):
    SAVINGS = 'savings'
    CURRENT = 'current'
    CASH = 'cash'


class AccountHolderType(str, Enum):
    INDIVIDUAL = 'individual'
    CORPORATE = 'corporate'
    INSTRUMENT = 'instrument'


class AccountHolderIdentificationType(str, Enum):
    PASSPORT = 'passport'
    DRIVING_LICENSE = 'driving_licence'
    NATIONAL_ID = 'national_id'
    COMPANY_REGISTRATION = 'company_registration'
    TAX_ID = 'tax_id'


class DocumentType(str, Enum):
    PASSPORT = 'passport'
    NATIONAL_IDENTITY_CARD = 'national_identity_card'
    DRIVING_LICENSE = 'driving_license'
    CITIZEN_CARD = 'citizen_card'
    RESIDENCE_PERMIT = 'residence_permit'
    ELECTORAL_ID = 'electoral_id'


class AccountChangeIndicatorType(str, Enum):
    THIS_TRANSACTION = "this_transaction"
    LESS_THAN_THIRTY_DAYS = "less_than_thirty_days"
    THIRTY_TO_SIXTY_DAYS = "thirty_to_sixty_days"
    MORE_THAN_SIXTY_DAYS = "more_than_sixty_days"


class AccountPasswordChangeIndicatorType(str, Enum):
    NO_CHANGE = "no_change"
    THIS_TRANSACTION = "this_transaction"
    LESS_THAN_THIRTY_DAYS = "less_than_thirty_days"
    THIRTY_TO_SIXTY_DAYS = "thirty_to_sixty_days"
    MORE_THAN_SIXTY_DAYS = "more_than_sixty_days"


class AccountTypeCardProductType(str, Enum):
    CREDIT = "credit"
    DEBIT = "debit"
    NOT_APPLICABLE = "not_applicable"


class CardholderAccountAgeIndicatorType(str, Enum):
    LESS_THAN_THIRTY_DAYS = "less_than_thirty_days"
    MORE_THAN_SIXTY_DAYS = "more_than_sixty_days"
    NO_ACCOUNT = "no_account"
    THIRTY_TO_SIXTY_DAYS = "thirty_to_sixty_days"
    THIS_TRANSACTION = "this_transaction"
