# coding: utf-8

"""
    Seeq REST API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)

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


from pprint import pformat
from six import iteritems
import re


class SystemConfigurationInputV1(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 = {
        'maximum_threads': 'int',
        'number_format': 'str',
        'parallelization_threshold': 'int',
        'priorities': 'list[PriorityV1]',
        'registration_enabled': 'bool',
        'restrict_logs': 'bool'
    }

    attribute_map = {
        'maximum_threads': 'maximumThreads',
        'number_format': 'numberFormat',
        'parallelization_threshold': 'parallelizationThreshold',
        'priorities': 'priorities',
        'registration_enabled': 'registrationEnabled',
        'restrict_logs': 'restrictLogs'
    }

    def __init__(self, maximum_threads=None, number_format=None, parallelization_threshold=None, priorities=None, registration_enabled=None, restrict_logs=False):
        """
        SystemConfigurationInputV1 - a model defined in Swagger
        """

        self._maximum_threads = None
        self._number_format = None
        self._parallelization_threshold = None
        self._priorities = None
        self._registration_enabled = None
        self._restrict_logs = None

        if maximum_threads is not None:
          self.maximum_threads = maximum_threads
        if number_format is not None:
          self.number_format = number_format
        if parallelization_threshold is not None:
          self.parallelization_threshold = parallelization_threshold
        if priorities is not None:
          self.priorities = priorities
        if registration_enabled is not None:
          self.registration_enabled = registration_enabled
        if restrict_logs is not None:
          self.restrict_logs = restrict_logs

    @property
    def maximum_threads(self):
        """
        Gets the maximum_threads of this SystemConfigurationInputV1.
        The maximum number of threads to use when parallelizing a single request

        :return: The maximum_threads of this SystemConfigurationInputV1.
        :rtype: int
        """
        return self._maximum_threads

    @maximum_threads.setter
    def maximum_threads(self, maximum_threads):
        """
        Sets the maximum_threads of this SystemConfigurationInputV1.
        The maximum number of threads to use when parallelizing a single request

        :param maximum_threads: The maximum_threads of this SystemConfigurationInputV1.
        :type: int
        """

        self._maximum_threads = maximum_threads

    @property
    def number_format(self):
        """
        Gets the number_format of this SystemConfigurationInputV1.
        The default number format to be used for items without a number format property. The format for the string follows ECMA-376 spreadsheet format standards.

        :return: The number_format of this SystemConfigurationInputV1.
        :rtype: str
        """
        return self._number_format

    @number_format.setter
    def number_format(self, number_format):
        """
        Sets the number_format of this SystemConfigurationInputV1.
        The default number format to be used for items without a number format property. The format for the string follows ECMA-376 spreadsheet format standards.

        :param number_format: The number_format of this SystemConfigurationInputV1.
        :type: str
        """

        self._number_format = number_format

    @property
    def parallelization_threshold(self):
        """
        Gets the parallelization_threshold of this SystemConfigurationInputV1.
        The duration, in nanoseconds, above which requests may be parallelized

        :return: The parallelization_threshold of this SystemConfigurationInputV1.
        :rtype: int
        """
        return self._parallelization_threshold

    @parallelization_threshold.setter
    def parallelization_threshold(self, parallelization_threshold):
        """
        Sets the parallelization_threshold of this SystemConfigurationInputV1.
        The duration, in nanoseconds, above which requests may be parallelized

        :param parallelization_threshold: The parallelization_threshold of this SystemConfigurationInputV1.
        :type: int
        """

        self._parallelization_threshold = parallelization_threshold

    @property
    def priorities(self):
        """
        Gets the priorities of this SystemConfigurationInputV1.
        The configuration for priorities. Used to give priorities to threshold metrics and provide colors for visualizations such as treemap and scorecard. At least one high, one low, and a neutral priority must be provided.

        :return: The priorities of this SystemConfigurationInputV1.
        :rtype: list[PriorityV1]
        """
        return self._priorities

    @priorities.setter
    def priorities(self, priorities):
        """
        Sets the priorities of this SystemConfigurationInputV1.
        The configuration for priorities. Used to give priorities to threshold metrics and provide colors for visualizations such as treemap and scorecard. At least one high, one low, and a neutral priority must be provided.

        :param priorities: The priorities of this SystemConfigurationInputV1.
        :type: list[PriorityV1]
        """

        self._priorities = priorities

    @property
    def registration_enabled(self):
        """
        Gets the registration_enabled of this SystemConfigurationInputV1.
        True if new user registration is available from the Seeq login screen.

        :return: The registration_enabled of this SystemConfigurationInputV1.
        :rtype: bool
        """
        return self._registration_enabled

    @registration_enabled.setter
    def registration_enabled(self, registration_enabled):
        """
        Sets the registration_enabled of this SystemConfigurationInputV1.
        True if new user registration is available from the Seeq login screen.

        :param registration_enabled: The registration_enabled of this SystemConfigurationInputV1.
        :type: bool
        """

        self._registration_enabled = registration_enabled

    @property
    def restrict_logs(self):
        """
        Gets the restrict_logs of this SystemConfigurationInputV1.
        True if log access should be restricted to admins.

        :return: The restrict_logs of this SystemConfigurationInputV1.
        :rtype: bool
        """
        return self._restrict_logs

    @restrict_logs.setter
    def restrict_logs(self, restrict_logs):
        """
        Sets the restrict_logs of this SystemConfigurationInputV1.
        True if log access should be restricted to admins.

        :param restrict_logs: The restrict_logs of this SystemConfigurationInputV1.
        :type: bool
        """

        self._restrict_logs = restrict_logs

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

        for attr, _ in 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 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, SystemConfigurationInputV1):
            return False

        return self.__dict__ == other.__dict__

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