# coding: utf-8

"""
    Selling Partner API for Finances

    The Selling Partner API for Finances helps you obtain financial information relevant to a seller's business. You can obtain financial events for a given order, financial event group, or date range without having to wait until a statement period closes. You can also obtain financial event groups for a given date range.  # noqa: E501

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

import pprint
import re  # noqa: F401

import six


class FinancialEvents(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 = {
        'shipment_event_list': 'ShipmentEventList',
        'refund_event_list': 'ShipmentEventList',
        'guarantee_claim_event_list': 'ShipmentEventList',
        'chargeback_event_list': 'ShipmentEventList',
        'pay_with_amazon_event_list': 'PayWithAmazonEventList',
        'service_provider_credit_event_list': 'SolutionProviderCreditEventList',
        'retrocharge_event_list': 'RetrochargeEventList',
        'rental_transaction_event_list': 'RentalTransactionEventList',
        'product_ads_payment_event_list': 'ProductAdsPaymentEventList',
        'service_fee_event_list': 'ServiceFeeEventList',
        'seller_deal_payment_event_list': 'SellerDealPaymentEventList',
        'debt_recovery_event_list': 'DebtRecoveryEventList',
        'loan_servicing_event_list': 'LoanServicingEventList',
        'adjustment_event_list': 'AdjustmentEventList',
        'safet_reimbursement_event_list': 'SAFETReimbursementEventList',
        'seller_review_enrollment_payment_event_list': 'SellerReviewEnrollmentPaymentEventList',
        'fba_liquidation_event_list': 'FBALiquidationEventList',
        'coupon_payment_event_list': 'CouponPaymentEventList',
        'imaging_services_fee_event_list': 'ImagingServicesFeeEventList',
        'network_commingling_transaction_event_list': 'NetworkComminglingTransactionEventList',
        'affordability_expense_event_list': 'AffordabilityExpenseEventList',
        'affordability_expense_reversal_event_list': 'AffordabilityExpenseEventList'
    }

    attribute_map = {
        'shipment_event_list': 'ShipmentEventList',
        'refund_event_list': 'RefundEventList',
        'guarantee_claim_event_list': 'GuaranteeClaimEventList',
        'chargeback_event_list': 'ChargebackEventList',
        'pay_with_amazon_event_list': 'PayWithAmazonEventList',
        'service_provider_credit_event_list': 'ServiceProviderCreditEventList',
        'retrocharge_event_list': 'RetrochargeEventList',
        'rental_transaction_event_list': 'RentalTransactionEventList',
        'product_ads_payment_event_list': 'ProductAdsPaymentEventList',
        'service_fee_event_list': 'ServiceFeeEventList',
        'seller_deal_payment_event_list': 'SellerDealPaymentEventList',
        'debt_recovery_event_list': 'DebtRecoveryEventList',
        'loan_servicing_event_list': 'LoanServicingEventList',
        'adjustment_event_list': 'AdjustmentEventList',
        'safet_reimbursement_event_list': 'SAFETReimbursementEventList',
        'seller_review_enrollment_payment_event_list': 'SellerReviewEnrollmentPaymentEventList',
        'fba_liquidation_event_list': 'FBALiquidationEventList',
        'coupon_payment_event_list': 'CouponPaymentEventList',
        'imaging_services_fee_event_list': 'ImagingServicesFeeEventList',
        'network_commingling_transaction_event_list': 'NetworkComminglingTransactionEventList',
        'affordability_expense_event_list': 'AffordabilityExpenseEventList',
        'affordability_expense_reversal_event_list': 'AffordabilityExpenseReversalEventList'
    }

    def __init__(self, shipment_event_list=None, refund_event_list=None, guarantee_claim_event_list=None, chargeback_event_list=None, pay_with_amazon_event_list=None, service_provider_credit_event_list=None, retrocharge_event_list=None, rental_transaction_event_list=None, product_ads_payment_event_list=None, service_fee_event_list=None, seller_deal_payment_event_list=None, debt_recovery_event_list=None, loan_servicing_event_list=None, adjustment_event_list=None, safet_reimbursement_event_list=None, seller_review_enrollment_payment_event_list=None, fba_liquidation_event_list=None, coupon_payment_event_list=None, imaging_services_fee_event_list=None, network_commingling_transaction_event_list=None, affordability_expense_event_list=None, affordability_expense_reversal_event_list=None):  # noqa: E501
        """FinancialEvents - a model defined in Swagger"""  # noqa: E501
        self._shipment_event_list = None
        self._refund_event_list = None
        self._guarantee_claim_event_list = None
        self._chargeback_event_list = None
        self._pay_with_amazon_event_list = None
        self._service_provider_credit_event_list = None
        self._retrocharge_event_list = None
        self._rental_transaction_event_list = None
        self._product_ads_payment_event_list = None
        self._service_fee_event_list = None
        self._seller_deal_payment_event_list = None
        self._debt_recovery_event_list = None
        self._loan_servicing_event_list = None
        self._adjustment_event_list = None
        self._safet_reimbursement_event_list = None
        self._seller_review_enrollment_payment_event_list = None
        self._fba_liquidation_event_list = None
        self._coupon_payment_event_list = None
        self._imaging_services_fee_event_list = None
        self._network_commingling_transaction_event_list = None
        self._affordability_expense_event_list = None
        self._affordability_expense_reversal_event_list = None
        self.discriminator = None
        if shipment_event_list is not None:
            self.shipment_event_list = shipment_event_list
        if refund_event_list is not None:
            self.refund_event_list = refund_event_list
        if guarantee_claim_event_list is not None:
            self.guarantee_claim_event_list = guarantee_claim_event_list
        if chargeback_event_list is not None:
            self.chargeback_event_list = chargeback_event_list
        if pay_with_amazon_event_list is not None:
            self.pay_with_amazon_event_list = pay_with_amazon_event_list
        if service_provider_credit_event_list is not None:
            self.service_provider_credit_event_list = service_provider_credit_event_list
        if retrocharge_event_list is not None:
            self.retrocharge_event_list = retrocharge_event_list
        if rental_transaction_event_list is not None:
            self.rental_transaction_event_list = rental_transaction_event_list
        if product_ads_payment_event_list is not None:
            self.product_ads_payment_event_list = product_ads_payment_event_list
        if service_fee_event_list is not None:
            self.service_fee_event_list = service_fee_event_list
        if seller_deal_payment_event_list is not None:
            self.seller_deal_payment_event_list = seller_deal_payment_event_list
        if debt_recovery_event_list is not None:
            self.debt_recovery_event_list = debt_recovery_event_list
        if loan_servicing_event_list is not None:
            self.loan_servicing_event_list = loan_servicing_event_list
        if adjustment_event_list is not None:
            self.adjustment_event_list = adjustment_event_list
        if safet_reimbursement_event_list is not None:
            self.safet_reimbursement_event_list = safet_reimbursement_event_list
        if seller_review_enrollment_payment_event_list is not None:
            self.seller_review_enrollment_payment_event_list = seller_review_enrollment_payment_event_list
        if fba_liquidation_event_list is not None:
            self.fba_liquidation_event_list = fba_liquidation_event_list
        if coupon_payment_event_list is not None:
            self.coupon_payment_event_list = coupon_payment_event_list
        if imaging_services_fee_event_list is not None:
            self.imaging_services_fee_event_list = imaging_services_fee_event_list
        if network_commingling_transaction_event_list is not None:
            self.network_commingling_transaction_event_list = network_commingling_transaction_event_list
        if affordability_expense_event_list is not None:
            self.affordability_expense_event_list = affordability_expense_event_list
        if affordability_expense_reversal_event_list is not None:
            self.affordability_expense_reversal_event_list = affordability_expense_reversal_event_list

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


        :return: The shipment_event_list of this FinancialEvents.  # noqa: E501
        :rtype: ShipmentEventList
        """
        return self._shipment_event_list

    @shipment_event_list.setter
    def shipment_event_list(self, shipment_event_list):
        """Sets the shipment_event_list of this FinancialEvents.


        :param shipment_event_list: The shipment_event_list of this FinancialEvents.  # noqa: E501
        :type: ShipmentEventList
        """

        self._shipment_event_list = shipment_event_list

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


        :return: The refund_event_list of this FinancialEvents.  # noqa: E501
        :rtype: ShipmentEventList
        """
        return self._refund_event_list

    @refund_event_list.setter
    def refund_event_list(self, refund_event_list):
        """Sets the refund_event_list of this FinancialEvents.


        :param refund_event_list: The refund_event_list of this FinancialEvents.  # noqa: E501
        :type: ShipmentEventList
        """

        self._refund_event_list = refund_event_list

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


        :return: The guarantee_claim_event_list of this FinancialEvents.  # noqa: E501
        :rtype: ShipmentEventList
        """
        return self._guarantee_claim_event_list

    @guarantee_claim_event_list.setter
    def guarantee_claim_event_list(self, guarantee_claim_event_list):
        """Sets the guarantee_claim_event_list of this FinancialEvents.


        :param guarantee_claim_event_list: The guarantee_claim_event_list of this FinancialEvents.  # noqa: E501
        :type: ShipmentEventList
        """

        self._guarantee_claim_event_list = guarantee_claim_event_list

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


        :return: The chargeback_event_list of this FinancialEvents.  # noqa: E501
        :rtype: ShipmentEventList
        """
        return self._chargeback_event_list

    @chargeback_event_list.setter
    def chargeback_event_list(self, chargeback_event_list):
        """Sets the chargeback_event_list of this FinancialEvents.


        :param chargeback_event_list: The chargeback_event_list of this FinancialEvents.  # noqa: E501
        :type: ShipmentEventList
        """

        self._chargeback_event_list = chargeback_event_list

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


        :return: The pay_with_amazon_event_list of this FinancialEvents.  # noqa: E501
        :rtype: PayWithAmazonEventList
        """
        return self._pay_with_amazon_event_list

    @pay_with_amazon_event_list.setter
    def pay_with_amazon_event_list(self, pay_with_amazon_event_list):
        """Sets the pay_with_amazon_event_list of this FinancialEvents.


        :param pay_with_amazon_event_list: The pay_with_amazon_event_list of this FinancialEvents.  # noqa: E501
        :type: PayWithAmazonEventList
        """

        self._pay_with_amazon_event_list = pay_with_amazon_event_list

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


        :return: The service_provider_credit_event_list of this FinancialEvents.  # noqa: E501
        :rtype: SolutionProviderCreditEventList
        """
        return self._service_provider_credit_event_list

    @service_provider_credit_event_list.setter
    def service_provider_credit_event_list(self, service_provider_credit_event_list):
        """Sets the service_provider_credit_event_list of this FinancialEvents.


        :param service_provider_credit_event_list: The service_provider_credit_event_list of this FinancialEvents.  # noqa: E501
        :type: SolutionProviderCreditEventList
        """

        self._service_provider_credit_event_list = service_provider_credit_event_list

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


        :return: The retrocharge_event_list of this FinancialEvents.  # noqa: E501
        :rtype: RetrochargeEventList
        """
        return self._retrocharge_event_list

    @retrocharge_event_list.setter
    def retrocharge_event_list(self, retrocharge_event_list):
        """Sets the retrocharge_event_list of this FinancialEvents.


        :param retrocharge_event_list: The retrocharge_event_list of this FinancialEvents.  # noqa: E501
        :type: RetrochargeEventList
        """

        self._retrocharge_event_list = retrocharge_event_list

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


        :return: The rental_transaction_event_list of this FinancialEvents.  # noqa: E501
        :rtype: RentalTransactionEventList
        """
        return self._rental_transaction_event_list

    @rental_transaction_event_list.setter
    def rental_transaction_event_list(self, rental_transaction_event_list):
        """Sets the rental_transaction_event_list of this FinancialEvents.


        :param rental_transaction_event_list: The rental_transaction_event_list of this FinancialEvents.  # noqa: E501
        :type: RentalTransactionEventList
        """

        self._rental_transaction_event_list = rental_transaction_event_list

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


        :return: The product_ads_payment_event_list of this FinancialEvents.  # noqa: E501
        :rtype: ProductAdsPaymentEventList
        """
        return self._product_ads_payment_event_list

    @product_ads_payment_event_list.setter
    def product_ads_payment_event_list(self, product_ads_payment_event_list):
        """Sets the product_ads_payment_event_list of this FinancialEvents.


        :param product_ads_payment_event_list: The product_ads_payment_event_list of this FinancialEvents.  # noqa: E501
        :type: ProductAdsPaymentEventList
        """

        self._product_ads_payment_event_list = product_ads_payment_event_list

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


        :return: The service_fee_event_list of this FinancialEvents.  # noqa: E501
        :rtype: ServiceFeeEventList
        """
        return self._service_fee_event_list

    @service_fee_event_list.setter
    def service_fee_event_list(self, service_fee_event_list):
        """Sets the service_fee_event_list of this FinancialEvents.


        :param service_fee_event_list: The service_fee_event_list of this FinancialEvents.  # noqa: E501
        :type: ServiceFeeEventList
        """

        self._service_fee_event_list = service_fee_event_list

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


        :return: The seller_deal_payment_event_list of this FinancialEvents.  # noqa: E501
        :rtype: SellerDealPaymentEventList
        """
        return self._seller_deal_payment_event_list

    @seller_deal_payment_event_list.setter
    def seller_deal_payment_event_list(self, seller_deal_payment_event_list):
        """Sets the seller_deal_payment_event_list of this FinancialEvents.


        :param seller_deal_payment_event_list: The seller_deal_payment_event_list of this FinancialEvents.  # noqa: E501
        :type: SellerDealPaymentEventList
        """

        self._seller_deal_payment_event_list = seller_deal_payment_event_list

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


        :return: The debt_recovery_event_list of this FinancialEvents.  # noqa: E501
        :rtype: DebtRecoveryEventList
        """
        return self._debt_recovery_event_list

    @debt_recovery_event_list.setter
    def debt_recovery_event_list(self, debt_recovery_event_list):
        """Sets the debt_recovery_event_list of this FinancialEvents.


        :param debt_recovery_event_list: The debt_recovery_event_list of this FinancialEvents.  # noqa: E501
        :type: DebtRecoveryEventList
        """

        self._debt_recovery_event_list = debt_recovery_event_list

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


        :return: The loan_servicing_event_list of this FinancialEvents.  # noqa: E501
        :rtype: LoanServicingEventList
        """
        return self._loan_servicing_event_list

    @loan_servicing_event_list.setter
    def loan_servicing_event_list(self, loan_servicing_event_list):
        """Sets the loan_servicing_event_list of this FinancialEvents.


        :param loan_servicing_event_list: The loan_servicing_event_list of this FinancialEvents.  # noqa: E501
        :type: LoanServicingEventList
        """

        self._loan_servicing_event_list = loan_servicing_event_list

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


        :return: The adjustment_event_list of this FinancialEvents.  # noqa: E501
        :rtype: AdjustmentEventList
        """
        return self._adjustment_event_list

    @adjustment_event_list.setter
    def adjustment_event_list(self, adjustment_event_list):
        """Sets the adjustment_event_list of this FinancialEvents.


        :param adjustment_event_list: The adjustment_event_list of this FinancialEvents.  # noqa: E501
        :type: AdjustmentEventList
        """

        self._adjustment_event_list = adjustment_event_list

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


        :return: The safet_reimbursement_event_list of this FinancialEvents.  # noqa: E501
        :rtype: SAFETReimbursementEventList
        """
        return self._safet_reimbursement_event_list

    @safet_reimbursement_event_list.setter
    def safet_reimbursement_event_list(self, safet_reimbursement_event_list):
        """Sets the safet_reimbursement_event_list of this FinancialEvents.


        :param safet_reimbursement_event_list: The safet_reimbursement_event_list of this FinancialEvents.  # noqa: E501
        :type: SAFETReimbursementEventList
        """

        self._safet_reimbursement_event_list = safet_reimbursement_event_list

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


        :return: The seller_review_enrollment_payment_event_list of this FinancialEvents.  # noqa: E501
        :rtype: SellerReviewEnrollmentPaymentEventList
        """
        return self._seller_review_enrollment_payment_event_list

    @seller_review_enrollment_payment_event_list.setter
    def seller_review_enrollment_payment_event_list(self, seller_review_enrollment_payment_event_list):
        """Sets the seller_review_enrollment_payment_event_list of this FinancialEvents.


        :param seller_review_enrollment_payment_event_list: The seller_review_enrollment_payment_event_list of this FinancialEvents.  # noqa: E501
        :type: SellerReviewEnrollmentPaymentEventList
        """

        self._seller_review_enrollment_payment_event_list = seller_review_enrollment_payment_event_list

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


        :return: The fba_liquidation_event_list of this FinancialEvents.  # noqa: E501
        :rtype: FBALiquidationEventList
        """
        return self._fba_liquidation_event_list

    @fba_liquidation_event_list.setter
    def fba_liquidation_event_list(self, fba_liquidation_event_list):
        """Sets the fba_liquidation_event_list of this FinancialEvents.


        :param fba_liquidation_event_list: The fba_liquidation_event_list of this FinancialEvents.  # noqa: E501
        :type: FBALiquidationEventList
        """

        self._fba_liquidation_event_list = fba_liquidation_event_list

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


        :return: The coupon_payment_event_list of this FinancialEvents.  # noqa: E501
        :rtype: CouponPaymentEventList
        """
        return self._coupon_payment_event_list

    @coupon_payment_event_list.setter
    def coupon_payment_event_list(self, coupon_payment_event_list):
        """Sets the coupon_payment_event_list of this FinancialEvents.


        :param coupon_payment_event_list: The coupon_payment_event_list of this FinancialEvents.  # noqa: E501
        :type: CouponPaymentEventList
        """

        self._coupon_payment_event_list = coupon_payment_event_list

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


        :return: The imaging_services_fee_event_list of this FinancialEvents.  # noqa: E501
        :rtype: ImagingServicesFeeEventList
        """
        return self._imaging_services_fee_event_list

    @imaging_services_fee_event_list.setter
    def imaging_services_fee_event_list(self, imaging_services_fee_event_list):
        """Sets the imaging_services_fee_event_list of this FinancialEvents.


        :param imaging_services_fee_event_list: The imaging_services_fee_event_list of this FinancialEvents.  # noqa: E501
        :type: ImagingServicesFeeEventList
        """

        self._imaging_services_fee_event_list = imaging_services_fee_event_list

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


        :return: The network_commingling_transaction_event_list of this FinancialEvents.  # noqa: E501
        :rtype: NetworkComminglingTransactionEventList
        """
        return self._network_commingling_transaction_event_list

    @network_commingling_transaction_event_list.setter
    def network_commingling_transaction_event_list(self, network_commingling_transaction_event_list):
        """Sets the network_commingling_transaction_event_list of this FinancialEvents.


        :param network_commingling_transaction_event_list: The network_commingling_transaction_event_list of this FinancialEvents.  # noqa: E501
        :type: NetworkComminglingTransactionEventList
        """

        self._network_commingling_transaction_event_list = network_commingling_transaction_event_list

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


        :return: The affordability_expense_event_list of this FinancialEvents.  # noqa: E501
        :rtype: AffordabilityExpenseEventList
        """
        return self._affordability_expense_event_list

    @affordability_expense_event_list.setter
    def affordability_expense_event_list(self, affordability_expense_event_list):
        """Sets the affordability_expense_event_list of this FinancialEvents.


        :param affordability_expense_event_list: The affordability_expense_event_list of this FinancialEvents.  # noqa: E501
        :type: AffordabilityExpenseEventList
        """

        self._affordability_expense_event_list = affordability_expense_event_list

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


        :return: The affordability_expense_reversal_event_list of this FinancialEvents.  # noqa: E501
        :rtype: AffordabilityExpenseEventList
        """
        return self._affordability_expense_reversal_event_list

    @affordability_expense_reversal_event_list.setter
    def affordability_expense_reversal_event_list(self, affordability_expense_reversal_event_list):
        """Sets the affordability_expense_reversal_event_list of this FinancialEvents.


        :param affordability_expense_reversal_event_list: The affordability_expense_reversal_event_list of this FinancialEvents.  # noqa: E501
        :type: AffordabilityExpenseEventList
        """

        self._affordability_expense_reversal_event_list = affordability_expense_reversal_event_list

    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(FinancialEvents, 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, FinancialEvents):
            return False

        return self.__dict__ == other.__dict__

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