"""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.strong_authentication import (
    StrongAuthentication,
)


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

    Attributes:
        cavv (str): Cardholder authentication verification value (CAVV).
        transaction_flow_indicator (str): This field details out the type of
            transaction. Below are the possible values. 08:GC- Guest Checkout.
        cavv_algorithm (str): Algorithm used to generate the CAVV for Visa Secure or
            the UCAF authentication data for Mastercard Identity Check.
        eci_raw (str): Raw electronic commerce indicator (ECI).
        pares_status (str): Payer authentication response status.
        veres_enrolled (str): Verification response enrollment status.
        xid (str): Transaction identifier.
        ucaf_collection_indicator (str): Universal cardholder authentication field
            (UCAF) collection indicator.  #### Visa Acceptance through VisaNet The
            value for this field corresponds to the following data in the TC 33
            capture file5: - Record: CP01 TCR7 - Position: 5 - Field: Mastercard
            Electronic Commerce Indicators—UCAF Collection Indicator
        ucaf_authentication_data (str): Universal cardholder authentication field
            (UCAF) data.
        strong_authentication (StrongAuthentication): The model property of type
            StrongAuthentication.
        directory_server_transaction_id (str): The Directory Server Transaction ID is
            generated by the Mastercard Directory Server during the authentication
            transaction and passed back to the merchant with the authentication
            results. For Visa Acceptance Through Visanet Gateway: The value for this
            field corresponds to the following data in the TC 33 capture file3:
            Record: CP01 TCR7, Position: 114-149, Field: MC AVV
            Verification—Directory Server Transaction ID
        pa_specification_version (str): This field contains 3DS version that was used
            for Secured Consumer Authentication (SCA).  The value for this field
            should be in the format major.minor.patch version.  Valid Values are:  -
            `2.1.0` (EMV 3D Secure Version 2.1) - `2.2.0` (EMV 3D Secure Version 2.2)
            - `2.3.0` (EMV 3D Secure Version 2.3) - `2.4.0` (EMV 3D Secure Version
            2.4) - `2.5.0` (EMV 3D Secure Version 2.5) - `2.6.0` (EMV 3D Secure
            Version 2.6) - `2.7.0` (EMV 3D Secure Version 2.7) - `2.8.0` (EMV 3D
            Secure Version 2.8) - `2.9.0` (EMV 3D Secure Version 2.9)  For Visa
            Platform Connect:         The value for this field corresponds to the
            following data in the TC 33 capture file3:  Record: CP01 TCR7, Position:
            113 , Field: MC AVV Verification—Program Protocol  It will contain one of
            the following values: - `1` (3D Secure Version 1.x (3DS 1.0)) - `2` (EMV
            3-D Secure (3DS 2.x))
        authentication_type (str): Indicates the type of authentication that will be
            used to challenge the card holder.  Possible Values:  01 - Static  02 -
            Dynamic  03 - OOB (Out of Band)  04 - Decoupled  20 - OTP hosted at
            merchant end. (Rupay S2S flow) **NOTE**:  EMV 3-D Secure version 2.1.0
            supports values 01-03.  Version 2.2.0 supports values 01-04.  Decoupled
            authentication is not supported at this time.
        response_access_token (str): JWT returned by the 3D Secure provider when the
            authentication is complete. Required for Hybrid integration if you use
            the Visa Acceptance-generated access token. Note: Max. length of this
            field is 2048 characters.
        acs_transaction_id (str): Unique transaction identifier assigned by the ACS
            to identify a single transaction.  This field is supported for Cartes
            Bancaires Fast'R transactions on Credit Mutuel-CIC.
        acs_window_size (str): An override field that a merchant can pass in to set
            the challenge window size to display to the end cardholder.  The ACS
            (Active Control Server) will reply with content that is formatted
            appropriately to this window size to allow for the best user experience.
            The sizes are width x height in pixels of the window displayed in the
            cardholder browser window.  01 - 250x400  02 - 390x400  03 - 500x600  04
            - 600x400  05 - Full page
        alternate_authentication_data (str): Data that documents and supports a
            specific authentication process.
        alternate_authentication_date (str): Date and time in UTC of the cardholder
            authentication. Format: YYYYMMDDHHMM
        alternate_authentication_method (str): Mechanism used by the cardholder to
            authenticate to the 3D Secure requestor. Possible values: - `01`: No
            authentication occurred - `02`: Login using merchant system credentials -
            `03`: Login using Federated ID - `04`: Login using issuer credentials -
            `05`: Login using third-party authenticator - `06`: Login using FIDO
            Authenticator
        authentication_date (str): The date/time of the authentication at the 3DS
            servers. RISK update authorization service in auth request payload with
            value returned in
            `consumerAuthenticationInformation.alternateAuthenticationData` if
            merchant calls via CYBS or field can be provided by merchant in
            authorization request if calling an external 3DS provider.  This field is
            supported for Cartes Bancaires Fast'R transactions on Credit Mutuel-CIC.
            Format: YYYYMMDDHHMMSS
        authentication_transaction_id (str): Payer authentication transaction
            identifier passed to link the check enrollment and validate
            authentication messages.For Rupay,this is passed only in Re-Send OTP
            usecase. **Note**: Required for Standard integration, Rupay Seamless
            server to server integration for enroll service. Required for Hybrid
            integration for validate service.
        challenge_cancel_code (str): An indicator as to why the transaction was
            canceled. Possible Values:  - `01`: Cardholder selected Cancel. - `02`:
            Reserved for future EMVCo use (values invalid until defined by EMVCo). -
            `03`: Transaction Timed Out—Decoupled Authentication - `04`: Transaction
            timed out at ACS—other timeouts - `05`: Transaction Timed out at ACS -
            First CReq not received by ACS - `06`: Transaction Error - `07`: Unknown
            - `08`: Transaction Timed Out at SDK
        challenge_code (str): Possible values: - `01`: No preference - `02`: No
            challenge request - `03`: Challenge requested (3D Secure requestor
            preference) - `04`: Challenge requested (mandate) - `05`: No challenge
            requested (transactional risk analysis is already performed) - `06`: No
            challenge requested (Data share only) - `07`: No challenge requested
            (strong consumer authentication is already performed) - `08`: No
            challenge requested (utilize whitelist exemption if no challenge
            required) - `09`: Challenge requested (whitelist prompt requested if
            challenge required) **Note** This field will default to `01` on merchant
            configuration and can be overridden by the merchant. EMV 3D Secure
            version 2.1.0 supports values `01-04`. Version 2.2.0 supports values
            `01-09`.
        challenge_status (str): The `consumerAuthenticationInformation.challengeCode`
            indicates the authentication type/level, or challenge, that was presented
            to the cardholder at checkout by the merchant when calling the Carte
            Bancaire 3DS servers via CYBS RISK services. It conveys to the issuer the
            alternative authentication methods that the consumer used.
        customer_card_alias (str): An alias that uniquely identifies the customer's
            account and credit card on file. Note This field is required if
            Tokenization is enabled in the merchant profile settings.
        decoupled_authentication_indicator (str): Indicates whether the 3DS Requestor
            requests the ACS to utilize Decoupled Authentication and agrees to
            utilize Decoupled Authentication if the ACS confirms its use.  Possible
            Values:  Y - Decoupled Authentication is supported and preferred if
            challenge is necessary  N - Do not use Decoupled Authentication
            **Default Value**: N
        decoupled_authentication_max_time (str): Indicates the maximum amount of time
            that the 3DS Requestor will wait for an ACS (Active control server) to
            provide the results of a Decoupled Authentication transaction (in
            minutes). Possible Values: Numeric values between 1 and 10080 accepted.
        default_card (bool): Indicates that the card being used is the one designated
            as the primary payment card for purchase. Recommended for Discover
            ProtectBuy.
        device_channel (str): Determines the channel that the transaction came
            through. Possible Values: SDK/Browser/3RI. 3RI - 3DS request initiated.
        installment_total_count (int): An integer value greater than 1 indicating the
            max number of permitted authorizations for installment payments. **Note**
            This is required if the merchant and cardholder have agreed to
            installment payments.
        merchant_fraud_rate (str): Calculated by merchants as per PSD2** RTS** (EEA**
            card fraud divided by all EEA card volumes). Possible Values: 1 =
            Represents fraud rate <=1  2 = Represents fraud rate >1 and <=6  3 =
            Represents fraud rate >6 and <=13  4 = Represents fraud rate >13 and <=25
            5 = Represents fraud rate >25  EEA** = European Economic Area RTS** =
            Regulatory Technical Standards PSD2** = Payment Services Directive
        marketing_opt_in (bool): Indicates whether the customer has opted in for
            marketing offers. Recommended for Discover ProtectBuy.
        marketing_source (str): Indicates origin of the marketing offer. Recommended
            for Discover ProtectBuy.
        mcc (str): Merchant category code. **Important** Required only for Visa
            Secure transactions in Brazil. Do not use this request field for any
            other types of transactions.
        merchant_score (int): Risk Score provided by merchants. This is specific for
            CB transactions.
        message_category (str): Category of the message for a specific use case.
            Possible values:  - `01`: PA- payment authentication - `02`: NPA-
            non-payment authentication - `03-79`: Reserved for EMVCo future use
            (values invalid until defined by EMVCo) - `80-99`: Reserved for DS use
        network_score (str): The global score calculated by the CB scoring platform
            and returned to merchants.  Possible values:  - '00' - '99'  When you
            request the payer authentication and authorization services separately,
            get the value for this field from the pa_network_score reply field.
            This field is supported only for Cartes Bancaires Fast'R transactions on
            Credit Mutuel-CIC.
        npa_code (str): Non-Payer Authentication Indicator. Possible values: - `01`:
            Add card - `02`: Maintain card information - `03`: Cardholder
            verification for EMV token - `04-80` Reserved for EMVCo - `80-90`
            Reserved DS
        override_payment_method (str): Specifies the Brazilian payment account type
            used for the transaction. This field overrides other payment types that
            might be specified in the request. Use one of the following values for
            this field: - `NA`: Not applicable. Do not override other payment types
            that are specified in the request. - `CR`: Credit card. - `DB`: Debit
            card. - `VSAVR`: Visa Vale Refeicao - `VSAVA`: Visa Vale Alimentacao
            **Important** Required only for Visa Secure transactions in Brazil. Do
            not use this request field for any other types of transactions.
        override_country_code (str): Two-character [ISO Standard Country Codes](
        prior_authentication_data (str): This field carry data that the ACS can use
            to verify the authentication process.
        prior_authentication_method (str): Mechanism used by the Cardholder to
            previously authenticate to the 3DS Requestor.  01 - Frictionless
            authentication occurred by ACS  02 - Cardholder challenge occurred by ACS
            03 - AVS verified  04 - Other issuer methods  05-79 - Reserved for EMVCo
            future use (values invalid until defined by EMVCo)  80-99 - Reserved for
            DS use
        prior_authentication_reference_id (str): This data element contains a ACS
            Transaction ID for a prior authenticated transaction. For example, the
            first recurring transaction that was authenticated with the cardholder
        prior_authentication_time (str): Date and time in UTC of the prior cardholder
            authentication. Format – YYYYMMDDHHMM
        product_code (str): Specifies the product code, which designates the type of
            transaction. Specify one of the following values for this field: - AIR:
            Airline purchase Important Required for American Express SafeKey (U.S.).
            - `ACC`: Accommodation Rental - `ACF`: Account funding - `CHA`: Check
            acceptance - `DIG`: Digital Goods - `DSP`: Cash Dispensing - `GAS`: Fuel
            - `GEN`: General Retail - `LUX`: Luxury Retail - `PAL`: Prepaid
            activation and load - `PHY`: Goods or services purchase - `QCT`:
            Quasi-cash transaction - `REN`: Car Rental - `RES`: Restaurant - `SVC`:
            Services - `TBD`: Other - `TRA`: Travel **Important** Required for Visa
            Secure transactions in Brazil. Do not use this request field for any
            other types of transactions.
        return_url (str): The URL of the merchant’s return page. Visa Acceptance adds
            this return URL to the step-up JWT and returns it in the response of the
            Payer Authentication enrollment call. The merchant's return URL page
            serves as a listening URL. Once the bank session completes, the merchant
            receives a POST to their URL. This response contains the completed bank
            session’s transactionId. The merchant’s return page should capture the
            transaction ID and send it in the Payer Authentication validation call.
        requestor_id (str): Cardinal's directory server assigned 3DS Requestor ID
            value
        requestor_initiated_authentication_indicator (str): Indicates the type of 3RI
            request.  Possible Values:  01 - Recurring transaction  02 - Installment
            transaction  03 - Add card  04 - Maintain card  05 - Account verification
            06 - Split/delayed shipment  07 - Top-up  08 - Mail Order  09 - Telephone
            Order  10 - Whitelist status check  11 - Other payment
        requestor_name (str): Cardinal's directory server assigned 3DS Requestor Name
            value
        reference_id (str): Reference ID that corresponds to the device
            fingerprinting data that was collected previously. Note Required for
            Hybrid integration.
        sdk_max_timeout (str): This field indicates the maximum amount of time for
            all 3DS 2.0 messages to be communicated between all components (in
            minutes).  Possible Values:  Greater than or equal to 05 (05 is the
            minimum timeout to set)  Cardinal Default is set to 15  NOTE: This field
            is a required 3DS 2.0 field and Cardinal sends in a default of 15 if
            nothing is passed
        secure_corporate_payment_indicator (str): Indicates dedicated payment
            processes and procedures were used, potential secure corporate payment
            exemption applies. Possible Values : 0/1
        transaction_mode (str): Transaction mode identifier. Identifies the channel
            from which the transaction originates. Possible values:  - `M`: MOTO
            (Mail Order Telephone Order) - `R`: Retail - `S`: eCommerce - `P`: Mobile
            Device - `T`: Tablet
        white_list_status (str): Enables the communication of trusted
            beneficiary/whitelist status between the ACS, the DS and the 3DS
            Requestor.  Possible Values:  Y - 3DS Requestor is whitelisted by
            cardholder  N - 3DS Requestor is not whitelisted by cardholder
        authentication_brand (str): Indicates which directory server was used while
            authentication process, this data is useful in case of scenarios  when
            domestic scheme directory server is not present and authentication
            fallbacks to global scheme directory server. Possible values: - VISA -
            Returned for Mada VISA Co-badged cards, when authentication falls back to
            VISA Directory Server - MASTERCARD - Returned for Mada MasterCard
            Co-badged cards, when authentication falls back to MasterCard Directory
            Server
        effective_authentication_type (str): This field describes the type of 3DS
            transaction flow that took place.  It can be one of three possible flows;
            CH - Challenge FR - Frictionless FD - Frictionless with delegation,
            (challenge not generated by the issuer but by the scheme on behalf of the
            issuer).
        signed_pares_status_reason (str): Provides additional information as to why
            the PAResStatus has a specific value.
        signed_pares (str): Payer authentication result (PARes) message returned by
            the card-issuing bank. If you need to show proof of enrollment checking,
            you may need to decrypt and parse the string for the information required
            by the payment card company. For more information, see "Storing Payer
            Authentication Data," page 160. Important The value is in base64. You
            must remove all carriage returns and line feeds before adding the PARes
            to the request.
        acs_reference_number (str): Unique identifier assigned by the EMVCo
            Secretariat upon Testing and Approval.
        ds_reference_number (str): EMVCo-assigned unique identifier. This field is
            required in Cardholder Initiated 3DS fully authenticated mada
            transactions. When you request the payer authentication and authorization
            services separately, get the value for this field from the
            payerAuthEnrollReply_dsReferenceNumber or
            payerAuthValidateReply_dsReferenceNumber response field.
        additional_properties (Dict[str, Any]): The additional properties for the
            model.

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "cavv": "cavv",
        "transaction_flow_indicator": "transactionFlowIndicator",
        "cavv_algorithm": "cavvAlgorithm",
        "eci_raw": "eciRaw",
        "pares_status": "paresStatus",
        "veres_enrolled": "veresEnrolled",
        "xid": "xid",
        "ucaf_collection_indicator": "ucafCollectionIndicator",
        "ucaf_authentication_data": "ucafAuthenticationData",
        "strong_authentication": "strongAuthentication",
        "directory_server_transaction_id": "directoryServerTransactionId",
        "pa_specification_version": "paSpecificationVersion",
        "authentication_type": "authenticationType",
        "response_access_token": "responseAccessToken",
        "acs_transaction_id": "acsTransactionId",
        "acs_window_size": "acsWindowSize",
        "alternate_authentication_data": "alternateAuthenticationData",
        "alternate_authentication_date": "alternateAuthenticationDate",
        "alternate_authentication_method": "alternateAuthenticationMethod",
        "authentication_date": "authenticationDate",
        "authentication_transaction_id": "authenticationTransactionId",
        "challenge_cancel_code": "challengeCancelCode",
        "challenge_code": "challengeCode",
        "challenge_status": "challengeStatus",
        "customer_card_alias": "customerCardAlias",
        "decoupled_authentication_indicator": "decoupledAuthenticationIndicator",
        "decoupled_authentication_max_time": "decoupledAuthenticationMaxTime",
        "default_card": "defaultCard",
        "device_channel": "deviceChannel",
        "installment_total_count": "installmentTotalCount",
        "merchant_fraud_rate": "merchantFraudRate",
        "marketing_opt_in": "marketingOptIn",
        "marketing_source": "marketingSource",
        "mcc": "mcc",
        "merchant_score": "merchantScore",
        "message_category": "messageCategory",
        "network_score": "networkScore",
        "npa_code": "npaCode",
        "override_payment_method": "overridePaymentMethod",
        "override_country_code": "overrideCountryCode",
        "prior_authentication_data": "priorAuthenticationData",
        "prior_authentication_method": "priorAuthenticationMethod",
        "prior_authentication_reference_id": "priorAuthenticationReferenceId",
        "prior_authentication_time": "priorAuthenticationTime",
        "product_code": "productCode",
        "return_url": "returnUrl",
        "requestor_id": "requestorId",
        "requestor_initiated_authentication_indicator":
            "requestorInitiatedAuthenticationIndicator",
        "requestor_name": "requestorName",
        "reference_id": "referenceId",
        "sdk_max_timeout": "sdkMaxTimeout",
        "secure_corporate_payment_indicator": "secureCorporatePaymentIndicator",
        "transaction_mode": "transactionMode",
        "white_list_status": "whiteListStatus",
        "authentication_brand": "authenticationBrand",
        "effective_authentication_type": "effectiveAuthenticationType",
        "signed_pares_status_reason": "signedParesStatusReason",
        "signed_pares": "signedPares",
        "acs_reference_number": "acsReferenceNumber",
        "ds_reference_number": "dsReferenceNumber",
    }

    _optionals = [
        "cavv",
        "transaction_flow_indicator",
        "cavv_algorithm",
        "eci_raw",
        "pares_status",
        "veres_enrolled",
        "xid",
        "ucaf_collection_indicator",
        "ucaf_authentication_data",
        "strong_authentication",
        "directory_server_transaction_id",
        "pa_specification_version",
        "authentication_type",
        "response_access_token",
        "acs_transaction_id",
        "acs_window_size",
        "alternate_authentication_data",
        "alternate_authentication_date",
        "alternate_authentication_method",
        "authentication_date",
        "authentication_transaction_id",
        "challenge_cancel_code",
        "challenge_code",
        "challenge_status",
        "customer_card_alias",
        "decoupled_authentication_indicator",
        "decoupled_authentication_max_time",
        "default_card",
        "device_channel",
        "installment_total_count",
        "merchant_fraud_rate",
        "marketing_opt_in",
        "marketing_source",
        "mcc",
        "merchant_score",
        "message_category",
        "network_score",
        "npa_code",
        "override_payment_method",
        "override_country_code",
        "prior_authentication_data",
        "prior_authentication_method",
        "prior_authentication_reference_id",
        "prior_authentication_time",
        "product_code",
        "return_url",
        "requestor_id",
        "requestor_initiated_authentication_indicator",
        "requestor_name",
        "reference_id",
        "sdk_max_timeout",
        "secure_corporate_payment_indicator",
        "transaction_mode",
        "white_list_status",
        "authentication_brand",
        "effective_authentication_type",
        "signed_pares_status_reason",
        "signed_pares",
        "acs_reference_number",
        "ds_reference_number",
    ]

    def __init__(
        self,
        cavv=APIHelper.SKIP,
        transaction_flow_indicator=APIHelper.SKIP,
        cavv_algorithm=APIHelper.SKIP,
        eci_raw=APIHelper.SKIP,
        pares_status=APIHelper.SKIP,
        veres_enrolled=APIHelper.SKIP,
        xid=APIHelper.SKIP,
        ucaf_collection_indicator=APIHelper.SKIP,
        ucaf_authentication_data=APIHelper.SKIP,
        strong_authentication=APIHelper.SKIP,
        directory_server_transaction_id=APIHelper.SKIP,
        pa_specification_version=APIHelper.SKIP,
        authentication_type=APIHelper.SKIP,
        response_access_token=APIHelper.SKIP,
        acs_transaction_id=APIHelper.SKIP,
        acs_window_size=APIHelper.SKIP,
        alternate_authentication_data=APIHelper.SKIP,
        alternate_authentication_date=APIHelper.SKIP,
        alternate_authentication_method=APIHelper.SKIP,
        authentication_date=APIHelper.SKIP,
        authentication_transaction_id=APIHelper.SKIP,
        challenge_cancel_code=APIHelper.SKIP,
        challenge_code=APIHelper.SKIP,
        challenge_status=APIHelper.SKIP,
        customer_card_alias=APIHelper.SKIP,
        decoupled_authentication_indicator=APIHelper.SKIP,
        decoupled_authentication_max_time=APIHelper.SKIP,
        default_card=APIHelper.SKIP,
        device_channel=APIHelper.SKIP,
        installment_total_count=APIHelper.SKIP,
        merchant_fraud_rate=APIHelper.SKIP,
        marketing_opt_in=APIHelper.SKIP,
        marketing_source=APIHelper.SKIP,
        mcc=APIHelper.SKIP,
        merchant_score=APIHelper.SKIP,
        message_category=APIHelper.SKIP,
        network_score=APIHelper.SKIP,
        npa_code=APIHelper.SKIP,
        override_payment_method=APIHelper.SKIP,
        override_country_code=APIHelper.SKIP,
        prior_authentication_data=APIHelper.SKIP,
        prior_authentication_method=APIHelper.SKIP,
        prior_authentication_reference_id=APIHelper.SKIP,
        prior_authentication_time=APIHelper.SKIP,
        product_code=APIHelper.SKIP,
        return_url=APIHelper.SKIP,
        requestor_id=APIHelper.SKIP,
        requestor_initiated_authentication_indicator=APIHelper.SKIP,
        requestor_name=APIHelper.SKIP,
        reference_id=APIHelper.SKIP,
        sdk_max_timeout=APIHelper.SKIP,
        secure_corporate_payment_indicator=APIHelper.SKIP,
        transaction_mode=APIHelper.SKIP,
        white_list_status=APIHelper.SKIP,
        authentication_brand=APIHelper.SKIP,
        effective_authentication_type=APIHelper.SKIP,
        signed_pares_status_reason=APIHelper.SKIP,
        signed_pares=APIHelper.SKIP,
        acs_reference_number=APIHelper.SKIP,
        ds_reference_number=APIHelper.SKIP,
        additional_properties=None):
        """Initialize a ConsumerAuthenticationInformation instance."""
        # Initialize members of the class
        if cavv is not APIHelper.SKIP:
            self.cavv = cavv
        if transaction_flow_indicator is not APIHelper.SKIP:
            self.transaction_flow_indicator = transaction_flow_indicator
        if cavv_algorithm is not APIHelper.SKIP:
            self.cavv_algorithm = cavv_algorithm
        if eci_raw is not APIHelper.SKIP:
            self.eci_raw = eci_raw
        if pares_status is not APIHelper.SKIP:
            self.pares_status = pares_status
        if veres_enrolled is not APIHelper.SKIP:
            self.veres_enrolled = veres_enrolled
        if xid is not APIHelper.SKIP:
            self.xid = xid
        if ucaf_collection_indicator is not APIHelper.SKIP:
            self.ucaf_collection_indicator = ucaf_collection_indicator
        if ucaf_authentication_data is not APIHelper.SKIP:
            self.ucaf_authentication_data = ucaf_authentication_data
        if strong_authentication is not APIHelper.SKIP:
            self.strong_authentication = strong_authentication
        if directory_server_transaction_id is not APIHelper.SKIP:
            self.directory_server_transaction_id = directory_server_transaction_id
        if pa_specification_version is not APIHelper.SKIP:
            self.pa_specification_version = pa_specification_version
        if authentication_type is not APIHelper.SKIP:
            self.authentication_type = authentication_type
        if response_access_token is not APIHelper.SKIP:
            self.response_access_token = response_access_token
        if acs_transaction_id is not APIHelper.SKIP:
            self.acs_transaction_id = acs_transaction_id
        if acs_window_size is not APIHelper.SKIP:
            self.acs_window_size = acs_window_size
        if alternate_authentication_data is not APIHelper.SKIP:
            self.alternate_authentication_data = alternate_authentication_data
        if alternate_authentication_date is not APIHelper.SKIP:
            self.alternate_authentication_date = alternate_authentication_date
        if alternate_authentication_method is not APIHelper.SKIP:
            self.alternate_authentication_method = alternate_authentication_method
        if authentication_date is not APIHelper.SKIP:
            self.authentication_date = authentication_date
        if authentication_transaction_id is not APIHelper.SKIP:
            self.authentication_transaction_id = authentication_transaction_id
        if challenge_cancel_code is not APIHelper.SKIP:
            self.challenge_cancel_code = challenge_cancel_code
        if challenge_code is not APIHelper.SKIP:
            self.challenge_code = challenge_code
        if challenge_status is not APIHelper.SKIP:
            self.challenge_status = challenge_status
        if customer_card_alias is not APIHelper.SKIP:
            self.customer_card_alias = customer_card_alias
        if decoupled_authentication_indicator is not APIHelper.SKIP:
            self.decoupled_authentication_indicator =\
                 decoupled_authentication_indicator
        if decoupled_authentication_max_time is not APIHelper.SKIP:
            self.decoupled_authentication_max_time =\
                 decoupled_authentication_max_time
        if default_card is not APIHelper.SKIP:
            self.default_card = default_card
        if device_channel is not APIHelper.SKIP:
            self.device_channel = device_channel
        if installment_total_count is not APIHelper.SKIP:
            self.installment_total_count = installment_total_count
        if merchant_fraud_rate is not APIHelper.SKIP:
            self.merchant_fraud_rate = merchant_fraud_rate
        if marketing_opt_in is not APIHelper.SKIP:
            self.marketing_opt_in = marketing_opt_in
        if marketing_source is not APIHelper.SKIP:
            self.marketing_source = marketing_source
        if mcc is not APIHelper.SKIP:
            self.mcc = mcc
        if merchant_score is not APIHelper.SKIP:
            self.merchant_score = merchant_score
        if message_category is not APIHelper.SKIP:
            self.message_category = message_category
        if network_score is not APIHelper.SKIP:
            self.network_score = network_score
        if npa_code is not APIHelper.SKIP:
            self.npa_code = npa_code
        if override_payment_method is not APIHelper.SKIP:
            self.override_payment_method = override_payment_method
        if override_country_code is not APIHelper.SKIP:
            self.override_country_code = override_country_code
        if prior_authentication_data is not APIHelper.SKIP:
            self.prior_authentication_data = prior_authentication_data
        if prior_authentication_method is not APIHelper.SKIP:
            self.prior_authentication_method = prior_authentication_method
        if prior_authentication_reference_id is not APIHelper.SKIP:
            self.prior_authentication_reference_id =\
                 prior_authentication_reference_id
        if prior_authentication_time is not APIHelper.SKIP:
            self.prior_authentication_time = prior_authentication_time
        if product_code is not APIHelper.SKIP:
            self.product_code = product_code
        if return_url is not APIHelper.SKIP:
            self.return_url = return_url
        if requestor_id is not APIHelper.SKIP:
            self.requestor_id = requestor_id
        if requestor_initiated_authentication_indicator is not APIHelper.SKIP:
            self.requestor_initiated_authentication_indicator =\
                 requestor_initiated_authentication_indicator
        if requestor_name is not APIHelper.SKIP:
            self.requestor_name = requestor_name
        if reference_id is not APIHelper.SKIP:
            self.reference_id = reference_id
        if sdk_max_timeout is not APIHelper.SKIP:
            self.sdk_max_timeout = sdk_max_timeout
        if secure_corporate_payment_indicator is not APIHelper.SKIP:
            self.secure_corporate_payment_indicator =\
                 secure_corporate_payment_indicator
        if transaction_mode is not APIHelper.SKIP:
            self.transaction_mode = transaction_mode
        if white_list_status is not APIHelper.SKIP:
            self.white_list_status = white_list_status
        if authentication_brand is not APIHelper.SKIP:
            self.authentication_brand = authentication_brand
        if effective_authentication_type is not APIHelper.SKIP:
            self.effective_authentication_type = effective_authentication_type
        if signed_pares_status_reason is not APIHelper.SKIP:
            self.signed_pares_status_reason = signed_pares_status_reason
        if signed_pares is not APIHelper.SKIP:
            self.signed_pares = signed_pares
        if acs_reference_number is not APIHelper.SKIP:
            self.acs_reference_number = acs_reference_number
        if ds_reference_number is not APIHelper.SKIP:
            self.ds_reference_number = ds_reference_number

        # 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
        cavv =\
            dictionary.get("cavv")\
            if dictionary.get("cavv")\
                else APIHelper.SKIP
        transaction_flow_indicator =\
            dictionary.get("transactionFlowIndicator")\
            if dictionary.get("transactionFlowIndicator")\
                else APIHelper.SKIP
        cavv_algorithm =\
            dictionary.get("cavvAlgorithm")\
            if dictionary.get("cavvAlgorithm")\
                else APIHelper.SKIP
        eci_raw =\
            dictionary.get("eciRaw")\
            if dictionary.get("eciRaw")\
                else APIHelper.SKIP
        pares_status =\
            dictionary.get("paresStatus")\
            if dictionary.get("paresStatus")\
                else APIHelper.SKIP
        veres_enrolled =\
            dictionary.get("veresEnrolled")\
            if dictionary.get("veresEnrolled")\
                else APIHelper.SKIP
        xid =\
            dictionary.get("xid")\
            if dictionary.get("xid")\
                else APIHelper.SKIP
        ucaf_collection_indicator =\
            dictionary.get("ucafCollectionIndicator")\
            if dictionary.get("ucafCollectionIndicator")\
                else APIHelper.SKIP
        ucaf_authentication_data =\
            dictionary.get("ucafAuthenticationData")\
            if dictionary.get("ucafAuthenticationData")\
                else APIHelper.SKIP
        strong_authentication =\
            StrongAuthentication.from_dictionary(
                dictionary.get("strongAuthentication"))\
                if "strongAuthentication" in dictionary.keys()\
                else APIHelper.SKIP
        directory_server_transaction_id =\
            dictionary.get("directoryServerTransactionId")\
            if dictionary.get("directoryServerTransactionId")\
                else APIHelper.SKIP
        pa_specification_version =\
            dictionary.get("paSpecificationVersion")\
            if dictionary.get("paSpecificationVersion")\
                else APIHelper.SKIP
        authentication_type =\
            dictionary.get("authenticationType")\
            if dictionary.get("authenticationType")\
                else APIHelper.SKIP
        response_access_token =\
            dictionary.get("responseAccessToken")\
            if dictionary.get("responseAccessToken")\
                else APIHelper.SKIP
        acs_transaction_id =\
            dictionary.get("acsTransactionId")\
            if dictionary.get("acsTransactionId")\
                else APIHelper.SKIP
        acs_window_size =\
            dictionary.get("acsWindowSize")\
            if dictionary.get("acsWindowSize")\
                else APIHelper.SKIP
        alternate_authentication_data =\
            dictionary.get("alternateAuthenticationData")\
            if dictionary.get("alternateAuthenticationData")\
                else APIHelper.SKIP
        alternate_authentication_date =\
            dictionary.get("alternateAuthenticationDate")\
            if dictionary.get("alternateAuthenticationDate")\
                else APIHelper.SKIP
        alternate_authentication_method =\
            dictionary.get("alternateAuthenticationMethod")\
            if dictionary.get("alternateAuthenticationMethod")\
                else APIHelper.SKIP
        authentication_date =\
            dictionary.get("authenticationDate")\
            if dictionary.get("authenticationDate")\
                else APIHelper.SKIP
        authentication_transaction_id =\
            dictionary.get("authenticationTransactionId")\
            if dictionary.get("authenticationTransactionId")\
                else APIHelper.SKIP
        challenge_cancel_code =\
            dictionary.get("challengeCancelCode")\
            if dictionary.get("challengeCancelCode")\
                else APIHelper.SKIP
        challenge_code =\
            dictionary.get("challengeCode")\
            if dictionary.get("challengeCode")\
                else APIHelper.SKIP
        challenge_status =\
            dictionary.get("challengeStatus")\
            if dictionary.get("challengeStatus")\
                else APIHelper.SKIP
        customer_card_alias =\
            dictionary.get("customerCardAlias")\
            if dictionary.get("customerCardAlias")\
                else APIHelper.SKIP
        decoupled_authentication_indicator =\
            dictionary.get("decoupledAuthenticationIndicator")\
            if dictionary.get("decoupledAuthenticationIndicator")\
                else APIHelper.SKIP
        decoupled_authentication_max_time =\
            dictionary.get("decoupledAuthenticationMaxTime")\
            if dictionary.get("decoupledAuthenticationMaxTime")\
                else APIHelper.SKIP
        default_card =\
            dictionary.get("defaultCard")\
            if "defaultCard" in dictionary.keys()\
                else APIHelper.SKIP
        device_channel =\
            dictionary.get("deviceChannel")\
            if dictionary.get("deviceChannel")\
                else APIHelper.SKIP
        installment_total_count =\
            dictionary.get("installmentTotalCount")\
            if dictionary.get("installmentTotalCount")\
                else APIHelper.SKIP
        merchant_fraud_rate =\
            dictionary.get("merchantFraudRate")\
            if dictionary.get("merchantFraudRate")\
                else APIHelper.SKIP
        marketing_opt_in =\
            dictionary.get("marketingOptIn")\
            if "marketingOptIn" in dictionary.keys()\
                else APIHelper.SKIP
        marketing_source =\
            dictionary.get("marketingSource")\
            if dictionary.get("marketingSource")\
                else APIHelper.SKIP
        mcc =\
            dictionary.get("mcc")\
            if dictionary.get("mcc")\
                else APIHelper.SKIP
        merchant_score =\
            dictionary.get("merchantScore")\
            if dictionary.get("merchantScore")\
                else APIHelper.SKIP
        message_category =\
            dictionary.get("messageCategory")\
            if dictionary.get("messageCategory")\
                else APIHelper.SKIP
        network_score =\
            dictionary.get("networkScore")\
            if dictionary.get("networkScore")\
                else APIHelper.SKIP
        npa_code =\
            dictionary.get("npaCode")\
            if dictionary.get("npaCode")\
                else APIHelper.SKIP
        override_payment_method =\
            dictionary.get("overridePaymentMethod")\
            if dictionary.get("overridePaymentMethod")\
                else APIHelper.SKIP
        override_country_code =\
            dictionary.get("overrideCountryCode")\
            if dictionary.get("overrideCountryCode")\
                else APIHelper.SKIP
        prior_authentication_data =\
            dictionary.get("priorAuthenticationData")\
            if dictionary.get("priorAuthenticationData")\
                else APIHelper.SKIP
        prior_authentication_method =\
            dictionary.get("priorAuthenticationMethod")\
            if dictionary.get("priorAuthenticationMethod")\
                else APIHelper.SKIP
        prior_authentication_reference_id =\
            dictionary.get("priorAuthenticationReferenceId")\
            if dictionary.get("priorAuthenticationReferenceId")\
                else APIHelper.SKIP
        prior_authentication_time =\
            dictionary.get("priorAuthenticationTime")\
            if dictionary.get("priorAuthenticationTime")\
                else APIHelper.SKIP
        product_code =\
            dictionary.get("productCode")\
            if dictionary.get("productCode")\
                else APIHelper.SKIP
        return_url =\
            dictionary.get("returnUrl")\
            if dictionary.get("returnUrl")\
                else APIHelper.SKIP
        requestor_id =\
            dictionary.get("requestorId")\
            if dictionary.get("requestorId")\
                else APIHelper.SKIP
        requestor_initiated_authentication_indicator =\
            dictionary.get("requestorInitiatedAuthenticationIndicator")\
            if dictionary.get("requestorInitiatedAuthenticationIndicator")\
                else APIHelper.SKIP
        requestor_name =\
            dictionary.get("requestorName")\
            if dictionary.get("requestorName")\
                else APIHelper.SKIP
        reference_id =\
            dictionary.get("referenceId")\
            if dictionary.get("referenceId")\
                else APIHelper.SKIP
        sdk_max_timeout =\
            dictionary.get("sdkMaxTimeout")\
            if dictionary.get("sdkMaxTimeout")\
                else APIHelper.SKIP
        secure_corporate_payment_indicator =\
            dictionary.get("secureCorporatePaymentIndicator")\
            if dictionary.get("secureCorporatePaymentIndicator")\
                else APIHelper.SKIP
        transaction_mode =\
            dictionary.get("transactionMode")\
            if dictionary.get("transactionMode")\
                else APIHelper.SKIP
        white_list_status =\
            dictionary.get("whiteListStatus")\
            if dictionary.get("whiteListStatus")\
                else APIHelper.SKIP
        authentication_brand =\
            dictionary.get("authenticationBrand")\
            if dictionary.get("authenticationBrand")\
                else APIHelper.SKIP
        effective_authentication_type =\
            dictionary.get("effectiveAuthenticationType")\
            if dictionary.get("effectiveAuthenticationType")\
                else APIHelper.SKIP
        signed_pares_status_reason =\
            dictionary.get("signedParesStatusReason")\
            if dictionary.get("signedParesStatusReason")\
                else APIHelper.SKIP
        signed_pares =\
            dictionary.get("signedPares")\
            if dictionary.get("signedPares")\
                else APIHelper.SKIP
        acs_reference_number =\
            dictionary.get("acsReferenceNumber")\
            if dictionary.get("acsReferenceNumber")\
                else APIHelper.SKIP
        ds_reference_number =\
            dictionary.get("dsReferenceNumber")\
            if dictionary.get("dsReferenceNumber")\
                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(cavv,
                   transaction_flow_indicator,
                   cavv_algorithm,
                   eci_raw,
                   pares_status,
                   veres_enrolled,
                   xid,
                   ucaf_collection_indicator,
                   ucaf_authentication_data,
                   strong_authentication,
                   directory_server_transaction_id,
                   pa_specification_version,
                   authentication_type,
                   response_access_token,
                   acs_transaction_id,
                   acs_window_size,
                   alternate_authentication_data,
                   alternate_authentication_date,
                   alternate_authentication_method,
                   authentication_date,
                   authentication_transaction_id,
                   challenge_cancel_code,
                   challenge_code,
                   challenge_status,
                   customer_card_alias,
                   decoupled_authentication_indicator,
                   decoupled_authentication_max_time,
                   default_card,
                   device_channel,
                   installment_total_count,
                   merchant_fraud_rate,
                   marketing_opt_in,
                   marketing_source,
                   mcc,
                   merchant_score,
                   message_category,
                   network_score,
                   npa_code,
                   override_payment_method,
                   override_country_code,
                   prior_authentication_data,
                   prior_authentication_method,
                   prior_authentication_reference_id,
                   prior_authentication_time,
                   product_code,
                   return_url,
                   requestor_id,
                   requestor_initiated_authentication_indicator,
                   requestor_name,
                   reference_id,
                   sdk_max_timeout,
                   secure_corporate_payment_indicator,
                   transaction_mode,
                   white_list_status,
                   authentication_brand,
                   effective_authentication_type,
                   signed_pares_status_reason,
                   signed_pares,
                   acs_reference_number,
                   ds_reference_number,
                   additional_properties)

    def __repr__(self):
        """Return a unambiguous string representation."""
        _cavv=(
            self.cavv
            if hasattr(self, "cavv")
            else None
        )
        _transaction_flow_indicator=(
            self.transaction_flow_indicator
            if hasattr(self, "transaction_flow_indicator")
            else None
        )
        _cavv_algorithm=(
            self.cavv_algorithm
            if hasattr(self, "cavv_algorithm")
            else None
        )
        _eci_raw=(
            self.eci_raw
            if hasattr(self, "eci_raw")
            else None
        )
        _pares_status=(
            self.pares_status
            if hasattr(self, "pares_status")
            else None
        )
        _veres_enrolled=(
            self.veres_enrolled
            if hasattr(self, "veres_enrolled")
            else None
        )
        _xid=(
            self.xid
            if hasattr(self, "xid")
            else None
        )
        _ucaf_collection_indicator=(
            self.ucaf_collection_indicator
            if hasattr(self, "ucaf_collection_indicator")
            else None
        )
        _ucaf_authentication_data=(
            self.ucaf_authentication_data
            if hasattr(self, "ucaf_authentication_data")
            else None
        )
        _strong_authentication=(
            self.strong_authentication
            if hasattr(self, "strong_authentication")
            else None
        )
        _directory_server_transaction_id=(
            self.directory_server_transaction_id
            if hasattr(self, "directory_server_transaction_id")
            else None
        )
        _pa_specification_version=(
            self.pa_specification_version
            if hasattr(self, "pa_specification_version")
            else None
        )
        _authentication_type=(
            self.authentication_type
            if hasattr(self, "authentication_type")
            else None
        )
        _response_access_token=(
            self.response_access_token
            if hasattr(self, "response_access_token")
            else None
        )
        _acs_transaction_id=(
            self.acs_transaction_id
            if hasattr(self, "acs_transaction_id")
            else None
        )
        _acs_window_size=(
            self.acs_window_size
            if hasattr(self, "acs_window_size")
            else None
        )
        _alternate_authentication_data=(
            self.alternate_authentication_data
            if hasattr(self, "alternate_authentication_data")
            else None
        )
        _alternate_authentication_date=(
            self.alternate_authentication_date
            if hasattr(self, "alternate_authentication_date")
            else None
        )
        _alternate_authentication_method=(
            self.alternate_authentication_method
            if hasattr(self, "alternate_authentication_method")
            else None
        )
        _authentication_date=(
            self.authentication_date
            if hasattr(self, "authentication_date")
            else None
        )
        _authentication_transaction_id=(
            self.authentication_transaction_id
            if hasattr(self, "authentication_transaction_id")
            else None
        )
        _challenge_cancel_code=(
            self.challenge_cancel_code
            if hasattr(self, "challenge_cancel_code")
            else None
        )
        _challenge_code=(
            self.challenge_code
            if hasattr(self, "challenge_code")
            else None
        )
        _challenge_status=(
            self.challenge_status
            if hasattr(self, "challenge_status")
            else None
        )
        _customer_card_alias=(
            self.customer_card_alias
            if hasattr(self, "customer_card_alias")
            else None
        )
        _decoupled_authentication_indicator=(
            self.decoupled_authentication_indicator
            if hasattr(self, "decoupled_authentication_indicator")
            else None
        )
        _decoupled_authentication_max_time=(
            self.decoupled_authentication_max_time
            if hasattr(self, "decoupled_authentication_max_time")
            else None
        )
        _default_card=(
            self.default_card
            if hasattr(self, "default_card")
            else None
        )
        _device_channel=(
            self.device_channel
            if hasattr(self, "device_channel")
            else None
        )
        _installment_total_count=(
            self.installment_total_count
            if hasattr(self, "installment_total_count")
            else None
        )
        _merchant_fraud_rate=(
            self.merchant_fraud_rate
            if hasattr(self, "merchant_fraud_rate")
            else None
        )
        _marketing_opt_in=(
            self.marketing_opt_in
            if hasattr(self, "marketing_opt_in")
            else None
        )
        _marketing_source=(
            self.marketing_source
            if hasattr(self, "marketing_source")
            else None
        )
        _mcc=(
            self.mcc
            if hasattr(self, "mcc")
            else None
        )
        _merchant_score=(
            self.merchant_score
            if hasattr(self, "merchant_score")
            else None
        )
        _message_category=(
            self.message_category
            if hasattr(self, "message_category")
            else None
        )
        _network_score=(
            self.network_score
            if hasattr(self, "network_score")
            else None
        )
        _npa_code=(
            self.npa_code
            if hasattr(self, "npa_code")
            else None
        )
        _override_payment_method=(
            self.override_payment_method
            if hasattr(self, "override_payment_method")
            else None
        )
        _override_country_code=(
            self.override_country_code
            if hasattr(self, "override_country_code")
            else None
        )
        _prior_authentication_data=(
            self.prior_authentication_data
            if hasattr(self, "prior_authentication_data")
            else None
        )
        _prior_authentication_method=(
            self.prior_authentication_method
            if hasattr(self, "prior_authentication_method")
            else None
        )
        _prior_authentication_reference_id=(
            self.prior_authentication_reference_id
            if hasattr(self, "prior_authentication_reference_id")
            else None
        )
        _prior_authentication_time=(
            self.prior_authentication_time
            if hasattr(self, "prior_authentication_time")
            else None
        )
        _product_code=(
            self.product_code
            if hasattr(self, "product_code")
            else None
        )
        _return_url=(
            self.return_url
            if hasattr(self, "return_url")
            else None
        )
        _requestor_id=(
            self.requestor_id
            if hasattr(self, "requestor_id")
            else None
        )
        _requestor_initiated_authentication_indicator=(
            self.requestor_initiated_authentication_indicator
            if hasattr(self, "requestor_initiated_authentication_indicator")
            else None
        )
        _requestor_name=(
            self.requestor_name
            if hasattr(self, "requestor_name")
            else None
        )
        _reference_id=(
            self.reference_id
            if hasattr(self, "reference_id")
            else None
        )
        _sdk_max_timeout=(
            self.sdk_max_timeout
            if hasattr(self, "sdk_max_timeout")
            else None
        )
        _secure_corporate_payment_indicator=(
            self.secure_corporate_payment_indicator
            if hasattr(self, "secure_corporate_payment_indicator")
            else None
        )
        _transaction_mode=(
            self.transaction_mode
            if hasattr(self, "transaction_mode")
            else None
        )
        _white_list_status=(
            self.white_list_status
            if hasattr(self, "white_list_status")
            else None
        )
        _authentication_brand=(
            self.authentication_brand
            if hasattr(self, "authentication_brand")
            else None
        )
        _effective_authentication_type=(
            self.effective_authentication_type
            if hasattr(self, "effective_authentication_type")
            else None
        )
        _signed_pares_status_reason=(
            self.signed_pares_status_reason
            if hasattr(self, "signed_pares_status_reason")
            else None
        )
        _signed_pares=(
            self.signed_pares
            if hasattr(self, "signed_pares")
            else None
        )
        _acs_reference_number=(
            self.acs_reference_number
            if hasattr(self, "acs_reference_number")
            else None
        )
        _ds_reference_number=(
            self.ds_reference_number
            if hasattr(self, "ds_reference_number")
            else None
        )
        _additional_properties=self.additional_properties
        return (
            f"{self.__class__.__name__}("
            f"cavv={_cavv!r}, "
            f"transaction_flow_indicator={_transaction_flow_indicator!r}, "
            f"cavv_algorithm={_cavv_algorithm!r}, "
            f"eci_raw={_eci_raw!r}, "
            f"pares_status={_pares_status!r}, "
            f"veres_enrolled={_veres_enrolled!r}, "
            f"xid={_xid!r}, "
            f"ucaf_collection_indicator={_ucaf_collection_indicator!r}, "
            f"ucaf_authentication_data={_ucaf_authentication_data!r}, "
            f"strong_authentication={_strong_authentication!r}, "
            f"directory_server_transaction_id={_directory_server_transaction_id!r}, "
            f"pa_specification_version={_pa_specification_version!r}, "
            f"authentication_type={_authentication_type!r}, "
            f"response_access_token={_response_access_token!r}, "
            f"acs_transaction_id={_acs_transaction_id!r}, "
            f"acs_window_size={_acs_window_size!r}, "
            f"alternate_authentication_data={_alternate_authentication_data!r}, "
            f"alternate_authentication_date={_alternate_authentication_date!r}, "
            f"alternate_authentication_method={_alternate_authentication_method!r}, "
            f"authentication_date={_authentication_date!r}, "
            f"authentication_transaction_id={_authentication_transaction_id!r}, "
            f"challenge_cancel_code={_challenge_cancel_code!r}, "
            f"challenge_code={_challenge_code!r}, "
            f"challenge_status={_challenge_status!r}, "
            f"customer_card_alias={_customer_card_alias!r}, "
            f"decoupled_authentication_indicator={_decoupled_authentication_indicator!r}, "
            f"decoupled_authentication_max_time={_decoupled_authentication_max_time!r}, "
            f"default_card={_default_card!r}, "
            f"device_channel={_device_channel!r}, "
            f"installment_total_count={_installment_total_count!r}, "
            f"merchant_fraud_rate={_merchant_fraud_rate!r}, "
            f"marketing_opt_in={_marketing_opt_in!r}, "
            f"marketing_source={_marketing_source!r}, "
            f"mcc={_mcc!r}, "
            f"merchant_score={_merchant_score!r}, "
            f"message_category={_message_category!r}, "
            f"network_score={_network_score!r}, "
            f"npa_code={_npa_code!r}, "
            f"override_payment_method={_override_payment_method!r}, "
            f"override_country_code={_override_country_code!r}, "
            f"prior_authentication_data={_prior_authentication_data!r}, "
            f"prior_authentication_method={_prior_authentication_method!r}, "
            f"prior_authentication_reference_id={_prior_authentication_reference_id!r}, "
            f"prior_authentication_time={_prior_authentication_time!r}, "
            f"product_code={_product_code!r}, "
            f"return_url={_return_url!r}, "
            f"requestor_id={_requestor_id!r}, "
            f"requestor_initiated_authentication_indicator={_requestor_initiated_authentication_indicator!r}, "
            f"requestor_name={_requestor_name!r}, "
            f"reference_id={_reference_id!r}, "
            f"sdk_max_timeout={_sdk_max_timeout!r}, "
            f"secure_corporate_payment_indicator={_secure_corporate_payment_indicator!r}, "
            f"transaction_mode={_transaction_mode!r}, "
            f"white_list_status={_white_list_status!r}, "
            f"authentication_brand={_authentication_brand!r}, "
            f"effective_authentication_type={_effective_authentication_type!r}, "
            f"signed_pares_status_reason={_signed_pares_status_reason!r}, "
            f"signed_pares={_signed_pares!r}, "
            f"acs_reference_number={_acs_reference_number!r}, "
            f"ds_reference_number={_ds_reference_number!r}, "
            f"additional_properties={_additional_properties!r}, "
            f")"
        )

    def __str__(self):
        """Return a human-readable string representation."""
        _cavv=(
            self.cavv
            if hasattr(self, "cavv")
            else None
        )
        _transaction_flow_indicator=(
            self.transaction_flow_indicator
            if hasattr(self, "transaction_flow_indicator")
            else None
        )
        _cavv_algorithm=(
            self.cavv_algorithm
            if hasattr(self, "cavv_algorithm")
            else None
        )
        _eci_raw=(
            self.eci_raw
            if hasattr(self, "eci_raw")
            else None
        )
        _pares_status=(
            self.pares_status
            if hasattr(self, "pares_status")
            else None
        )
        _veres_enrolled=(
            self.veres_enrolled
            if hasattr(self, "veres_enrolled")
            else None
        )
        _xid=(
            self.xid
            if hasattr(self, "xid")
            else None
        )
        _ucaf_collection_indicator=(
            self.ucaf_collection_indicator
            if hasattr(self, "ucaf_collection_indicator")
            else None
        )
        _ucaf_authentication_data=(
            self.ucaf_authentication_data
            if hasattr(self, "ucaf_authentication_data")
            else None
        )
        _strong_authentication=(
            self.strong_authentication
            if hasattr(self, "strong_authentication")
            else None
        )
        _directory_server_transaction_id=(
            self.directory_server_transaction_id
            if hasattr(self, "directory_server_transaction_id")
            else None
        )
        _pa_specification_version=(
            self.pa_specification_version
            if hasattr(self, "pa_specification_version")
            else None
        )
        _authentication_type=(
            self.authentication_type
            if hasattr(self, "authentication_type")
            else None
        )
        _response_access_token=(
            self.response_access_token
            if hasattr(self, "response_access_token")
            else None
        )
        _acs_transaction_id=(
            self.acs_transaction_id
            if hasattr(self, "acs_transaction_id")
            else None
        )
        _acs_window_size=(
            self.acs_window_size
            if hasattr(self, "acs_window_size")
            else None
        )
        _alternate_authentication_data=(
            self.alternate_authentication_data
            if hasattr(self, "alternate_authentication_data")
            else None
        )
        _alternate_authentication_date=(
            self.alternate_authentication_date
            if hasattr(self, "alternate_authentication_date")
            else None
        )
        _alternate_authentication_method=(
            self.alternate_authentication_method
            if hasattr(self, "alternate_authentication_method")
            else None
        )
        _authentication_date=(
            self.authentication_date
            if hasattr(self, "authentication_date")
            else None
        )
        _authentication_transaction_id=(
            self.authentication_transaction_id
            if hasattr(self, "authentication_transaction_id")
            else None
        )
        _challenge_cancel_code=(
            self.challenge_cancel_code
            if hasattr(self, "challenge_cancel_code")
            else None
        )
        _challenge_code=(
            self.challenge_code
            if hasattr(self, "challenge_code")
            else None
        )
        _challenge_status=(
            self.challenge_status
            if hasattr(self, "challenge_status")
            else None
        )
        _customer_card_alias=(
            self.customer_card_alias
            if hasattr(self, "customer_card_alias")
            else None
        )
        _decoupled_authentication_indicator=(
            self.decoupled_authentication_indicator
            if hasattr(self, "decoupled_authentication_indicator")
            else None
        )
        _decoupled_authentication_max_time=(
            self.decoupled_authentication_max_time
            if hasattr(self, "decoupled_authentication_max_time")
            else None
        )
        _default_card=(
            self.default_card
            if hasattr(self, "default_card")
            else None
        )
        _device_channel=(
            self.device_channel
            if hasattr(self, "device_channel")
            else None
        )
        _installment_total_count=(
            self.installment_total_count
            if hasattr(self, "installment_total_count")
            else None
        )
        _merchant_fraud_rate=(
            self.merchant_fraud_rate
            if hasattr(self, "merchant_fraud_rate")
            else None
        )
        _marketing_opt_in=(
            self.marketing_opt_in
            if hasattr(self, "marketing_opt_in")
            else None
        )
        _marketing_source=(
            self.marketing_source
            if hasattr(self, "marketing_source")
            else None
        )
        _mcc=(
            self.mcc
            if hasattr(self, "mcc")
            else None
        )
        _merchant_score=(
            self.merchant_score
            if hasattr(self, "merchant_score")
            else None
        )
        _message_category=(
            self.message_category
            if hasattr(self, "message_category")
            else None
        )
        _network_score=(
            self.network_score
            if hasattr(self, "network_score")
            else None
        )
        _npa_code=(
            self.npa_code
            if hasattr(self, "npa_code")
            else None
        )
        _override_payment_method=(
            self.override_payment_method
            if hasattr(self, "override_payment_method")
            else None
        )
        _override_country_code=(
            self.override_country_code
            if hasattr(self, "override_country_code")
            else None
        )
        _prior_authentication_data=(
            self.prior_authentication_data
            if hasattr(self, "prior_authentication_data")
            else None
        )
        _prior_authentication_method=(
            self.prior_authentication_method
            if hasattr(self, "prior_authentication_method")
            else None
        )
        _prior_authentication_reference_id=(
            self.prior_authentication_reference_id
            if hasattr(self, "prior_authentication_reference_id")
            else None
        )
        _prior_authentication_time=(
            self.prior_authentication_time
            if hasattr(self, "prior_authentication_time")
            else None
        )
        _product_code=(
            self.product_code
            if hasattr(self, "product_code")
            else None
        )
        _return_url=(
            self.return_url
            if hasattr(self, "return_url")
            else None
        )
        _requestor_id=(
            self.requestor_id
            if hasattr(self, "requestor_id")
            else None
        )
        _requestor_initiated_authentication_indicator=(
            self.requestor_initiated_authentication_indicator
            if hasattr(self, "requestor_initiated_authentication_indicator")
            else None
        )
        _requestor_name=(
            self.requestor_name
            if hasattr(self, "requestor_name")
            else None
        )
        _reference_id=(
            self.reference_id
            if hasattr(self, "reference_id")
            else None
        )
        _sdk_max_timeout=(
            self.sdk_max_timeout
            if hasattr(self, "sdk_max_timeout")
            else None
        )
        _secure_corporate_payment_indicator=(
            self.secure_corporate_payment_indicator
            if hasattr(self, "secure_corporate_payment_indicator")
            else None
        )
        _transaction_mode=(
            self.transaction_mode
            if hasattr(self, "transaction_mode")
            else None
        )
        _white_list_status=(
            self.white_list_status
            if hasattr(self, "white_list_status")
            else None
        )
        _authentication_brand=(
            self.authentication_brand
            if hasattr(self, "authentication_brand")
            else None
        )
        _effective_authentication_type=(
            self.effective_authentication_type
            if hasattr(self, "effective_authentication_type")
            else None
        )
        _signed_pares_status_reason=(
            self.signed_pares_status_reason
            if hasattr(self, "signed_pares_status_reason")
            else None
        )
        _signed_pares=(
            self.signed_pares
            if hasattr(self, "signed_pares")
            else None
        )
        _acs_reference_number=(
            self.acs_reference_number
            if hasattr(self, "acs_reference_number")
            else None
        )
        _ds_reference_number=(
            self.ds_reference_number
            if hasattr(self, "ds_reference_number")
            else None
        )
        _additional_properties=self.additional_properties
        return (
            f"{self.__class__.__name__}("
            f"cavv={_cavv!s}, "
            f"transaction_flow_indicator={_transaction_flow_indicator!s}, "
            f"cavv_algorithm={_cavv_algorithm!s}, "
            f"eci_raw={_eci_raw!s}, "
            f"pares_status={_pares_status!s}, "
            f"veres_enrolled={_veres_enrolled!s}, "
            f"xid={_xid!s}, "
            f"ucaf_collection_indicator={_ucaf_collection_indicator!s}, "
            f"ucaf_authentication_data={_ucaf_authentication_data!s}, "
            f"strong_authentication={_strong_authentication!s}, "
            f"directory_server_transaction_id={_directory_server_transaction_id!s}, "
            f"pa_specification_version={_pa_specification_version!s}, "
            f"authentication_type={_authentication_type!s}, "
            f"response_access_token={_response_access_token!s}, "
            f"acs_transaction_id={_acs_transaction_id!s}, "
            f"acs_window_size={_acs_window_size!s}, "
            f"alternate_authentication_data={_alternate_authentication_data!s}, "
            f"alternate_authentication_date={_alternate_authentication_date!s}, "
            f"alternate_authentication_method={_alternate_authentication_method!s}, "
            f"authentication_date={_authentication_date!s}, "
            f"authentication_transaction_id={_authentication_transaction_id!s}, "
            f"challenge_cancel_code={_challenge_cancel_code!s}, "
            f"challenge_code={_challenge_code!s}, "
            f"challenge_status={_challenge_status!s}, "
            f"customer_card_alias={_customer_card_alias!s}, "
            f"decoupled_authentication_indicator={_decoupled_authentication_indicator!s}, "
            f"decoupled_authentication_max_time={_decoupled_authentication_max_time!s}, "
            f"default_card={_default_card!s}, "
            f"device_channel={_device_channel!s}, "
            f"installment_total_count={_installment_total_count!s}, "
            f"merchant_fraud_rate={_merchant_fraud_rate!s}, "
            f"marketing_opt_in={_marketing_opt_in!s}, "
            f"marketing_source={_marketing_source!s}, "
            f"mcc={_mcc!s}, "
            f"merchant_score={_merchant_score!s}, "
            f"message_category={_message_category!s}, "
            f"network_score={_network_score!s}, "
            f"npa_code={_npa_code!s}, "
            f"override_payment_method={_override_payment_method!s}, "
            f"override_country_code={_override_country_code!s}, "
            f"prior_authentication_data={_prior_authentication_data!s}, "
            f"prior_authentication_method={_prior_authentication_method!s}, "
            f"prior_authentication_reference_id={_prior_authentication_reference_id!s}, "
            f"prior_authentication_time={_prior_authentication_time!s}, "
            f"product_code={_product_code!s}, "
            f"return_url={_return_url!s}, "
            f"requestor_id={_requestor_id!s}, "
            f"requestor_initiated_authentication_indicator={_requestor_initiated_authentication_indicator!s}, "
            f"requestor_name={_requestor_name!s}, "
            f"reference_id={_reference_id!s}, "
            f"sdk_max_timeout={_sdk_max_timeout!s}, "
            f"secure_corporate_payment_indicator={_secure_corporate_payment_indicator!s}, "
            f"transaction_mode={_transaction_mode!s}, "
            f"white_list_status={_white_list_status!s}, "
            f"authentication_brand={_authentication_brand!s}, "
            f"effective_authentication_type={_effective_authentication_type!s}, "
            f"signed_pares_status_reason={_signed_pares_status_reason!s}, "
            f"signed_pares={_signed_pares!s}, "
            f"acs_reference_number={_acs_reference_number!s}, "
            f"ds_reference_number={_ds_reference_number!s}, "
            f"additional_properties={_additional_properties!s}, "
            f")"
        )
