"""visaacceptancemergedspec.

This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
"""

# ruff: noqa: E501
from visaacceptancemergedspec.api_helper import (
    APIHelper,
)
from visaacceptancemergedspec.models.application_information import (
    ApplicationInformation,
)
from visaacceptancemergedspec.models.bank_account_validation import (
    BankAccountValidation,
)
from visaacceptancemergedspec.models.buyer_information_34 import (
    BuyerInformation34,
)
from visaacceptancemergedspec.models.client_reference_information_47 import (
    ClientReferenceInformation47,
)
from visaacceptancemergedspec.models.consumer_authentication_information_4 import (
    ConsumerAuthenticationInformation4,
)
from visaacceptancemergedspec.models.device_information_9 import (
    DeviceInformation9,
)
from visaacceptancemergedspec.models.error_information_20 import (
    ErrorInformation20,
)
from visaacceptancemergedspec.models.fraud_marking_information import (
    FraudMarkingInformation,
)
from visaacceptancemergedspec.models.health_care_information import (
    HealthCareInformation,
)
from visaacceptancemergedspec.models.installment_information_10 import (
    InstallmentInformation10,
)
from visaacceptancemergedspec.models.links_219 import (
    Links219,
)
from visaacceptancemergedspec.models.merchant_defined_information import (
    MerchantDefinedInformation,
)
from visaacceptancemergedspec.models.merchant_information_35 import (
    MerchantInformation35,
)
from visaacceptancemergedspec.models.order_information_33 import (
    OrderInformation33,
)
from visaacceptancemergedspec.models.payment_information_31 import (
    PaymentInformation31,
)
from visaacceptancemergedspec.models.payment_insights_information import (
    PaymentInsightsInformation,
)
from visaacceptancemergedspec.models.payout_options import (
    PayoutOptions,
)
from visaacceptancemergedspec.models.point_of_sale_information_14 import (
    PointOfSaleInformation14,
)
from visaacceptancemergedspec.models.processing_information_52 import (
    ProcessingInformation52,
)
from visaacceptancemergedspec.models.processor_information_24 import (
    ProcessorInformation24,
)
from visaacceptancemergedspec.models.recurring_payment_information_1 import (
    RecurringPaymentInformation1,
)
from visaacceptancemergedspec.models.risk_information_5 import (
    RiskInformation5,
)
from visaacceptancemergedspec.models.sender_information_3 import (
    SenderInformation3,
)
from visaacceptancemergedspec.models.token_information_2 import (
    TokenInformation2,
)
from visaacceptancemergedspec.models.unscheduled_payment_information import (
    UnscheduledPaymentInformation,
)


