# coding: utf-8

"""
    Inventory API

    The Inventory API is used to create and manage inventory, and then to publish and manage this inventory on an eBay marketplace. There are also methods in this API that will convert eligible, active eBay listings into the Inventory API model.  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class ConditionDescriptor(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 = {
        'additional_info': 'str',
        'name': 'str',
        'values': 'list[str]'
    }

    attribute_map = {
        'additional_info': 'additionalInfo',
        'name': 'name',
        'values': 'values'
    }

    def __init__(self, additional_info=None, name=None, values=None):  # noqa: E501
        """ConditionDescriptor - a model defined in Swagger"""  # noqa: E501
        self._additional_info = None
        self._name = None
        self._values = None
        self.discriminator = None
        if additional_info is not None:
            self.additional_info = additional_info
        if name is not None:
            self.name = name
        if values is not None:
            self.values = values

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

        This string provides additional information about a condition descriptor. Open text is passed in this field.<br><br>In the case of trading cards, this field houses the optional <b>Certification Number</b> condition descriptor for graded cards. <br><br><b>Max Length:</b> 30 characters  # noqa: E501

        :return: The additional_info of this ConditionDescriptor.  # noqa: E501
        :rtype: str
        """
        return self._additional_info

    @additional_info.setter
    def additional_info(self, additional_info):
        """Sets the additional_info of this ConditionDescriptor.

        This string provides additional information about a condition descriptor. Open text is passed in this field.<br><br>In the case of trading cards, this field houses the optional <b>Certification Number</b> condition descriptor for graded cards. <br><br><b>Max Length:</b> 30 characters  # noqa: E501

        :param additional_info: The additional_info of this ConditionDescriptor.  # noqa: E501
        :type: str
        """

        self._additional_info = additional_info

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

        This string provides the name of a condition descriptor. A numeric ID is passed in this field. This numeric ID maps to the name of a condition descriptor. Condition descriptor name-value pairs provide more information about an item's condition in a structured way. <br><br>To retrieve all condition descriptor name numeric IDs for a category, refer to the <b>conditionDescriptorId</b> field returned in the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getItemConditionPolicies \" target=\"_blank\">getItemConditionPolicies</a> method of Metadata API. <br><br>In the case of trading cards, this field is used to provide condition descriptors for a card. For graded cards, the condition descriptors for <b>Grader</b> and <b>Grade</b> are required, while the condition descriptor for <b>Certification Number</b> is optional. For ungraded cards, only the <b>Card Condition</b> condition descriptor is required.  # noqa: E501

        :return: The name of this ConditionDescriptor.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this ConditionDescriptor.

        This string provides the name of a condition descriptor. A numeric ID is passed in this field. This numeric ID maps to the name of a condition descriptor. Condition descriptor name-value pairs provide more information about an item's condition in a structured way. <br><br>To retrieve all condition descriptor name numeric IDs for a category, refer to the <b>conditionDescriptorId</b> field returned in the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getItemConditionPolicies \" target=\"_blank\">getItemConditionPolicies</a> method of Metadata API. <br><br>In the case of trading cards, this field is used to provide condition descriptors for a card. For graded cards, the condition descriptors for <b>Grader</b> and <b>Grade</b> are required, while the condition descriptor for <b>Certification Number</b> is optional. For ungraded cards, only the <b>Card Condition</b> condition descriptor is required.  # noqa: E501

        :param name: The name of this ConditionDescriptor.  # noqa: E501
        :type: str
        """

        self._name = name

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

        This array provides the value(s) associated with a condition descriptor. One or more numeric IDs is passed in this field. Commas are used as delimiters between successive name/value pairs. These numeric IDs map to the values associated with a condition descriptor name. Condition descriptor name-value pairs provide more information about an item's condition in a structured way. <br><br>To retrieve all condition descriptor value numeric IDs for a category, refer to the <b>ConditionDescriptorValueId</b> array returned in the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getItemConditionPolicies \" target=\"_blank\">getItemConditionPolicies</a> method of Metadata API. <br><br>In the case of trading cards, this field houses the information on the <b>Grader</b> and <b>Grade</b> descriptors of graded cards and the <b>Card Condition</b> descriptor for ungraded cards.  # noqa: E501

        :return: The values of this ConditionDescriptor.  # noqa: E501
        :rtype: list[str]
        """
        return self._values

    @values.setter
    def values(self, values):
        """Sets the values of this ConditionDescriptor.

        This array provides the value(s) associated with a condition descriptor. One or more numeric IDs is passed in this field. Commas are used as delimiters between successive name/value pairs. These numeric IDs map to the values associated with a condition descriptor name. Condition descriptor name-value pairs provide more information about an item's condition in a structured way. <br><br>To retrieve all condition descriptor value numeric IDs for a category, refer to the <b>ConditionDescriptorValueId</b> array returned in the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getItemConditionPolicies \" target=\"_blank\">getItemConditionPolicies</a> method of Metadata API. <br><br>In the case of trading cards, this field houses the information on the <b>Grader</b> and <b>Grade</b> descriptors of graded cards and the <b>Card Condition</b> descriptor for ungraded cards.  # noqa: E501

        :param values: The values of this ConditionDescriptor.  # noqa: E501
        :type: list[str]
        """

        self._values = values

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

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

        return result

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

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

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

        return self.__dict__ == other.__dict__

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