# coding: utf-8

"""
    teralytic

    Teralytic-API allows customers and partners to view their probes, sensor readings for each, as well as analytics and calculations from Teralytic algorithms.  # noqa: E501

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


import pprint
import re  # noqa: F401

import six


class MicroClimateData(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 = {
        'humidity': 'float',
        'irrigation_sched': 'int',
        'irrigation_vol_acre_in': 'float',
        'irrigation_vol_acre_cm': 'float',
        'lux': 'float',
        'irrigation_gross_in': 'float',
        'irrigation_net_in': 'float',
        'irrigation_gross_cm': 'float',
        'irrigation_net_cm': 'float',
        'irrigation_rec': 'str',
        'temperature': 'float',
        'eto': 'float',
        'irrigation_stream': 'float',
        'organic_matter': 'float'
    }

    attribute_map = {
        'humidity': 'humidity',
        'irrigation_sched': 'irrigation_sched',
        'irrigation_vol_acre_in': 'irrigation_vol_acre_in',
        'irrigation_vol_acre_cm': 'irrigation_vol_acre_cm',
        'lux': 'lux',
        'irrigation_gross_in': 'irrigation_gross_in',
        'irrigation_net_in': 'irrigation_net_in',
        'irrigation_gross_cm': 'irrigation_gross_cm',
        'irrigation_net_cm': 'irrigation_net_cm',
        'irrigation_rec': 'irrigation_rec',
        'temperature': 'temperature',
        'eto': 'eto',
        'irrigation_stream': 'irrigation_stream',
        'organic_matter': 'organic_matter'
    }

    def __init__(self, humidity=None, irrigation_sched=None, irrigation_vol_acre_in=None, irrigation_vol_acre_cm=None, lux=None, irrigation_gross_in=None, irrigation_net_in=None, irrigation_gross_cm=None, irrigation_net_cm=None, irrigation_rec=None, temperature=None, eto=None, irrigation_stream=None, organic_matter=None):  # noqa: E501
        """MicroClimateData - a model defined in Swagger"""  # noqa: E501

        self._humidity = None
        self._irrigation_sched = None
        self._irrigation_vol_acre_in = None
        self._irrigation_vol_acre_cm = None
        self._lux = None
        self._irrigation_gross_in = None
        self._irrigation_net_in = None
        self._irrigation_gross_cm = None
        self._irrigation_net_cm = None
        self._irrigation_rec = None
        self._temperature = None
        self._eto = None
        self._irrigation_stream = None
        self._organic_matter = None
        self.discriminator = None

        if humidity is not None:
            self.humidity = humidity
        if irrigation_sched is not None:
            self.irrigation_sched = irrigation_sched
        if irrigation_vol_acre_in is not None:
            self.irrigation_vol_acre_in = irrigation_vol_acre_in
        if irrigation_vol_acre_cm is not None:
            self.irrigation_vol_acre_cm = irrigation_vol_acre_cm
        if lux is not None:
            self.lux = lux
        if irrigation_gross_in is not None:
            self.irrigation_gross_in = irrigation_gross_in
        if irrigation_net_in is not None:
            self.irrigation_net_in = irrigation_net_in
        if irrigation_gross_cm is not None:
            self.irrigation_gross_cm = irrigation_gross_cm
        if irrigation_net_cm is not None:
            self.irrigation_net_cm = irrigation_net_cm
        if irrigation_rec is not None:
            self.irrigation_rec = irrigation_rec
        if temperature is not None:
            self.temperature = temperature
        if eto is not None:
            self.eto = eto
        if irrigation_stream is not None:
            self.irrigation_stream = irrigation_stream
        if organic_matter is not None:
            self.organic_matter = organic_matter

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


        :return: The humidity of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._humidity

    @humidity.setter
    def humidity(self, humidity):
        """Sets the humidity of this MicroClimateData.


        :param humidity: The humidity of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._humidity = humidity

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

        Irrigation Schedule  # noqa: E501

        :return: The irrigation_sched of this MicroClimateData.  # noqa: E501
        :rtype: int
        """
        return self._irrigation_sched

    @irrigation_sched.setter
    def irrigation_sched(self, irrigation_sched):
        """Sets the irrigation_sched of this MicroClimateData.

        Irrigation Schedule  # noqa: E501

        :param irrigation_sched: The irrigation_sched of this MicroClimateData.  # noqa: E501
        :type: int
        """

        self._irrigation_sched = irrigation_sched

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

        Irrigation volume in3/acre  # noqa: E501

        :return: The irrigation_vol_acre_in of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._irrigation_vol_acre_in

    @irrigation_vol_acre_in.setter
    def irrigation_vol_acre_in(self, irrigation_vol_acre_in):
        """Sets the irrigation_vol_acre_in of this MicroClimateData.

        Irrigation volume in3/acre  # noqa: E501

        :param irrigation_vol_acre_in: The irrigation_vol_acre_in of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._irrigation_vol_acre_in = irrigation_vol_acre_in

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

        Irrigation volume c3/acre  # noqa: E501

        :return: The irrigation_vol_acre_cm of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._irrigation_vol_acre_cm

    @irrigation_vol_acre_cm.setter
    def irrigation_vol_acre_cm(self, irrigation_vol_acre_cm):
        """Sets the irrigation_vol_acre_cm of this MicroClimateData.

        Irrigation volume c3/acre  # noqa: E501

        :param irrigation_vol_acre_cm: The irrigation_vol_acre_cm of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._irrigation_vol_acre_cm = irrigation_vol_acre_cm

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


        :return: The lux of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._lux

    @lux.setter
    def lux(self, lux):
        """Sets the lux of this MicroClimateData.


        :param lux: The lux of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._lux = lux

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

        Gross irrigation in in3  # noqa: E501

        :return: The irrigation_gross_in of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._irrigation_gross_in

    @irrigation_gross_in.setter
    def irrigation_gross_in(self, irrigation_gross_in):
        """Sets the irrigation_gross_in of this MicroClimateData.

        Gross irrigation in in3  # noqa: E501

        :param irrigation_gross_in: The irrigation_gross_in of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._irrigation_gross_in = irrigation_gross_in

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

        Net irrigation in in3  # noqa: E501

        :return: The irrigation_net_in of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._irrigation_net_in

    @irrigation_net_in.setter
    def irrigation_net_in(self, irrigation_net_in):
        """Sets the irrigation_net_in of this MicroClimateData.

        Net irrigation in in3  # noqa: E501

        :param irrigation_net_in: The irrigation_net_in of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._irrigation_net_in = irrigation_net_in

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

        Gross irrigation in cm3  # noqa: E501

        :return: The irrigation_gross_cm of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._irrigation_gross_cm

    @irrigation_gross_cm.setter
    def irrigation_gross_cm(self, irrigation_gross_cm):
        """Sets the irrigation_gross_cm of this MicroClimateData.

        Gross irrigation in cm3  # noqa: E501

        :param irrigation_gross_cm: The irrigation_gross_cm of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._irrigation_gross_cm = irrigation_gross_cm

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

        Net irrigation in cm3  # noqa: E501

        :return: The irrigation_net_cm of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._irrigation_net_cm

    @irrigation_net_cm.setter
    def irrigation_net_cm(self, irrigation_net_cm):
        """Sets the irrigation_net_cm of this MicroClimateData.

        Net irrigation in cm3  # noqa: E501

        :param irrigation_net_cm: The irrigation_net_cm of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._irrigation_net_cm = irrigation_net_cm

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

        Irrigation recommendation  # noqa: E501

        :return: The irrigation_rec of this MicroClimateData.  # noqa: E501
        :rtype: str
        """
        return self._irrigation_rec

    @irrigation_rec.setter
    def irrigation_rec(self, irrigation_rec):
        """Sets the irrigation_rec of this MicroClimateData.

        Irrigation recommendation  # noqa: E501

        :param irrigation_rec: The irrigation_rec of this MicroClimateData.  # noqa: E501
        :type: str
        """

        self._irrigation_rec = irrigation_rec

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

        Air Temperature  # noqa: E501

        :return: The temperature of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._temperature

    @temperature.setter
    def temperature(self, temperature):
        """Sets the temperature of this MicroClimateData.

        Air Temperature  # noqa: E501

        :param temperature: The temperature of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._temperature = temperature

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

        Evaporative Transpiration  # noqa: E501

        :return: The eto of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._eto

    @eto.setter
    def eto(self, eto):
        """Sets the eto of this MicroClimateData.

        Evaporative Transpiration  # noqa: E501

        :param eto: The eto of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._eto = eto

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


        :return: The irrigation_stream of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._irrigation_stream

    @irrigation_stream.setter
    def irrigation_stream(self, irrigation_stream):
        """Sets the irrigation_stream of this MicroClimateData.


        :param irrigation_stream: The irrigation_stream of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._irrigation_stream = irrigation_stream

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

        Organic Matter  # noqa: E501

        :return: The organic_matter of this MicroClimateData.  # noqa: E501
        :rtype: float
        """
        return self._organic_matter

    @organic_matter.setter
    def organic_matter(self, organic_matter):
        """Sets the organic_matter of this MicroClimateData.

        Organic Matter  # noqa: E501

        :param organic_matter: The organic_matter of this MicroClimateData.  # noqa: E501
        :type: float
        """

        self._organic_matter = organic_matter

    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

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

        return self.__dict__ == other.__dict__

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