# coding: utf-8

"""
    Synctera API

    <h2>Let's build something great.</h2><p>Welcome to the official reference documentation for Synctera APIs. Our APIs are the best way to automate your company's banking needs and are designed to be easy to understand and implement.</p><p>We're continuously growing this library and what you see here is just the start, but if you need something specific or have a question, <a class='text-blue-600' href='https://synctera.com/contact' target='_blank' rel='noreferrer'>contact us</a>.</p>   # noqa: E501

    The version of the OpenAPI document: 0.32.0.dev6
    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 synctera_client import schemas  # noqa: F401


class InternalTransferTransactionSubtypes(
    schemas.EnumBase,
    schemas.StrSchema
):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.

    The set of valid INTERNAL_TRANSFER transaction subtypes
    """


    class MetaOapg:
        enum_value_to_name = {
            "ACCOUNT_DECREASE_LIMIT": "ACCOUNT_DECREASE_LIMIT",
            "ACCOUNT_DECREASE_LIMIT_REVERSAL": "ACCOUNT_DECREASE_LIMIT_REVERSAL",
            "ACCOUNT_INCREASE_LIMIT": "ACCOUNT_INCREASE_LIMIT",
            "ACCOUNT_INCREASE_LIMIT_REVERSAL": "ACCOUNT_INCREASE_LIMIT_REVERSAL",
            "ACCOUNT_TO_ACCOUNT": "ACCOUNT_TO_ACCOUNT",
            "ACCOUNT_TO_ACCOUNT_REVERSAL": "ACCOUNT_TO_ACCOUNT_REVERSAL",
            "ACH_CREDIT_SWEEP": "ACH_CREDIT_SWEEP",
            "ACH_CREDIT_SWEEP_REVERSAL": "ACH_CREDIT_SWEEP_REVERSAL",
            "ACH_DEBIT_SWEEP": "ACH_DEBIT_SWEEP",
            "ACH_DEBIT_SWEEP_REVERSAL": "ACH_DEBIT_SWEEP_REVERSAL",
            "ACH_FLOAT_TRANSFER": "ACH_FLOAT_TRANSFER",
            "ACH_FLOAT_TRANSFER_REVERSAL": "ACH_FLOAT_TRANSFER_REVERSAL",
            "ACH_SWEEP": "ACH_SWEEP",
            "ACH_SWEEP_REVERSAL": "ACH_SWEEP_REVERSAL",
            "CASHBACK": "CASHBACK",
            "CASHBACK_REVERSAL": "CASHBACK_REVERSAL",
            "EXCHANGE_RATE_DIFFERENCE_GAIN": "EXCHANGE_RATE_DIFFERENCE_GAIN",
            "EXCHANGE_RATE_DIFFERENCE_GAIN_REVERSAL": "EXCHANGE_RATE_DIFFERENCE_GAIN_REVERSAL",
            "EXCHANGE_RATE_DIFFERENCE_LOSS": "EXCHANGE_RATE_DIFFERENCE_LOSS",
            "EXCHANGE_RATE_DIFFERENCE_LOSS_REVERSAL": "EXCHANGE_RATE_DIFFERENCE_LOSS_REVERSAL",
            "FEE": "FEE",
            "FEE_REVERSAL": "FEE_REVERSAL",
            "INCOMING_WIRE": "INCOMING_WIRE",
            "INCOMING_WIRE_REVERSAL": "INCOMING_WIRE_REVERSAL",
            "INTEREST_CHARGED": "INTEREST_CHARGED",
            "INTEREST_CHARGED_REVERSAL": "INTEREST_CHARGED_REVERSAL",
            "INTEREST_PAYOUT": "INTEREST_PAYOUT",
            "INTEREST_PAYOUT_REVERSAL": "INTEREST_PAYOUT_REVERSAL",
            "JIT_FUND": "JIT_FUND",
            "JIT_FUND_REVERSAL": "JIT_FUND_REVERSAL",
            "LOAN_DISBURSEMENT": "LOAN_DISBURSEMENT",
            "LOAN_DISBURSEMENT_REVERSAL": "LOAN_DISBURSEMENT_REVERSAL",
            "LOAN_FUNDING": "LOAN_FUNDING",
            "LOAN_FUNDING_REVERSAL": "LOAN_FUNDING_REVERSAL",
            "LOC_USAGE": "LOC_USAGE",
            "LOC_USAGE_REVERSAL": "LOC_USAGE_REVERSAL",
            "MANUAL_ADJUSTMENT": "MANUAL_ADJUSTMENT",
            "MANUAL_ADJUSTMENT_REVERSAL": "MANUAL_ADJUSTMENT_REVERSAL",
            "MANUAL_CARD_SWEEP": "MANUAL_CARD_SWEEP",
            "MANUAL_CARD_SWEEP_REVERSAL": "MANUAL_CARD_SWEEP_REVERSAL",
            "OUTGOING_INTERNATIONAL_REMITTANCE": "OUTGOING_INTERNATIONAL_REMITTANCE",
            "OUTGOING_INTERNATIONAL_REMITTANCE_REVERSAL": "OUTGOING_INTERNATIONAL_REMITTANCE_REVERSAL",
            "PROGRAM_DECREASE": "PROGRAM_DECREASE",
            "PROGRAM_DECREASE_REVERSAL": "PROGRAM_DECREASE_REVERSAL",
            "PROGRAM_EXPANSION": "PROGRAM_EXPANSION",
            "PROGRAM_EXPANSION_REVERSAL": "PROGRAM_EXPANSION_REVERSAL",
            "PROMOTIONAL_CREDIT": "PROMOTIONAL_CREDIT",
            "PROMOTIONAL_CREDIT_REVERSAL": "PROMOTIONAL_CREDIT_REVERSAL",
            "REPAYMENT": "REPAYMENT",
            "REPAYMENT_REVERSAL": "REPAYMENT_REVERSAL",
            "SIGN_UP_BONUS": "SIGN_UP_BONUS",
            "SIGN_UP_BONUS_REVERSAL": "SIGN_UP_BONUS_REVERSAL",
            "SUBSCRIPTION_FEE": "SUBSCRIPTION_FEE",
            "SUBSCRIPTION_FEE_REVERSAL": "SUBSCRIPTION_FEE_REVERSAL",
            "TRANSFER_FEE": "TRANSFER_FEE",
            "TRANSFER_FEE_REVERSAL": "TRANSFER_FEE_REVERSAL",
            "TRANSFER_FEE_REVERSAL_REVERSAL": "TRANSFER_FEE_REVERSAL_REVERSAL",
        }
    
    @schemas.classproperty
    def ACCOUNT_DECREASE_LIMIT(cls):
        return cls("ACCOUNT_DECREASE_LIMIT")
    
    @schemas.classproperty
    def ACCOUNT_DECREASE_LIMIT_REVERSAL(cls):
        return cls("ACCOUNT_DECREASE_LIMIT_REVERSAL")
    
    @schemas.classproperty
    def ACCOUNT_INCREASE_LIMIT(cls):
        return cls("ACCOUNT_INCREASE_LIMIT")
    
    @schemas.classproperty
    def ACCOUNT_INCREASE_LIMIT_REVERSAL(cls):
        return cls("ACCOUNT_INCREASE_LIMIT_REVERSAL")
    
    @schemas.classproperty
    def ACCOUNT_TO_ACCOUNT(cls):
        return cls("ACCOUNT_TO_ACCOUNT")
    
    @schemas.classproperty
    def ACCOUNT_TO_ACCOUNT_REVERSAL(cls):
        return cls("ACCOUNT_TO_ACCOUNT_REVERSAL")
    
    @schemas.classproperty
    def ACH_CREDIT_SWEEP(cls):
        return cls("ACH_CREDIT_SWEEP")
    
    @schemas.classproperty
    def ACH_CREDIT_SWEEP_REVERSAL(cls):
        return cls("ACH_CREDIT_SWEEP_REVERSAL")
    
    @schemas.classproperty
    def ACH_DEBIT_SWEEP(cls):
        return cls("ACH_DEBIT_SWEEP")
    
    @schemas.classproperty
    def ACH_DEBIT_SWEEP_REVERSAL(cls):
        return cls("ACH_DEBIT_SWEEP_REVERSAL")
    
    @schemas.classproperty
    def ACH_FLOAT_TRANSFER(cls):
        return cls("ACH_FLOAT_TRANSFER")
    
    @schemas.classproperty
    def ACH_FLOAT_TRANSFER_REVERSAL(cls):
        return cls("ACH_FLOAT_TRANSFER_REVERSAL")
    
    @schemas.classproperty
    def ACH_SWEEP(cls):
        return cls("ACH_SWEEP")
    
    @schemas.classproperty
    def ACH_SWEEP_REVERSAL(cls):
        return cls("ACH_SWEEP_REVERSAL")
    
    @schemas.classproperty
    def CASHBACK(cls):
        return cls("CASHBACK")
    
    @schemas.classproperty
    def CASHBACK_REVERSAL(cls):
        return cls("CASHBACK_REVERSAL")
    
    @schemas.classproperty
    def EXCHANGE_RATE_DIFFERENCE_GAIN(cls):
        return cls("EXCHANGE_RATE_DIFFERENCE_GAIN")
    
    @schemas.classproperty
    def EXCHANGE_RATE_DIFFERENCE_GAIN_REVERSAL(cls):
        return cls("EXCHANGE_RATE_DIFFERENCE_GAIN_REVERSAL")
    
    @schemas.classproperty
    def EXCHANGE_RATE_DIFFERENCE_LOSS(cls):
        return cls("EXCHANGE_RATE_DIFFERENCE_LOSS")
    
    @schemas.classproperty
    def EXCHANGE_RATE_DIFFERENCE_LOSS_REVERSAL(cls):
        return cls("EXCHANGE_RATE_DIFFERENCE_LOSS_REVERSAL")
    
    @schemas.classproperty
    def FEE(cls):
        return cls("FEE")
    
    @schemas.classproperty
    def FEE_REVERSAL(cls):
        return cls("FEE_REVERSAL")
    
    @schemas.classproperty
    def INCOMING_WIRE(cls):
        return cls("INCOMING_WIRE")
    
    @schemas.classproperty
    def INCOMING_WIRE_REVERSAL(cls):
        return cls("INCOMING_WIRE_REVERSAL")
    
    @schemas.classproperty
    def INTEREST_CHARGED(cls):
        return cls("INTEREST_CHARGED")
    
    @schemas.classproperty
    def INTEREST_CHARGED_REVERSAL(cls):
        return cls("INTEREST_CHARGED_REVERSAL")
    
    @schemas.classproperty
    def INTEREST_PAYOUT(cls):
        return cls("INTEREST_PAYOUT")
    
    @schemas.classproperty
    def INTEREST_PAYOUT_REVERSAL(cls):
        return cls("INTEREST_PAYOUT_REVERSAL")
    
    @schemas.classproperty
    def JIT_FUND(cls):
        return cls("JIT_FUND")
    
    @schemas.classproperty
    def JIT_FUND_REVERSAL(cls):
        return cls("JIT_FUND_REVERSAL")
    
    @schemas.classproperty
    def LOAN_DISBURSEMENT(cls):
        return cls("LOAN_DISBURSEMENT")
    
    @schemas.classproperty
    def LOAN_DISBURSEMENT_REVERSAL(cls):
        return cls("LOAN_DISBURSEMENT_REVERSAL")
    
    @schemas.classproperty
    def LOAN_FUNDING(cls):
        return cls("LOAN_FUNDING")
    
    @schemas.classproperty
    def LOAN_FUNDING_REVERSAL(cls):
        return cls("LOAN_FUNDING_REVERSAL")
    
    @schemas.classproperty
    def LOC_USAGE(cls):
        return cls("LOC_USAGE")
    
    @schemas.classproperty
    def LOC_USAGE_REVERSAL(cls):
        return cls("LOC_USAGE_REVERSAL")
    
    @schemas.classproperty
    def MANUAL_ADJUSTMENT(cls):
        return cls("MANUAL_ADJUSTMENT")
    
    @schemas.classproperty
    def MANUAL_ADJUSTMENT_REVERSAL(cls):
        return cls("MANUAL_ADJUSTMENT_REVERSAL")
    
    @schemas.classproperty
    def MANUAL_CARD_SWEEP(cls):
        return cls("MANUAL_CARD_SWEEP")
    
    @schemas.classproperty
    def MANUAL_CARD_SWEEP_REVERSAL(cls):
        return cls("MANUAL_CARD_SWEEP_REVERSAL")
    
    @schemas.classproperty
    def OUTGOING_INTERNATIONAL_REMITTANCE(cls):
        return cls("OUTGOING_INTERNATIONAL_REMITTANCE")
    
    @schemas.classproperty
    def OUTGOING_INTERNATIONAL_REMITTANCE_REVERSAL(cls):
        return cls("OUTGOING_INTERNATIONAL_REMITTANCE_REVERSAL")
    
    @schemas.classproperty
    def PROGRAM_DECREASE(cls):
        return cls("PROGRAM_DECREASE")
    
    @schemas.classproperty
    def PROGRAM_DECREASE_REVERSAL(cls):
        return cls("PROGRAM_DECREASE_REVERSAL")
    
    @schemas.classproperty
    def PROGRAM_EXPANSION(cls):
        return cls("PROGRAM_EXPANSION")
    
    @schemas.classproperty
    def PROGRAM_EXPANSION_REVERSAL(cls):
        return cls("PROGRAM_EXPANSION_REVERSAL")
    
    @schemas.classproperty
    def PROMOTIONAL_CREDIT(cls):
        return cls("PROMOTIONAL_CREDIT")
    
    @schemas.classproperty
    def PROMOTIONAL_CREDIT_REVERSAL(cls):
        return cls("PROMOTIONAL_CREDIT_REVERSAL")
    
    @schemas.classproperty
    def REPAYMENT(cls):
        return cls("REPAYMENT")
    
    @schemas.classproperty
    def REPAYMENT_REVERSAL(cls):
        return cls("REPAYMENT_REVERSAL")
    
    @schemas.classproperty
    def SIGN_UP_BONUS(cls):
        return cls("SIGN_UP_BONUS")
    
    @schemas.classproperty
    def SIGN_UP_BONUS_REVERSAL(cls):
        return cls("SIGN_UP_BONUS_REVERSAL")
    
    @schemas.classproperty
    def SUBSCRIPTION_FEE(cls):
        return cls("SUBSCRIPTION_FEE")
    
    @schemas.classproperty
    def SUBSCRIPTION_FEE_REVERSAL(cls):
        return cls("SUBSCRIPTION_FEE_REVERSAL")
    
    @schemas.classproperty
    def TRANSFER_FEE(cls):
        return cls("TRANSFER_FEE")
    
    @schemas.classproperty
    def TRANSFER_FEE_REVERSAL(cls):
        return cls("TRANSFER_FEE_REVERSAL")
    
    @schemas.classproperty
    def TRANSFER_FEE_REVERSAL_REVERSAL(cls):
        return cls("TRANSFER_FEE_REVERSAL_REVERSAL")
