# coding: utf-8
"""
    Cisco Intersight

    Cisco Intersight is a management platform delivered as a service with embedded analytics for your Cisco and 3rd party IT infrastructure. This platform offers an intelligent level of management that enables IT organizations to analyze, simplify, and automate their environments in more advanced ways than the prior generations of tools. Cisco Intersight provides an integrated and intuitive management experience for resources in the traditional data center as well as at the edge. With flexible deployment options to address complex security needs, getting started with Intersight is quick and easy. Cisco Intersight has deep integration with Cisco UCS and HyperFlex systems allowing for remote deployment, configuration, and ongoing maintenance. The model-based deployment works for a single system in a remote location or hundreds of systems in a data center and enables rapid, standardized configuration and deployment. It also streamlines maintaining those systems whether you are working with small or very large configurations.   # noqa: E501

    The version of the OpenAPI document: 1.0.9-1295
    Contact: intersight@cisco.com
    Generated by: https://openapi-generator.tech
"""

import pprint
import re  # noqa: F401

import six

from intersight.configuration import Configuration


class NetworkElementSummaryAllOf(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """
    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'admin_inband_interface_state': 'str',
        'device_mo_id': 'str',
        'dn': 'str',
        'fault_summary': 'int',
        'firmware': 'str',
        'inband_ip_address': 'str',
        'inband_ip_gateway': 'str',
        'inband_ip_mask': 'str',
        'inband_vlan': 'int',
        'ipv4_address': 'str',
        'model': 'str',
        'name': 'str',
        'num_ether_ports': 'int',
        'num_ether_ports_configured': 'int',
        'num_ether_ports_link_up': 'int',
        'num_expansion_modules': 'int',
        'num_fc_ports': 'int',
        'num_fc_ports_configured': 'int',
        'num_fc_ports_link_up': 'int',
        'out_of_band_ip_address': 'str',
        'out_of_band_ip_gateway': 'str',
        'out_of_band_ip_mask': 'str',
        'out_of_band_mac': 'str',
        'revision': 'str',
        'rn': 'str',
        'serial': 'str',
        'source_object_type': 'str',
        'switch_id': 'str',
        'vendor': 'str',
        'version': 'str',
        'registered_device': 'AssetDeviceRegistration'
    }

    attribute_map = {
        'admin_inband_interface_state': 'AdminInbandInterfaceState',
        'device_mo_id': 'DeviceMoId',
        'dn': 'Dn',
        'fault_summary': 'FaultSummary',
        'firmware': 'Firmware',
        'inband_ip_address': 'InbandIpAddress',
        'inband_ip_gateway': 'InbandIpGateway',
        'inband_ip_mask': 'InbandIpMask',
        'inband_vlan': 'InbandVlan',
        'ipv4_address': 'Ipv4Address',
        'model': 'Model',
        'name': 'Name',
        'num_ether_ports': 'NumEtherPorts',
        'num_ether_ports_configured': 'NumEtherPortsConfigured',
        'num_ether_ports_link_up': 'NumEtherPortsLinkUp',
        'num_expansion_modules': 'NumExpansionModules',
        'num_fc_ports': 'NumFcPorts',
        'num_fc_ports_configured': 'NumFcPortsConfigured',
        'num_fc_ports_link_up': 'NumFcPortsLinkUp',
        'out_of_band_ip_address': 'OutOfBandIpAddress',
        'out_of_band_ip_gateway': 'OutOfBandIpGateway',
        'out_of_band_ip_mask': 'OutOfBandIpMask',
        'out_of_band_mac': 'OutOfBandMac',
        'revision': 'Revision',
        'rn': 'Rn',
        'serial': 'Serial',
        'source_object_type': 'SourceObjectType',
        'switch_id': 'SwitchId',
        'vendor': 'Vendor',
        'version': 'Version',
        'registered_device': 'RegisteredDevice'
    }

    def __init__(self,
                 admin_inband_interface_state=None,
                 device_mo_id=None,
                 dn=None,
                 fault_summary=None,
                 firmware=None,
                 inband_ip_address=None,
                 inband_ip_gateway=None,
                 inband_ip_mask=None,
                 inband_vlan=None,
                 ipv4_address=None,
                 model=None,
                 name=None,
                 num_ether_ports=None,
                 num_ether_ports_configured=None,
                 num_ether_ports_link_up=None,
                 num_expansion_modules=None,
                 num_fc_ports=None,
                 num_fc_ports_configured=None,
                 num_fc_ports_link_up=None,
                 out_of_band_ip_address=None,
                 out_of_band_ip_gateway=None,
                 out_of_band_ip_mask=None,
                 out_of_band_mac=None,
                 revision=None,
                 rn=None,
                 serial=None,
                 source_object_type=None,
                 switch_id=None,
                 vendor=None,
                 version=None,
                 registered_device=None,
                 local_vars_configuration=None):  # noqa: E501
        """NetworkElementSummaryAllOf - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._admin_inband_interface_state = None
        self._device_mo_id = None
        self._dn = None
        self._fault_summary = None
        self._firmware = None
        self._inband_ip_address = None
        self._inband_ip_gateway = None
        self._inband_ip_mask = None
        self._inband_vlan = None
        self._ipv4_address = None
        self._model = None
        self._name = None
        self._num_ether_ports = None
        self._num_ether_ports_configured = None
        self._num_ether_ports_link_up = None
        self._num_expansion_modules = None
        self._num_fc_ports = None
        self._num_fc_ports_configured = None
        self._num_fc_ports_link_up = None
        self._out_of_band_ip_address = None
        self._out_of_band_ip_gateway = None
        self._out_of_band_ip_mask = None
        self._out_of_band_mac = None
        self._revision = None
        self._rn = None
        self._serial = None
        self._source_object_type = None
        self._switch_id = None
        self._vendor = None
        self._version = None
        self._registered_device = None
        self.discriminator = None

        if admin_inband_interface_state is not None:
            self.admin_inband_interface_state = admin_inband_interface_state
        if device_mo_id is not None:
            self.device_mo_id = device_mo_id
        if dn is not None:
            self.dn = dn
        if fault_summary is not None:
            self.fault_summary = fault_summary
        if firmware is not None:
            self.firmware = firmware
        if inband_ip_address is not None:
            self.inband_ip_address = inband_ip_address
        if inband_ip_gateway is not None:
            self.inband_ip_gateway = inband_ip_gateway
        if inband_ip_mask is not None:
            self.inband_ip_mask = inband_ip_mask
        if inband_vlan is not None:
            self.inband_vlan = inband_vlan
        if ipv4_address is not None:
            self.ipv4_address = ipv4_address
        if model is not None:
            self.model = model
        if name is not None:
            self.name = name
        if num_ether_ports is not None:
            self.num_ether_ports = num_ether_ports
        if num_ether_ports_configured is not None:
            self.num_ether_ports_configured = num_ether_ports_configured
        if num_ether_ports_link_up is not None:
            self.num_ether_ports_link_up = num_ether_ports_link_up
        if num_expansion_modules is not None:
            self.num_expansion_modules = num_expansion_modules
        if num_fc_ports is not None:
            self.num_fc_ports = num_fc_ports
        if num_fc_ports_configured is not None:
            self.num_fc_ports_configured = num_fc_ports_configured
        if num_fc_ports_link_up is not None:
            self.num_fc_ports_link_up = num_fc_ports_link_up
        if out_of_band_ip_address is not None:
            self.out_of_band_ip_address = out_of_band_ip_address
        if out_of_band_ip_gateway is not None:
            self.out_of_band_ip_gateway = out_of_band_ip_gateway
        if out_of_band_ip_mask is not None:
            self.out_of_band_ip_mask = out_of_band_ip_mask
        if out_of_band_mac is not None:
            self.out_of_band_mac = out_of_band_mac
        if revision is not None:
            self.revision = revision
        if rn is not None:
            self.rn = rn
        if serial is not None:
            self.serial = serial
        if source_object_type is not None:
            self.source_object_type = source_object_type
        if switch_id is not None:
            self.switch_id = switch_id
        if vendor is not None:
            self.vendor = vendor
        if version is not None:
            self.version = version
        if registered_device is not None:
            self.registered_device = registered_device

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


        :return: The admin_inband_interface_state of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._admin_inband_interface_state

    @admin_inband_interface_state.setter
    def admin_inband_interface_state(self, admin_inband_interface_state):
        """Sets the admin_inband_interface_state of this NetworkElementSummaryAllOf.


        :param admin_inband_interface_state: The admin_inband_interface_state of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._admin_inband_interface_state = admin_inband_interface_state

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


        :return: The device_mo_id of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._device_mo_id

    @device_mo_id.setter
    def device_mo_id(self, device_mo_id):
        """Sets the device_mo_id of this NetworkElementSummaryAllOf.


        :param device_mo_id: The device_mo_id of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._device_mo_id = device_mo_id

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

        The Distinguished Name unambiguously identifies an object in the system.    # noqa: E501

        :return: The dn of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._dn

    @dn.setter
    def dn(self, dn):
        """Sets the dn of this NetworkElementSummaryAllOf.

        The Distinguished Name unambiguously identifies an object in the system.    # noqa: E501

        :param dn: The dn of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._dn = dn

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


        :return: The fault_summary of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._fault_summary

    @fault_summary.setter
    def fault_summary(self, fault_summary):
        """Sets the fault_summary of this NetworkElementSummaryAllOf.


        :param fault_summary: The fault_summary of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._fault_summary = fault_summary

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

        Running firmware information.    # noqa: E501

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

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

        Running firmware information.    # noqa: E501

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

        self._firmware = firmware

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

        The Inband IP address of the network Element.    # noqa: E501

        :return: The inband_ip_address of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._inband_ip_address

    @inband_ip_address.setter
    def inband_ip_address(self, inband_ip_address):
        """Sets the inband_ip_address of this NetworkElementSummaryAllOf.

        The Inband IP address of the network Element.    # noqa: E501

        :param inband_ip_address: The inband_ip_address of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._inband_ip_address = inband_ip_address

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

        The Inband IP Gateway of the network Element.    # noqa: E501

        :return: The inband_ip_gateway of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._inband_ip_gateway

    @inband_ip_gateway.setter
    def inband_ip_gateway(self, inband_ip_gateway):
        """Sets the inband_ip_gateway of this NetworkElementSummaryAllOf.

        The Inband IP Gateway of the network Element.    # noqa: E501

        :param inband_ip_gateway: The inband_ip_gateway of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._inband_ip_gateway = inband_ip_gateway

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


        :return: The inband_ip_mask of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._inband_ip_mask

    @inband_ip_mask.setter
    def inband_ip_mask(self, inband_ip_mask):
        """Sets the inband_ip_mask of this NetworkElementSummaryAllOf.


        :param inband_ip_mask: The inband_ip_mask of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._inband_ip_mask = inband_ip_mask

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


        :return: The inband_vlan of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._inband_vlan

    @inband_vlan.setter
    def inband_vlan(self, inband_vlan):
        """Sets the inband_vlan of this NetworkElementSummaryAllOf.


        :param inband_vlan: The inband_vlan of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._inband_vlan = inband_vlan

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

        IP version 4 address is saved in this property.    # noqa: E501

        :return: The ipv4_address of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._ipv4_address

    @ipv4_address.setter
    def ipv4_address(self, ipv4_address):
        """Sets the ipv4_address of this NetworkElementSummaryAllOf.

        IP version 4 address is saved in this property.    # noqa: E501

        :param ipv4_address: The ipv4_address of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._ipv4_address = ipv4_address

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

        This field identifies the model of the given component.    # noqa: E501

        :return: The model of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._model

    @model.setter
    def model(self, model):
        """Sets the model of this NetworkElementSummaryAllOf.

        This field identifies the model of the given component.    # noqa: E501

        :param model: The model of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._model = model

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

        Name of the ElementSummary object is saved in this property.    # noqa: E501

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

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

        Name of the ElementSummary object is saved in this property.    # noqa: E501

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

        self._name = name

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

        Total number of Ethernet ports.    # noqa: E501

        :return: The num_ether_ports of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._num_ether_ports

    @num_ether_ports.setter
    def num_ether_ports(self, num_ether_ports):
        """Sets the num_ether_ports of this NetworkElementSummaryAllOf.

        Total number of Ethernet ports.    # noqa: E501

        :param num_ether_ports: The num_ether_ports of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._num_ether_ports = num_ether_ports

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

        Total number of configured Ethernet ports.    # noqa: E501

        :return: The num_ether_ports_configured of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._num_ether_ports_configured

    @num_ether_ports_configured.setter
    def num_ether_ports_configured(self, num_ether_ports_configured):
        """Sets the num_ether_ports_configured of this NetworkElementSummaryAllOf.

        Total number of configured Ethernet ports.    # noqa: E501

        :param num_ether_ports_configured: The num_ether_ports_configured of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._num_ether_ports_configured = num_ether_ports_configured

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

        Total number of Ethernet ports which are UP.    # noqa: E501

        :return: The num_ether_ports_link_up of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._num_ether_ports_link_up

    @num_ether_ports_link_up.setter
    def num_ether_ports_link_up(self, num_ether_ports_link_up):
        """Sets the num_ether_ports_link_up of this NetworkElementSummaryAllOf.

        Total number of Ethernet ports which are UP.    # noqa: E501

        :param num_ether_ports_link_up: The num_ether_ports_link_up of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._num_ether_ports_link_up = num_ether_ports_link_up

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

        Total number of expansion modules.    # noqa: E501

        :return: The num_expansion_modules of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._num_expansion_modules

    @num_expansion_modules.setter
    def num_expansion_modules(self, num_expansion_modules):
        """Sets the num_expansion_modules of this NetworkElementSummaryAllOf.

        Total number of expansion modules.    # noqa: E501

        :param num_expansion_modules: The num_expansion_modules of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._num_expansion_modules = num_expansion_modules

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

        Total number of FC ports.    # noqa: E501

        :return: The num_fc_ports of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._num_fc_ports

    @num_fc_ports.setter
    def num_fc_ports(self, num_fc_ports):
        """Sets the num_fc_ports of this NetworkElementSummaryAllOf.

        Total number of FC ports.    # noqa: E501

        :param num_fc_ports: The num_fc_ports of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._num_fc_ports = num_fc_ports

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

        Total number of configured FC ports.    # noqa: E501

        :return: The num_fc_ports_configured of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._num_fc_ports_configured

    @num_fc_ports_configured.setter
    def num_fc_ports_configured(self, num_fc_ports_configured):
        """Sets the num_fc_ports_configured of this NetworkElementSummaryAllOf.

        Total number of configured FC ports.    # noqa: E501

        :param num_fc_ports_configured: The num_fc_ports_configured of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._num_fc_ports_configured = num_fc_ports_configured

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

        Total number of FC ports which are UP.    # noqa: E501

        :return: The num_fc_ports_link_up of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: int
        """
        return self._num_fc_ports_link_up

    @num_fc_ports_link_up.setter
    def num_fc_ports_link_up(self, num_fc_ports_link_up):
        """Sets the num_fc_ports_link_up of this NetworkElementSummaryAllOf.

        Total number of FC ports which are UP.    # noqa: E501

        :param num_fc_ports_link_up: The num_fc_ports_link_up of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: int
        """

        self._num_fc_ports_link_up = num_fc_ports_link_up

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


        :return: The out_of_band_ip_address of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._out_of_band_ip_address

    @out_of_band_ip_address.setter
    def out_of_band_ip_address(self, out_of_band_ip_address):
        """Sets the out_of_band_ip_address of this NetworkElementSummaryAllOf.


        :param out_of_band_ip_address: The out_of_band_ip_address of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._out_of_band_ip_address = out_of_band_ip_address

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


        :return: The out_of_band_ip_gateway of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._out_of_band_ip_gateway

    @out_of_band_ip_gateway.setter
    def out_of_band_ip_gateway(self, out_of_band_ip_gateway):
        """Sets the out_of_band_ip_gateway of this NetworkElementSummaryAllOf.


        :param out_of_band_ip_gateway: The out_of_band_ip_gateway of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._out_of_band_ip_gateway = out_of_band_ip_gateway

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


        :return: The out_of_band_ip_mask of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._out_of_band_ip_mask

    @out_of_band_ip_mask.setter
    def out_of_band_ip_mask(self, out_of_band_ip_mask):
        """Sets the out_of_band_ip_mask of this NetworkElementSummaryAllOf.


        :param out_of_band_ip_mask: The out_of_band_ip_mask of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._out_of_band_ip_mask = out_of_band_ip_mask

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


        :return: The out_of_band_mac of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._out_of_band_mac

    @out_of_band_mac.setter
    def out_of_band_mac(self, out_of_band_mac):
        """Sets the out_of_band_mac of this NetworkElementSummaryAllOf.


        :param out_of_band_mac: The out_of_band_mac of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._out_of_band_mac = out_of_band_mac

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


        :return: The revision of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._revision

    @revision.setter
    def revision(self, revision):
        """Sets the revision of this NetworkElementSummaryAllOf.


        :param revision: The revision of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._revision = revision

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

        The Relative Name uniquely identifies an object within a given context.    # noqa: E501

        :return: The rn of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._rn

    @rn.setter
    def rn(self, rn):
        """Sets the rn of this NetworkElementSummaryAllOf.

        The Relative Name uniquely identifies an object within a given context.    # noqa: E501

        :param rn: The rn of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._rn = rn

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

        This field identifies the serial of the given component.    # noqa: E501

        :return: The serial of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._serial

    @serial.setter
    def serial(self, serial):
        """Sets the serial of this NetworkElementSummaryAllOf.

        This field identifies the serial of the given component.    # noqa: E501

        :param serial: The serial of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._serial = serial

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

        The source object type of this view MO.    # noqa: E501

        :return: The source_object_type of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._source_object_type

    @source_object_type.setter
    def source_object_type(self, source_object_type):
        """Sets the source_object_type of this NetworkElementSummaryAllOf.

        The source object type of this view MO.    # noqa: E501

        :param source_object_type: The source_object_type of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._source_object_type = source_object_type

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

        The Switch Id of the network Element.    # noqa: E501

        :return: The switch_id of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._switch_id

    @switch_id.setter
    def switch_id(self, switch_id):
        """Sets the switch_id of this NetworkElementSummaryAllOf.

        The Switch Id of the network Element.    # noqa: E501

        :param switch_id: The switch_id of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._switch_id = switch_id

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

        This field identifies the vendor of the given component.    # noqa: E501

        :return: The vendor of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._vendor

    @vendor.setter
    def vendor(self, vendor):
        """Sets the vendor of this NetworkElementSummaryAllOf.

        This field identifies the vendor of the given component.    # noqa: E501

        :param vendor: The vendor of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._vendor = vendor

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

        Version holds the firmware version related information.     # noqa: E501

        :return: The version of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: str
        """
        return self._version

    @version.setter
    def version(self, version):
        """Sets the version of this NetworkElementSummaryAllOf.

        Version holds the firmware version related information.     # noqa: E501

        :param version: The version of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: str
        """

        self._version = version

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


        :return: The registered_device of this NetworkElementSummaryAllOf.  # noqa: E501
        :rtype: AssetDeviceRegistration
        """
        return self._registered_device

    @registered_device.setter
    def registered_device(self, registered_device):
        """Sets the registered_device of this NetworkElementSummaryAllOf.


        :param registered_device: The registered_device of this NetworkElementSummaryAllOf.  # noqa: E501
        :type: AssetDeviceRegistration
        """

        self._registered_device = registered_device

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

        for attr, _ in six.iteritems(self.openapi_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 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, NetworkElementSummaryAllOf):
            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, NetworkElementSummaryAllOf):
            return True

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