# 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 InlineResponse2003KeyInformation(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 = {
        'organization_id': 'str',
        'reference_number': 'str',
        'key_id': 'str',
        'status': 'str',
        'message': 'str',
        'error_information': 'InlineResponse201ErrorInformation'
    }

    attribute_map = {
        'organization_id': 'organizationId',
        'reference_number': 'referenceNumber',
        'key_id': 'keyId',
        'status': 'status',
        'message': 'message',
        'error_information': 'errorInformation'
    }

    def __init__(self, organization_id=None, reference_number=None, key_id=None, status=None, message=None, error_information=None):
        """
        InlineResponse2003KeyInformation - a model defined in Swagger
        """

        self._organization_id = None
        self._reference_number = None
        self._key_id = None
        self._status = None
        self._message = None
        self._error_information = None

        if organization_id is not None:
          self.organization_id = organization_id
        if reference_number is not None:
          self.reference_number = reference_number
        if key_id is not None:
          self.key_id = key_id
        if status is not None:
          self.status = status
        if message is not None:
          self.message = message
        if error_information is not None:
          self.error_information = error_information

    @property
    def organization_id(self):
        """
        Gets the organization_id of this InlineResponse2003KeyInformation.
        Merchant Id 

        :return: The organization_id of this InlineResponse2003KeyInformation.
        :rtype: str
        """
        return self._organization_id

    @organization_id.setter
    def organization_id(self, organization_id):
        """
        Sets the organization_id of this InlineResponse2003KeyInformation.
        Merchant Id 

        :param organization_id: The organization_id of this InlineResponse2003KeyInformation.
        :type: str
        """

        self._organization_id = organization_id

    @property
    def reference_number(self):
        """
        Gets the reference_number of this InlineResponse2003KeyInformation.
        Reference number is a unique identifier provided by the client along with the organization Id. This is an optional field provided solely for the client’s convenience. If client specifies value for this field in the request, it is expected to be available in the response. 

        :return: The reference_number of this InlineResponse2003KeyInformation.
        :rtype: str
        """
        return self._reference_number

    @reference_number.setter
    def reference_number(self, reference_number):
        """
        Sets the reference_number of this InlineResponse2003KeyInformation.
        Reference number is a unique identifier provided by the client along with the organization Id. This is an optional field provided solely for the client’s convenience. If client specifies value for this field in the request, it is expected to be available in the response. 

        :param reference_number: The reference_number of this InlineResponse2003KeyInformation.
        :type: str
        """

        self._reference_number = reference_number

    @property
    def key_id(self):
        """
        Gets the key_id of this InlineResponse2003KeyInformation.
        Key Serial Number 

        :return: The key_id of this InlineResponse2003KeyInformation.
        :rtype: str
        """
        return self._key_id

    @key_id.setter
    def key_id(self, key_id):
        """
        Sets the key_id of this InlineResponse2003KeyInformation.
        Key Serial Number 

        :param key_id: The key_id of this InlineResponse2003KeyInformation.
        :type: str
        """

        self._key_id = key_id

    @property
    def status(self):
        """
        Gets the status of this InlineResponse2003KeyInformation.
        The status of the key.  Possible values:  - FAILED  - ACTIVE  - INACTIVE  - EXPIRED 

        :return: The status of this InlineResponse2003KeyInformation.
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """
        Sets the status of this InlineResponse2003KeyInformation.
        The status of the key.  Possible values:  - FAILED  - ACTIVE  - INACTIVE  - EXPIRED 

        :param status: The status of this InlineResponse2003KeyInformation.
        :type: str
        """

        self._status = status

    @property
    def message(self):
        """
        Gets the message of this InlineResponse2003KeyInformation.
        message in case of failed key

        :return: The message of this InlineResponse2003KeyInformation.
        :rtype: str
        """
        return self._message

    @message.setter
    def message(self, message):
        """
        Sets the message of this InlineResponse2003KeyInformation.
        message in case of failed key

        :param message: The message of this InlineResponse2003KeyInformation.
        :type: str
        """

        self._message = message

    @property
    def error_information(self):
        """
        Gets the error_information of this InlineResponse2003KeyInformation.

        :return: The error_information of this InlineResponse2003KeyInformation.
        :rtype: InlineResponse201ErrorInformation
        """
        return self._error_information

    @error_information.setter
    def error_information(self, error_information):
        """
        Sets the error_information of this InlineResponse2003KeyInformation.

        :param error_information: The error_information of this InlineResponse2003KeyInformation.
        :type: InlineResponse201ErrorInformation
        """

        self._error_information = error_information

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

        return self.__dict__ == other.__dict__

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