class TssV2TransactionsGet200Response(object):
    """Implementation of the 'tssV2TransactionsGet200Response' model.

    Attributes:
        id (str): An unique identification number generated by Visa Acceptance to
            identify the submitted request. Returned by all services. It is also
            appended to the endpoint of the resource. On incremental authorizations,
            this value with be the same as the identification number returned in the
            original authorization response.
        root_id (str): Contains the transaction identifier for the first transaction
            in the series of transactions. For example, you might send an
            authorization request for a payment, followed by a capture request for
            that payment, and then a refund request for that captured payment. Each
            of those requests, if successful, creates a resource that is assigned an
            identifier, which is returned in the response. The rootId identifies the
            first ID in the series, which in this case would be the ID of the
            original authorization.
        reconciliation_id (str): Reference number for the transaction. Depending on
            how your Visa Acceptance account is configured, this value could either
            be provided in the API request or generated by Visa Acceptance. The
            actual value used in the request to the processor is provided back to you
            by Visa Acceptance in the response.
        merchant_id (str): Your Visa Acceptance merchant ID.
        submit_time_utc (str): Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`
            **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57
            (10:47:57 p.m.). The `T` separates the date and the time. The `Z`
            indicates UTC.  Returned by Visa Acceptance for all services.
        status (str): The status of the submitted transaction.
        application_information (ApplicationInformation): The model property of type
            ApplicationInformation.
        bank_account_validation (BankAccountValidation): The model property of type
            BankAccountValidation.
        buyer_information (BuyerInformation34): The model property of type
            BuyerInformation34.
        client_reference_information (ClientReferenceInformation47): The model
            property of type ClientReferenceInformation47.
        consumer_authentication_information (ConsumerAuthenticationInformation4): The
            model property of type ConsumerAuthenticationInformation4.
        device_information (DeviceInformation9): The model property of type
            DeviceInformation9.
        error_information (ErrorInformation20): The model property of type
            ErrorInformation20.
        installment_information (InstallmentInformation10): The model property of
            type InstallmentInformation10.
        fraud_marking_information (FraudMarkingInformation): The model property of
            type FraudMarkingInformation.
        health_care_information (HealthCareInformation): The model property of type
            HealthCareInformation.
        merchant_defined_information (List[MerchantDefinedInformation]): The object
            containing the custom data that the merchant defines.
        merchant_information (MerchantInformation35): The model property of type
            MerchantInformation35.
        order_information (OrderInformation33): The model property of type
            OrderInformation33.
        payment_information (PaymentInformation31): The model property of type
            PaymentInformation31.
        payment_insights_information (PaymentInsightsInformation): The model property
            of type PaymentInsightsInformation.
        payout_options (PayoutOptions): The model property of type PayoutOptions.
        unscheduled_payment_information (UnscheduledPaymentInformation): The model
            property of type UnscheduledPaymentInformation.
        processing_information (ProcessingInformation52): The model property of type
            ProcessingInformation52.
        processor_information (ProcessorInformation24): The model property of type
            ProcessorInformation24.
        recurring_payment_information (RecurringPaymentInformation1): The model
            property of type RecurringPaymentInformation1.
        point_of_sale_information (PointOfSaleInformation14): The model property of
            type PointOfSaleInformation14.
        risk_information (RiskInformation5): The model property of type
            RiskInformation5.
        sender_information (SenderInformation3): The model property of type
            SenderInformation3.
        token_information (TokenInformation2): The model property of type
            TokenInformation2.
        links (Links219): The model property of type Links219.
        additional_properties (Dict[str, Any]): The additional properties for the
            model.

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "id": "id",
        "root_id": "rootId",
        "reconciliation_id": "reconciliationId",
        "merchant_id": "merchantId",
        "submit_time_utc": "submitTimeUTC",
        "status": "status",
        "application_information": "applicationInformation",
        "bank_account_validation": "bankAccountValidation",
        "buyer_information": "buyerInformation",
        "client_reference_information": "clientReferenceInformation",
        "consumer_authentication_information": "consumerAuthenticationInformation",
        "device_information": "deviceInformation",
        "error_information": "errorInformation",
        "installment_information": "installmentInformation",
        "fraud_marking_information": "fraudMarkingInformation",
        "health_care_information": "healthCareInformation",
        "merchant_defined_information": "merchantDefinedInformation",
        "merchant_information": "merchantInformation",
        "order_information": "orderInformation",
        "payment_information": "paymentInformation",
        "payment_insights_information": "paymentInsightsInformation",
        "payout_options": "payoutOptions",
        "unscheduled_payment_information": "unscheduledPaymentInformation",
        "processing_information": "processingInformation",
        "processor_information": "processorInformation",
        "recurring_payment_information": "recurringPaymentInformation",
        "point_of_sale_information": "pointOfSaleInformation",
        "risk_information": "riskInformation",
        "sender_information": "senderInformation",
        "token_information": "tokenInformation",
        "links": "_links",
    }

    _optionals = [
        "id",
        "root_id",
        "reconciliation_id",
        "merchant_id",
        "submit_time_utc",
        "status",
        "application_information",
        "bank_account_validation",
        "buyer_information",
        "client_reference_information",
        "consumer_authentication_information",
        "device_information",
        "error_information",
        "installment_information",
        "fraud_marking_information",
        "health_care_information",
        "merchant_defined_information",
        "merchant_information",
        "order_information",
        "payment_information",
        "payment_insights_information",
        "payout_options",
        "unscheduled_payment_information",
        "processing_information",
        "processor_information",
        "recurring_payment_information",
        "point_of_sale_information",
        "risk_information",
        "sender_information",
        "token_information",
        "links",
    ]

    def __init__(
        self,
        id=APIHelper.SKIP,
        root_id=APIHelper.SKIP,
        reconciliation_id=APIHelper.SKIP,
        merchant_id=APIHelper.SKIP,
        submit_time_utc=APIHelper.SKIP,
        status=APIHelper.SKIP,
        application_information=APIHelper.SKIP,
        bank_account_validation=APIHelper.SKIP,
        buyer_information=APIHelper.SKIP,
        client_reference_information=APIHelper.SKIP,
        consumer_authentication_information=APIHelper.SKIP,
        device_information=APIHelper.SKIP,
        error_information=APIHelper.SKIP,
        installment_information=APIHelper.SKIP,
        fraud_marking_information=APIHelper.SKIP,
        health_care_information=APIHelper.SKIP,
        merchant_defined_information=APIHelper.SKIP,
        merchant_information=APIHelper.SKIP,
        order_information=APIHelper.SKIP,
        payment_information=APIHelper.SKIP,
        payment_insights_information=APIHelper.SKIP,
        payout_options=APIHelper.SKIP,
        unscheduled_payment_information=APIHelper.SKIP,
        processing_information=APIHelper.SKIP,
        processor_information=APIHelper.SKIP,
        recurring_payment_information=APIHelper.SKIP,
        point_of_sale_information=APIHelper.SKIP,
        risk_information=APIHelper.SKIP,
        sender_information=APIHelper.SKIP,
        token_information=APIHelper.SKIP,
        links=APIHelper.SKIP,
        additional_properties=None):
        """Initialize a TssV2TransactionsGet200Response instance."""
        # Initialize members of the class
        if id is not APIHelper.SKIP:
            self.id = id
        if root_id is not APIHelper.SKIP:
            self.root_id = root_id
        if reconciliation_id is not APIHelper.SKIP:
            self.reconciliation_id = reconciliation_id
        if merchant_id is not APIHelper.SKIP:
            self.merchant_id = merchant_id
        if submit_time_utc is not APIHelper.SKIP:
            self.submit_time_utc = submit_time_utc
        if status is not APIHelper.SKIP:
            self.status = status
        if application_information is not APIHelper.SKIP:
            self.application_information = application_information
        if bank_account_validation is not APIHelper.SKIP:
            self.bank_account_validation = bank_account_validation
        if buyer_information is not APIHelper.SKIP:
            self.buyer_information = buyer_information
        if client_reference_information is not APIHelper.SKIP:
            self.client_reference_information = client_reference_information
        if consumer_authentication_information is not APIHelper.SKIP:
            self.consumer_authentication_information =\
                 consumer_authentication_information
        if device_information is not APIHelper.SKIP:
            self.device_information = device_information
        if error_information is not APIHelper.SKIP:
            self.error_information = error_information
        if installment_information is not APIHelper.SKIP:
            self.installment_information = installment_information
        if fraud_marking_information is not APIHelper.SKIP:
            self.fraud_marking_information = fraud_marking_information
        if health_care_information is not APIHelper.SKIP:
            self.health_care_information = health_care_information
        if merchant_defined_information is not APIHelper.SKIP:
            self.merchant_defined_information = merchant_defined_information
        if merchant_information is not APIHelper.SKIP:
            self.merchant_information = merchant_information
        if order_information is not APIHelper.SKIP:
            self.order_information = order_information
        if payment_information is not APIHelper.SKIP:
            self.payment_information = payment_information
        if payment_insights_information is not APIHelper.SKIP:
            self.payment_insights_information = payment_insights_information
        if payout_options is not APIHelper.SKIP:
            self.payout_options = payout_options
        if unscheduled_payment_information is not APIHelper.SKIP:
            self.unscheduled_payment_information = unscheduled_payment_information
        if processing_information is not APIHelper.SKIP:
            self.processing_information = processing_information
        if processor_information is not APIHelper.SKIP:
            self.processor_information = processor_information
        if recurring_payment_information is not APIHelper.SKIP:
            self.recurring_payment_information = recurring_payment_information
        if point_of_sale_information is not APIHelper.SKIP:
            self.point_of_sale_information = point_of_sale_information
        if risk_information is not APIHelper.SKIP:
            self.risk_information = risk_information
        if sender_information is not APIHelper.SKIP:
            self.sender_information = sender_information
        if token_information is not APIHelper.SKIP:
            self.token_information = token_information
        if links is not APIHelper.SKIP:
            self.links = links

        # Add additional model properties to the instance
        if additional_properties is None:
            additional_properties = {}
        self.additional_properties = additional_properties

    @classmethod
    def from_dictionary(cls,
                        dictionary):
        """Create an instance of this model from a dictionary

        Args:
            dictionary (dictionary): A dictionary representation of the object
            as obtained from the deserialization of the server's response. The
            keys MUST match property names in the API description.

        Returns:
            object: An instance of this structure class.

        """
        if not isinstance(dictionary, dict) or dictionary is None:
            return None

        # Extract variables from the dictionary
        id =\
            dictionary.get("id")\
            if dictionary.get("id")\
                else APIHelper.SKIP
        root_id =\
            dictionary.get("rootId")\
            if dictionary.get("rootId")\
                else APIHelper.SKIP
        reconciliation_id =\
            dictionary.get("reconciliationId")\
            if dictionary.get("reconciliationId")\
                else APIHelper.SKIP
        merchant_id =\
            dictionary.get("merchantId")\
            if dictionary.get("merchantId")\
                else APIHelper.SKIP
        submit_time_utc =\
            dictionary.get("submitTimeUTC")\
            if dictionary.get("submitTimeUTC")\
                else APIHelper.SKIP
        status =\
            dictionary.get("status")\
            if dictionary.get("status")\
                else APIHelper.SKIP
        application_information =\
            ApplicationInformation.from_dictionary(
                dictionary.get("applicationInformation"))\
                if "applicationInformation" in dictionary.keys()\
                else APIHelper.SKIP
        bank_account_validation =\
            BankAccountValidation.from_dictionary(
                dictionary.get("bankAccountValidation"))\
                if "bankAccountValidation" in dictionary.keys()\
                else APIHelper.SKIP
        buyer_information =\
            BuyerInformation34.from_dictionary(
                dictionary.get("buyerInformation"))\
                if "buyerInformation" in dictionary.keys()\
                else APIHelper.SKIP
        client_reference_information =\
            ClientReferenceInformation47.from_dictionary(
                dictionary.get("clientReferenceInformation"))\
                if "clientReferenceInformation" in dictionary.keys()\
                else APIHelper.SKIP
        consumer_authentication_information =\
            ConsumerAuthenticationInformation4.from_dictionary(
                dictionary.get("consumerAuthenticationInformation"))\
                if "consumerAuthenticationInformation" in dictionary.keys()\
                else APIHelper.SKIP
        device_information =\
            DeviceInformation9.from_dictionary(
                dictionary.get("deviceInformation"))\
                if "deviceInformation" in dictionary.keys()\
                else APIHelper.SKIP
        error_information =\
            ErrorInformation20.from_dictionary(
                dictionary.get("errorInformation"))\
                if "errorInformation" in dictionary.keys()\
                else APIHelper.SKIP
        installment_information =\
            InstallmentInformation10.from_dictionary(
                dictionary.get("installmentInformation"))\
                if "installmentInformation" in dictionary.keys()\
                else APIHelper.SKIP
        fraud_marking_information =\
            FraudMarkingInformation.from_dictionary(
                dictionary.get("fraudMarkingInformation"))\
                if "fraudMarkingInformation" in dictionary.keys()\
                else APIHelper.SKIP
        health_care_information =\
            HealthCareInformation.from_dictionary(
                dictionary.get("healthCareInformation"))\
                if "healthCareInformation" in dictionary.keys()\
                else APIHelper.SKIP
        merchant_defined_information = None
        if dictionary.get("merchantDefinedInformation") is not None:
            merchant_defined_information = [
                MerchantDefinedInformation.from_dictionary(x)
                    for x in dictionary.get("merchantDefinedInformation")
            ]
        else:
            merchant_defined_information = APIHelper.SKIP
        merchant_information =\
            MerchantInformation35.from_dictionary(
                dictionary.get("merchantInformation"))\
                if "merchantInformation" in dictionary.keys()\
                else APIHelper.SKIP
        order_information =\
            OrderInformation33.from_dictionary(
                dictionary.get("orderInformation"))\
                if "orderInformation" in dictionary.keys()\
                else APIHelper.SKIP
        payment_information =\
            PaymentInformation31.from_dictionary(
                dictionary.get("paymentInformation"))\
                if "paymentInformation" in dictionary.keys()\
                else APIHelper.SKIP
        payment_insights_information =\
            PaymentInsightsInformation.from_dictionary(
                dictionary.get("paymentInsightsInformation"))\
                if "paymentInsightsInformation" in dictionary.keys()\
                else APIHelper.SKIP
        payout_options =\
            PayoutOptions.from_dictionary(
                dictionary.get("payoutOptions"))\
                if "payoutOptions" in dictionary.keys()\
                else APIHelper.SKIP
        unscheduled_payment_information =\
            UnscheduledPaymentInformation.from_dictionary(
                dictionary.get("unscheduledPaymentInformation"))\
                if "unscheduledPaymentInformation" in dictionary.keys()\
                else APIHelper.SKIP
        processing_information =\
            ProcessingInformation52.from_dictionary(
                dictionary.get("processingInformation"))\
                if "processingInformation" in dictionary.keys()\
                else APIHelper.SKIP
        processor_information =\
            ProcessorInformation24.from_dictionary(
                dictionary.get("processorInformation"))\
                if "processorInformation" in dictionary.keys()\
                else APIHelper.SKIP
        recurring_payment_information =\
            RecurringPaymentInformation1.from_dictionary(
                dictionary.get("recurringPaymentInformation"))\
                if "recurringPaymentInformation" in dictionary.keys()\
                else APIHelper.SKIP
        point_of_sale_information =\
            PointOfSaleInformation14.from_dictionary(
                dictionary.get("pointOfSaleInformation"))\
                if "pointOfSaleInformation" in dictionary.keys()\
                else APIHelper.SKIP
        risk_information =\
            RiskInformation5.from_dictionary(
                dictionary.get("riskInformation"))\
                if "riskInformation" in dictionary.keys()\
                else APIHelper.SKIP
        sender_information =\
            SenderInformation3.from_dictionary(
                dictionary.get("senderInformation"))\
                if "senderInformation" in dictionary.keys()\
                else APIHelper.SKIP
        token_information =\
            TokenInformation2.from_dictionary(
                dictionary.get("tokenInformation"))\
                if "tokenInformation" in dictionary.keys()\
                else APIHelper.SKIP
        links =\
            Links219.from_dictionary(
                dictionary.get("_links"))\
                if "_links" in dictionary.keys()\
                else APIHelper.SKIP

        additional_properties = APIHelper.get_additional_properties(
            dictionary={k: v for k, v in dictionary.items()
                        if k not in cls._names.values()},
            unboxing_function=lambda value: value)

        # Return an object of this model
        return cls(id,
                   root_id,
                   reconciliation_id,
                   merchant_id,
                   submit_time_utc,
                   status,
                   application_information,
                   bank_account_validation,
                   buyer_information,
                   client_reference_information,
                   consumer_authentication_information,
                   device_information,
                   error_information,
                   installment_information,
                   fraud_marking_information,
                   health_care_information,
                   merchant_defined_information,
                   merchant_information,
                   order_information,
                   payment_information,
                   payment_insights_information,
                   payout_options,
                   unscheduled_payment_information,
                   processing_information,
                   processor_information,
                   recurring_payment_information,
                   point_of_sale_information,
                   risk_information,
                   sender_information,
                   token_information,
                   links,
                   additional_properties)

    def __repr__(self):
        """Return a unambiguous string representation."""
        _id=(
            self.id
            if hasattr(self, "id")
            else None
        )
        _root_id=(
            self.root_id
            if hasattr(self, "root_id")
            else None
        )
        _reconciliation_id=(
            self.reconciliation_id
            if hasattr(self, "reconciliation_id")
            else None
        )
        _merchant_id=(
            self.merchant_id
            if hasattr(self, "merchant_id")
            else None
        )
        _submit_time_utc=(
            self.submit_time_utc
            if hasattr(self, "submit_time_utc")
            else None
        )
        _status=(
            self.status
            if hasattr(self, "status")
            else None
        )
        _application_information=(
            self.application_information
            if hasattr(self, "application_information")
            else None
        )
        _bank_account_validation=(
            self.bank_account_validation
            if hasattr(self, "bank_account_validation")
            else None
        )
        _buyer_information=(
            self.buyer_information
            if hasattr(self, "buyer_information")
            else None
        )
        _client_reference_information=(
            self.client_reference_information
            if hasattr(self, "client_reference_information")
            else None
        )
        _consumer_authentication_information=(
            self.consumer_authentication_information
            if hasattr(self, "consumer_authentication_information")
            else None
        )
        _device_information=(
            self.device_information
            if hasattr(self, "device_information")
            else None
        )
        _error_information=(
            self.error_information
            if hasattr(self, "error_information")
            else None
        )
        _installment_information=(
            self.installment_information
            if hasattr(self, "installment_information")
            else None
        )
        _fraud_marking_information=(
            self.fraud_marking_information
            if hasattr(self, "fraud_marking_information")
            else None
        )
        _health_care_information=(
            self.health_care_information
            if hasattr(self, "health_care_information")
            else None
        )
        _merchant_defined_information=(
            self.merchant_defined_information
            if hasattr(self, "merchant_defined_information")
            else None
        )
        _merchant_information=(
            self.merchant_information
            if hasattr(self, "merchant_information")
            else None
        )
        _order_information=(
            self.order_information
            if hasattr(self, "order_information")
            else None
        )
        _payment_information=(
            self.payment_information
            if hasattr(self, "payment_information")
            else None
        )
        _payment_insights_information=(
            self.payment_insights_information
            if hasattr(self, "payment_insights_information")
            else None
        )
        _payout_options=(
            self.payout_options
            if hasattr(self, "payout_options")
            else None
        )
        _unscheduled_payment_information=(
            self.unscheduled_payment_information
            if hasattr(self, "unscheduled_payment_information")
            else None
        )
        _processing_information=(
            self.processing_information
            if hasattr(self, "processing_information")
            else None
        )
        _processor_information=(
            self.processor_information
            if hasattr(self, "processor_information")
            else None
        )
        _recurring_payment_information=(
            self.recurring_payment_information
            if hasattr(self, "recurring_payment_information")
            else None
        )
        _point_of_sale_information=(
            self.point_of_sale_information
            if hasattr(self, "point_of_sale_information")
            else None
        )
        _risk_information=(
            self.risk_information
            if hasattr(self, "risk_information")
            else None
        )
        _sender_information=(
            self.sender_information
            if hasattr(self, "sender_information")
            else None
        )
        _token_information=(
            self.token_information
            if hasattr(self, "token_information")
            else None
        )
        _links=(
            self.links
            if hasattr(self, "links")
            else None
        )
        _additional_properties=self.additional_properties
        return (
            f"{self.__class__.__name__}("
            f"id={_id!r}, "
            f"root_id={_root_id!r}, "
            f"reconciliation_id={_reconciliation_id!r}, "
            f"merchant_id={_merchant_id!r}, "
            f"submit_time_utc={_submit_time_utc!r}, "
            f"status={_status!r}, "
            f"application_information={_application_information!r}, "
            f"bank_account_validation={_bank_account_validation!r}, "
            f"buyer_information={_buyer_information!r}, "
            f"client_reference_information={_client_reference_information!r}, "
            f"consumer_authentication_information={_consumer_authentication_information!r}, "
            f"device_information={_device_information!r}, "
            f"error_information={_error_information!r}, "
            f"installment_information={_installment_information!r}, "
            f"fraud_marking_information={_fraud_marking_information!r}, "
            f"health_care_information={_health_care_information!r}, "
            f"merchant_defined_information={_merchant_defined_information!r}, "
            f"merchant_information={_merchant_information!r}, "
            f"order_information={_order_information!r}, "
            f"payment_information={_payment_information!r}, "
            f"payment_insights_information={_payment_insights_information!r}, "
            f"payout_options={_payout_options!r}, "
            f"unscheduled_payment_information={_unscheduled_payment_information!r}, "
            f"processing_information={_processing_information!r}, "
            f"processor_information={_processor_information!r}, "
            f"recurring_payment_information={_recurring_payment_information!r}, "
            f"point_of_sale_information={_point_of_sale_information!r}, "
            f"risk_information={_risk_information!r}, "
            f"sender_information={_sender_information!r}, "
            f"token_information={_token_information!r}, "
            f"links={_links!r}, "
            f"additional_properties={_additional_properties!r}, "
            f")"
        )

    def __str__(self):
        """Return a human-readable string representation."""
        _id=(
            self.id
            if hasattr(self, "id")
            else None
        )
        _root_id=(
            self.root_id
            if hasattr(self, "root_id")
            else None
        )
        _reconciliation_id=(
            self.reconciliation_id
            if hasattr(self, "reconciliation_id")
            else None
        )
        _merchant_id=(
            self.merchant_id
            if hasattr(self, "merchant_id")
            else None
        )
        _submit_time_utc=(
            self.submit_time_utc
            if hasattr(self, "submit_time_utc")
            else None
        )
        _status=(
            self.status
            if hasattr(self, "status")
            else None
        )
        _application_information=(
            self.application_information
            if hasattr(self, "application_information")
            else None
        )
        _bank_account_validation=(
            self.bank_account_validation
            if hasattr(self, "bank_account_validation")
            else None
        )
        _buyer_information=(
            self.buyer_information
            if hasattr(self, "buyer_information")
            else None
        )
        _client_reference_information=(
            self.client_reference_information
            if hasattr(self, "client_reference_information")
            else None
        )
        _consumer_authentication_information=(
            self.consumer_authentication_information
            if hasattr(self, "consumer_authentication_information")
            else None
        )
        _device_information=(
            self.device_information
            if hasattr(self, "device_information")
            else None
        )
        _error_information=(
            self.error_information
            if hasattr(self, "error_information")
            else None
        )
        _installment_information=(
            self.installment_information
            if hasattr(self, "installment_information")
            else None
        )
        _fraud_marking_information=(
            self.fraud_marking_information
            if hasattr(self, "fraud_marking_information")
            else None
        )
        _health_care_information=(
            self.health_care_information
            if hasattr(self, "health_care_information")
            else None
        )
        _merchant_defined_information=(
            self.merchant_defined_information
            if hasattr(self, "merchant_defined_information")
            else None
        )
        _merchant_information=(
            self.merchant_information
            if hasattr(self, "merchant_information")
            else None
        )
        _order_information=(
            self.order_information
            if hasattr(self, "order_information")
            else None
        )
        _payment_information=(
            self.payment_information
            if hasattr(self, "payment_information")
            else None
        )
        _payment_insights_information=(
            self.payment_insights_information
            if hasattr(self, "payment_insights_information")
            else None
        )
        _payout_options=(
            self.payout_options
            if hasattr(self, "payout_options")
            else None
        )
        _unscheduled_payment_information=(
            self.unscheduled_payment_information
            if hasattr(self, "unscheduled_payment_information")
            else None
        )
        _processing_information=(
            self.processing_information
            if hasattr(self, "processing_information")
            else None
        )
        _processor_information=(
            self.processor_information
            if hasattr(self, "processor_information")
            else None
        )
        _recurring_payment_information=(
            self.recurring_payment_information
            if hasattr(self, "recurring_payment_information")
            else None
        )
        _point_of_sale_information=(
            self.point_of_sale_information
            if hasattr(self, "point_of_sale_information")
            else None
        )
        _risk_information=(
            self.risk_information
            if hasattr(self, "risk_information")
            else None
        )
        _sender_information=(
            self.sender_information
            if hasattr(self, "sender_information")
            else None
        )
        _token_information=(
            self.token_information
            if hasattr(self, "token_information")
            else None
        )
        _links=(
            self.links
            if hasattr(self, "links")
            else None
        )
        _additional_properties=self.additional_properties
        return (
            f"{self.__class__.__name__}("
            f"id={_id!s}, "
            f"root_id={_root_id!s}, "
            f"reconciliation_id={_reconciliation_id!s}, "
            f"merchant_id={_merchant_id!s}, "
            f"submit_time_utc={_submit_time_utc!s}, "
            f"status={_status!s}, "
            f"application_information={_application_information!s}, "
            f"bank_account_validation={_bank_account_validation!s}, "
            f"buyer_information={_buyer_information!s}, "
            f"client_reference_information={_client_reference_information!s}, "
            f"consumer_authentication_information={_consumer_authentication_information!s}, "
            f"device_information={_device_information!s}, "
            f"error_information={_error_information!s}, "
            f"installment_information={_installment_information!s}, "
            f"fraud_marking_information={_fraud_marking_information!s}, "
            f"health_care_information={_health_care_information!s}, "
            f"merchant_defined_information={_merchant_defined_information!s}, "
            f"merchant_information={_merchant_information!s}, "
            f"order_information={_order_information!s}, "
            f"payment_information={_payment_information!s}, "
            f"payment_insights_information={_payment_insights_information!s}, "
            f"payout_options={_payout_options!s}, "
            f"unscheduled_payment_information={_unscheduled_payment_information!s}, "
            f"processing_information={_processing_information!s}, "
            f"processor_information={_processor_information!s}, "
            f"recurring_payment_information={_recurring_payment_information!s}, "
            f"point_of_sale_information={_point_of_sale_information!s}, "
            f"risk_information={_risk_information!s}, "
            f"sender_information={_sender_information!s}, "
            f"token_information={_token_information!s}, "
            f"links={_links!s}, "
            f"additional_properties={_additional_properties!s}, "
            f")"
        )
