# coding: utf-8

"""
    The Plaid API

    The Plaid REST API. Please see https://plaid.com/docs/api for more details.  # noqa: E501
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from plaid.generated_plaid.configuration import Configuration


class StandaloneInvestmentTransactionSubtype(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        'account_fee': 'str',
        'assignment': 'str',
        'buy': 'str',
        'buy_to_cover': 'str',
        'contribution': 'str',
        'deposit': 'str',
        'distribution': 'str',
        'dividend': 'str',
        'dividend_reinvestment': 'str',
        'exercise': 'str',
        'expire': 'str',
        'fund_fee': 'str',
        'interest': 'str',
        'interest_receivable': 'str',
        'interest_reinvestment': 'str',
        'legal_fee': 'str',
        'loan_payment': 'str',
        'long_term_capital_gain': 'str',
        'long_term_capital_gain_reinvestment': 'str',
        'management_fee': 'str',
        'margin_expense': 'str',
        'merger': 'str',
        'miscellaneous_fee': 'str',
        'non_qualified_dividend': 'str',
        'non_resident_tax': 'str',
        'pending_credit': 'str',
        'pending_debit': 'str',
        'qualified_dividend': 'str',
        'rebalance': 'str',
        'return_of_principal': 'str',
        'sell': 'str',
        'sell_short': 'str',
        'short_term_capital_gain': 'str',
        'short_term_capital_gain_reinvestment': 'str',
        'spin_off': 'str',
        'split': 'str',
        'stock_distribution': 'str',
        'tax': 'str',
        'tax_withheld': 'str',
        'transfer': 'str',
        'transfer_fee': 'str',
        'trust_fee': 'str',
        'unqualified_gain': 'str',
        'withdrawal': 'str'
    }

    attribute_map = {
        'account_fee': 'account fee',
        'assignment': 'assignment',
        'buy': 'buy',
        'buy_to_cover': 'buy to cover',
        'contribution': 'contribution',
        'deposit': 'deposit',
        'distribution': 'distribution',
        'dividend': 'dividend',
        'dividend_reinvestment': 'dividend reinvestment',
        'exercise': 'exercise',
        'expire': 'expire',
        'fund_fee': 'fund fee',
        'interest': 'interest',
        'interest_receivable': 'interest receivable',
        'interest_reinvestment': 'interest reinvestment',
        'legal_fee': 'legal fee',
        'loan_payment': 'loan payment',
        'long_term_capital_gain': 'long-term capital gain',
        'long_term_capital_gain_reinvestment': 'long-term capital gain reinvestment',
        'management_fee': 'management fee',
        'margin_expense': 'margin expense',
        'merger': 'merger',
        'miscellaneous_fee': 'miscellaneous fee',
        'non_qualified_dividend': 'non-qualified dividend',
        'non_resident_tax': 'non-resident tax',
        'pending_credit': 'pending credit',
        'pending_debit': 'pending debit',
        'qualified_dividend': 'qualified dividend',
        'rebalance': 'rebalance',
        'return_of_principal': 'return of principal',
        'sell': 'sell',
        'sell_short': 'sell short',
        'short_term_capital_gain': 'short-term capital gain',
        'short_term_capital_gain_reinvestment': 'short-term capital gain reinvestment',
        'spin_off': 'spin off',
        'split': 'split',
        'stock_distribution': 'stock distribution',
        'tax': 'tax',
        'tax_withheld': 'tax withheld',
        'transfer': 'transfer',
        'transfer_fee': 'transfer fee',
        'trust_fee': 'trust fee',
        'unqualified_gain': 'unqualified gain',
        'withdrawal': 'withdrawal'
    }

    def __init__(self, account_fee=None, assignment=None, buy=None, buy_to_cover=None, contribution=None, deposit=None, distribution=None, dividend=None, dividend_reinvestment=None, exercise=None, expire=None, fund_fee=None, interest=None, interest_receivable=None, interest_reinvestment=None, legal_fee=None, loan_payment=None, long_term_capital_gain=None, long_term_capital_gain_reinvestment=None, management_fee=None, margin_expense=None, merger=None, miscellaneous_fee=None, non_qualified_dividend=None, non_resident_tax=None, pending_credit=None, pending_debit=None, qualified_dividend=None, rebalance=None, return_of_principal=None, sell=None, sell_short=None, short_term_capital_gain=None, short_term_capital_gain_reinvestment=None, spin_off=None, split=None, stock_distribution=None, tax=None, tax_withheld=None, transfer=None, transfer_fee=None, trust_fee=None, unqualified_gain=None, withdrawal=None, local_vars_configuration=None):  # noqa: E501
        """StandaloneInvestmentTransactionSubtype - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._account_fee = None
        self._assignment = None
        self._buy = None
        self._buy_to_cover = None
        self._contribution = None
        self._deposit = None
        self._distribution = None
        self._dividend = None
        self._dividend_reinvestment = None
        self._exercise = None
        self._expire = None
        self._fund_fee = None
        self._interest = None
        self._interest_receivable = None
        self._interest_reinvestment = None
        self._legal_fee = None
        self._loan_payment = None
        self._long_term_capital_gain = None
        self._long_term_capital_gain_reinvestment = None
        self._management_fee = None
        self._margin_expense = None
        self._merger = None
        self._miscellaneous_fee = None
        self._non_qualified_dividend = None
        self._non_resident_tax = None
        self._pending_credit = None
        self._pending_debit = None
        self._qualified_dividend = None
        self._rebalance = None
        self._return_of_principal = None
        self._sell = None
        self._sell_short = None
        self._short_term_capital_gain = None
        self._short_term_capital_gain_reinvestment = None
        self._spin_off = None
        self._split = None
        self._stock_distribution = None
        self._tax = None
        self._tax_withheld = None
        self._transfer = None
        self._transfer_fee = None
        self._trust_fee = None
        self._unqualified_gain = None
        self._withdrawal = None
        self.discriminator = None

        if account_fee is not None:
            self.account_fee = account_fee
        if assignment is not None:
            self.assignment = assignment
        if buy is not None:
            self.buy = buy
        if buy_to_cover is not None:
            self.buy_to_cover = buy_to_cover
        if contribution is not None:
            self.contribution = contribution
        if deposit is not None:
            self.deposit = deposit
        if distribution is not None:
            self.distribution = distribution
        if dividend is not None:
            self.dividend = dividend
        if dividend_reinvestment is not None:
            self.dividend_reinvestment = dividend_reinvestment
        if exercise is not None:
            self.exercise = exercise
        if expire is not None:
            self.expire = expire
        if fund_fee is not None:
            self.fund_fee = fund_fee
        if interest is not None:
            self.interest = interest
        if interest_receivable is not None:
            self.interest_receivable = interest_receivable
        if interest_reinvestment is not None:
            self.interest_reinvestment = interest_reinvestment
        if legal_fee is not None:
            self.legal_fee = legal_fee
        if loan_payment is not None:
            self.loan_payment = loan_payment
        if long_term_capital_gain is not None:
            self.long_term_capital_gain = long_term_capital_gain
        if long_term_capital_gain_reinvestment is not None:
            self.long_term_capital_gain_reinvestment = long_term_capital_gain_reinvestment
        if management_fee is not None:
            self.management_fee = management_fee
        if margin_expense is not None:
            self.margin_expense = margin_expense
        if merger is not None:
            self.merger = merger
        if miscellaneous_fee is not None:
            self.miscellaneous_fee = miscellaneous_fee
        if non_qualified_dividend is not None:
            self.non_qualified_dividend = non_qualified_dividend
        if non_resident_tax is not None:
            self.non_resident_tax = non_resident_tax
        if pending_credit is not None:
            self.pending_credit = pending_credit
        if pending_debit is not None:
            self.pending_debit = pending_debit
        if qualified_dividend is not None:
            self.qualified_dividend = qualified_dividend
        if rebalance is not None:
            self.rebalance = rebalance
        if return_of_principal is not None:
            self.return_of_principal = return_of_principal
        if sell is not None:
            self.sell = sell
        if sell_short is not None:
            self.sell_short = sell_short
        if short_term_capital_gain is not None:
            self.short_term_capital_gain = short_term_capital_gain
        if short_term_capital_gain_reinvestment is not None:
            self.short_term_capital_gain_reinvestment = short_term_capital_gain_reinvestment
        if spin_off is not None:
            self.spin_off = spin_off
        if split is not None:
            self.split = split
        if stock_distribution is not None:
            self.stock_distribution = stock_distribution
        if tax is not None:
            self.tax = tax
        if tax_withheld is not None:
            self.tax_withheld = tax_withheld
        if transfer is not None:
            self.transfer = transfer
        if transfer_fee is not None:
            self.transfer_fee = transfer_fee
        if trust_fee is not None:
            self.trust_fee = trust_fee
        if unqualified_gain is not None:
            self.unqualified_gain = unqualified_gain
        if withdrawal is not None:
            self.withdrawal = withdrawal

    @property
    def account_fee(self):
        """Gets the account_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fees paid for account maintenance  # noqa: E501

        :return: The account_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._account_fee

    @account_fee.setter
    def account_fee(self, account_fee):
        """Sets the account_fee of this StandaloneInvestmentTransactionSubtype.

        Fees paid for account maintenance  # noqa: E501

        :param account_fee: The account_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type account_fee: str
        """

        self._account_fee = account_fee

    @property
    def assignment(self):
        """Gets the assignment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Assignment of short option holding  # noqa: E501

        :return: The assignment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._assignment

    @assignment.setter
    def assignment(self, assignment):
        """Sets the assignment of this StandaloneInvestmentTransactionSubtype.

        Assignment of short option holding  # noqa: E501

        :param assignment: The assignment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type assignment: str
        """

        self._assignment = assignment

    @property
    def buy(self):
        """Gets the buy of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Purchase to open or increase a position  # noqa: E501

        :return: The buy of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._buy

    @buy.setter
    def buy(self, buy):
        """Sets the buy of this StandaloneInvestmentTransactionSubtype.

        Purchase to open or increase a position  # noqa: E501

        :param buy: The buy of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type buy: str
        """

        self._buy = buy

    @property
    def buy_to_cover(self):
        """Gets the buy_to_cover of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Purchase to close a short position  # noqa: E501

        :return: The buy_to_cover of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._buy_to_cover

    @buy_to_cover.setter
    def buy_to_cover(self, buy_to_cover):
        """Sets the buy_to_cover of this StandaloneInvestmentTransactionSubtype.

        Purchase to close a short position  # noqa: E501

        :param buy_to_cover: The buy_to_cover of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type buy_to_cover: str
        """

        self._buy_to_cover = buy_to_cover

    @property
    def contribution(self):
        """Gets the contribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of assets into a tax-advantaged account  # noqa: E501

        :return: The contribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._contribution

    @contribution.setter
    def contribution(self, contribution):
        """Sets the contribution of this StandaloneInvestmentTransactionSubtype.

        Inflow of assets into a tax-advantaged account  # noqa: E501

        :param contribution: The contribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type contribution: str
        """

        self._contribution = contribution

    @property
    def deposit(self):
        """Gets the deposit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of cash into an account  # noqa: E501

        :return: The deposit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._deposit

    @deposit.setter
    def deposit(self, deposit):
        """Sets the deposit of this StandaloneInvestmentTransactionSubtype.

        Inflow of cash into an account  # noqa: E501

        :param deposit: The deposit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type deposit: str
        """

        self._deposit = deposit

    @property
    def distribution(self):
        """Gets the distribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Outflow of assets from a tax-advantaged account  # noqa: E501

        :return: The distribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._distribution

    @distribution.setter
    def distribution(self, distribution):
        """Sets the distribution of this StandaloneInvestmentTransactionSubtype.

        Outflow of assets from a tax-advantaged account  # noqa: E501

        :param distribution: The distribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type distribution: str
        """

        self._distribution = distribution

    @property
    def dividend(self):
        """Gets the dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of cash from a dividend  # noqa: E501

        :return: The dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._dividend

    @dividend.setter
    def dividend(self, dividend):
        """Sets the dividend of this StandaloneInvestmentTransactionSubtype.

        Inflow of cash from a dividend  # noqa: E501

        :param dividend: The dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type dividend: str
        """

        self._dividend = dividend

    @property
    def dividend_reinvestment(self):
        """Gets the dividend_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Purchase using proceeds from a cash dividend  # noqa: E501

        :return: The dividend_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._dividend_reinvestment

    @dividend_reinvestment.setter
    def dividend_reinvestment(self, dividend_reinvestment):
        """Sets the dividend_reinvestment of this StandaloneInvestmentTransactionSubtype.

        Purchase using proceeds from a cash dividend  # noqa: E501

        :param dividend_reinvestment: The dividend_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type dividend_reinvestment: str
        """

        self._dividend_reinvestment = dividend_reinvestment

    @property
    def exercise(self):
        """Gets the exercise of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Exercise of an option or warrant contract  # noqa: E501

        :return: The exercise of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._exercise

    @exercise.setter
    def exercise(self, exercise):
        """Sets the exercise of this StandaloneInvestmentTransactionSubtype.

        Exercise of an option or warrant contract  # noqa: E501

        :param exercise: The exercise of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type exercise: str
        """

        self._exercise = exercise

    @property
    def expire(self):
        """Gets the expire of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Expiration of an option or warrant contract   # noqa: E501

        :return: The expire of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._expire

    @expire.setter
    def expire(self, expire):
        """Sets the expire of this StandaloneInvestmentTransactionSubtype.

        Expiration of an option or warrant contract   # noqa: E501

        :param expire: The expire of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type expire: str
        """

        self._expire = expire

    @property
    def fund_fee(self):
        """Gets the fund_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fees paid for administration of a mutual fund or other pooled investment vehicle  # noqa: E501

        :return: The fund_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._fund_fee

    @fund_fee.setter
    def fund_fee(self, fund_fee):
        """Sets the fund_fee of this StandaloneInvestmentTransactionSubtype.

        Fees paid for administration of a mutual fund or other pooled investment vehicle  # noqa: E501

        :param fund_fee: The fund_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type fund_fee: str
        """

        self._fund_fee = fund_fee

    @property
    def interest(self):
        """Gets the interest of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of cash from interest  # noqa: E501

        :return: The interest of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._interest

    @interest.setter
    def interest(self, interest):
        """Sets the interest of this StandaloneInvestmentTransactionSubtype.

        Inflow of cash from interest  # noqa: E501

        :param interest: The interest of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type interest: str
        """

        self._interest = interest

    @property
    def interest_receivable(self):
        """Gets the interest_receivable of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of cash from interest receivable  # noqa: E501

        :return: The interest_receivable of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._interest_receivable

    @interest_receivable.setter
    def interest_receivable(self, interest_receivable):
        """Sets the interest_receivable of this StandaloneInvestmentTransactionSubtype.

        Inflow of cash from interest receivable  # noqa: E501

        :param interest_receivable: The interest_receivable of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type interest_receivable: str
        """

        self._interest_receivable = interest_receivable

    @property
    def interest_reinvestment(self):
        """Gets the interest_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Purchase using proceeds from a cash interest payment  # noqa: E501

        :return: The interest_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._interest_reinvestment

    @interest_reinvestment.setter
    def interest_reinvestment(self, interest_reinvestment):
        """Sets the interest_reinvestment of this StandaloneInvestmentTransactionSubtype.

        Purchase using proceeds from a cash interest payment  # noqa: E501

        :param interest_reinvestment: The interest_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type interest_reinvestment: str
        """

        self._interest_reinvestment = interest_reinvestment

    @property
    def legal_fee(self):
        """Gets the legal_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fees paid for legal charges or services  # noqa: E501

        :return: The legal_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._legal_fee

    @legal_fee.setter
    def legal_fee(self, legal_fee):
        """Sets the legal_fee of this StandaloneInvestmentTransactionSubtype.

        Fees paid for legal charges or services  # noqa: E501

        :param legal_fee: The legal_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type legal_fee: str
        """

        self._legal_fee = legal_fee

    @property
    def loan_payment(self):
        """Gets the loan_payment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of cash related to payment on a loan  # noqa: E501

        :return: The loan_payment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._loan_payment

    @loan_payment.setter
    def loan_payment(self, loan_payment):
        """Sets the loan_payment of this StandaloneInvestmentTransactionSubtype.

        Inflow of cash related to payment on a loan  # noqa: E501

        :param loan_payment: The loan_payment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type loan_payment: str
        """

        self._loan_payment = loan_payment

    @property
    def long_term_capital_gain(self):
        """Gets the long_term_capital_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Long-term capital gain received as cash  # noqa: E501

        :return: The long_term_capital_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._long_term_capital_gain

    @long_term_capital_gain.setter
    def long_term_capital_gain(self, long_term_capital_gain):
        """Sets the long_term_capital_gain of this StandaloneInvestmentTransactionSubtype.

        Long-term capital gain received as cash  # noqa: E501

        :param long_term_capital_gain: The long_term_capital_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type long_term_capital_gain: str
        """

        self._long_term_capital_gain = long_term_capital_gain

    @property
    def long_term_capital_gain_reinvestment(self):
        """Gets the long_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Purchase using long-term capital gain cash proceeds  # noqa: E501

        :return: The long_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._long_term_capital_gain_reinvestment

    @long_term_capital_gain_reinvestment.setter
    def long_term_capital_gain_reinvestment(self, long_term_capital_gain_reinvestment):
        """Sets the long_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.

        Purchase using long-term capital gain cash proceeds  # noqa: E501

        :param long_term_capital_gain_reinvestment: The long_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type long_term_capital_gain_reinvestment: str
        """

        self._long_term_capital_gain_reinvestment = long_term_capital_gain_reinvestment

    @property
    def management_fee(self):
        """Gets the management_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fees paid for investment management of a mutual fund or other pooled investment vehicle  # noqa: E501

        :return: The management_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._management_fee

    @management_fee.setter
    def management_fee(self, management_fee):
        """Sets the management_fee of this StandaloneInvestmentTransactionSubtype.

        Fees paid for investment management of a mutual fund or other pooled investment vehicle  # noqa: E501

        :param management_fee: The management_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type management_fee: str
        """

        self._management_fee = management_fee

    @property
    def margin_expense(self):
        """Gets the margin_expense of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fees paid for maintaining margin debt  # noqa: E501

        :return: The margin_expense of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._margin_expense

    @margin_expense.setter
    def margin_expense(self, margin_expense):
        """Sets the margin_expense of this StandaloneInvestmentTransactionSubtype.

        Fees paid for maintaining margin debt  # noqa: E501

        :param margin_expense: The margin_expense of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type margin_expense: str
        """

        self._margin_expense = margin_expense

    @property
    def merger(self):
        """Gets the merger of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Stock exchanged at a pre-defined ratio as part of a merger between companies  # noqa: E501

        :return: The merger of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._merger

    @merger.setter
    def merger(self, merger):
        """Sets the merger of this StandaloneInvestmentTransactionSubtype.

        Stock exchanged at a pre-defined ratio as part of a merger between companies  # noqa: E501

        :param merger: The merger of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type merger: str
        """

        self._merger = merger

    @property
    def miscellaneous_fee(self):
        """Gets the miscellaneous_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fee associated with various account or holding actions  # noqa: E501

        :return: The miscellaneous_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._miscellaneous_fee

    @miscellaneous_fee.setter
    def miscellaneous_fee(self, miscellaneous_fee):
        """Sets the miscellaneous_fee of this StandaloneInvestmentTransactionSubtype.

        Fee associated with various account or holding actions  # noqa: E501

        :param miscellaneous_fee: The miscellaneous_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type miscellaneous_fee: str
        """

        self._miscellaneous_fee = miscellaneous_fee

    @property
    def non_qualified_dividend(self):
        """Gets the non_qualified_dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of cash from a non-qualified dividend  # noqa: E501

        :return: The non_qualified_dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._non_qualified_dividend

    @non_qualified_dividend.setter
    def non_qualified_dividend(self, non_qualified_dividend):
        """Sets the non_qualified_dividend of this StandaloneInvestmentTransactionSubtype.

        Inflow of cash from a non-qualified dividend  # noqa: E501

        :param non_qualified_dividend: The non_qualified_dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type non_qualified_dividend: str
        """

        self._non_qualified_dividend = non_qualified_dividend

    @property
    def non_resident_tax(self):
        """Gets the non_resident_tax of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Taxes paid on behalf of the investor for non-residency in investment jurisdiction  # noqa: E501

        :return: The non_resident_tax of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._non_resident_tax

    @non_resident_tax.setter
    def non_resident_tax(self, non_resident_tax):
        """Sets the non_resident_tax of this StandaloneInvestmentTransactionSubtype.

        Taxes paid on behalf of the investor for non-residency in investment jurisdiction  # noqa: E501

        :param non_resident_tax: The non_resident_tax of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type non_resident_tax: str
        """

        self._non_resident_tax = non_resident_tax

    @property
    def pending_credit(self):
        """Gets the pending_credit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Pending inflow of cash  # noqa: E501

        :return: The pending_credit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._pending_credit

    @pending_credit.setter
    def pending_credit(self, pending_credit):
        """Sets the pending_credit of this StandaloneInvestmentTransactionSubtype.

        Pending inflow of cash  # noqa: E501

        :param pending_credit: The pending_credit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type pending_credit: str
        """

        self._pending_credit = pending_credit

    @property
    def pending_debit(self):
        """Gets the pending_debit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Pending outflow of cash  # noqa: E501

        :return: The pending_debit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._pending_debit

    @pending_debit.setter
    def pending_debit(self, pending_debit):
        """Sets the pending_debit of this StandaloneInvestmentTransactionSubtype.

        Pending outflow of cash  # noqa: E501

        :param pending_debit: The pending_debit of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type pending_debit: str
        """

        self._pending_debit = pending_debit

    @property
    def qualified_dividend(self):
        """Gets the qualified_dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of cash from a qualified dividend  # noqa: E501

        :return: The qualified_dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._qualified_dividend

    @qualified_dividend.setter
    def qualified_dividend(self, qualified_dividend):
        """Sets the qualified_dividend of this StandaloneInvestmentTransactionSubtype.

        Inflow of cash from a qualified dividend  # noqa: E501

        :param qualified_dividend: The qualified_dividend of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type qualified_dividend: str
        """

        self._qualified_dividend = qualified_dividend

    @property
    def rebalance(self):
        """Gets the rebalance of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Rebalancing transaction (buy or sell) with no net impact to value in the account  # noqa: E501

        :return: The rebalance of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._rebalance

    @rebalance.setter
    def rebalance(self, rebalance):
        """Sets the rebalance of this StandaloneInvestmentTransactionSubtype.

        Rebalancing transaction (buy or sell) with no net impact to value in the account  # noqa: E501

        :param rebalance: The rebalance of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type rebalance: str
        """

        self._rebalance = rebalance

    @property
    def return_of_principal(self):
        """Gets the return_of_principal of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Repayment of loan principal  # noqa: E501

        :return: The return_of_principal of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._return_of_principal

    @return_of_principal.setter
    def return_of_principal(self, return_of_principal):
        """Sets the return_of_principal of this StandaloneInvestmentTransactionSubtype.

        Repayment of loan principal  # noqa: E501

        :param return_of_principal: The return_of_principal of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type return_of_principal: str
        """

        self._return_of_principal = return_of_principal

    @property
    def sell(self):
        """Gets the sell of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Sell to close or decrease an existing holding  # noqa: E501

        :return: The sell of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._sell

    @sell.setter
    def sell(self, sell):
        """Sets the sell of this StandaloneInvestmentTransactionSubtype.

        Sell to close or decrease an existing holding  # noqa: E501

        :param sell: The sell of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type sell: str
        """

        self._sell = sell

    @property
    def sell_short(self):
        """Gets the sell_short of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Sell to open a short position  # noqa: E501

        :return: The sell_short of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._sell_short

    @sell_short.setter
    def sell_short(self, sell_short):
        """Sets the sell_short of this StandaloneInvestmentTransactionSubtype.

        Sell to open a short position  # noqa: E501

        :param sell_short: The sell_short of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type sell_short: str
        """

        self._sell_short = sell_short

    @property
    def short_term_capital_gain(self):
        """Gets the short_term_capital_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Short-term capital gain received as cash  # noqa: E501

        :return: The short_term_capital_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._short_term_capital_gain

    @short_term_capital_gain.setter
    def short_term_capital_gain(self, short_term_capital_gain):
        """Sets the short_term_capital_gain of this StandaloneInvestmentTransactionSubtype.

        Short-term capital gain received as cash  # noqa: E501

        :param short_term_capital_gain: The short_term_capital_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type short_term_capital_gain: str
        """

        self._short_term_capital_gain = short_term_capital_gain

    @property
    def short_term_capital_gain_reinvestment(self):
        """Gets the short_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Purchase using short-term capital gain cash proceeds  # noqa: E501

        :return: The short_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._short_term_capital_gain_reinvestment

    @short_term_capital_gain_reinvestment.setter
    def short_term_capital_gain_reinvestment(self, short_term_capital_gain_reinvestment):
        """Sets the short_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.

        Purchase using short-term capital gain cash proceeds  # noqa: E501

        :param short_term_capital_gain_reinvestment: The short_term_capital_gain_reinvestment of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type short_term_capital_gain_reinvestment: str
        """

        self._short_term_capital_gain_reinvestment = short_term_capital_gain_reinvestment

    @property
    def spin_off(self):
        """Gets the spin_off of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of stock from spin-off transaction of an existing holding  # noqa: E501

        :return: The spin_off of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._spin_off

    @spin_off.setter
    def spin_off(self, spin_off):
        """Sets the spin_off of this StandaloneInvestmentTransactionSubtype.

        Inflow of stock from spin-off transaction of an existing holding  # noqa: E501

        :param spin_off: The spin_off of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type spin_off: str
        """

        self._spin_off = spin_off

    @property
    def split(self):
        """Gets the split of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of stock from a forward split of an existing holding  # noqa: E501

        :return: The split of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._split

    @split.setter
    def split(self, split):
        """Sets the split of this StandaloneInvestmentTransactionSubtype.

        Inflow of stock from a forward split of an existing holding  # noqa: E501

        :param split: The split of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type split: str
        """

        self._split = split

    @property
    def stock_distribution(self):
        """Gets the stock_distribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Inflow of stock from a distribution  # noqa: E501

        :return: The stock_distribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._stock_distribution

    @stock_distribution.setter
    def stock_distribution(self, stock_distribution):
        """Sets the stock_distribution of this StandaloneInvestmentTransactionSubtype.

        Inflow of stock from a distribution  # noqa: E501

        :param stock_distribution: The stock_distribution of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type stock_distribution: str
        """

        self._stock_distribution = stock_distribution

    @property
    def tax(self):
        """Gets the tax of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Taxes paid on behalf of the investor  # noqa: E501

        :return: The tax of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._tax

    @tax.setter
    def tax(self, tax):
        """Sets the tax of this StandaloneInvestmentTransactionSubtype.

        Taxes paid on behalf of the investor  # noqa: E501

        :param tax: The tax of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type tax: str
        """

        self._tax = tax

    @property
    def tax_withheld(self):
        """Gets the tax_withheld of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Taxes withheld on behalf of the customer  # noqa: E501

        :return: The tax_withheld of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._tax_withheld

    @tax_withheld.setter
    def tax_withheld(self, tax_withheld):
        """Sets the tax_withheld of this StandaloneInvestmentTransactionSubtype.

        Taxes withheld on behalf of the customer  # noqa: E501

        :param tax_withheld: The tax_withheld of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type tax_withheld: str
        """

        self._tax_withheld = tax_withheld

    @property
    def transfer(self):
        """Gets the transfer of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Movement of assets into or out of an account  # noqa: E501

        :return: The transfer of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._transfer

    @transfer.setter
    def transfer(self, transfer):
        """Sets the transfer of this StandaloneInvestmentTransactionSubtype.

        Movement of assets into or out of an account  # noqa: E501

        :param transfer: The transfer of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type transfer: str
        """

        self._transfer = transfer

    @property
    def transfer_fee(self):
        """Gets the transfer_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fees incurred for transfer of a holding or account  # noqa: E501

        :return: The transfer_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._transfer_fee

    @transfer_fee.setter
    def transfer_fee(self, transfer_fee):
        """Sets the transfer_fee of this StandaloneInvestmentTransactionSubtype.

        Fees incurred for transfer of a holding or account  # noqa: E501

        :param transfer_fee: The transfer_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type transfer_fee: str
        """

        self._transfer_fee = transfer_fee

    @property
    def trust_fee(self):
        """Gets the trust_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Fees related to adminstration of a trust account  # noqa: E501

        :return: The trust_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._trust_fee

    @trust_fee.setter
    def trust_fee(self, trust_fee):
        """Sets the trust_fee of this StandaloneInvestmentTransactionSubtype.

        Fees related to adminstration of a trust account  # noqa: E501

        :param trust_fee: The trust_fee of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type trust_fee: str
        """

        self._trust_fee = trust_fee

    @property
    def unqualified_gain(self):
        """Gets the unqualified_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Unqualified capital gain received as cash  # noqa: E501

        :return: The unqualified_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._unqualified_gain

    @unqualified_gain.setter
    def unqualified_gain(self, unqualified_gain):
        """Sets the unqualified_gain of this StandaloneInvestmentTransactionSubtype.

        Unqualified capital gain received as cash  # noqa: E501

        :param unqualified_gain: The unqualified_gain of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type unqualified_gain: str
        """

        self._unqualified_gain = unqualified_gain

    @property
    def withdrawal(self):
        """Gets the withdrawal of this StandaloneInvestmentTransactionSubtype.  # noqa: E501

        Outflow of cash from an account  # noqa: E501

        :return: The withdrawal of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :rtype: str
        """
        return self._withdrawal

    @withdrawal.setter
    def withdrawal(self, withdrawal):
        """Sets the withdrawal of this StandaloneInvestmentTransactionSubtype.

        Outflow of cash from an account  # noqa: E501

        :param withdrawal: The withdrawal of this StandaloneInvestmentTransactionSubtype.  # noqa: E501
        :type withdrawal: str
        """

        self._withdrawal = withdrawal

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, StandaloneInvestmentTransactionSubtype):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, StandaloneInvestmentTransactionSubtype):
            return True

        return self.to_dict() != other.to_dict()
