# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from src.models.base_model_ import Model
from src import util


class StatusEntry(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    def __init__(self, log_time=None, engine_number=None, engine_host=None, is_healthy=None, is_active=None):  # noqa: E501
        """StatusEntry - a model defined in Swagger

        :param log_time: The log_time of this StatusEntry.  # noqa: E501
        :type log_time: datetime
        :param engine_number: The engine_number of this StatusEntry.  # noqa: E501
        :type engine_number: int
        :param engine_host: The engine_host of this StatusEntry.  # noqa: E501
        :type engine_host: str
        :param is_healthy: The is_healthy of this StatusEntry.  # noqa: E501
        :type is_healthy: bool
        :param is_active: The is_active of this StatusEntry.  # noqa: E501
        :type is_active: bool
        """
        self.swagger_types = {
            'log_time': datetime,
            'engine_number': int,
            'engine_host': str,
            'is_healthy': bool,
            'is_active': bool
        }

        self.attribute_map = {
            'log_time': 'log_time',
            'engine_number': 'engine_number',
            'engine_host': 'engine_host',
            'is_healthy': 'is_healthy',
            'is_active': 'is_active'
        }
        self._log_time = log_time
        self._engine_number = engine_number
        self._engine_host = engine_host
        self._is_healthy = is_healthy
        self._is_active = is_active

    @classmethod
    def from_dict(cls, dikt):
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The StatusEntry of this StatusEntry.  # noqa: E501
        :rtype: StatusEntry
        """
        return util.deserialize_model(dikt, cls)

    @property
    def log_time(self):
        """Gets the log_time of this StatusEntry.


        :return: The log_time of this StatusEntry.
        :rtype: datetime
        """
        return self._log_time

    @log_time.setter
    def log_time(self, log_time):
        """Sets the log_time of this StatusEntry.


        :param log_time: The log_time of this StatusEntry.
        :type log_time: datetime
        """
        if log_time is None:
            raise ValueError("Invalid value for `log_time`, must not be `None`")  # noqa: E501

        self._log_time = log_time

    @property
    def engine_number(self):
        """Gets the engine_number of this StatusEntry.


        :return: The engine_number of this StatusEntry.
        :rtype: int
        """
        return self._engine_number

    @engine_number.setter
    def engine_number(self, engine_number):
        """Sets the engine_number of this StatusEntry.


        :param engine_number: The engine_number of this StatusEntry.
        :type engine_number: int
        """
        if engine_number is None:
            raise ValueError("Invalid value for `engine_number`, must not be `None`")  # noqa: E501

        self._engine_number = engine_number

    @property
    def engine_host(self):
        """Gets the engine_host of this StatusEntry.


        :return: The engine_host of this StatusEntry.
        :rtype: str
        """
        return self._engine_host

    @engine_host.setter
    def engine_host(self, engine_host):
        """Sets the engine_host of this StatusEntry.


        :param engine_host: The engine_host of this StatusEntry.
        :type engine_host: str
        """
        if engine_host is None:
            raise ValueError("Invalid value for `engine_host`, must not be `None`")  # noqa: E501

        self._engine_host = engine_host

    @property
    def is_healthy(self):
        """Gets the is_healthy of this StatusEntry.


        :return: The is_healthy of this StatusEntry.
        :rtype: bool
        """
        return self._is_healthy

    @is_healthy.setter
    def is_healthy(self, is_healthy):
        """Sets the is_healthy of this StatusEntry.


        :param is_healthy: The is_healthy of this StatusEntry.
        :type is_healthy: bool
        """
        if is_healthy is None:
            raise ValueError("Invalid value for `is_healthy`, must not be `None`")  # noqa: E501

        self._is_healthy = is_healthy

    @property
    def is_active(self):
        """Gets the is_active of this StatusEntry.


        :return: The is_active of this StatusEntry.
        :rtype: bool
        """
        return self._is_active

    @is_active.setter
    def is_active(self, is_active):
        """Sets the is_active of this StatusEntry.


        :param is_active: The is_active of this StatusEntry.
        :type is_active: bool
        """
        if is_active is None:
            raise ValueError("Invalid value for `is_active`, must not be `None`")  # noqa: E501

        self._is_active = is_active