# coding: utf-8

"""
    SparkWorks Core (CaRGO) API

    Access Interface for the SparkWorks IoT Data Analytics Platform  # noqa: E501

    OpenAPI spec version: 2.0.0
    Contact: info@sparkworks.net
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class SleepSummaryDTO(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 = {
        'light': 'SleepSummaryEntryDTO',
        'restless': 'SleepSummaryEntryDTO',
        'deep': 'SleepSummaryEntryDTO',
        'rem': 'SleepSummaryEntryDTO',
        'awake': 'SleepSummaryEntryDTO',
        'wake': 'SleepSummaryEntryDTO',
        'asleep': 'SleepSummaryEntryDTO'
    }

    attribute_map = {
        'light': 'light',
        'restless': 'restless',
        'deep': 'deep',
        'rem': 'rem',
        'awake': 'awake',
        'wake': 'wake',
        'asleep': 'asleep'
    }

    def __init__(self, light=None, restless=None, deep=None, rem=None, awake=None, wake=None, asleep=None):  # noqa: E501
        """SleepSummaryDTO - a model defined in Swagger"""  # noqa: E501
        self._light = None
        self._restless = None
        self._deep = None
        self._rem = None
        self._awake = None
        self._wake = None
        self._asleep = None
        self.discriminator = None
        if light is not None:
            self.light = light
        if restless is not None:
            self.restless = restless
        if deep is not None:
            self.deep = deep
        if rem is not None:
            self.rem = rem
        if awake is not None:
            self.awake = awake
        if wake is not None:
            self.wake = wake
        if asleep is not None:
            self.asleep = asleep

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


        :return: The light of this SleepSummaryDTO.  # noqa: E501
        :rtype: SleepSummaryEntryDTO
        """
        return self._light

    @light.setter
    def light(self, light):
        """Sets the light of this SleepSummaryDTO.


        :param light: The light of this SleepSummaryDTO.  # noqa: E501
        :type: SleepSummaryEntryDTO
        """

        self._light = light

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


        :return: The restless of this SleepSummaryDTO.  # noqa: E501
        :rtype: SleepSummaryEntryDTO
        """
        return self._restless

    @restless.setter
    def restless(self, restless):
        """Sets the restless of this SleepSummaryDTO.


        :param restless: The restless of this SleepSummaryDTO.  # noqa: E501
        :type: SleepSummaryEntryDTO
        """

        self._restless = restless

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


        :return: The deep of this SleepSummaryDTO.  # noqa: E501
        :rtype: SleepSummaryEntryDTO
        """
        return self._deep

    @deep.setter
    def deep(self, deep):
        """Sets the deep of this SleepSummaryDTO.


        :param deep: The deep of this SleepSummaryDTO.  # noqa: E501
        :type: SleepSummaryEntryDTO
        """

        self._deep = deep

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


        :return: The rem of this SleepSummaryDTO.  # noqa: E501
        :rtype: SleepSummaryEntryDTO
        """
        return self._rem

    @rem.setter
    def rem(self, rem):
        """Sets the rem of this SleepSummaryDTO.


        :param rem: The rem of this SleepSummaryDTO.  # noqa: E501
        :type: SleepSummaryEntryDTO
        """

        self._rem = rem

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


        :return: The awake of this SleepSummaryDTO.  # noqa: E501
        :rtype: SleepSummaryEntryDTO
        """
        return self._awake

    @awake.setter
    def awake(self, awake):
        """Sets the awake of this SleepSummaryDTO.


        :param awake: The awake of this SleepSummaryDTO.  # noqa: E501
        :type: SleepSummaryEntryDTO
        """

        self._awake = awake

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


        :return: The wake of this SleepSummaryDTO.  # noqa: E501
        :rtype: SleepSummaryEntryDTO
        """
        return self._wake

    @wake.setter
    def wake(self, wake):
        """Sets the wake of this SleepSummaryDTO.


        :param wake: The wake of this SleepSummaryDTO.  # noqa: E501
        :type: SleepSummaryEntryDTO
        """

        self._wake = wake

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


        :return: The asleep of this SleepSummaryDTO.  # noqa: E501
        :rtype: SleepSummaryEntryDTO
        """
        return self._asleep

    @asleep.setter
    def asleep(self, asleep):
        """Sets the asleep of this SleepSummaryDTO.


        :param asleep: The asleep of this SleepSummaryDTO.  # noqa: E501
        :type: SleepSummaryEntryDTO
        """

        self._asleep = asleep

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

        return self.__dict__ == other.__dict__

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