# coding: utf-8

"""
    Cloudera Manager API

    <h1>Cloudera Manager API v50</h1>       <p>Introduced in Cloudera Manager 7.8.1</p>       <p><a href=\"http://www.cloudera.com/documentation.html\">Cloudera Product Documentation</a></p>

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


from pprint import pformat
from six import iteritems
import re


class ApiEnableSentryHaArgs(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 = {
        'new_sentry_host_id': 'str',
        'new_sentry_role_name': 'str',
        'zk_service_name': 'str',
        'rrc_args': 'ApiSimpleRollingRestartClusterArgs'
    }

    attribute_map = {
        'new_sentry_host_id': 'newSentryHostId',
        'new_sentry_role_name': 'newSentryRoleName',
        'zk_service_name': 'zkServiceName',
        'rrc_args': 'rrcArgs'
    }

    def __init__(self, new_sentry_host_id=None, new_sentry_role_name=None, zk_service_name=None, rrc_args=None):
        """
        ApiEnableSentryHaArgs - a model defined in Swagger
        """

        self._new_sentry_host_id = None
        self._new_sentry_role_name = None
        self._zk_service_name = None
        self._rrc_args = None

        if new_sentry_host_id is not None:
          self.new_sentry_host_id = new_sentry_host_id
        if new_sentry_role_name is not None:
          self.new_sentry_role_name = new_sentry_role_name
        if zk_service_name is not None:
          self.zk_service_name = zk_service_name
        if rrc_args is not None:
          self.rrc_args = rrc_args

    @property
    def new_sentry_host_id(self):
        """
        Gets the new_sentry_host_id of this ApiEnableSentryHaArgs.
        Id of host on which new Sentry Server role will be added.

        :return: The new_sentry_host_id of this ApiEnableSentryHaArgs.
        :rtype: str
        """
        return self._new_sentry_host_id

    @new_sentry_host_id.setter
    def new_sentry_host_id(self, new_sentry_host_id):
        """
        Sets the new_sentry_host_id of this ApiEnableSentryHaArgs.
        Id of host on which new Sentry Server role will be added.

        :param new_sentry_host_id: The new_sentry_host_id of this ApiEnableSentryHaArgs.
        :type: str
        """

        self._new_sentry_host_id = new_sentry_host_id

    @property
    def new_sentry_role_name(self):
        """
        Gets the new_sentry_role_name of this ApiEnableSentryHaArgs.
        Name of the new Sentry Server role to be created. This is an optional argument.

        :return: The new_sentry_role_name of this ApiEnableSentryHaArgs.
        :rtype: str
        """
        return self._new_sentry_role_name

    @new_sentry_role_name.setter
    def new_sentry_role_name(self, new_sentry_role_name):
        """
        Sets the new_sentry_role_name of this ApiEnableSentryHaArgs.
        Name of the new Sentry Server role to be created. This is an optional argument.

        :param new_sentry_role_name: The new_sentry_role_name of this ApiEnableSentryHaArgs.
        :type: str
        """

        self._new_sentry_role_name = new_sentry_role_name

    @property
    def zk_service_name(self):
        """
        Gets the zk_service_name of this ApiEnableSentryHaArgs.
        Name of the ZooKeeper service that will be used for Sentry HA. This is an optional parameter if the Sentry to ZooKeeper dependency is already set in CM.

        :return: The zk_service_name of this ApiEnableSentryHaArgs.
        :rtype: str
        """
        return self._zk_service_name

    @zk_service_name.setter
    def zk_service_name(self, zk_service_name):
        """
        Sets the zk_service_name of this ApiEnableSentryHaArgs.
        Name of the ZooKeeper service that will be used for Sentry HA. This is an optional parameter if the Sentry to ZooKeeper dependency is already set in CM.

        :param zk_service_name: The zk_service_name of this ApiEnableSentryHaArgs.
        :type: str
        """

        self._zk_service_name = zk_service_name

    @property
    def rrc_args(self):
        """
        Gets the rrc_args of this ApiEnableSentryHaArgs.
        

        :return: The rrc_args of this ApiEnableSentryHaArgs.
        :rtype: ApiSimpleRollingRestartClusterArgs
        """
        return self._rrc_args

    @rrc_args.setter
    def rrc_args(self, rrc_args):
        """
        Sets the rrc_args of this ApiEnableSentryHaArgs.
        

        :param rrc_args: The rrc_args of this ApiEnableSentryHaArgs.
        :type: ApiSimpleRollingRestartClusterArgs
        """

        self._rrc_args = rrc_args

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

        return self.__dict__ == other.__dict__

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