# coding: utf-8

"""
    CyberSource Merged Spec

    All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html

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


from pprint import pformat
from six import iteritems
import re


class Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """


    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'requestor_id': 'str',
        'transaction_type': 'str'
    }

    attribute_map = {
        'requestor_id': 'requestorID',
        'transaction_type': 'transactionType'
    }

    def __init__(self, requestor_id=None, transaction_type=None):
        """
        Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation - a model defined in Swagger
        """

        self._requestor_id = None
        self._transaction_type = None

        if requestor_id is not None:
          self.requestor_id = requestor_id
        if transaction_type is not None:
          self.transaction_type = transaction_type

    @property
    def requestor_id(self):
        """
        Gets the requestor_id of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        Value that identifies your business and indicates that the cardholder’s account number is tokenized. This value is assigned by the token service provider and is unique within the token service provider’s database.  **Note** This field is supported only for **CyberSource through VisaNet** and **FDC Nashville Global**. 

        :return: The requestor_id of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        :rtype: str
        """
        return self._requestor_id

    @requestor_id.setter
    def requestor_id(self, requestor_id):
        """
        Sets the requestor_id of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        Value that identifies your business and indicates that the cardholder’s account number is tokenized. This value is assigned by the token service provider and is unique within the token service provider’s database.  **Note** This field is supported only for **CyberSource through VisaNet** and **FDC Nashville Global**. 

        :param requestor_id: The requestor_id of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        :type: str
        """
        if requestor_id is not None and len(requestor_id) > 11:
            raise ValueError("Invalid value for `requestor_id`, length must be less than or equal to `11`")

        self._requestor_id = requestor_id

    @property
    def transaction_type(self):
        """
        Gets the transaction_type of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        Type of transaction that provided the token data. This value does not specify the token service provider; it specifies the entity that provided you with information about the token.  Set the value for this field to 1. An application on the customer’s mobile device provided the token data. 

        :return: The transaction_type of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        :rtype: str
        """
        return self._transaction_type

    @transaction_type.setter
    def transaction_type(self, transaction_type):
        """
        Sets the transaction_type of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        Type of transaction that provided the token data. This value does not specify the token service provider; it specifies the entity that provided you with information about the token.  Set the value for this field to 1. An application on the customer’s mobile device provided the token data. 

        :param transaction_type: The transaction_type of this Tmsv2customersEmbeddedDefaultPaymentInstrumentCardTokenizedInformation.
        :type: str
        """
        if transaction_type is not None and len(transaction_type) > 1:
            raise ValueError("Invalid value for `transaction_type`, length must be less than or equal to `1`")

        self._transaction_type = transaction_type

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

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

        return result

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

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

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

        return self.__dict__ == other.__dict__

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