# 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 InlineResponse20038Information(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 = {
        'bios_version': 'str',
        'system_manufacturer': 'str',
        'system_product_name': 'str',
        'system_serial_number': 'str',
        'baseboard_serial_number': 'str',
        'chassis_serial_number': 'str',
        'mr_info': 'InlineResponse20038InformationMrInfo',
        'cpu_infos': 'InlineResponse20038InformationCpuInfos',
        'uptime_since': 'str'
    }

    attribute_map = {
        'bios_version': 'bios_version',
        'system_manufacturer': 'system_manufacturer',
        'system_product_name': 'system_product_name',
        'system_serial_number': 'system_serial_number',
        'baseboard_serial_number': 'baseboard_serial_number',
        'chassis_serial_number': 'chassis_serial_number',
        'mr_info': 'mr_info',
        'cpu_infos': 'cpu_infos',
        'uptime_since': 'uptime_since'
    }

    def __init__(self, bios_version=None, system_manufacturer=None, system_product_name=None, system_serial_number=None, baseboard_serial_number=None, chassis_serial_number=None, mr_info=None, cpu_infos=None, uptime_since=None, _configuration=None):  # noqa: E501
        """InlineResponse20038Information - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._bios_version = None
        self._system_manufacturer = None
        self._system_product_name = None
        self._system_serial_number = None
        self._baseboard_serial_number = None
        self._chassis_serial_number = None
        self._mr_info = None
        self._cpu_infos = None
        self._uptime_since = None
        self.discriminator = None

        if bios_version is not None:
            self.bios_version = bios_version
        if system_manufacturer is not None:
            self.system_manufacturer = system_manufacturer
        if system_product_name is not None:
            self.system_product_name = system_product_name
        if system_serial_number is not None:
            self.system_serial_number = system_serial_number
        if baseboard_serial_number is not None:
            self.baseboard_serial_number = baseboard_serial_number
        if chassis_serial_number is not None:
            self.chassis_serial_number = chassis_serial_number
        if mr_info is not None:
            self.mr_info = mr_info
        if cpu_infos is not None:
            self.cpu_infos = cpu_infos
        if uptime_since is not None:
            self.uptime_since = uptime_since

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


        :return: The bios_version of this InlineResponse20038Information.  # noqa: E501
        :rtype: str
        """
        return self._bios_version

    @bios_version.setter
    def bios_version(self, bios_version):
        """Sets the bios_version of this InlineResponse20038Information.


        :param bios_version: The bios_version of this InlineResponse20038Information.  # noqa: E501
        :type: str
        """

        self._bios_version = bios_version

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


        :return: The system_manufacturer of this InlineResponse20038Information.  # noqa: E501
        :rtype: str
        """
        return self._system_manufacturer

    @system_manufacturer.setter
    def system_manufacturer(self, system_manufacturer):
        """Sets the system_manufacturer of this InlineResponse20038Information.


        :param system_manufacturer: The system_manufacturer of this InlineResponse20038Information.  # noqa: E501
        :type: str
        """

        self._system_manufacturer = system_manufacturer

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


        :return: The system_product_name of this InlineResponse20038Information.  # noqa: E501
        :rtype: str
        """
        return self._system_product_name

    @system_product_name.setter
    def system_product_name(self, system_product_name):
        """Sets the system_product_name of this InlineResponse20038Information.


        :param system_product_name: The system_product_name of this InlineResponse20038Information.  # noqa: E501
        :type: str
        """

        self._system_product_name = system_product_name

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


        :return: The system_serial_number of this InlineResponse20038Information.  # noqa: E501
        :rtype: str
        """
        return self._system_serial_number

    @system_serial_number.setter
    def system_serial_number(self, system_serial_number):
        """Sets the system_serial_number of this InlineResponse20038Information.


        :param system_serial_number: The system_serial_number of this InlineResponse20038Information.  # noqa: E501
        :type: str
        """

        self._system_serial_number = system_serial_number

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


        :return: The baseboard_serial_number of this InlineResponse20038Information.  # noqa: E501
        :rtype: str
        """
        return self._baseboard_serial_number

    @baseboard_serial_number.setter
    def baseboard_serial_number(self, baseboard_serial_number):
        """Sets the baseboard_serial_number of this InlineResponse20038Information.


        :param baseboard_serial_number: The baseboard_serial_number of this InlineResponse20038Information.  # noqa: E501
        :type: str
        """

        self._baseboard_serial_number = baseboard_serial_number

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


        :return: The chassis_serial_number of this InlineResponse20038Information.  # noqa: E501
        :rtype: str
        """
        return self._chassis_serial_number

    @chassis_serial_number.setter
    def chassis_serial_number(self, chassis_serial_number):
        """Sets the chassis_serial_number of this InlineResponse20038Information.


        :param chassis_serial_number: The chassis_serial_number of this InlineResponse20038Information.  # noqa: E501
        :type: str
        """

        self._chassis_serial_number = chassis_serial_number

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


        :return: The mr_info of this InlineResponse20038Information.  # noqa: E501
        :rtype: InlineResponse20038InformationMrInfo
        """
        return self._mr_info

    @mr_info.setter
    def mr_info(self, mr_info):
        """Sets the mr_info of this InlineResponse20038Information.


        :param mr_info: The mr_info of this InlineResponse20038Information.  # noqa: E501
        :type: InlineResponse20038InformationMrInfo
        """

        self._mr_info = mr_info

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


        :return: The cpu_infos of this InlineResponse20038Information.  # noqa: E501
        :rtype: InlineResponse20038InformationCpuInfos
        """
        return self._cpu_infos

    @cpu_infos.setter
    def cpu_infos(self, cpu_infos):
        """Sets the cpu_infos of this InlineResponse20038Information.


        :param cpu_infos: The cpu_infos of this InlineResponse20038Information.  # noqa: E501
        :type: InlineResponse20038InformationCpuInfos
        """

        self._cpu_infos = cpu_infos

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


        :return: The uptime_since of this InlineResponse20038Information.  # noqa: E501
        :rtype: str
        """
        return self._uptime_since

    @uptime_since.setter
    def uptime_since(self, uptime_since):
        """Sets the uptime_since of this InlineResponse20038Information.


        :param uptime_since: The uptime_since of this InlineResponse20038Information.  # noqa: E501
        :type: str
        """

        self._uptime_since = uptime_since

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

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