# 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 ProductSafety(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 = {
        'component': 'str',
        'pictograms': 'list[str]',
        'statements': 'list[str]'
    }

    attribute_map = {
        'component': 'component',
        'pictograms': 'pictograms',
        'statements': 'statements'
    }

    def __init__(self, component=None, pictograms=None, statements=None):  # noqa: E501
        """ProductSafety - a model defined in Swagger"""  # noqa: E501
        self._component = None
        self._pictograms = None
        self._statements = None
        self.discriminator = None
        if component is not None:
            self.component = component
        if pictograms is not None:
            self.pictograms = pictograms
        if statements is not None:
            self.statements = statements

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

        This field is used by the seller to provide product safety component information for the listing. For example, component information can include specific warnings related to product safety, such as 'Tipping hazard'. <br><br><span class=\"tablenote\"><b>Note:</b> Component information can only be specified if used with the <b>pictograms</b> and/or <b>statements</b> field; if the component is provided without one or both of these fields, an error will occur.</span><br><b>Max length:</b> 120 characters  # noqa: E501

        :return: The component of this ProductSafety.  # noqa: E501
        :rtype: str
        """
        return self._component

    @component.setter
    def component(self, component):
        """Sets the component of this ProductSafety.

        This field is used by the seller to provide product safety component information for the listing. For example, component information can include specific warnings related to product safety, such as 'Tipping hazard'. <br><br><span class=\"tablenote\"><b>Note:</b> Component information can only be specified if used with the <b>pictograms</b> and/or <b>statements</b> field; if the component is provided without one or both of these fields, an error will occur.</span><br><b>Max length:</b> 120 characters  # noqa: E501

        :param component: The component of this ProductSafety.  # noqa: E501
        :type: str
        """

        self._component = component

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

        An array of comma-separated string values used to provide product safety pictogram(s) for the listing.<br><br>If your product shows universal product safety or compliance symbols, please select the values corresponding to the product safety pictograms for display in the product safety section of the listing. The seller specifies the identifier of each pictogram in this field.<br><br><span class=\"tablenote\"><b>Note:</b> For product safety pictograms, use the <a href= \"/api-docs/sell/metadata/resources/marketplace/methods/getProductSafetyLabels\" target=\"_blank\">getProductSafetyLabels</a> method of the <b>Metadata API</b> to find supported values for a specific marketplace/site.</span><br>A maximum of 2 pictograms are allowed for product safety.  # noqa: E501

        :return: The pictograms of this ProductSafety.  # noqa: E501
        :rtype: list[str]
        """
        return self._pictograms

    @pictograms.setter
    def pictograms(self, pictograms):
        """Sets the pictograms of this ProductSafety.

        An array of comma-separated string values used to provide product safety pictogram(s) for the listing.<br><br>If your product shows universal product safety or compliance symbols, please select the values corresponding to the product safety pictograms for display in the product safety section of the listing. The seller specifies the identifier of each pictogram in this field.<br><br><span class=\"tablenote\"><b>Note:</b> For product safety pictograms, use the <a href= \"/api-docs/sell/metadata/resources/marketplace/methods/getProductSafetyLabels\" target=\"_blank\">getProductSafetyLabels</a> method of the <b>Metadata API</b> to find supported values for a specific marketplace/site.</span><br>A maximum of 2 pictograms are allowed for product safety.  # noqa: E501

        :param pictograms: The pictograms of this ProductSafety.  # noqa: E501
        :type: list[str]
        """

        self._pictograms = pictograms

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

        An array of comma-separated string values used to provide product safety statement(s) for the listing.<br><br>If your product shows universal product safety or compliance warnings, please select the values corresponding to the product safety statements for display in the product safety section of the listing. The seller specifies the identifier of each statement in this field.<br><br><span class=\"tablenote\"><b>Note:</b> For product safety statements, use the <a href= \"/api-docs/sell/metadata/resources/marketplace/methods/getProductSafetyLabels\" target=\"_blank\">getProductSafetyLabels</a> method of the <b>Metadata API</b> to find supported values for a specific marketplace/site.</span><br>A maximum of 8 statements are allowed for product safety.  # noqa: E501

        :return: The statements of this ProductSafety.  # noqa: E501
        :rtype: list[str]
        """
        return self._statements

    @statements.setter
    def statements(self, statements):
        """Sets the statements of this ProductSafety.

        An array of comma-separated string values used to provide product safety statement(s) for the listing.<br><br>If your product shows universal product safety or compliance warnings, please select the values corresponding to the product safety statements for display in the product safety section of the listing. The seller specifies the identifier of each statement in this field.<br><br><span class=\"tablenote\"><b>Note:</b> For product safety statements, use the <a href= \"/api-docs/sell/metadata/resources/marketplace/methods/getProductSafetyLabels\" target=\"_blank\">getProductSafetyLabels</a> method of the <b>Metadata API</b> to find supported values for a specific marketplace/site.</span><br>A maximum of 8 statements are allowed for product safety.  # noqa: E501

        :param statements: The statements of this ProductSafety.  # noqa: E501
        :type: list[str]
        """

        self._statements = statements

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

        return self.__dict__ == other.__dict__

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