<gh_stars>1-10
# coding: utf-8

"""
    Honeywell Home

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six


class ThermostatSettings(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'hardware_settings': 'ThermostatSettingsHardwareSettings',
        'fan': 'ThermostatSettingsFan',
        'temperature_mode': 'ThermostatSettingsTemperatureMode',
        'special_mode': 'ThermostatSettingsSpecialMode'
    }

    attribute_map = {
        'hardware_settings': 'hardwareSettings',
        'fan': 'fan',
        'temperature_mode': 'temperatureMode',
        'special_mode': 'specialMode'
    }

    def __init__(self, hardware_settings=None, fan=None, temperature_mode=None, special_mode=None):  # noqa: E501
        """ThermostatSettings - a model defined in OpenAPI"""  # noqa: E501

        self._hardware_settings = None
        self._fan = None
        self._temperature_mode = None
        self._special_mode = None
        self.discriminator = None

        if hardware_settings is not None:
            self.hardware_settings = hardware_settings
        if fan is not None:
            self.fan = fan
        if temperature_mode is not None:
            self.temperature_mode = temperature_mode
        if special_mode is not None:
            self.special_mode = special_mode

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


        :return: The hardware_settings of this ThermostatSettings.  # noqa: E501
        :rtype: ThermostatSettingsHardwareSettings
        """
        return self._hardware_settings

    @hardware_settings.setter
    def hardware_settings(self, hardware_settings):
        """Sets the hardware_settings of this ThermostatSettings.


        :param hardware_settings: The hardware_settings of this ThermostatSettings.  # noqa: E501
        :type: ThermostatSettingsHardwareSettings
        """

        self._hardware_settings = hardware_settings

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


        :return: The fan of this ThermostatSettings.  # noqa: E501
        :rtype: ThermostatSettingsFan
        """
        return self._fan

    @fan.setter
    def fan(self, fan):
        """Sets the fan of this ThermostatSettings.


        :param fan: The fan of this ThermostatSettings.  # noqa: E501
        :type: ThermostatSettingsFan
        """

        self._fan = fan

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


        :return: The temperature_mode of this ThermostatSettings.  # noqa: E501
        :rtype: ThermostatSettingsTemperatureMode
        """
        return self._temperature_mode

    @temperature_mode.setter
    def temperature_mode(self, temperature_mode):
        """Sets the temperature_mode of this ThermostatSettings.


        :param temperature_mode: The temperature_mode of this ThermostatSettings.  # noqa: E501
        :type: ThermostatSettingsTemperatureMode
        """

        self._temperature_mode = temperature_mode

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


        :return: The special_mode of this ThermostatSettings.  # noqa: E501
        :rtype: ThermostatSettingsSpecialMode
        """
        return self._special_mode

    @special_mode.setter
    def special_mode(self, special_mode):
        """Sets the special_mode of this ThermostatSettings.


        :param special_mode: The special_mode of this ThermostatSettings.  # noqa: E501
        :type: ThermostatSettingsSpecialMode
        """

        self._special_mode = special_mode

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

        for attr, _ in six.iteritems(self.openapi_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 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, ThermostatSettings):
            return False

        return self.__dict__ == other.__dict__

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