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'


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'
    BALOTO = 'baloto'
    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'
    POLI = 'poli'
    P24 = 'p24'
    BENEFITPAY = 'benefitpay'
    BANCONTACT = 'bancontact'


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',
