# coding: utf-8

"""
    Akeyless API

    The purpose of this application is to provide access to Akeyless API.  # noqa: E501

    The version of the OpenAPI document: 2.0
    Contact: support@akeyless.io
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from akeyless.configuration import Configuration


class ConfigHash(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 = {
        'admins': 'str',
        'cache': 'str',
        'customer_fragements': 'str',
        'general': 'str',
        'k8s_auths': 'str',
        'kmip': 'str',
        'ldap': 'str',
        'leadership': 'str',
        'log_forwarding': 'str',
        'm_queue': 'str',
        'migration_status': 'str',
        'migrations': 'str',
        'producers': 'object',
        'producers_status': 'str',
        'rotators': 'object',
        'saml': 'str',
        'universal_identity': 'str'
    }

    attribute_map = {
        'admins': 'admins',
        'cache': 'cache',
        'customer_fragements': 'customer_fragements',
        'general': 'general',
        'k8s_auths': 'k8s_auths',
        'kmip': 'kmip',
        'ldap': 'ldap',
        'leadership': 'leadership',
        'log_forwarding': 'log_forwarding',
        'm_queue': 'm_queue',
        'migration_status': 'migration_status',
        'migrations': 'migrations',
        'producers': 'producers',
        'producers_status': 'producers_status',
        'rotators': 'rotators',
        'saml': 'saml',
        'universal_identity': 'universal_identity'
    }

    def __init__(self, admins=None, cache=None, customer_fragements=None, general=None, k8s_auths=None, kmip=None, ldap=None, leadership=None, log_forwarding=None, m_queue=None, migration_status=None, migrations=None, producers=None, producers_status=None, rotators=None, saml=None, universal_identity=None, local_vars_configuration=None):  # noqa: E501
        """ConfigHash - 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._admins = None
        self._cache = None
        self._customer_fragements = None
        self._general = None
        self._k8s_auths = None
        self._kmip = None
        self._ldap = None
        self._leadership = None
        self._log_forwarding = None
        self._m_queue = None
        self._migration_status = None
        self._migrations = None
        self._producers = None
        self._producers_status = None
        self._rotators = None
        self._saml = None
        self._universal_identity = None
        self.discriminator = None

        if admins is not None:
            self.admins = admins
        if cache is not None:
            self.cache = cache
        if customer_fragements is not None:
            self.customer_fragements = customer_fragements
        if general is not None:
            self.general = general
        if k8s_auths is not None:
            self.k8s_auths = k8s_auths
        if kmip is not None:
            self.kmip = kmip
        if ldap is not None:
            self.ldap = ldap
        if leadership is not None:
            self.leadership = leadership
        if log_forwarding is not None:
            self.log_forwarding = log_forwarding
        if m_queue is not None:
            self.m_queue = m_queue
        if migration_status is not None:
            self.migration_status = migration_status
        if migrations is not None:
            self.migrations = migrations
        if producers is not None:
            self.producers = producers
        if producers_status is not None:
            self.producers_status = producers_status
        if rotators is not None:
            self.rotators = rotators
        if saml is not None:
            self.saml = saml
        if universal_identity is not None:
            self.universal_identity = universal_identity

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


        :return: The admins of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._admins

    @admins.setter
    def admins(self, admins):
        """Sets the admins of this ConfigHash.


        :param admins: The admins of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._admins = admins

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


        :return: The cache of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._cache

    @cache.setter
    def cache(self, cache):
        """Sets the cache of this ConfigHash.


        :param cache: The cache of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._cache = cache

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


        :return: The customer_fragements of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._customer_fragements

    @customer_fragements.setter
    def customer_fragements(self, customer_fragements):
        """Sets the customer_fragements of this ConfigHash.


        :param customer_fragements: The customer_fragements of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._customer_fragements = customer_fragements

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


        :return: The general of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._general

    @general.setter
    def general(self, general):
        """Sets the general of this ConfigHash.


        :param general: The general of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._general = general

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


        :return: The k8s_auths of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._k8s_auths

    @k8s_auths.setter
    def k8s_auths(self, k8s_auths):
        """Sets the k8s_auths of this ConfigHash.


        :param k8s_auths: The k8s_auths of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._k8s_auths = k8s_auths

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


        :return: The kmip of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._kmip

    @kmip.setter
    def kmip(self, kmip):
        """Sets the kmip of this ConfigHash.


        :param kmip: The kmip of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._kmip = kmip

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


        :return: The ldap of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._ldap

    @ldap.setter
    def ldap(self, ldap):
        """Sets the ldap of this ConfigHash.


        :param ldap: The ldap of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._ldap = ldap

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


        :return: The leadership of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._leadership

    @leadership.setter
    def leadership(self, leadership):
        """Sets the leadership of this ConfigHash.


        :param leadership: The leadership of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._leadership = leadership

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


        :return: The log_forwarding of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._log_forwarding

    @log_forwarding.setter
    def log_forwarding(self, log_forwarding):
        """Sets the log_forwarding of this ConfigHash.


        :param log_forwarding: The log_forwarding of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._log_forwarding = log_forwarding

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


        :return: The m_queue of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._m_queue

    @m_queue.setter
    def m_queue(self, m_queue):
        """Sets the m_queue of this ConfigHash.


        :param m_queue: The m_queue of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._m_queue = m_queue

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


        :return: The migration_status of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._migration_status

    @migration_status.setter
    def migration_status(self, migration_status):
        """Sets the migration_status of this ConfigHash.


        :param migration_status: The migration_status of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._migration_status = migration_status

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


        :return: The migrations of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._migrations

    @migrations.setter
    def migrations(self, migrations):
        """Sets the migrations of this ConfigHash.


        :param migrations: The migrations of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._migrations = migrations

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


        :return: The producers of this ConfigHash.  # noqa: E501
        :rtype: object
        """
        return self._producers

    @producers.setter
    def producers(self, producers):
        """Sets the producers of this ConfigHash.


        :param producers: The producers of this ConfigHash.  # noqa: E501
        :type: object
        """

        self._producers = producers

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


        :return: The producers_status of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._producers_status

    @producers_status.setter
    def producers_status(self, producers_status):
        """Sets the producers_status of this ConfigHash.


        :param producers_status: The producers_status of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._producers_status = producers_status

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


        :return: The rotators of this ConfigHash.  # noqa: E501
        :rtype: object
        """
        return self._rotators

    @rotators.setter
    def rotators(self, rotators):
        """Sets the rotators of this ConfigHash.


        :param rotators: The rotators of this ConfigHash.  # noqa: E501
        :type: object
        """

        self._rotators = rotators

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


        :return: The saml of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._saml

    @saml.setter
    def saml(self, saml):
        """Sets the saml of this ConfigHash.


        :param saml: The saml of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._saml = saml

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


        :return: The universal_identity of this ConfigHash.  # noqa: E501
        :rtype: str
        """
        return self._universal_identity

    @universal_identity.setter
    def universal_identity(self, universal_identity):
        """Sets the universal_identity of this ConfigHash.


        :param universal_identity: The universal_identity of this ConfigHash.  # noqa: E501
        :type: str
        """

        self._universal_identity = universal_identity

    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, ConfigHash):
            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, ConfigHash):
            return True

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