# coding: utf-8

"""
    splitit-web-api-public-sdk

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six


class InstallmentPlan(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_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.
    """
    swagger_types = {
        'installment_plan_number': 'str',
        'installment_plan_status': 'ReferenceEntityBase',
        'amount': 'Money',
        'outstanding_amount': 'Money',
        'disputes': 'Disputes',
        'number_of_installments': 'int',
        'number_of_processed_installments': 'int',
        'original_amount': 'Money',
        'refund_amount': 'Money',
        'consumer': 'ConsumerData',
        'active_card': 'CardData',
        'fraud_check': 'FraudCheck',
        'merchant': 'MerchantRef',
        'ref_order_number': 'str',
        'purchase_method': 'ReferenceEntityBase',
        'strategy': 'ReferenceEntityBase',
        'delay_resolution': 'ReferenceEntityBase',
        'extended_params': 'dict(str, str)',
        'is_full_captured': 'bool',
        'is_charged_back': 'bool',
        'are_payments_on_hold': 'bool',
        'scp_funding_percent': 'float',
        'funding_status': 'MoneyFlows',
        'test_mode': 'TestModes',
        'creation_date_time': 'datetime',
        'life_time_url_expiration_time': 'datetime',
        'installments': 'list[Installment2]',
        'secure_authorizations': 'list[ReAuthorization]',
        'logo_url': 'str',
        'is_in_auto_retry': 'bool',
        'payment_method': 'str',
        'allow_card_update_on_splitit_portals': 'bool'
    }

    attribute_map = {
        'installment_plan_number': 'InstallmentPlanNumber',
        'installment_plan_status': 'InstallmentPlanStatus',
        'amount': 'Amount',
        'outstanding_amount': 'OutstandingAmount',
        'disputes': 'Disputes',
        'number_of_installments': 'NumberOfInstallments',
        'number_of_processed_installments': 'NumberOfProcessedInstallments',
        'original_amount': 'OriginalAmount',
        'refund_amount': 'RefundAmount',
        'consumer': 'Consumer',
        'active_card': 'ActiveCard',
        'fraud_check': 'FraudCheck',
        'merchant': 'Merchant',
        'ref_order_number': 'RefOrderNumber',
        'purchase_method': 'PurchaseMethod',
        'strategy': 'Strategy',
        'delay_resolution': 'DelayResolution',
        'extended_params': 'ExtendedParams',
        'is_full_captured': 'IsFullCaptured',
        'is_charged_back': 'IsChargedBack',
        'are_payments_on_hold': 'ArePaymentsOnHold',
        'scp_funding_percent': 'ScpFundingPercent',
        'funding_status': 'FundingStatus',
        'test_mode': 'TestMode',
        'creation_date_time': 'CreationDateTime',
        'life_time_url_expiration_time': 'LifeTimeUrlExpirationTime',
        'installments': 'Installments',
        'secure_authorizations': 'SecureAuthorizations',
        'logo_url': 'LogoUrl',
        'is_in_auto_retry': 'IsInAutoRetry',
        'payment_method': 'PaymentMethod',
        'allow_card_update_on_splitit_portals': 'AllowCardUpdateOnSplititPortals'
    }

    def __init__(self, installment_plan_number=None, installment_plan_status=None, amount=None, outstanding_amount=None, disputes=None, number_of_installments=None, number_of_processed_installments=None, original_amount=None, refund_amount=None, consumer=None, active_card=None, fraud_check=None, merchant=None, ref_order_number=None, purchase_method=None, strategy=None, delay_resolution=None, extended_params=None, is_full_captured=None, is_charged_back=None, are_payments_on_hold=None, scp_funding_percent=None, funding_status=None, test_mode=None, creation_date_time=None, life_time_url_expiration_time=None, installments=None, secure_authorizations=None, logo_url=None, is_in_auto_retry=None, payment_method=None, allow_card_update_on_splitit_portals=None):  # noqa: E501
        """InstallmentPlan - a model defined in Swagger"""  # noqa: E501

        self._installment_plan_number = None
        self._installment_plan_status = None
        self._amount = None
        self._outstanding_amount = None
        self._disputes = None
        self._number_of_installments = None
        self._number_of_processed_installments = None
        self._original_amount = None
        self._refund_amount = None
        self._consumer = None
        self._active_card = None
        self._fraud_check = None
        self._merchant = None
        self._ref_order_number = None
        self._purchase_method = None
        self._strategy = None
        self._delay_resolution = None
        self._extended_params = None
        self._is_full_captured = None
        self._is_charged_back = None
        self._are_payments_on_hold = None
        self._scp_funding_percent = None
        self._funding_status = None
        self._test_mode = None
        self._creation_date_time = None
        self._life_time_url_expiration_time = None
        self._installments = None
        self._secure_authorizations = None
        self._logo_url = None
        self._is_in_auto_retry = None
        self._payment_method = None
        self._allow_card_update_on_splitit_portals = None
        self.discriminator = None

        if installment_plan_number is not None:
            self._installment_plan_number = installment_plan_number
        if installment_plan_status is not None:
            self._installment_plan_status = installment_plan_status
        if amount is not None:
            self._amount = amount
        if outstanding_amount is not None:
            self._outstanding_amount = outstanding_amount
        if disputes is not None:
            self._disputes = disputes
        self._number_of_installments = number_of_installments
        self._number_of_processed_installments = number_of_processed_installments
        if original_amount is not None:
            self._original_amount = original_amount
        if refund_amount is not None:
            self._refund_amount = refund_amount
        if consumer is not None:
            self._consumer = consumer
        if active_card is not None:
            self._active_card = active_card
        if fraud_check is not None:
            self._fraud_check = fraud_check
        if merchant is not None:
            self._merchant = merchant
        if ref_order_number is not None:
            self._ref_order_number = ref_order_number
        if purchase_method is not None:
            self._purchase_method = purchase_method
        if strategy is not None:
            self._strategy = strategy
        if delay_resolution is not None:
            self._delay_resolution = delay_resolution
        if extended_params is not None:
            self._extended_params = extended_params
        self._is_full_captured = is_full_captured
        self._is_charged_back = is_charged_back
        self._are_payments_on_hold = are_payments_on_hold
        self._scp_funding_percent = scp_funding_percent
        self._funding_status = funding_status
        self._test_mode = test_mode
        self._creation_date_time = creation_date_time
        self._life_time_url_expiration_time = life_time_url_expiration_time
        if installments is not None:
            self._installments = installments
        if secure_authorizations is not None:
            self._secure_authorizations = secure_authorizations
        if logo_url is not None:
            self._logo_url = logo_url
        self._is_in_auto_retry = is_in_auto_retry
        if payment_method is not None:
            self._payment_method = payment_method
        self._allow_card_update_on_splitit_portals = allow_card_update_on_splitit_portals

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


        :return: The installment_plan_number of this InstallmentPlan.  # noqa: E501
        :rtype: str
        """
        return self._installment_plan_number

    @installment_plan_number.setter
    def installment_plan_number(self, installment_plan_number):
        """Sets the installment_plan_number of this InstallmentPlan.


        :param installment_plan_number: The installment_plan_number of this InstallmentPlan.  # noqa: E501
        :type: str
        """

        self._installment_plan_number = installment_plan_number

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


        :return: The installment_plan_status of this InstallmentPlan.  # noqa: E501
        :rtype: ReferenceEntityBase
        """
        return self._installment_plan_status

    @installment_plan_status.setter
    def installment_plan_status(self, installment_plan_status):
        """Sets the installment_plan_status of this InstallmentPlan.


        :param installment_plan_status: The installment_plan_status of this InstallmentPlan.  # noqa: E501
        :type: ReferenceEntityBase
        """

        self._installment_plan_status = installment_plan_status

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


        :return: The amount of this InstallmentPlan.  # noqa: E501
        :rtype: Money
        """
        return self._amount

    @amount.setter
    def amount(self, amount):
        """Sets the amount of this InstallmentPlan.


        :param amount: The amount of this InstallmentPlan.  # noqa: E501
        :type: Money
        """

        self._amount = amount

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


        :return: The outstanding_amount of this InstallmentPlan.  # noqa: E501
        :rtype: Money
        """
        return self._outstanding_amount

    @outstanding_amount.setter
    def outstanding_amount(self, outstanding_amount):
        """Sets the outstanding_amount of this InstallmentPlan.


        :param outstanding_amount: The outstanding_amount of this InstallmentPlan.  # noqa: E501
        :type: Money
        """

        self._outstanding_amount = outstanding_amount

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


        :return: The disputes of this InstallmentPlan.  # noqa: E501
        :rtype: Disputes
        """
        return self._disputes

    @disputes.setter
    def disputes(self, disputes):
        """Sets the disputes of this InstallmentPlan.


        :param disputes: The disputes of this InstallmentPlan.  # noqa: E501
        :type: Disputes
        """

        self._disputes = disputes

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


        :return: The number_of_installments of this InstallmentPlan.  # noqa: E501
        :rtype: int
        """
        return self._number_of_installments

    @number_of_installments.setter
    def number_of_installments(self, number_of_installments):
        """Sets the number_of_installments of this InstallmentPlan.


        :param number_of_installments: The number_of_installments of this InstallmentPlan.  # noqa: E501
        :type: int
        """
        
        if number_of_installments is None:
            raise ValueError("Invalid value for `number_of_installments`, must not be `None`")  # noqa: E501

        self._number_of_installments = number_of_installments

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


        :return: The number_of_processed_installments of this InstallmentPlan.  # noqa: E501
        :rtype: int
        """
        return self._number_of_processed_installments

    @number_of_processed_installments.setter
    def number_of_processed_installments(self, number_of_processed_installments):
        """Sets the number_of_processed_installments of this InstallmentPlan.


        :param number_of_processed_installments: The number_of_processed_installments of this InstallmentPlan.  # noqa: E501
        :type: int
        """
        
        if number_of_processed_installments is None:
            raise ValueError("Invalid value for `number_of_processed_installments`, must not be `None`")  # noqa: E501

        self._number_of_processed_installments = number_of_processed_installments

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


        :return: The original_amount of this InstallmentPlan.  # noqa: E501
        :rtype: Money
        """
        return self._original_amount

    @original_amount.setter
    def original_amount(self, original_amount):
        """Sets the original_amount of this InstallmentPlan.


        :param original_amount: The original_amount of this InstallmentPlan.  # noqa: E501
        :type: Money
        """

        self._original_amount = original_amount

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


        :return: The refund_amount of this InstallmentPlan.  # noqa: E501
        :rtype: Money
        """
        return self._refund_amount

    @refund_amount.setter
    def refund_amount(self, refund_amount):
        """Sets the refund_amount of this InstallmentPlan.


        :param refund_amount: The refund_amount of this InstallmentPlan.  # noqa: E501
        :type: Money
        """

        self._refund_amount = refund_amount

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


        :return: The consumer of this InstallmentPlan.  # noqa: E501
        :rtype: ConsumerData
        """
        return self._consumer

    @consumer.setter
    def consumer(self, consumer):
        """Sets the consumer of this InstallmentPlan.


        :param consumer: The consumer of this InstallmentPlan.  # noqa: E501
        :type: ConsumerData
        """

        self._consumer = consumer

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


        :return: The active_card of this InstallmentPlan.  # noqa: E501
        :rtype: CardData
        """
        return self._active_card

    @active_card.setter
    def active_card(self, active_card):
        """Sets the active_card of this InstallmentPlan.


        :param active_card: The active_card of this InstallmentPlan.  # noqa: E501
        :type: CardData
        """

        self._active_card = active_card

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


        :return: The fraud_check of this InstallmentPlan.  # noqa: E501
        :rtype: FraudCheck
        """
        return self._fraud_check

    @fraud_check.setter
    def fraud_check(self, fraud_check):
        """Sets the fraud_check of this InstallmentPlan.


        :param fraud_check: The fraud_check of this InstallmentPlan.  # noqa: E501
        :type: FraudCheck
        """

        self._fraud_check = fraud_check

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


        :return: The merchant of this InstallmentPlan.  # noqa: E501
        :rtype: MerchantRef
        """
        return self._merchant

    @merchant.setter
    def merchant(self, merchant):
        """Sets the merchant of this InstallmentPlan.


        :param merchant: The merchant of this InstallmentPlan.  # noqa: E501
        :type: MerchantRef
        """

        self._merchant = merchant

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


        :return: The ref_order_number of this InstallmentPlan.  # noqa: E501
        :rtype: str
        """
        return self._ref_order_number

    @ref_order_number.setter
    def ref_order_number(self, ref_order_number):
        """Sets the ref_order_number of this InstallmentPlan.


        :param ref_order_number: The ref_order_number of this InstallmentPlan.  # noqa: E501
        :type: str
        """

        self._ref_order_number = ref_order_number

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


        :return: The purchase_method of this InstallmentPlan.  # noqa: E501
        :rtype: ReferenceEntityBase
        """
        return self._purchase_method

    @purchase_method.setter
    def purchase_method(self, purchase_method):
        """Sets the purchase_method of this InstallmentPlan.


        :param purchase_method: The purchase_method of this InstallmentPlan.  # noqa: E501
        :type: ReferenceEntityBase
        """

        self._purchase_method = purchase_method

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


        :return: The strategy of this InstallmentPlan.  # noqa: E501
        :rtype: ReferenceEntityBase
        """
        return self._strategy

    @strategy.setter
    def strategy(self, strategy):
        """Sets the strategy of this InstallmentPlan.


        :param strategy: The strategy of this InstallmentPlan.  # noqa: E501
        :type: ReferenceEntityBase
        """

        self._strategy = strategy

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


        :return: The delay_resolution of this InstallmentPlan.  # noqa: E501
        :rtype: ReferenceEntityBase
        """
        return self._delay_resolution

    @delay_resolution.setter
    def delay_resolution(self, delay_resolution):
        """Sets the delay_resolution of this InstallmentPlan.


        :param delay_resolution: The delay_resolution of this InstallmentPlan.  # noqa: E501
        :type: ReferenceEntityBase
        """

        self._delay_resolution = delay_resolution

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


        :return: The extended_params of this InstallmentPlan.  # noqa: E501
        :rtype: dict(str, str)
        """
        return self._extended_params

    @extended_params.setter
    def extended_params(self, extended_params):
        """Sets the extended_params of this InstallmentPlan.


        :param extended_params: The extended_params of this InstallmentPlan.  # noqa: E501
        :type: dict(str, str)
        """

        self._extended_params = extended_params

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


        :return: The is_full_captured of this InstallmentPlan.  # noqa: E501
        :rtype: bool
        """
        return self._is_full_captured

    @is_full_captured.setter
    def is_full_captured(self, is_full_captured):
        """Sets the is_full_captured of this InstallmentPlan.


        :param is_full_captured: The is_full_captured of this InstallmentPlan.  # noqa: E501
        :type: bool
        """
        is_full_captured = bool(is_full_captured)
        if is_full_captured is None:
            raise ValueError("Invalid value for `is_full_captured`, must not be `None`")  # noqa: E501

        self._is_full_captured = is_full_captured

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


        :return: The is_charged_back of this InstallmentPlan.  # noqa: E501
        :rtype: bool
        """
        return self._is_charged_back

    @is_charged_back.setter
    def is_charged_back(self, is_charged_back):
        """Sets the is_charged_back of this InstallmentPlan.


        :param is_charged_back: The is_charged_back of this InstallmentPlan.  # noqa: E501
        :type: bool
        """
        is_charged_back = bool(is_charged_back)
        if is_charged_back is None:
            raise ValueError("Invalid value for `is_charged_back`, must not be `None`")  # noqa: E501

        self._is_charged_back = is_charged_back

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


        :return: The are_payments_on_hold of this InstallmentPlan.  # noqa: E501
        :rtype: bool
        """
        return self._are_payments_on_hold

    @are_payments_on_hold.setter
    def are_payments_on_hold(self, are_payments_on_hold):
        """Sets the are_payments_on_hold of this InstallmentPlan.


        :param are_payments_on_hold: The are_payments_on_hold of this InstallmentPlan.  # noqa: E501
        :type: bool
        """
        are_payments_on_hold = bool(are_payments_on_hold)
        if are_payments_on_hold is None:
            raise ValueError("Invalid value for `are_payments_on_hold`, must not be `None`")  # noqa: E501

        self._are_payments_on_hold = are_payments_on_hold

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


        :return: The scp_funding_percent of this InstallmentPlan.  # noqa: E501
        :rtype: float
        """
        return self._scp_funding_percent

    @scp_funding_percent.setter
    def scp_funding_percent(self, scp_funding_percent):
        """Sets the scp_funding_percent of this InstallmentPlan.


        :param scp_funding_percent: The scp_funding_percent of this InstallmentPlan.  # noqa: E501
        :type: float
        """
        
        if scp_funding_percent is None:
            raise ValueError("Invalid value for `scp_funding_percent`, must not be `None`")  # noqa: E501

        self._scp_funding_percent = scp_funding_percent

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


        :return: The funding_status of this InstallmentPlan.  # noqa: E501
        :rtype: MoneyFlows
        """
        return self._funding_status

    @funding_status.setter
    def funding_status(self, funding_status):
        """Sets the funding_status of this InstallmentPlan.


        :param funding_status: The funding_status of this InstallmentPlan.  # noqa: E501
        :type: MoneyFlows
        """
        
        if funding_status is None:
            raise ValueError("Invalid value for `funding_status`, must not be `None`")  # noqa: E501

        self._funding_status = funding_status

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


        :return: The test_mode of this InstallmentPlan.  # noqa: E501
        :rtype: TestModes
        """
        return self._test_mode

    @test_mode.setter
    def test_mode(self, test_mode):
        """Sets the test_mode of this InstallmentPlan.


        :param test_mode: The test_mode of this InstallmentPlan.  # noqa: E501
        :type: TestModes
        """
        
        if test_mode is None:
            raise ValueError("Invalid value for `test_mode`, must not be `None`")  # noqa: E501

        self._test_mode = test_mode

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


        :return: The creation_date_time of this InstallmentPlan.  # noqa: E501
        :rtype: datetime
        """
        return self._creation_date_time

    @creation_date_time.setter
    def creation_date_time(self, creation_date_time):
        """Sets the creation_date_time of this InstallmentPlan.


        :param creation_date_time: The creation_date_time of this InstallmentPlan.  # noqa: E501
        :type: datetime
        """
        
        if creation_date_time is None:
            raise ValueError("Invalid value for `creation_date_time`, must not be `None`")  # noqa: E501

        self._creation_date_time = creation_date_time

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


        :return: The life_time_url_expiration_time of this InstallmentPlan.  # noqa: E501
        :rtype: datetime
        """
        return self._life_time_url_expiration_time

    @life_time_url_expiration_time.setter
    def life_time_url_expiration_time(self, life_time_url_expiration_time):
        """Sets the life_time_url_expiration_time of this InstallmentPlan.


        :param life_time_url_expiration_time: The life_time_url_expiration_time of this InstallmentPlan.  # noqa: E501
        :type: datetime
        """
        
        if life_time_url_expiration_time is None:
            raise ValueError("Invalid value for `life_time_url_expiration_time`, must not be `None`")  # noqa: E501

        self._life_time_url_expiration_time = life_time_url_expiration_time

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


        :return: The installments of this InstallmentPlan.  # noqa: E501
        :rtype: list[Installment2]
        """
        return self._installments

    @installments.setter
    def installments(self, installments):
        """Sets the installments of this InstallmentPlan.


        :param installments: The installments of this InstallmentPlan.  # noqa: E501
        :type: list[Installment2]
        """

        self._installments = installments

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


        :return: The secure_authorizations of this InstallmentPlan.  # noqa: E501
        :rtype: list[ReAuthorization]
        """
        return self._secure_authorizations

    @secure_authorizations.setter
    def secure_authorizations(self, secure_authorizations):
        """Sets the secure_authorizations of this InstallmentPlan.


        :param secure_authorizations: The secure_authorizations of this InstallmentPlan.  # noqa: E501
        :type: list[ReAuthorization]
        """

        self._secure_authorizations = secure_authorizations

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


        :return: The logo_url of this InstallmentPlan.  # noqa: E501
        :rtype: str
        """
        return self._logo_url

    @logo_url.setter
    def logo_url(self, logo_url):
        """Sets the logo_url of this InstallmentPlan.


        :param logo_url: The logo_url of this InstallmentPlan.  # noqa: E501
        :type: str
        """

        self._logo_url = logo_url

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


        :return: The is_in_auto_retry of this InstallmentPlan.  # noqa: E501
        :rtype: bool
        """
        return self._is_in_auto_retry

    @is_in_auto_retry.setter
    def is_in_auto_retry(self, is_in_auto_retry):
        """Sets the is_in_auto_retry of this InstallmentPlan.


        :param is_in_auto_retry: The is_in_auto_retry of this InstallmentPlan.  # noqa: E501
        :type: bool
        """
        is_in_auto_retry = bool(is_in_auto_retry)
        if is_in_auto_retry is None:
            raise ValueError("Invalid value for `is_in_auto_retry`, must not be `None`")  # noqa: E501

        self._is_in_auto_retry = is_in_auto_retry

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


        :return: The payment_method of this InstallmentPlan.  # noqa: E501
        :rtype: str
        """
        return self._payment_method

    @payment_method.setter
    def payment_method(self, payment_method):
        """Sets the payment_method of this InstallmentPlan.


        :param payment_method: The payment_method of this InstallmentPlan.  # noqa: E501
        :type: str
        """

        self._payment_method = payment_method

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


        :return: The allow_card_update_on_splitit_portals of this InstallmentPlan.  # noqa: E501
        :rtype: bool
        """
        return self._allow_card_update_on_splitit_portals

    @allow_card_update_on_splitit_portals.setter
    def allow_card_update_on_splitit_portals(self, allow_card_update_on_splitit_portals):
        """Sets the allow_card_update_on_splitit_portals of this InstallmentPlan.


        :param allow_card_update_on_splitit_portals: The allow_card_update_on_splitit_portals of this InstallmentPlan.  # noqa: E501
        :type: bool
        """
        allow_card_update_on_splitit_portals = bool(allow_card_update_on_splitit_portals)
        if allow_card_update_on_splitit_portals is None:
            raise ValueError("Invalid value for `allow_card_update_on_splitit_portals`, must not be `None`")  # noqa: E501

        self._allow_card_update_on_splitit_portals = allow_card_update_on_splitit_portals

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

        for attr, _ in six.iteritems(self.swagger_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
        if issubclass(InstallmentPlan, dict):
            for key, value in self.items():
                result[key] = 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, InstallmentPlan):
            return False

        return self.__dict__ == other.__dict__

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