# coding: utf-8

"""
    Zadara VPSA Storage Array REST API

     # Overview  This document outlines the methods available for administrating your Zadara Storage VPSA&#8482;. The Zadara Storage Array REST API   supports form-encoded, JSON, and XML requests, and can return either JSON or XML responses.  ## Usage  The majority of the APIs available require authentication which requires an API token to use. You can retrieve this token through the   Users section of your VPSA, or through the API using the \"Return a user's access key\" API in the Users Section below.  ## Authentication Methods  The authentication token can be passed either through the access_key parameter inside of the body of the REST API request, or   through the X-Access-Key header.  ## Timeouts  By default, all operations that don't complete within five seconds will return a message informing you that the action may take some  time to complete. When using the API, this can cause some actions, such as large volume creation, to be undesirably asynchronous.  You can specify your own timeout with the timeout parameter, in seconds, and a timeout value of -1 specifies an infinite timeout.  ## Specific Fields For Product  Some of the fields/actions used in the API should be used only for a specific product. The following tags are used to mark which   product responds to the fields/actions  VPSA Flash Array  VPSA Storage Array - Hybrid VPSA  ## Questions  If you have any questions or need support involving the REST API, please contact for assistance.   # noqa: E501

    OpenAPI spec version: 23.09-sp2
    Contact: support@zadarastorage.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from Vpsa.configuration import Configuration


class InlineResponse20023ResponseVcontrollers(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 = {
        'index': 'int',
        'name': 'str',
        'state': 'str',
        'encryption_password_set': 'str',
        'is_encryption_active': 'str',
        'mgmt_ip': 'str',
        'mgmt_ipv6': 'str',
        'software_version': 'str',
        'recycle_bin': 'str',
        'recycle_bin_grace_period': 'int',
        'target': 'str',
        'iscsi_ip': 'str',
        'iscsi_ipv6': 'str',
        'vpsa_chap_user': 'str',
        'vpsa_chap_secret': 'str',
        'host_chap_user': 'str',
        'host_chap_secret': 'str'
    }

    attribute_map = {
        'index': 'index',
        'name': 'name',
        'state': 'state',
        'encryption_password_set': 'encryption_password_set',
        'is_encryption_active': 'is_encryption_active',
        'mgmt_ip': 'mgmt_ip',
        'mgmt_ipv6': 'mgmt-ipv6',
        'software_version': 'software_version',
        'recycle_bin': 'recycle_bin',
        'recycle_bin_grace_period': 'recycle_bin_grace_period',
        'target': 'target',
        'iscsi_ip': 'iscsi_ip',
        'iscsi_ipv6': 'iscsi_ipv6',
        'vpsa_chap_user': 'vpsa_chap_user',
        'vpsa_chap_secret': 'vpsa_chap_secret',
        'host_chap_user': 'host_chap_user',
        'host_chap_secret': 'host_chap_secret'
    }

    def __init__(self, index=None, name=None, state=None, encryption_password_set=None, is_encryption_active=None, mgmt_ip=None, mgmt_ipv6=None, software_version=None, recycle_bin=None, recycle_bin_grace_period=None, target=None, iscsi_ip=None, iscsi_ipv6=None, vpsa_chap_user=None, vpsa_chap_secret=None, host_chap_user=None, host_chap_secret=None, _configuration=None):  # noqa: E501
        """InlineResponse20023ResponseVcontrollers - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._index = None
        self._name = None
        self._state = None
        self._encryption_password_set = None
        self._is_encryption_active = None
        self._mgmt_ip = None
        self._mgmt_ipv6 = None
        self._software_version = None
        self._recycle_bin = None
        self._recycle_bin_grace_period = None
        self._target = None
        self._iscsi_ip = None
        self._iscsi_ipv6 = None
        self._vpsa_chap_user = None
        self._vpsa_chap_secret = None
        self._host_chap_user = None
        self._host_chap_secret = None
        self.discriminator = None

        if index is not None:
            self.index = index
        if name is not None:
            self.name = name
        if state is not None:
            self.state = state
        if encryption_password_set is not None:
            self.encryption_password_set = encryption_password_set
        if is_encryption_active is not None:
            self.is_encryption_active = is_encryption_active
        if mgmt_ip is not None:
            self.mgmt_ip = mgmt_ip
        if mgmt_ipv6 is not None:
            self.mgmt_ipv6 = mgmt_ipv6
        if software_version is not None:
            self.software_version = software_version
        if recycle_bin is not None:
            self.recycle_bin = recycle_bin
        if recycle_bin_grace_period is not None:
            self.recycle_bin_grace_period = recycle_bin_grace_period
        if target is not None:
            self.target = target
        if iscsi_ip is not None:
            self.iscsi_ip = iscsi_ip
        if iscsi_ipv6 is not None:
            self.iscsi_ipv6 = iscsi_ipv6
        if vpsa_chap_user is not None:
            self.vpsa_chap_user = vpsa_chap_user
        if vpsa_chap_secret is not None:
            self.vpsa_chap_secret = vpsa_chap_secret
        if host_chap_user is not None:
            self.host_chap_user = host_chap_user
        if host_chap_secret is not None:
            self.host_chap_secret = host_chap_secret

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


        :return: The index of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: int
        """
        return self._index

    @index.setter
    def index(self, index):
        """Sets the index of this InlineResponse20023ResponseVcontrollers.


        :param index: The index of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: int
        """

        self._index = index

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


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

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


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

        self._name = name

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


        :return: The state of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._state

    @state.setter
    def state(self, state):
        """Sets the state of this InlineResponse20023ResponseVcontrollers.


        :param state: The state of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._state = state

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


        :return: The encryption_password_set of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._encryption_password_set

    @encryption_password_set.setter
    def encryption_password_set(self, encryption_password_set):
        """Sets the encryption_password_set of this InlineResponse20023ResponseVcontrollers.


        :param encryption_password_set: The encryption_password_set of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._encryption_password_set = encryption_password_set

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


        :return: The is_encryption_active of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._is_encryption_active

    @is_encryption_active.setter
    def is_encryption_active(self, is_encryption_active):
        """Sets the is_encryption_active of this InlineResponse20023ResponseVcontrollers.


        :param is_encryption_active: The is_encryption_active of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._is_encryption_active = is_encryption_active

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


        :return: The mgmt_ip of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._mgmt_ip

    @mgmt_ip.setter
    def mgmt_ip(self, mgmt_ip):
        """Sets the mgmt_ip of this InlineResponse20023ResponseVcontrollers.


        :param mgmt_ip: The mgmt_ip of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._mgmt_ip = mgmt_ip

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


        :return: The mgmt_ipv6 of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._mgmt_ipv6

    @mgmt_ipv6.setter
    def mgmt_ipv6(self, mgmt_ipv6):
        """Sets the mgmt_ipv6 of this InlineResponse20023ResponseVcontrollers.


        :param mgmt_ipv6: The mgmt_ipv6 of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._mgmt_ipv6 = mgmt_ipv6

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


        :return: The software_version of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._software_version

    @software_version.setter
    def software_version(self, software_version):
        """Sets the software_version of this InlineResponse20023ResponseVcontrollers.


        :param software_version: The software_version of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._software_version = software_version

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


        :return: The recycle_bin of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._recycle_bin

    @recycle_bin.setter
    def recycle_bin(self, recycle_bin):
        """Sets the recycle_bin of this InlineResponse20023ResponseVcontrollers.


        :param recycle_bin: The recycle_bin of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._recycle_bin = recycle_bin

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


        :return: The recycle_bin_grace_period of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: int
        """
        return self._recycle_bin_grace_period

    @recycle_bin_grace_period.setter
    def recycle_bin_grace_period(self, recycle_bin_grace_period):
        """Sets the recycle_bin_grace_period of this InlineResponse20023ResponseVcontrollers.


        :param recycle_bin_grace_period: The recycle_bin_grace_period of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: int
        """

        self._recycle_bin_grace_period = recycle_bin_grace_period

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


        :return: The target of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._target

    @target.setter
    def target(self, target):
        """Sets the target of this InlineResponse20023ResponseVcontrollers.


        :param target: The target of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._target = target

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


        :return: The iscsi_ip of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._iscsi_ip

    @iscsi_ip.setter
    def iscsi_ip(self, iscsi_ip):
        """Sets the iscsi_ip of this InlineResponse20023ResponseVcontrollers.


        :param iscsi_ip: The iscsi_ip of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._iscsi_ip = iscsi_ip

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


        :return: The iscsi_ipv6 of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._iscsi_ipv6

    @iscsi_ipv6.setter
    def iscsi_ipv6(self, iscsi_ipv6):
        """Sets the iscsi_ipv6 of this InlineResponse20023ResponseVcontrollers.


        :param iscsi_ipv6: The iscsi_ipv6 of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._iscsi_ipv6 = iscsi_ipv6

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


        :return: The vpsa_chap_user of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._vpsa_chap_user

    @vpsa_chap_user.setter
    def vpsa_chap_user(self, vpsa_chap_user):
        """Sets the vpsa_chap_user of this InlineResponse20023ResponseVcontrollers.


        :param vpsa_chap_user: The vpsa_chap_user of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._vpsa_chap_user = vpsa_chap_user

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


        :return: The vpsa_chap_secret of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._vpsa_chap_secret

    @vpsa_chap_secret.setter
    def vpsa_chap_secret(self, vpsa_chap_secret):
        """Sets the vpsa_chap_secret of this InlineResponse20023ResponseVcontrollers.


        :param vpsa_chap_secret: The vpsa_chap_secret of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._vpsa_chap_secret = vpsa_chap_secret

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


        :return: The host_chap_user of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._host_chap_user

    @host_chap_user.setter
    def host_chap_user(self, host_chap_user):
        """Sets the host_chap_user of this InlineResponse20023ResponseVcontrollers.


        :param host_chap_user: The host_chap_user of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._host_chap_user = host_chap_user

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


        :return: The host_chap_secret of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :rtype: str
        """
        return self._host_chap_secret

    @host_chap_secret.setter
    def host_chap_secret(self, host_chap_secret):
        """Sets the host_chap_secret of this InlineResponse20023ResponseVcontrollers.


        :param host_chap_secret: The host_chap_secret of this InlineResponse20023ResponseVcontrollers.  # noqa: E501
        :type: str
        """

        self._host_chap_secret = host_chap_secret

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

        for attr, _ in six.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
        if issubclass(InlineResponse20023ResponseVcontrollers, dict):
            for key, value in self.items():
                result[key] = 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, InlineResponse20023ResponseVcontrollers):
            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, InlineResponse20023ResponseVcontrollers):
            return True

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