# 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 InlineResponse20038NicInformation(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 = {
        'pci_address': 'str',
        'general_info': 'str',
        'interfaces': 'str',
        'roles': 'str',
        'firmware': 'str',
        'speed': 'str',
        'product_name': 'str',
        'part_number': 'str'
    }

    attribute_map = {
        'pci_address': 'pci_address',
        'general_info': 'general_info',
        'interfaces': 'interfaces',
        'roles': 'roles',
        'firmware': 'firmware',
        'speed': 'speed',
        'product_name': 'product_name',
        'part_number': 'part_number'
    }

    def __init__(self, pci_address=None, general_info=None, interfaces=None, roles=None, firmware=None, speed=None, product_name=None, part_number=None, _configuration=None):  # noqa: E501
        """InlineResponse20038NicInformation - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._pci_address = None
        self._general_info = None
        self._interfaces = None
        self._roles = None
        self._firmware = None
        self._speed = None
        self._product_name = None
        self._part_number = None
        self.discriminator = None

        if pci_address is not None:
            self.pci_address = pci_address
        if general_info is not None:
            self.general_info = general_info
        if interfaces is not None:
            self.interfaces = interfaces
        if roles is not None:
            self.roles = roles
        if firmware is not None:
            self.firmware = firmware
        if speed is not None:
            self.speed = speed
        if product_name is not None:
            self.product_name = product_name
        if part_number is not None:
            self.part_number = part_number

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


        :return: The pci_address of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._pci_address

    @pci_address.setter
    def pci_address(self, pci_address):
        """Sets the pci_address of this InlineResponse20038NicInformation.


        :param pci_address: The pci_address of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._pci_address = pci_address

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


        :return: The general_info of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._general_info

    @general_info.setter
    def general_info(self, general_info):
        """Sets the general_info of this InlineResponse20038NicInformation.


        :param general_info: The general_info of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._general_info = general_info

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


        :return: The interfaces of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._interfaces

    @interfaces.setter
    def interfaces(self, interfaces):
        """Sets the interfaces of this InlineResponse20038NicInformation.


        :param interfaces: The interfaces of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._interfaces = interfaces

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


        :return: The roles of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._roles

    @roles.setter
    def roles(self, roles):
        """Sets the roles of this InlineResponse20038NicInformation.


        :param roles: The roles of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._roles = roles

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


        :return: The firmware of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._firmware

    @firmware.setter
    def firmware(self, firmware):
        """Sets the firmware of this InlineResponse20038NicInformation.


        :param firmware: The firmware of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._firmware = firmware

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


        :return: The speed of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._speed

    @speed.setter
    def speed(self, speed):
        """Sets the speed of this InlineResponse20038NicInformation.


        :param speed: The speed of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._speed = speed

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


        :return: The product_name of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._product_name

    @product_name.setter
    def product_name(self, product_name):
        """Sets the product_name of this InlineResponse20038NicInformation.


        :param product_name: The product_name of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._product_name = product_name

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


        :return: The part_number of this InlineResponse20038NicInformation.  # noqa: E501
        :rtype: str
        """
        return self._part_number

    @part_number.setter
    def part_number(self, part_number):
        """Sets the part_number of this InlineResponse20038NicInformation.


        :param part_number: The part_number of this InlineResponse20038NicInformation.  # noqa: E501
        :type: str
        """

        self._part_number = part_number

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

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