# 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.16.2
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class Hazmat(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]',
        'signal_word': 'str',
        'statements': 'list[str]'
    }

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

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

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

        This field is used by the seller to provide component information for the listing. For example, component information can provide the specific material of Hazmat concern.<br><br><b>Max length:</b> 120  # noqa: E501

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

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

        This field is used by the seller to provide component information for the listing. For example, component information can provide the specific material of Hazmat concern.<br><br><b>Max length:</b> 120  # noqa: E501

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

        self._component = component

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

        An array of comma-separated string values listing applicable pictogram code(s) for Hazard Pictogram(s).<br><br>If your product contains hazardous substances or mixtures, please select the values corresponding to the hazard pictograms that are stated on your product's Safety Data Sheet. The selected hazard information will be displayed on your listing.<br><br>A separate Pictogram field is required for each Hazard pictogram.<br><br><span class=\"tablenote\"><b>Note:</b> Use the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getHazardousMaterialsLabels \" target=\"_blank\">getHazardousMaterialsLabels</a> method in the Metadata API to find supported values for a specific marketplace/site. Refer to <a href=\"/api-docs/sell/static/metadata/feature-regulatorhazmatcontainer.html#Pictogra\" target=\"_blank\">Pictogram sample values</a> for additional information.</span>  # noqa: E501

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

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

        An array of comma-separated string values listing applicable pictogram code(s) for Hazard Pictogram(s).<br><br>If your product contains hazardous substances or mixtures, please select the values corresponding to the hazard pictograms that are stated on your product's Safety Data Sheet. The selected hazard information will be displayed on your listing.<br><br>A separate Pictogram field is required for each Hazard pictogram.<br><br><span class=\"tablenote\"><b>Note:</b> Use the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getHazardousMaterialsLabels \" target=\"_blank\">getHazardousMaterialsLabels</a> method in the Metadata API to find supported values for a specific marketplace/site. Refer to <a href=\"/api-docs/sell/static/metadata/feature-regulatorhazmatcontainer.html#Pictogra\" target=\"_blank\">Pictogram sample values</a> for additional information.</span>  # noqa: E501

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

        self._pictograms = pictograms

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

        This field sets the signal word for hazardous materials in the listing.<br><br>If your product contains hazardous substances or mixtures, please select a value corresponding to the signal word that is stated on your product's Safety Data Sheet. The selected hazard information will be displayed on your listing.<br><br>Valid values are:<ul><li>Danger</li><li>Warning</li></ul><br><span class=\"tablenote\"><b>Note:</b> Use the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getHazardousMaterialsLabels \" target=\"_blank\">getHazardousMaterialsLabels</a> method in the <a href=\"/api-docs/sell/metadata/resources/methods \" target=\"_blank\">Metadata API</a> to find supported values for a specific marketplace/site. Refer to <a href=\"/api-docs/sell/static/metadata/feature-regulatorhazmatcontainer.html#Signal\" target=\"_blank\">Signal word information</a> for additional information.</span>  # noqa: E501

        :return: The signal_word of this Hazmat.  # noqa: E501
        :rtype: str
        """
        return self._signal_word

    @signal_word.setter
    def signal_word(self, signal_word):
        """Sets the signal_word of this Hazmat.

        This field sets the signal word for hazardous materials in the listing.<br><br>If your product contains hazardous substances or mixtures, please select a value corresponding to the signal word that is stated on your product's Safety Data Sheet. The selected hazard information will be displayed on your listing.<br><br>Valid values are:<ul><li>Danger</li><li>Warning</li></ul><br><span class=\"tablenote\"><b>Note:</b> Use the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getHazardousMaterialsLabels \" target=\"_blank\">getHazardousMaterialsLabels</a> method in the <a href=\"/api-docs/sell/metadata/resources/methods \" target=\"_blank\">Metadata API</a> to find supported values for a specific marketplace/site. Refer to <a href=\"/api-docs/sell/static/metadata/feature-regulatorhazmatcontainer.html#Signal\" target=\"_blank\">Signal word information</a> for additional information.</span>  # noqa: E501

        :param signal_word: The signal_word of this Hazmat.  # noqa: E501
        :type: str
        """

        self._signal_word = signal_word

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

        An array of comma-separated string values specifying applicable statement code(s) for hazard statement(s) for the listing.<br><br>If your product contains hazardous substances or mixtures, please select the values corresponding to the hazard statements that are stated on your product's Safety Data Sheet. The selected hazard information will be displayed on your listing.<br><br>A separate Statement field is required for each Hazard statement.<br><br><span class=\"tablenote\"><b>Note:</b> Use the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getHazardousMaterialsLabels \" target=\"_blank\">getHazardousMaterialsLabels</a> method in the Metadata API to find supported values for a specific marketplace/site. Refer to <a href=\"/api-docs/sell/static/metadata/feature-regulatorhazmatcontainer.html#Hazard\" target=\"_blank\">Hazard statement sample values</a> for additional information.<span>  # noqa: E501

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

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

        An array of comma-separated string values specifying applicable statement code(s) for hazard statement(s) for the listing.<br><br>If your product contains hazardous substances or mixtures, please select the values corresponding to the hazard statements that are stated on your product's Safety Data Sheet. The selected hazard information will be displayed on your listing.<br><br>A separate Statement field is required for each Hazard statement.<br><br><span class=\"tablenote\"><b>Note:</b> Use the <a href=\"/api-docs/sell/metadata/resources/marketplace/methods/getHazardousMaterialsLabels \" target=\"_blank\">getHazardousMaterialsLabels</a> method in the Metadata API to find supported values for a specific marketplace/site. Refer to <a href=\"/api-docs/sell/static/metadata/feature-regulatorhazmatcontainer.html#Hazard\" target=\"_blank\">Hazard statement sample values</a> for additional information.<span>  # noqa: E501

        :param statements: The statements of this Hazmat.  # 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(Hazmat, 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, Hazmat):
            return False

        return self.__dict__ == other.__dict__

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