# coding: utf-8

"""
    Consolidate Services

    Description of all APIs  # noqa: E501

    The version of the OpenAPI document: version not set
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from argocd_client.configuration import Configuration


class ClusterSettings(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 = {
        'app_label_key': 'str',
        'config_management_plugins': 'list[V1alpha1ConfigManagementPlugin]',
        'dex_config': 'ClusterDexConfig',
        'google_analytics': 'ClusterGoogleAnalyticsConfig',
        'help': 'ClusterHelp',
        'kustomize_options': 'V1alpha1KustomizeOptions',
        'kustomize_versions': 'list[str]',
        'oidc_config': 'ClusterOIDCConfig',
        'plugins': 'list[ClusterPlugin]',
        'resource_overrides': 'dict(str, V1alpha1ResourceOverride)',
        'status_badge_enabled': 'bool',
        'ui_css_url': 'str',
        'url': 'str',
        'user_logins_disabled': 'bool'
    }

    attribute_map = {
        'app_label_key': 'appLabelKey',
        'config_management_plugins': 'configManagementPlugins',
        'dex_config': 'dexConfig',
        'google_analytics': 'googleAnalytics',
        'help': 'help',
        'kustomize_options': 'kustomizeOptions',
        'kustomize_versions': 'kustomizeVersions',
        'oidc_config': 'oidcConfig',
        'plugins': 'plugins',
        'resource_overrides': 'resourceOverrides',
        'status_badge_enabled': 'statusBadgeEnabled',
        'ui_css_url': 'uiCssURL',
        'url': 'url',
        'user_logins_disabled': 'userLoginsDisabled'
    }

    def __init__(self, app_label_key=None, config_management_plugins=None, dex_config=None, google_analytics=None, help=None, kustomize_options=None, kustomize_versions=None, oidc_config=None, plugins=None, resource_overrides=None, status_badge_enabled=None, ui_css_url=None, url=None, user_logins_disabled=None, local_vars_configuration=None):  # noqa: E501
        """ClusterSettings - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._app_label_key = None
        self._config_management_plugins = None
        self._dex_config = None
        self._google_analytics = None
        self._help = None
        self._kustomize_options = None
        self._kustomize_versions = None
        self._oidc_config = None
        self._plugins = None
        self._resource_overrides = None
        self._status_badge_enabled = None
        self._ui_css_url = None
        self._url = None
        self._user_logins_disabled = None
        self.discriminator = None

        if app_label_key is not None:
            self.app_label_key = app_label_key
        if config_management_plugins is not None:
            self.config_management_plugins = config_management_plugins
        if dex_config is not None:
            self.dex_config = dex_config
        if google_analytics is not None:
            self.google_analytics = google_analytics
        if help is not None:
            self.help = help
        if kustomize_options is not None:
            self.kustomize_options = kustomize_options
        if kustomize_versions is not None:
            self.kustomize_versions = kustomize_versions
        if oidc_config is not None:
            self.oidc_config = oidc_config
        if plugins is not None:
            self.plugins = plugins
        if resource_overrides is not None:
            self.resource_overrides = resource_overrides
        if status_badge_enabled is not None:
            self.status_badge_enabled = status_badge_enabled
        if ui_css_url is not None:
            self.ui_css_url = ui_css_url
        if url is not None:
            self.url = url
        if user_logins_disabled is not None:
            self.user_logins_disabled = user_logins_disabled

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


        :return: The app_label_key of this ClusterSettings.  # noqa: E501
        :rtype: str
        """
        return self._app_label_key

    @app_label_key.setter
    def app_label_key(self, app_label_key):
        """Sets the app_label_key of this ClusterSettings.


        :param app_label_key: The app_label_key of this ClusterSettings.  # noqa: E501
        :type: str
        """

        self._app_label_key = app_label_key

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


        :return: The config_management_plugins of this ClusterSettings.  # noqa: E501
        :rtype: list[V1alpha1ConfigManagementPlugin]
        """
        return self._config_management_plugins

    @config_management_plugins.setter
    def config_management_plugins(self, config_management_plugins):
        """Sets the config_management_plugins of this ClusterSettings.


        :param config_management_plugins: The config_management_plugins of this ClusterSettings.  # noqa: E501
        :type: list[V1alpha1ConfigManagementPlugin]
        """

        self._config_management_plugins = config_management_plugins

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


        :return: The dex_config of this ClusterSettings.  # noqa: E501
        :rtype: ClusterDexConfig
        """
        return self._dex_config

    @dex_config.setter
    def dex_config(self, dex_config):
        """Sets the dex_config of this ClusterSettings.


        :param dex_config: The dex_config of this ClusterSettings.  # noqa: E501
        :type: ClusterDexConfig
        """

        self._dex_config = dex_config

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


        :return: The google_analytics of this ClusterSettings.  # noqa: E501
        :rtype: ClusterGoogleAnalyticsConfig
        """
        return self._google_analytics

    @google_analytics.setter
    def google_analytics(self, google_analytics):
        """Sets the google_analytics of this ClusterSettings.


        :param google_analytics: The google_analytics of this ClusterSettings.  # noqa: E501
        :type: ClusterGoogleAnalyticsConfig
        """

        self._google_analytics = google_analytics

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


        :return: The help of this ClusterSettings.  # noqa: E501
        :rtype: ClusterHelp
        """
        return self._help

    @help.setter
    def help(self, help):
        """Sets the help of this ClusterSettings.


        :param help: The help of this ClusterSettings.  # noqa: E501
        :type: ClusterHelp
        """

        self._help = help

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


        :return: The kustomize_options of this ClusterSettings.  # noqa: E501
        :rtype: V1alpha1KustomizeOptions
        """
        return self._kustomize_options

    @kustomize_options.setter
    def kustomize_options(self, kustomize_options):
        """Sets the kustomize_options of this ClusterSettings.


        :param kustomize_options: The kustomize_options of this ClusterSettings.  # noqa: E501
        :type: V1alpha1KustomizeOptions
        """

        self._kustomize_options = kustomize_options

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


        :return: The kustomize_versions of this ClusterSettings.  # noqa: E501
        :rtype: list[str]
        """
        return self._kustomize_versions

    @kustomize_versions.setter
    def kustomize_versions(self, kustomize_versions):
        """Sets the kustomize_versions of this ClusterSettings.


        :param kustomize_versions: The kustomize_versions of this ClusterSettings.  # noqa: E501
        :type: list[str]
        """

        self._kustomize_versions = kustomize_versions

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


        :return: The oidc_config of this ClusterSettings.  # noqa: E501
        :rtype: ClusterOIDCConfig
        """
        return self._oidc_config

    @oidc_config.setter
    def oidc_config(self, oidc_config):
        """Sets the oidc_config of this ClusterSettings.


        :param oidc_config: The oidc_config of this ClusterSettings.  # noqa: E501
        :type: ClusterOIDCConfig
        """

        self._oidc_config = oidc_config

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


        :return: The plugins of this ClusterSettings.  # noqa: E501
        :rtype: list[ClusterPlugin]
        """
        return self._plugins

    @plugins.setter
    def plugins(self, plugins):
        """Sets the plugins of this ClusterSettings.


        :param plugins: The plugins of this ClusterSettings.  # noqa: E501
        :type: list[ClusterPlugin]
        """

        self._plugins = plugins

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


        :return: The resource_overrides of this ClusterSettings.  # noqa: E501
        :rtype: dict(str, V1alpha1ResourceOverride)
        """
        return self._resource_overrides

    @resource_overrides.setter
    def resource_overrides(self, resource_overrides):
        """Sets the resource_overrides of this ClusterSettings.


        :param resource_overrides: The resource_overrides of this ClusterSettings.  # noqa: E501
        :type: dict(str, V1alpha1ResourceOverride)
        """

        self._resource_overrides = resource_overrides

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


        :return: The status_badge_enabled of this ClusterSettings.  # noqa: E501
        :rtype: bool
        """
        return self._status_badge_enabled

    @status_badge_enabled.setter
    def status_badge_enabled(self, status_badge_enabled):
        """Sets the status_badge_enabled of this ClusterSettings.


        :param status_badge_enabled: The status_badge_enabled of this ClusterSettings.  # noqa: E501
        :type: bool
        """

        self._status_badge_enabled = status_badge_enabled

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


        :return: The ui_css_url of this ClusterSettings.  # noqa: E501
        :rtype: str
        """
        return self._ui_css_url

    @ui_css_url.setter
    def ui_css_url(self, ui_css_url):
        """Sets the ui_css_url of this ClusterSettings.


        :param ui_css_url: The ui_css_url of this ClusterSettings.  # noqa: E501
        :type: str
        """

        self._ui_css_url = ui_css_url

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


        :return: The url of this ClusterSettings.  # noqa: E501
        :rtype: str
        """
        return self._url

    @url.setter
    def url(self, url):
        """Sets the url of this ClusterSettings.


        :param url: The url of this ClusterSettings.  # noqa: E501
        :type: str
        """

        self._url = url

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


        :return: The user_logins_disabled of this ClusterSettings.  # noqa: E501
        :rtype: bool
        """
        return self._user_logins_disabled

    @user_logins_disabled.setter
    def user_logins_disabled(self, user_logins_disabled):
        """Sets the user_logins_disabled of this ClusterSettings.


        :param user_logins_disabled: The user_logins_disabled of this ClusterSettings.  # noqa: E501
        :type: bool
        """

        self._user_logins_disabled = user_logins_disabled

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

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()
