# coding: utf-8

"""
    Vidispine API

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

    The version of the OpenAPI document: 5.x
    Contact: info@vidispine.com
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six
from . import *

class VidispineServiceType(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 = {
        'thread_status': 'str',
        'exception': 'str',
        'is_running': 'bool',
        'name': 'str',
        'thread': 'str',
        'exception_timestamp': 'str',
        'is_enabled': 'bool',
        'id': 'str',
        'arguments': 'str',
        'load60': 'float',
        'load5': 'float',
        '_class': 'str'
    }

    attribute_map = {
        'thread_status': 'threadStatus',
        'exception': 'exception',
        'is_running': 'isRunning',
        'name': 'name',
        'thread': 'thread',
        'exception_timestamp': 'exceptionTimestamp',
        'is_enabled': 'isEnabled',
        'id': 'id',
        'arguments': 'arguments',
        'load60': 'load60',
        'load5': 'load5',
        '_class': 'class'
    }

    def __init__(self, thread_status=None, exception=None, is_running=None, name=None, thread=None, exception_timestamp=None, is_enabled=None, id=None, arguments=None, load60=None, load5=None, _class=None):  # noqa: E501
        """VidispineServiceType - a model defined in OpenAPI"""  # noqa: E501

        self._thread_status = None
        self._exception = None
        self._is_running = None
        self._name = None
        self._thread = None
        self._exception_timestamp = None
        self._is_enabled = None
        self._id = None
        self._arguments = None
        self._load60 = None
        self._load5 = None
        self.__class = None
        self.discriminator = None

        if thread_status is not None:
            self.thread_status = thread_status
        if exception is not None:
            self.exception = exception
        if is_running is not None:
            self.is_running = is_running
        if name is not None:
            self.name = name
        if thread is not None:
            self.thread = thread
        if exception_timestamp is not None:
            self.exception_timestamp = exception_timestamp
        if is_enabled is not None:
            self.is_enabled = is_enabled
        if id is not None:
            self.id = id
        if arguments is not None:
            self.arguments = arguments
        if load60 is not None:
            self.load60 = load60
        if load5 is not None:
            self.load5 = load5
        if _class is not None:
            self._class = _class

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


        :return: The thread_status of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self._thread_status

    @thread_status.setter
    def thread_status(self, thread_status):
        """Sets the thread_status of this VidispineServiceType.


        :param thread_status: The thread_status of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self._thread_status = thread_status

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


        :return: The exception of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self._exception

    @exception.setter
    def exception(self, exception):
        """Sets the exception of this VidispineServiceType.


        :param exception: The exception of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self._exception = exception

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


        :return: The is_running of this VidispineServiceType.  # noqa: E501
        :rtype: bool
        """
        return self._is_running

    @is_running.setter
    def is_running(self, is_running):
        """Sets the is_running of this VidispineServiceType.


        :param is_running: The is_running of this VidispineServiceType.  # noqa: E501
        :type: bool
        """

        self._is_running = is_running

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


        :return: The name of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this VidispineServiceType.


        :param name: The name of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self._name = name

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


        :return: The thread of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self._thread

    @thread.setter
    def thread(self, thread):
        """Sets the thread of this VidispineServiceType.


        :param thread: The thread of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self._thread = thread

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


        :return: The exception_timestamp of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self._exception_timestamp

    @exception_timestamp.setter
    def exception_timestamp(self, exception_timestamp):
        """Sets the exception_timestamp of this VidispineServiceType.


        :param exception_timestamp: The exception_timestamp of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self._exception_timestamp = exception_timestamp

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


        :return: The is_enabled of this VidispineServiceType.  # noqa: E501
        :rtype: bool
        """
        return self._is_enabled

    @is_enabled.setter
    def is_enabled(self, is_enabled):
        """Sets the is_enabled of this VidispineServiceType.


        :param is_enabled: The is_enabled of this VidispineServiceType.  # noqa: E501
        :type: bool
        """

        self._is_enabled = is_enabled

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


        :return: The id of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this VidispineServiceType.


        :param id: The id of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self._id = id

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


        :return: The arguments of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self._arguments

    @arguments.setter
    def arguments(self, arguments):
        """Sets the arguments of this VidispineServiceType.


        :param arguments: The arguments of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self._arguments = arguments

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


        :return: The load60 of this VidispineServiceType.  # noqa: E501
        :rtype: float
        """
        return self._load60

    @load60.setter
    def load60(self, load60):
        """Sets the load60 of this VidispineServiceType.


        :param load60: The load60 of this VidispineServiceType.  # noqa: E501
        :type: float
        """

        self._load60 = load60

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


        :return: The load5 of this VidispineServiceType.  # noqa: E501
        :rtype: float
        """
        return self._load5

    @load5.setter
    def load5(self, load5):
        """Sets the load5 of this VidispineServiceType.


        :param load5: The load5 of this VidispineServiceType.  # noqa: E501
        :type: float
        """

        self._load5 = load5

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


        :return: The _class of this VidispineServiceType.  # noqa: E501
        :rtype: str
        """
        return self.__class

    @_class.setter
    def _class(self, _class):
        """Sets the _class of this VidispineServiceType.


        :param _class: The _class of this VidispineServiceType.  # noqa: E501
        :type: str
        """

        self.__class = _class

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

        return self.__dict__ == other.__dict__

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