# coding: utf-8

"""
    Command Center operations

    Command Center operations  # noqa: E501

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


import pprint
import re  # noqa: F401

import six

from CommandCenter.configuration import Configuration


class InlineResponse20021Details(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 = {
        'adapter_id': 'int',
        'enclosure_id': 'int',
        'slot': 'int',
        'hba': 'str',
        'write_back': 'bool',
        'read_ahead': 'bool',
        'licensed': 'bool'
    }

    attribute_map = {
        'adapter_id': 'adapter_id',
        'enclosure_id': 'enclosure_id',
        'slot': 'slot',
        'hba': 'hba',
        'write_back': 'write_back',
        'read_ahead': 'read_ahead',
        'licensed': 'licensed'
    }

    def __init__(self, adapter_id=None, enclosure_id=None, slot=None, hba=None, write_back=None, read_ahead=None, licensed=None, _configuration=None):  # noqa: E501
        """InlineResponse20021Details - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._adapter_id = None
        self._enclosure_id = None
        self._slot = None
        self._hba = None
        self._write_back = None
        self._read_ahead = None
        self._licensed = None
        self.discriminator = None

        if adapter_id is not None:
            self.adapter_id = adapter_id
        if enclosure_id is not None:
            self.enclosure_id = enclosure_id
        if slot is not None:
            self.slot = slot
        if hba is not None:
            self.hba = hba
        if write_back is not None:
            self.write_back = write_back
        if read_ahead is not None:
            self.read_ahead = read_ahead
        if licensed is not None:
            self.licensed = licensed

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


        :return: The adapter_id of this InlineResponse20021Details.  # noqa: E501
        :rtype: int
        """
        return self._adapter_id

    @adapter_id.setter
    def adapter_id(self, adapter_id):
        """Sets the adapter_id of this InlineResponse20021Details.


        :param adapter_id: The adapter_id of this InlineResponse20021Details.  # noqa: E501
        :type: int
        """

        self._adapter_id = adapter_id

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


        :return: The enclosure_id of this InlineResponse20021Details.  # noqa: E501
        :rtype: int
        """
        return self._enclosure_id

    @enclosure_id.setter
    def enclosure_id(self, enclosure_id):
        """Sets the enclosure_id of this InlineResponse20021Details.


        :param enclosure_id: The enclosure_id of this InlineResponse20021Details.  # noqa: E501
        :type: int
        """

        self._enclosure_id = enclosure_id

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


        :return: The slot of this InlineResponse20021Details.  # noqa: E501
        :rtype: int
        """
        return self._slot

    @slot.setter
    def slot(self, slot):
        """Sets the slot of this InlineResponse20021Details.


        :param slot: The slot of this InlineResponse20021Details.  # noqa: E501
        :type: int
        """

        self._slot = slot

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


        :return: The hba of this InlineResponse20021Details.  # noqa: E501
        :rtype: str
        """
        return self._hba

    @hba.setter
    def hba(self, hba):
        """Sets the hba of this InlineResponse20021Details.


        :param hba: The hba of this InlineResponse20021Details.  # noqa: E501
        :type: str
        """

        self._hba = hba

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


        :return: The write_back of this InlineResponse20021Details.  # noqa: E501
        :rtype: bool
        """
        return self._write_back

    @write_back.setter
    def write_back(self, write_back):
        """Sets the write_back of this InlineResponse20021Details.


        :param write_back: The write_back of this InlineResponse20021Details.  # noqa: E501
        :type: bool
        """

        self._write_back = write_back

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


        :return: The read_ahead of this InlineResponse20021Details.  # noqa: E501
        :rtype: bool
        """
        return self._read_ahead

    @read_ahead.setter
    def read_ahead(self, read_ahead):
        """Sets the read_ahead of this InlineResponse20021Details.


        :param read_ahead: The read_ahead of this InlineResponse20021Details.  # noqa: E501
        :type: bool
        """

        self._read_ahead = read_ahead

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


        :return: The licensed of this InlineResponse20021Details.  # noqa: E501
        :rtype: bool
        """
        return self._licensed

    @licensed.setter
    def licensed(self, licensed):
        """Sets the licensed of this InlineResponse20021Details.


        :param licensed: The licensed of this InlineResponse20021Details.  # noqa: E501
        :type: bool
        """

        self._licensed = licensed

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

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