# coding: utf-8

"""
Copyright 2015 SmartBear Software

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    Ref: https://github.com/swagger-api/swagger-codegen
"""

from pprint import pformat
from six import iteritems


class MoteInfo(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self):
        """
        MoteInfo - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {
            'app_id': 'int',
            'app_sw_rev': 'str',
            'avg_hops': 'float',
            'avg_latency': 'int',
            'charge': 'int',
            'estimated_latency_to_mote': 'int',
            'hw_model': 'int',
            'hw_rev': 'int',
            'id': 'int',
            'join_sys_time': 'datetime',
            'last_voltage': 'int',
            'lost_packet_count': 'int',
            'mac_address': 'str',
            'max_current': 'int',
            'max_num_links': 'int',
            'max_num_neighbors': 'int',
            'need_neighbor': 'bool',
            'num_good_neighbors': 'int',
            'num_joins': 'int',
            'num_links': 'int',
            'num_neighbors': 'int',
            'num_parents': 'int',
            'power_cost_rx_link': 'int',
            'power_cost_tx_link': 'int',
            'reliability': 'float',
            'rx_packet_count': 'int',
            'stack_sw_rev': 'str',
            'state': 'str',
            'state_reason': 'str',
            'state_sys_time': 'datetime',
            'used_current': 'int'
        }

        self.attribute_map = {
            'app_id': 'appId',
            'app_sw_rev': 'appSwRev',
            'avg_hops': 'avgHops',
            'avg_latency': 'avgLatency',
            'charge': 'charge',
            'estimated_latency_to_mote': 'estimatedLatencyToMote',
            'hw_model': 'hwModel',
            'hw_rev': 'hwRev',
            'id': 'id',
            'join_sys_time': 'joinSysTime',
            'last_voltage': 'lastVoltage',
            'lost_packet_count': 'lostPacketCount',
            'mac_address': 'macAddress',
            'max_current': 'maxCurrent',
            'max_num_links': 'maxNumLinks',
            'max_num_neighbors': 'maxNumNeighbors',
            'need_neighbor': 'needNeighbor',
            'num_good_neighbors': 'numGoodNeighbors',
            'num_joins': 'numJoins',
            'num_links': 'numLinks',
            'num_neighbors': 'numNeighbors',
            'num_parents': 'numParents',
            'power_cost_rx_link': 'powerCostRxLink',
            'power_cost_tx_link': 'powerCostTxLink',
            'reliability': 'reliability',
            'rx_packet_count': 'rxPacketCount',
            'stack_sw_rev': 'stackSwRev',
            'state': 'state',
            'state_reason': 'stateReason',
            'state_sys_time': 'stateSysTime',
            'used_current': 'usedCurrent'
        }

        self._app_id = None
        self._app_sw_rev = None
        self._avg_hops = None
        self._avg_latency = None
        self._charge = None
        self._estimated_latency_to_mote = None
        self._hw_model = None
        self._hw_rev = None
        self._id = None
        self._join_sys_time = None
        self._last_voltage = None
        self._lost_packet_count = None
        self._mac_address = None
        self._max_current = None
        self._max_num_links = None
        self._max_num_neighbors = None
        self._need_neighbor = None
        self._num_good_neighbors = None
        self._num_joins = None
        self._num_links = None
        self._num_neighbors = None
        self._num_parents = None
        self._power_cost_rx_link = None
        self._power_cost_tx_link = None
        self._reliability = None
        self._rx_packet_count = None
        self._stack_sw_rev = None
        self._state = None
        self._state_reason = None
        self._state_sys_time = None
        self._used_current = None

    @property
    def app_id(self):
        """
        Gets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :return: The app_id of this MoteInfo.
        :rtype: int
        """
        return self._app_id

    @app_id.setter
    def app_id(self, app_id):
        """
        Sets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :param app_id: The app_id of this MoteInfo.
        :type: int
        """
        self._app_id = app_id

    @property
    def app_sw_rev(self):
        """
        Gets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :return: The app_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._app_sw_rev

    @app_sw_rev.setter
    def app_sw_rev(self, app_sw_rev):
        """
        Sets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :param app_sw_rev: The app_sw_rev of this MoteInfo.
        :type: str
        """
        self._app_sw_rev = app_sw_rev

    @property
    def avg_hops(self):
        """
        Gets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :return: The avg_hops of this MoteInfo.
        :rtype: float
        """
        return self._avg_hops

    @avg_hops.setter
    def avg_hops(self, avg_hops):
        """
        Sets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :param avg_hops: The avg_hops of this MoteInfo.
        :type: float
        """
        self._avg_hops = avg_hops

    @property
    def avg_latency(self):
        """
        Gets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :return: The avg_latency of this MoteInfo.
        :rtype: int
        """
        return self._avg_latency

    @avg_latency.setter
    def avg_latency(self, avg_latency):
        """
        Sets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :param avg_latency: The avg_latency of this MoteInfo.
        :type: int
        """
        self._avg_latency = avg_latency

    @property
    def charge(self):
        """
        Gets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :return: The charge of this MoteInfo.
        :rtype: int
        """
        return self._charge

    @charge.setter
    def charge(self, charge):
        """
        Sets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :param charge: The charge of this MoteInfo.
        :type: int
        """
        self._charge = charge

    @property
    def estimated_latency_to_mote(self):
        """
        Gets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :return: The estimated_latency_to_mote of this MoteInfo.
        :rtype: int
        """
        return self._estimated_latency_to_mote

    @estimated_latency_to_mote.setter
    def estimated_latency_to_mote(self, estimated_latency_to_mote):
        """
        Sets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :param estimated_latency_to_mote: The estimated_latency_to_mote of this MoteInfo.
        :type: int
        """
        self._estimated_latency_to_mote = estimated_latency_to_mote

    @property
    def hw_model(self):
        """
        Gets the hw_model of this MoteInfo.
        Hardware model of the mote

        :return: The hw_model of this MoteInfo.
        :rtype: int
        """
        return self._hw_model

    @hw_model.setter
    def hw_model(self, hw_model):
        """
        Sets the hw_model of this MoteInfo.
        Hardware model of the mote

        :param hw_model: The hw_model of this MoteInfo.
        :type: int
        """
        self._hw_model = hw_model

    @property
    def hw_rev(self):
        """
        Gets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :return: The hw_rev of this MoteInfo.
        :rtype: int
        """
        return self._hw_rev

    @hw_rev.setter
    def hw_rev(self, hw_rev):
        """
        Sets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :param hw_rev: The hw_rev of this MoteInfo.
        :type: int
        """
        self._hw_rev = hw_rev

    @property
    def id(self):
        """
        Gets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :return: The id of this MoteInfo.
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :param id: The id of this MoteInfo.
        :type: int
        """
        self._id = id

    @property
    def join_sys_time(self):
        """
        Gets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :return: The join_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._join_sys_time

    @join_sys_time.setter
    def join_sys_time(self, join_sys_time):
        """
        Sets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :param join_sys_time: The join_sys_time of this MoteInfo.
        :type: datetime
        """
        self._join_sys_time = join_sys_time

    @property
    def last_voltage(self):
        """
        Gets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :return: The last_voltage of this MoteInfo.
        :rtype: int
        """
        return self._last_voltage

    @last_voltage.setter
    def last_voltage(self, last_voltage):
        """
        Sets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :param last_voltage: The last_voltage of this MoteInfo.
        :type: int
        """
        self._last_voltage = last_voltage

    @property
    def lost_packet_count(self):
        """
        Gets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :return: The lost_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._lost_packet_count

    @lost_packet_count.setter
    def lost_packet_count(self, lost_packet_count):
        """
        Sets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :param lost_packet_count: The lost_packet_count of this MoteInfo.
        :type: int
        """
        self._lost_packet_count = lost_packet_count

    @property
    def mac_address(self):
        """
        Gets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :return: The mac_address of this MoteInfo.
        :rtype: str
        """
        return self._mac_address

    @mac_address.setter
    def mac_address(self, mac_address):
        """
        Sets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :param mac_address: The mac_address of this MoteInfo.
        :type: str
        """
        self._mac_address = mac_address

    @property
    def max_current(self):
        """
        Gets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :return: The max_current of this MoteInfo.
        :rtype: int
        """
        return self._max_current

    @max_current.setter
    def max_current(self, max_current):
        """
        Sets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :param max_current: The max_current of this MoteInfo.
        :type: int
        """
        self._max_current = max_current

    @property
    def max_num_links(self):
        """
        Gets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :return: The max_num_links of this MoteInfo.
        :rtype: int
        """
        return self._max_num_links

    @max_num_links.setter
    def max_num_links(self, max_num_links):
        """
        Sets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :param max_num_links: The max_num_links of this MoteInfo.
        :type: int
        """
        self._max_num_links = max_num_links

    @property
    def max_num_neighbors(self):
        """
        Gets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :return: The max_num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._max_num_neighbors

    @max_num_neighbors.setter
    def max_num_neighbors(self, max_num_neighbors):
        """
        Sets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :param max_num_neighbors: The max_num_neighbors of this MoteInfo.
        :type: int
        """
        self._max_num_neighbors = max_num_neighbors

    @property
    def need_neighbor(self):
        """
        Gets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the \"numParents\" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the \"single-parent\" mote in the first hop) for which needNeighbor is true.

        :return: The need_neighbor of this MoteInfo.
        :rtype: bool
        """
        return self._need_neighbor

    @need_neighbor.setter
    def need_neighbor(self, need_neighbor):
        """
        Sets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the \"numParents\" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the \"single-parent\" mote in the first hop) for which needNeighbor is true.

        :param need_neighbor: The need_neighbor of this MoteInfo.
        :type: bool
        """
        self._need_neighbor = need_neighbor

    @property
    def num_good_neighbors(self):
        """
        Gets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :return: The num_good_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_good_neighbors

    @num_good_neighbors.setter
    def num_good_neighbors(self, num_good_neighbors):
        """
        Sets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :param num_good_neighbors: The num_good_neighbors of this MoteInfo.
        :type: int
        """
        self._num_good_neighbors = num_good_neighbors

    @property
    def num_joins(self):
        """
        Gets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :return: The num_joins of this MoteInfo.
        :rtype: int
        """
        return self._num_joins

    @num_joins.setter
    def num_joins(self, num_joins):
        """
        Sets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :param num_joins: The num_joins of this MoteInfo.
        :type: int
        """
        self._num_joins = num_joins

    @property
    def num_links(self):
        """
        Gets the num_links of this MoteInfo.
        Allocated links on the mote

        :return: The num_links of this MoteInfo.
        :rtype: int
        """
        return self._num_links

    @num_links.setter
    def num_links(self, num_links):
        """
        Sets the num_links of this MoteInfo.
        Allocated links on the mote

        :param num_links: The num_links of this MoteInfo.
        :type: int
        """
        self._num_links = num_links

    @property
    def num_neighbors(self):
        """
        Gets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :return: The num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_neighbors

    @num_neighbors.setter
    def num_neighbors(self, num_neighbors):
        """
        Sets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :param num_neighbors: The num_neighbors of this MoteInfo.
        :type: int
        """
        self._num_neighbors = num_neighbors

    @property
    def num_parents(self):
        """
        Gets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :return: The num_parents of this MoteInfo.
        :rtype: int
        """
        return self._num_parents

    @num_parents.setter
    def num_parents(self, num_parents):
        """
        Sets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :param num_parents: The num_parents of this MoteInfo.
        :type: int
        """
        self._num_parents = num_parents

    @property
    def power_cost_rx_link(self):
        """
        Gets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :return: The power_cost_rx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_rx_link

    @power_cost_rx_link.setter
    def power_cost_rx_link(self, power_cost_rx_link):
        """
        Sets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :param power_cost_rx_link: The power_cost_rx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_rx_link = power_cost_rx_link

    @property
    def power_cost_tx_link(self):
        """
        Gets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :return: The power_cost_tx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_tx_link

    @power_cost_tx_link.setter
    def power_cost_tx_link(self, power_cost_tx_link):
        """
        Sets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :param power_cost_tx_link: The power_cost_tx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_tx_link = power_cost_tx_link

    @property
    def reliability(self):
        """
        Gets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :return: The reliability of this MoteInfo.
        :rtype: float
        """
        return self._reliability

    @reliability.setter
    def reliability(self, reliability):
        """
        Sets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :param reliability: The reliability of this MoteInfo.
        :type: float
        """
        self._reliability = reliability

    @property
    def rx_packet_count(self):
        """
        Gets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :return: The rx_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._rx_packet_count

    @rx_packet_count.setter
    def rx_packet_count(self, rx_packet_count):
        """
        Sets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :param rx_packet_count: The rx_packet_count of this MoteInfo.
        :type: int
        """
        self._rx_packet_count = rx_packet_count

    @property
    def stack_sw_rev(self):
        """
        Gets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :return: The stack_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._stack_sw_rev

    @stack_sw_rev.setter
    def stack_sw_rev(self, stack_sw_rev):
        """
        Sets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :param stack_sw_rev: The stack_sw_rev of this MoteInfo.
        :type: str
        """
        self._stack_sw_rev = stack_sw_rev

    @property
    def state(self):
        """
        Gets the state of this MoteInfo.
        Mote state

        :return: The state of this MoteInfo.
        :rtype: str
        """
        return self._state

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

        :param state: The state of this MoteInfo.
        :type: str
        """
        allowed_values = ["lost", "negotiating", "connected", "operational", "decommissioned"]
        if state not in allowed_values:
            raise ValueError(
                "Invalid value for `state`, must be one of {0}"
                .format(allowed_values)
            )
        self._state = state

    @property
    def state_reason(self):
        """
        Gets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :return: The state_reason of this MoteInfo.
        :rtype: str
        """
        return self._state_reason

    @state_reason.setter
    def state_reason(self, state_reason):
        """
        Sets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :param state_reason: The state_reason of this MoteInfo.
        :type: str
        """
        allowed_values = ["", "none", "rejoined", "globalCmd", "initialization", "noParents", "noResources", "unreachable", "transport", "rcError", "unexpected", "forced"]
        if state_reason not in allowed_values:
            raise ValueError(
                "Invalid value for `state_reason`, must be one of {0}"
                .format(allowed_values)
            )
        self._state_reason = state_reason

    @property
    def state_sys_time(self):
        """
        Gets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :return: The state_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._state_sys_time

    @state_sys_time.setter
    def state_sys_time(self, state_sys_time):
        """
        Sets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :param state_sys_time: The state_sys_time of this MoteInfo.
        :type: datetime
        """
        self._state_sys_time = state_sys_time

    @property
    def used_current(self):
        """
        Gets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :return: The used_current of this MoteInfo.
        :rtype: int
        """
        return self._used_current

    @used_current.setter
    def used_current(self, used_current):
        """
        Sets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :param used_current: The used_current of this MoteInfo.
        :type: int
        """
        self._used_current = used_current

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

        for attr, _ in 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()
            else:
                result[attr] = value

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """ 
        Returns true if both objects are not equal
        """
        return not self == other


855888635a2b9275459a11f236039adf22116a75
<mask token>


class MoteInfo(object):
    <mask token>

    def __init__(self):
        """
        MoteInfo - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {'app_id': 'int', 'app_sw_rev': 'str',
            'avg_hops': 'float', 'avg_latency': 'int', 'charge': 'int',
            'estimated_latency_to_mote': 'int', 'hw_model': 'int', 'hw_rev':
            'int', 'id': 'int', 'join_sys_time': 'datetime', 'last_voltage':
            'int', 'lost_packet_count': 'int', 'mac_address': 'str',
            'max_current': 'int', 'max_num_links': 'int',
            'max_num_neighbors': 'int', 'need_neighbor': 'bool',
            'num_good_neighbors': 'int', 'num_joins': 'int', 'num_links':
            'int', 'num_neighbors': 'int', 'num_parents': 'int',
            'power_cost_rx_link': 'int', 'power_cost_tx_link': 'int',
            'reliability': 'float', 'rx_packet_count': 'int',
            'stack_sw_rev': 'str', 'state': 'str', 'state_reason': 'str',
            'state_sys_time': 'datetime', 'used_current': 'int'}
        self.attribute_map = {'app_id': 'appId', 'app_sw_rev': 'appSwRev',
            'avg_hops': 'avgHops', 'avg_latency': 'avgLatency', 'charge':
            'charge', 'estimated_latency_to_mote': 'estimatedLatencyToMote',
            'hw_model': 'hwModel', 'hw_rev': 'hwRev', 'id': 'id',
            'join_sys_time': 'joinSysTime', 'last_voltage': 'lastVoltage',
            'lost_packet_count': 'lostPacketCount', 'mac_address':
            'macAddress', 'max_current': 'maxCurrent', 'max_num_links':
            'maxNumLinks', 'max_num_neighbors': 'maxNumNeighbors',
            'need_neighbor': 'needNeighbor', 'num_good_neighbors':
            'numGoodNeighbors', 'num_joins': 'numJoins', 'num_links':
            'numLinks', 'num_neighbors': 'numNeighbors', 'num_parents':
            'numParents', 'power_cost_rx_link': 'powerCostRxLink',
            'power_cost_tx_link': 'powerCostTxLink', 'reliability':
            'reliability', 'rx_packet_count': 'rxPacketCount',
            'stack_sw_rev': 'stackSwRev', 'state': 'state', 'state_reason':
            'stateReason', 'state_sys_time': 'stateSysTime', 'used_current':
            'usedCurrent'}
        self._app_id = None
        self._app_sw_rev = None
        self._avg_hops = None
        self._avg_latency = None
        self._charge = None
        self._estimated_latency_to_mote = None
        self._hw_model = None
        self._hw_rev = None
        self._id = None
        self._join_sys_time = None
        self._last_voltage = None
        self._lost_packet_count = None
        self._mac_address = None
        self._max_current = None
        self._max_num_links = None
        self._max_num_neighbors = None
        self._need_neighbor = None
        self._num_good_neighbors = None
        self._num_joins = None
        self._num_links = None
        self._num_neighbors = None
        self._num_parents = None
        self._power_cost_rx_link = None
        self._power_cost_tx_link = None
        self._reliability = None
        self._rx_packet_count = None
        self._stack_sw_rev = None
        self._state = None
        self._state_reason = None
        self._state_sys_time = None
        self._used_current = None

    @property
    def app_id(self):
        """
        Gets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :return: The app_id of this MoteInfo.
        :rtype: int
        """
        return self._app_id

    @app_id.setter
    def app_id(self, app_id):
        """
        Sets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :param app_id: The app_id of this MoteInfo.
        :type: int
        """
        self._app_id = app_id

    @property
    def app_sw_rev(self):
        """
        Gets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :return: The app_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._app_sw_rev

    @app_sw_rev.setter
    def app_sw_rev(self, app_sw_rev):
        """
        Sets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :param app_sw_rev: The app_sw_rev of this MoteInfo.
        :type: str
        """
        self._app_sw_rev = app_sw_rev
    <mask token>

    @avg_hops.setter
    def avg_hops(self, avg_hops):
        """
        Sets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :param avg_hops: The avg_hops of this MoteInfo.
        :type: float
        """
        self._avg_hops = avg_hops
    <mask token>

    @avg_latency.setter
    def avg_latency(self, avg_latency):
        """
        Sets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :param avg_latency: The avg_latency of this MoteInfo.
        :type: int
        """
        self._avg_latency = avg_latency
    <mask token>

    @charge.setter
    def charge(self, charge):
        """
        Sets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :param charge: The charge of this MoteInfo.
        :type: int
        """
        self._charge = charge

    @property
    def estimated_latency_to_mote(self):
        """
        Gets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :return: The estimated_latency_to_mote of this MoteInfo.
        :rtype: int
        """
        return self._estimated_latency_to_mote

    @estimated_latency_to_mote.setter
    def estimated_latency_to_mote(self, estimated_latency_to_mote):
        """
        Sets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :param estimated_latency_to_mote: The estimated_latency_to_mote of this MoteInfo.
        :type: int
        """
        self._estimated_latency_to_mote = estimated_latency_to_mote

    @property
    def hw_model(self):
        """
        Gets the hw_model of this MoteInfo.
        Hardware model of the mote

        :return: The hw_model of this MoteInfo.
        :rtype: int
        """
        return self._hw_model

    @hw_model.setter
    def hw_model(self, hw_model):
        """
        Sets the hw_model of this MoteInfo.
        Hardware model of the mote

        :param hw_model: The hw_model of this MoteInfo.
        :type: int
        """
        self._hw_model = hw_model

    @property
    def hw_rev(self):
        """
        Gets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :return: The hw_rev of this MoteInfo.
        :rtype: int
        """
        return self._hw_rev

    @hw_rev.setter
    def hw_rev(self, hw_rev):
        """
        Sets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :param hw_rev: The hw_rev of this MoteInfo.
        :type: int
        """
        self._hw_rev = hw_rev

    @property
    def id(self):
        """
        Gets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :return: The id of this MoteInfo.
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :param id: The id of this MoteInfo.
        :type: int
        """
        self._id = id
    <mask token>

    @join_sys_time.setter
    def join_sys_time(self, join_sys_time):
        """
        Sets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :param join_sys_time: The join_sys_time of this MoteInfo.
        :type: datetime
        """
        self._join_sys_time = join_sys_time
    <mask token>

    @last_voltage.setter
    def last_voltage(self, last_voltage):
        """
        Sets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :param last_voltage: The last_voltage of this MoteInfo.
        :type: int
        """
        self._last_voltage = last_voltage

    @property
    def lost_packet_count(self):
        """
        Gets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :return: The lost_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._lost_packet_count

    @lost_packet_count.setter
    def lost_packet_count(self, lost_packet_count):
        """
        Sets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :param lost_packet_count: The lost_packet_count of this MoteInfo.
        :type: int
        """
        self._lost_packet_count = lost_packet_count
    <mask token>

    @mac_address.setter
    def mac_address(self, mac_address):
        """
        Sets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :param mac_address: The mac_address of this MoteInfo.
        :type: str
        """
        self._mac_address = mac_address

    @property
    def max_current(self):
        """
        Gets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :return: The max_current of this MoteInfo.
        :rtype: int
        """
        return self._max_current

    @max_current.setter
    def max_current(self, max_current):
        """
        Sets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :param max_current: The max_current of this MoteInfo.
        :type: int
        """
        self._max_current = max_current

    @property
    def max_num_links(self):
        """
        Gets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :return: The max_num_links of this MoteInfo.
        :rtype: int
        """
        return self._max_num_links

    @max_num_links.setter
    def max_num_links(self, max_num_links):
        """
        Sets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :param max_num_links: The max_num_links of this MoteInfo.
        :type: int
        """
        self._max_num_links = max_num_links

    @property
    def max_num_neighbors(self):
        """
        Gets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :return: The max_num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._max_num_neighbors

    @max_num_neighbors.setter
    def max_num_neighbors(self, max_num_neighbors):
        """
        Sets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :param max_num_neighbors: The max_num_neighbors of this MoteInfo.
        :type: int
        """
        self._max_num_neighbors = max_num_neighbors

    @property
    def need_neighbor(self):
        """
        Gets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :return: The need_neighbor of this MoteInfo.
        :rtype: bool
        """
        return self._need_neighbor

    @need_neighbor.setter
    def need_neighbor(self, need_neighbor):
        """
        Sets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :param need_neighbor: The need_neighbor of this MoteInfo.
        :type: bool
        """
        self._need_neighbor = need_neighbor

    @property
    def num_good_neighbors(self):
        """
        Gets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :return: The num_good_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_good_neighbors
    <mask token>

    @property
    def num_joins(self):
        """
        Gets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :return: The num_joins of this MoteInfo.
        :rtype: int
        """
        return self._num_joins
    <mask token>

    @property
    def num_links(self):
        """
        Gets the num_links of this MoteInfo.
        Allocated links on the mote

        :return: The num_links of this MoteInfo.
        :rtype: int
        """
        return self._num_links

    @num_links.setter
    def num_links(self, num_links):
        """
        Sets the num_links of this MoteInfo.
        Allocated links on the mote

        :param num_links: The num_links of this MoteInfo.
        :type: int
        """
        self._num_links = num_links

    @property
    def num_neighbors(self):
        """
        Gets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :return: The num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_neighbors

    @num_neighbors.setter
    def num_neighbors(self, num_neighbors):
        """
        Sets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :param num_neighbors: The num_neighbors of this MoteInfo.
        :type: int
        """
        self._num_neighbors = num_neighbors

    @property
    def num_parents(self):
        """
        Gets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :return: The num_parents of this MoteInfo.
        :rtype: int
        """
        return self._num_parents

    @num_parents.setter
    def num_parents(self, num_parents):
        """
        Sets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :param num_parents: The num_parents of this MoteInfo.
        :type: int
        """
        self._num_parents = num_parents

    @property
    def power_cost_rx_link(self):
        """
        Gets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :return: The power_cost_rx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_rx_link

    @power_cost_rx_link.setter
    def power_cost_rx_link(self, power_cost_rx_link):
        """
        Sets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :param power_cost_rx_link: The power_cost_rx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_rx_link = power_cost_rx_link

    @property
    def power_cost_tx_link(self):
        """
        Gets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :return: The power_cost_tx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_tx_link

    @power_cost_tx_link.setter
    def power_cost_tx_link(self, power_cost_tx_link):
        """
        Sets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :param power_cost_tx_link: The power_cost_tx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_tx_link = power_cost_tx_link

    @property
    def reliability(self):
        """
        Gets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :return: The reliability of this MoteInfo.
        :rtype: float
        """
        return self._reliability
    <mask token>

    @property
    def rx_packet_count(self):
        """
        Gets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :return: The rx_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._rx_packet_count

    @rx_packet_count.setter
    def rx_packet_count(self, rx_packet_count):
        """
        Sets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :param rx_packet_count: The rx_packet_count of this MoteInfo.
        :type: int
        """
        self._rx_packet_count = rx_packet_count

    @property
    def stack_sw_rev(self):
        """
        Gets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :return: The stack_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._stack_sw_rev

    @stack_sw_rev.setter
    def stack_sw_rev(self, stack_sw_rev):
        """
        Sets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :param stack_sw_rev: The stack_sw_rev of this MoteInfo.
        :type: str
        """
        self._stack_sw_rev = stack_sw_rev
    <mask token>

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

        :param state: The state of this MoteInfo.
        :type: str
        """
        allowed_values = ['lost', 'negotiating', 'connected', 'operational',
            'decommissioned']
        if state not in allowed_values:
            raise ValueError('Invalid value for `state`, must be one of {0}'
                .format(allowed_values))
        self._state = state

    @property
    def state_reason(self):
        """
        Gets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :return: The state_reason of this MoteInfo.
        :rtype: str
        """
        return self._state_reason
    <mask token>

    @property
    def state_sys_time(self):
        """
        Gets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :return: The state_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._state_sys_time
    <mask token>

    @property
    def used_current(self):
        """
        Gets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :return: The used_current of this MoteInfo.
        :rtype: int
        """
        return self._used_current

    @used_current.setter
    def used_current(self, used_current):
        """
        Sets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :param used_current: The used_current of this MoteInfo.
        :type: int
        """
        self._used_current = used_current
    <mask token>

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """ 
        Returns true if both objects are not equal
        """
        return not self == other

<mask token>


class MoteInfo(object):
    <mask token>

    def __init__(self):
        """
        MoteInfo - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {'app_id': 'int', 'app_sw_rev': 'str',
            'avg_hops': 'float', 'avg_latency': 'int', 'charge': 'int',
            'estimated_latency_to_mote': 'int', 'hw_model': 'int', 'hw_rev':
            'int', 'id': 'int', 'join_sys_time': 'datetime', 'last_voltage':
            'int', 'lost_packet_count': 'int', 'mac_address': 'str',
            'max_current': 'int', 'max_num_links': 'int',
            'max_num_neighbors': 'int', 'need_neighbor': 'bool',
            'num_good_neighbors': 'int', 'num_joins': 'int', 'num_links':
            'int', 'num_neighbors': 'int', 'num_parents': 'int',
            'power_cost_rx_link': 'int', 'power_cost_tx_link': 'int',
            'reliability': 'float', 'rx_packet_count': 'int',
            'stack_sw_rev': 'str', 'state': 'str', 'state_reason': 'str',
            'state_sys_time': 'datetime', 'used_current': 'int'}
        self.attribute_map = {'app_id': 'appId', 'app_sw_rev': 'appSwRev',
            'avg_hops': 'avgHops', 'avg_latency': 'avgLatency', 'charge':
            'charge', 'estimated_latency_to_mote': 'estimatedLatencyToMote',
            'hw_model': 'hwModel', 'hw_rev': 'hwRev', 'id': 'id',
            'join_sys_time': 'joinSysTime', 'last_voltage': 'lastVoltage',
            'lost_packet_count': 'lostPacketCount', 'mac_address':
            'macAddress', 'max_current': 'maxCurrent', 'max_num_links':
            'maxNumLinks', 'max_num_neighbors': 'maxNumNeighbors',
            'need_neighbor': 'needNeighbor', 'num_good_neighbors':
            'numGoodNeighbors', 'num_joins': 'numJoins', 'num_links':
            'numLinks', 'num_neighbors': 'numNeighbors', 'num_parents':
            'numParents', 'power_cost_rx_link': 'powerCostRxLink',
            'power_cost_tx_link': 'powerCostTxLink', 'reliability':
            'reliability', 'rx_packet_count': 'rxPacketCount',
            'stack_sw_rev': 'stackSwRev', 'state': 'state', 'state_reason':
            'stateReason', 'state_sys_time': 'stateSysTime', 'used_current':
            'usedCurrent'}
        self._app_id = None
        self._app_sw_rev = None
        self._avg_hops = None
        self._avg_latency = None
        self._charge = None
        self._estimated_latency_to_mote = None
        self._hw_model = None
        self._hw_rev = None
        self._id = None
        self._join_sys_time = None
        self._last_voltage = None
        self._lost_packet_count = None
        self._mac_address = None
        self._max_current = None
        self._max_num_links = None
        self._max_num_neighbors = None
        self._need_neighbor = None
        self._num_good_neighbors = None
        self._num_joins = None
        self._num_links = None
        self._num_neighbors = None
        self._num_parents = None
        self._power_cost_rx_link = None
        self._power_cost_tx_link = None
        self._reliability = None
        self._rx_packet_count = None
        self._stack_sw_rev = None
        self._state = None
        self._state_reason = None
        self._state_sys_time = None
        self._used_current = None

    @property
    def app_id(self):
        """
        Gets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :return: The app_id of this MoteInfo.
        :rtype: int
        """
        return self._app_id

    @app_id.setter
    def app_id(self, app_id):
        """
        Sets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :param app_id: The app_id of this MoteInfo.
        :type: int
        """
        self._app_id = app_id

    @property
    def app_sw_rev(self):
        """
        Gets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :return: The app_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._app_sw_rev

    @app_sw_rev.setter
    def app_sw_rev(self, app_sw_rev):
        """
        Sets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :param app_sw_rev: The app_sw_rev of this MoteInfo.
        :type: str
        """
        self._app_sw_rev = app_sw_rev
    <mask token>

    @avg_hops.setter
    def avg_hops(self, avg_hops):
        """
        Sets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :param avg_hops: The avg_hops of this MoteInfo.
        :type: float
        """
        self._avg_hops = avg_hops
    <mask token>

    @avg_latency.setter
    def avg_latency(self, avg_latency):
        """
        Sets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :param avg_latency: The avg_latency of this MoteInfo.
        :type: int
        """
        self._avg_latency = avg_latency

    @property
    def charge(self):
        """
        Gets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :return: The charge of this MoteInfo.
        :rtype: int
        """
        return self._charge

    @charge.setter
    def charge(self, charge):
        """
        Sets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :param charge: The charge of this MoteInfo.
        :type: int
        """
        self._charge = charge

    @property
    def estimated_latency_to_mote(self):
        """
        Gets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :return: The estimated_latency_to_mote of this MoteInfo.
        :rtype: int
        """
        return self._estimated_latency_to_mote

    @estimated_latency_to_mote.setter
    def estimated_latency_to_mote(self, estimated_latency_to_mote):
        """
        Sets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :param estimated_latency_to_mote: The estimated_latency_to_mote of this MoteInfo.
        :type: int
        """
        self._estimated_latency_to_mote = estimated_latency_to_mote

    @property
    def hw_model(self):
        """
        Gets the hw_model of this MoteInfo.
        Hardware model of the mote

        :return: The hw_model of this MoteInfo.
        :rtype: int
        """
        return self._hw_model

    @hw_model.setter
    def hw_model(self, hw_model):
        """
        Sets the hw_model of this MoteInfo.
        Hardware model of the mote

        :param hw_model: The hw_model of this MoteInfo.
        :type: int
        """
        self._hw_model = hw_model

    @property
    def hw_rev(self):
        """
        Gets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :return: The hw_rev of this MoteInfo.
        :rtype: int
        """
        return self._hw_rev

    @hw_rev.setter
    def hw_rev(self, hw_rev):
        """
        Sets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :param hw_rev: The hw_rev of this MoteInfo.
        :type: int
        """
        self._hw_rev = hw_rev

    @property
    def id(self):
        """
        Gets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :return: The id of this MoteInfo.
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :param id: The id of this MoteInfo.
        :type: int
        """
        self._id = id
    <mask token>

    @join_sys_time.setter
    def join_sys_time(self, join_sys_time):
        """
        Sets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :param join_sys_time: The join_sys_time of this MoteInfo.
        :type: datetime
        """
        self._join_sys_time = join_sys_time

    @property
    def last_voltage(self):
        """
        Gets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :return: The last_voltage of this MoteInfo.
        :rtype: int
        """
        return self._last_voltage

    @last_voltage.setter
    def last_voltage(self, last_voltage):
        """
        Sets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :param last_voltage: The last_voltage of this MoteInfo.
        :type: int
        """
        self._last_voltage = last_voltage

    @property
    def lost_packet_count(self):
        """
        Gets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :return: The lost_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._lost_packet_count

    @lost_packet_count.setter
    def lost_packet_count(self, lost_packet_count):
        """
        Sets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :param lost_packet_count: The lost_packet_count of this MoteInfo.
        :type: int
        """
        self._lost_packet_count = lost_packet_count
    <mask token>

    @mac_address.setter
    def mac_address(self, mac_address):
        """
        Sets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :param mac_address: The mac_address of this MoteInfo.
        :type: str
        """
        self._mac_address = mac_address

    @property
    def max_current(self):
        """
        Gets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :return: The max_current of this MoteInfo.
        :rtype: int
        """
        return self._max_current

    @max_current.setter
    def max_current(self, max_current):
        """
        Sets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :param max_current: The max_current of this MoteInfo.
        :type: int
        """
        self._max_current = max_current

    @property
    def max_num_links(self):
        """
        Gets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :return: The max_num_links of this MoteInfo.
        :rtype: int
        """
        return self._max_num_links

    @max_num_links.setter
    def max_num_links(self, max_num_links):
        """
        Sets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :param max_num_links: The max_num_links of this MoteInfo.
        :type: int
        """
        self._max_num_links = max_num_links

    @property
    def max_num_neighbors(self):
        """
        Gets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :return: The max_num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._max_num_neighbors

    @max_num_neighbors.setter
    def max_num_neighbors(self, max_num_neighbors):
        """
        Sets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :param max_num_neighbors: The max_num_neighbors of this MoteInfo.
        :type: int
        """
        self._max_num_neighbors = max_num_neighbors

    @property
    def need_neighbor(self):
        """
        Gets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :return: The need_neighbor of this MoteInfo.
        :rtype: bool
        """
        return self._need_neighbor

    @need_neighbor.setter
    def need_neighbor(self, need_neighbor):
        """
        Sets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :param need_neighbor: The need_neighbor of this MoteInfo.
        :type: bool
        """
        self._need_neighbor = need_neighbor

    @property
    def num_good_neighbors(self):
        """
        Gets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :return: The num_good_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_good_neighbors
    <mask token>

    @property
    def num_joins(self):
        """
        Gets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :return: The num_joins of this MoteInfo.
        :rtype: int
        """
        return self._num_joins
    <mask token>

    @property
    def num_links(self):
        """
        Gets the num_links of this MoteInfo.
        Allocated links on the mote

        :return: The num_links of this MoteInfo.
        :rtype: int
        """
        return self._num_links

    @num_links.setter
    def num_links(self, num_links):
        """
        Sets the num_links of this MoteInfo.
        Allocated links on the mote

        :param num_links: The num_links of this MoteInfo.
        :type: int
        """
        self._num_links = num_links

    @property
    def num_neighbors(self):
        """
        Gets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :return: The num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_neighbors

    @num_neighbors.setter
    def num_neighbors(self, num_neighbors):
        """
        Sets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :param num_neighbors: The num_neighbors of this MoteInfo.
        :type: int
        """
        self._num_neighbors = num_neighbors

    @property
    def num_parents(self):
        """
        Gets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :return: The num_parents of this MoteInfo.
        :rtype: int
        """
        return self._num_parents

    @num_parents.setter
    def num_parents(self, num_parents):
        """
        Sets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :param num_parents: The num_parents of this MoteInfo.
        :type: int
        """
        self._num_parents = num_parents

    @property
    def power_cost_rx_link(self):
        """
        Gets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :return: The power_cost_rx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_rx_link

    @power_cost_rx_link.setter
    def power_cost_rx_link(self, power_cost_rx_link):
        """
        Sets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :param power_cost_rx_link: The power_cost_rx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_rx_link = power_cost_rx_link

    @property
    def power_cost_tx_link(self):
        """
        Gets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :return: The power_cost_tx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_tx_link

    @power_cost_tx_link.setter
    def power_cost_tx_link(self, power_cost_tx_link):
        """
        Sets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :param power_cost_tx_link: The power_cost_tx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_tx_link = power_cost_tx_link

    @property
    def reliability(self):
        """
        Gets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :return: The reliability of this MoteInfo.
        :rtype: float
        """
        return self._reliability
    <mask token>

    @property
    def rx_packet_count(self):
        """
        Gets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :return: The rx_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._rx_packet_count

    @rx_packet_count.setter
    def rx_packet_count(self, rx_packet_count):
        """
        Sets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :param rx_packet_count: The rx_packet_count of this MoteInfo.
        :type: int
        """
        self._rx_packet_count = rx_packet_count

    @property
    def stack_sw_rev(self):
        """
        Gets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :return: The stack_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._stack_sw_rev

    @stack_sw_rev.setter
    def stack_sw_rev(self, stack_sw_rev):
        """
        Sets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :param stack_sw_rev: The stack_sw_rev of this MoteInfo.
        :type: str
        """
        self._stack_sw_rev = stack_sw_rev
    <mask token>

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

        :param state: The state of this MoteInfo.
        :type: str
        """
        allowed_values = ['lost', 'negotiating', 'connected', 'operational',
            'decommissioned']
        if state not in allowed_values:
            raise ValueError('Invalid value for `state`, must be one of {0}'
                .format(allowed_values))
        self._state = state

    @property
    def state_reason(self):
        """
        Gets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :return: The state_reason of this MoteInfo.
        :rtype: str
        """
        return self._state_reason
    <mask token>

    @property
    def state_sys_time(self):
        """
        Gets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :return: The state_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._state_sys_time
    <mask token>

    @property
    def used_current(self):
        """
        Gets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :return: The used_current of this MoteInfo.
        :rtype: int
        """
        return self._used_current

    @used_current.setter
    def used_current(self, used_current):
        """
        Sets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :param used_current: The used_current of this MoteInfo.
        :type: int
        """
        self._used_current = used_current

    def to_dict(self):
        """
        Returns the model properties as a dict
        """
        result = {}
        for attr, _ in 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()
            else:
                result[attr] = value
        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """ 
        Returns true if both objects are not equal
        """
        return not self == other

<mask token>


class MoteInfo(object):
    <mask token>

    def __init__(self):
        """
        MoteInfo - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {'app_id': 'int', 'app_sw_rev': 'str',
            'avg_hops': 'float', 'avg_latency': 'int', 'charge': 'int',
            'estimated_latency_to_mote': 'int', 'hw_model': 'int', 'hw_rev':
            'int', 'id': 'int', 'join_sys_time': 'datetime', 'last_voltage':
            'int', 'lost_packet_count': 'int', 'mac_address': 'str',
            'max_current': 'int', 'max_num_links': 'int',
            'max_num_neighbors': 'int', 'need_neighbor': 'bool',
            'num_good_neighbors': 'int', 'num_joins': 'int', 'num_links':
            'int', 'num_neighbors': 'int', 'num_parents': 'int',
            'power_cost_rx_link': 'int', 'power_cost_tx_link': 'int',
            'reliability': 'float', 'rx_packet_count': 'int',
            'stack_sw_rev': 'str', 'state': 'str', 'state_reason': 'str',
            'state_sys_time': 'datetime', 'used_current': 'int'}
        self.attribute_map = {'app_id': 'appId', 'app_sw_rev': 'appSwRev',
            'avg_hops': 'avgHops', 'avg_latency': 'avgLatency', 'charge':
            'charge', 'estimated_latency_to_mote': 'estimatedLatencyToMote',
            'hw_model': 'hwModel', 'hw_rev': 'hwRev', 'id': 'id',
            'join_sys_time': 'joinSysTime', 'last_voltage': 'lastVoltage',
            'lost_packet_count': 'lostPacketCount', 'mac_address':
            'macAddress', 'max_current': 'maxCurrent', 'max_num_links':
            'maxNumLinks', 'max_num_neighbors': 'maxNumNeighbors',
            'need_neighbor': 'needNeighbor', 'num_good_neighbors':
            'numGoodNeighbors', 'num_joins': 'numJoins', 'num_links':
            'numLinks', 'num_neighbors': 'numNeighbors', 'num_parents':
            'numParents', 'power_cost_rx_link': 'powerCostRxLink',
            'power_cost_tx_link': 'powerCostTxLink', 'reliability':
            'reliability', 'rx_packet_count': 'rxPacketCount',
            'stack_sw_rev': 'stackSwRev', 'state': 'state', 'state_reason':
            'stateReason', 'state_sys_time': 'stateSysTime', 'used_current':
            'usedCurrent'}
        self._app_id = None
        self._app_sw_rev = None
        self._avg_hops = None
        self._avg_latency = None
        self._charge = None
        self._estimated_latency_to_mote = None
        self._hw_model = None
        self._hw_rev = None
        self._id = None
        self._join_sys_time = None
        self._last_voltage = None
        self._lost_packet_count = None
        self._mac_address = None
        self._max_current = None
        self._max_num_links = None
        self._max_num_neighbors = None
        self._need_neighbor = None
        self._num_good_neighbors = None
        self._num_joins = None
        self._num_links = None
        self._num_neighbors = None
        self._num_parents = None
        self._power_cost_rx_link = None
        self._power_cost_tx_link = None
        self._reliability = None
        self._rx_packet_count = None
        self._stack_sw_rev = None
        self._state = None
        self._state_reason = None
        self._state_sys_time = None
        self._used_current = None

    @property
    def app_id(self):
        """
        Gets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :return: The app_id of this MoteInfo.
        :rtype: int
        """
        return self._app_id

    @app_id.setter
    def app_id(self, app_id):
        """
        Sets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :param app_id: The app_id of this MoteInfo.
        :type: int
        """
        self._app_id = app_id

    @property
    def app_sw_rev(self):
        """
        Gets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :return: The app_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._app_sw_rev

    @app_sw_rev.setter
    def app_sw_rev(self, app_sw_rev):
        """
        Sets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :param app_sw_rev: The app_sw_rev of this MoteInfo.
        :type: str
        """
        self._app_sw_rev = app_sw_rev

    @property
    def avg_hops(self):
        """
        Gets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :return: The avg_hops of this MoteInfo.
        :rtype: float
        """
        return self._avg_hops

    @avg_hops.setter
    def avg_hops(self, avg_hops):
        """
        Sets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :param avg_hops: The avg_hops of this MoteInfo.
        :type: float
        """
        self._avg_hops = avg_hops
    <mask token>

    @avg_latency.setter
    def avg_latency(self, avg_latency):
        """
        Sets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :param avg_latency: The avg_latency of this MoteInfo.
        :type: int
        """
        self._avg_latency = avg_latency

    @property
    def charge(self):
        """
        Gets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :return: The charge of this MoteInfo.
        :rtype: int
        """
        return self._charge

    @charge.setter
    def charge(self, charge):
        """
        Sets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :param charge: The charge of this MoteInfo.
        :type: int
        """
        self._charge = charge

    @property
    def estimated_latency_to_mote(self):
        """
        Gets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :return: The estimated_latency_to_mote of this MoteInfo.
        :rtype: int
        """
        return self._estimated_latency_to_mote

    @estimated_latency_to_mote.setter
    def estimated_latency_to_mote(self, estimated_latency_to_mote):
        """
        Sets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :param estimated_latency_to_mote: The estimated_latency_to_mote of this MoteInfo.
        :type: int
        """
        self._estimated_latency_to_mote = estimated_latency_to_mote

    @property
    def hw_model(self):
        """
        Gets the hw_model of this MoteInfo.
        Hardware model of the mote

        :return: The hw_model of this MoteInfo.
        :rtype: int
        """
        return self._hw_model

    @hw_model.setter
    def hw_model(self, hw_model):
        """
        Sets the hw_model of this MoteInfo.
        Hardware model of the mote

        :param hw_model: The hw_model of this MoteInfo.
        :type: int
        """
        self._hw_model = hw_model

    @property
    def hw_rev(self):
        """
        Gets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :return: The hw_rev of this MoteInfo.
        :rtype: int
        """
        return self._hw_rev

    @hw_rev.setter
    def hw_rev(self, hw_rev):
        """
        Sets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :param hw_rev: The hw_rev of this MoteInfo.
        :type: int
        """
        self._hw_rev = hw_rev

    @property
    def id(self):
        """
        Gets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :return: The id of this MoteInfo.
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :param id: The id of this MoteInfo.
        :type: int
        """
        self._id = id
    <mask token>

    @join_sys_time.setter
    def join_sys_time(self, join_sys_time):
        """
        Sets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :param join_sys_time: The join_sys_time of this MoteInfo.
        :type: datetime
        """
        self._join_sys_time = join_sys_time

    @property
    def last_voltage(self):
        """
        Gets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :return: The last_voltage of this MoteInfo.
        :rtype: int
        """
        return self._last_voltage

    @last_voltage.setter
    def last_voltage(self, last_voltage):
        """
        Sets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :param last_voltage: The last_voltage of this MoteInfo.
        :type: int
        """
        self._last_voltage = last_voltage

    @property
    def lost_packet_count(self):
        """
        Gets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :return: The lost_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._lost_packet_count

    @lost_packet_count.setter
    def lost_packet_count(self, lost_packet_count):
        """
        Sets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :param lost_packet_count: The lost_packet_count of this MoteInfo.
        :type: int
        """
        self._lost_packet_count = lost_packet_count
    <mask token>

    @mac_address.setter
    def mac_address(self, mac_address):
        """
        Sets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :param mac_address: The mac_address of this MoteInfo.
        :type: str
        """
        self._mac_address = mac_address

    @property
    def max_current(self):
        """
        Gets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :return: The max_current of this MoteInfo.
        :rtype: int
        """
        return self._max_current

    @max_current.setter
    def max_current(self, max_current):
        """
        Sets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :param max_current: The max_current of this MoteInfo.
        :type: int
        """
        self._max_current = max_current

    @property
    def max_num_links(self):
        """
        Gets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :return: The max_num_links of this MoteInfo.
        :rtype: int
        """
        return self._max_num_links

    @max_num_links.setter
    def max_num_links(self, max_num_links):
        """
        Sets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :param max_num_links: The max_num_links of this MoteInfo.
        :type: int
        """
        self._max_num_links = max_num_links

    @property
    def max_num_neighbors(self):
        """
        Gets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :return: The max_num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._max_num_neighbors

    @max_num_neighbors.setter
    def max_num_neighbors(self, max_num_neighbors):
        """
        Sets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :param max_num_neighbors: The max_num_neighbors of this MoteInfo.
        :type: int
        """
        self._max_num_neighbors = max_num_neighbors

    @property
    def need_neighbor(self):
        """
        Gets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :return: The need_neighbor of this MoteInfo.
        :rtype: bool
        """
        return self._need_neighbor

    @need_neighbor.setter
    def need_neighbor(self, need_neighbor):
        """
        Sets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :param need_neighbor: The need_neighbor of this MoteInfo.
        :type: bool
        """
        self._need_neighbor = need_neighbor

    @property
    def num_good_neighbors(self):
        """
        Gets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :return: The num_good_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_good_neighbors
    <mask token>

    @property
    def num_joins(self):
        """
        Gets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :return: The num_joins of this MoteInfo.
        :rtype: int
        """
        return self._num_joins
    <mask token>

    @property
    def num_links(self):
        """
        Gets the num_links of this MoteInfo.
        Allocated links on the mote

        :return: The num_links of this MoteInfo.
        :rtype: int
        """
        return self._num_links

    @num_links.setter
    def num_links(self, num_links):
        """
        Sets the num_links of this MoteInfo.
        Allocated links on the mote

        :param num_links: The num_links of this MoteInfo.
        :type: int
        """
        self._num_links = num_links

    @property
    def num_neighbors(self):
        """
        Gets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :return: The num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_neighbors

    @num_neighbors.setter
    def num_neighbors(self, num_neighbors):
        """
        Sets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :param num_neighbors: The num_neighbors of this MoteInfo.
        :type: int
        """
        self._num_neighbors = num_neighbors

    @property
    def num_parents(self):
        """
        Gets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :return: The num_parents of this MoteInfo.
        :rtype: int
        """
        return self._num_parents

    @num_parents.setter
    def num_parents(self, num_parents):
        """
        Sets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :param num_parents: The num_parents of this MoteInfo.
        :type: int
        """
        self._num_parents = num_parents

    @property
    def power_cost_rx_link(self):
        """
        Gets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :return: The power_cost_rx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_rx_link

    @power_cost_rx_link.setter
    def power_cost_rx_link(self, power_cost_rx_link):
        """
        Sets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :param power_cost_rx_link: The power_cost_rx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_rx_link = power_cost_rx_link

    @property
    def power_cost_tx_link(self):
        """
        Gets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :return: The power_cost_tx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_tx_link

    @power_cost_tx_link.setter
    def power_cost_tx_link(self, power_cost_tx_link):
        """
        Sets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :param power_cost_tx_link: The power_cost_tx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_tx_link = power_cost_tx_link

    @property
    def reliability(self):
        """
        Gets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :return: The reliability of this MoteInfo.
        :rtype: float
        """
        return self._reliability
    <mask token>

    @property
    def rx_packet_count(self):
        """
        Gets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :return: The rx_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._rx_packet_count

    @rx_packet_count.setter
    def rx_packet_count(self, rx_packet_count):
        """
        Sets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :param rx_packet_count: The rx_packet_count of this MoteInfo.
        :type: int
        """
        self._rx_packet_count = rx_packet_count

    @property
    def stack_sw_rev(self):
        """
        Gets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :return: The stack_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._stack_sw_rev

    @stack_sw_rev.setter
    def stack_sw_rev(self, stack_sw_rev):
        """
        Sets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :param stack_sw_rev: The stack_sw_rev of this MoteInfo.
        :type: str
        """
        self._stack_sw_rev = stack_sw_rev
    <mask token>

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

        :param state: The state of this MoteInfo.
        :type: str
        """
        allowed_values = ['lost', 'negotiating', 'connected', 'operational',
            'decommissioned']
        if state not in allowed_values:
            raise ValueError('Invalid value for `state`, must be one of {0}'
                .format(allowed_values))
        self._state = state

    @property
    def state_reason(self):
        """
        Gets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :return: The state_reason of this MoteInfo.
        :rtype: str
        """
        return self._state_reason

    @state_reason.setter
    def state_reason(self, state_reason):
        """
        Sets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :param state_reason: The state_reason of this MoteInfo.
        :type: str
        """
        allowed_values = ['', 'none', 'rejoined', 'globalCmd',
            'initialization', 'noParents', 'noResources', 'unreachable',
            'transport', 'rcError', 'unexpected', 'forced']
        if state_reason not in allowed_values:
            raise ValueError(
                'Invalid value for `state_reason`, must be one of {0}'.
                format(allowed_values))
        self._state_reason = state_reason

    @property
    def state_sys_time(self):
        """
        Gets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :return: The state_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._state_sys_time
    <mask token>

    @property
    def used_current(self):
        """
        Gets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :return: The used_current of this MoteInfo.
        :rtype: int
        """
        return self._used_current

    @used_current.setter
    def used_current(self, used_current):
        """
        Sets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :param used_current: The used_current of this MoteInfo.
        :type: int
        """
        self._used_current = used_current

    def to_dict(self):
        """
        Returns the model properties as a dict
        """
        result = {}
        for attr, _ in 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()
            else:
                result[attr] = value
        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """ 
        Returns true if both objects are not equal
        """
        return not self == other

<mask token>


class MoteInfo(object):
    <mask token>

    def __init__(self):
        """
        MoteInfo - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {'app_id': 'int', 'app_sw_rev': 'str',
            'avg_hops': 'float', 'avg_latency': 'int', 'charge': 'int',
            'estimated_latency_to_mote': 'int', 'hw_model': 'int', 'hw_rev':
            'int', 'id': 'int', 'join_sys_time': 'datetime', 'last_voltage':
            'int', 'lost_packet_count': 'int', 'mac_address': 'str',
            'max_current': 'int', 'max_num_links': 'int',
            'max_num_neighbors': 'int', 'need_neighbor': 'bool',
            'num_good_neighbors': 'int', 'num_joins': 'int', 'num_links':
            'int', 'num_neighbors': 'int', 'num_parents': 'int',
            'power_cost_rx_link': 'int', 'power_cost_tx_link': 'int',
            'reliability': 'float', 'rx_packet_count': 'int',
            'stack_sw_rev': 'str', 'state': 'str', 'state_reason': 'str',
            'state_sys_time': 'datetime', 'used_current': 'int'}
        self.attribute_map = {'app_id': 'appId', 'app_sw_rev': 'appSwRev',
            'avg_hops': 'avgHops', 'avg_latency': 'avgLatency', 'charge':
            'charge', 'estimated_latency_to_mote': 'estimatedLatencyToMote',
            'hw_model': 'hwModel', 'hw_rev': 'hwRev', 'id': 'id',
            'join_sys_time': 'joinSysTime', 'last_voltage': 'lastVoltage',
            'lost_packet_count': 'lostPacketCount', 'mac_address':
            'macAddress', 'max_current': 'maxCurrent', 'max_num_links':
            'maxNumLinks', 'max_num_neighbors': 'maxNumNeighbors',
            'need_neighbor': 'needNeighbor', 'num_good_neighbors':
            'numGoodNeighbors', 'num_joins': 'numJoins', 'num_links':
            'numLinks', 'num_neighbors': 'numNeighbors', 'num_parents':
            'numParents', 'power_cost_rx_link': 'powerCostRxLink',
            'power_cost_tx_link': 'powerCostTxLink', 'reliability':
            'reliability', 'rx_packet_count': 'rxPacketCount',
            'stack_sw_rev': 'stackSwRev', 'state': 'state', 'state_reason':
            'stateReason', 'state_sys_time': 'stateSysTime', 'used_current':
            'usedCurrent'}
        self._app_id = None
        self._app_sw_rev = None
        self._avg_hops = None
        self._avg_latency = None
        self._charge = None
        self._estimated_latency_to_mote = None
        self._hw_model = None
        self._hw_rev = None
        self._id = None
        self._join_sys_time = None
        self._last_voltage = None
        self._lost_packet_count = None
        self._mac_address = None
        self._max_current = None
        self._max_num_links = None
        self._max_num_neighbors = None
        self._need_neighbor = None
        self._num_good_neighbors = None
        self._num_joins = None
        self._num_links = None
        self._num_neighbors = None
        self._num_parents = None
        self._power_cost_rx_link = None
        self._power_cost_tx_link = None
        self._reliability = None
        self._rx_packet_count = None
        self._stack_sw_rev = None
        self._state = None
        self._state_reason = None
        self._state_sys_time = None
        self._used_current = None

    @property
    def app_id(self):
        """
        Gets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :return: The app_id of this MoteInfo.
        :rtype: int
        """
        return self._app_id

    @app_id.setter
    def app_id(self, app_id):
        """
        Sets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :param app_id: The app_id of this MoteInfo.
        :type: int
        """
        self._app_id = app_id

    @property
    def app_sw_rev(self):
        """
        Gets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :return: The app_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._app_sw_rev

    @app_sw_rev.setter
    def app_sw_rev(self, app_sw_rev):
        """
        Sets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :param app_sw_rev: The app_sw_rev of this MoteInfo.
        :type: str
        """
        self._app_sw_rev = app_sw_rev

    @property
    def avg_hops(self):
        """
        Gets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :return: The avg_hops of this MoteInfo.
        :rtype: float
        """
        return self._avg_hops

    @avg_hops.setter
    def avg_hops(self, avg_hops):
        """
        Sets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :param avg_hops: The avg_hops of this MoteInfo.
        :type: float
        """
        self._avg_hops = avg_hops
    <mask token>

    @avg_latency.setter
    def avg_latency(self, avg_latency):
        """
        Sets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :param avg_latency: The avg_latency of this MoteInfo.
        :type: int
        """
        self._avg_latency = avg_latency

    @property
    def charge(self):
        """
        Gets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :return: The charge of this MoteInfo.
        :rtype: int
        """
        return self._charge

    @charge.setter
    def charge(self, charge):
        """
        Sets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :param charge: The charge of this MoteInfo.
        :type: int
        """
        self._charge = charge

    @property
    def estimated_latency_to_mote(self):
        """
        Gets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :return: The estimated_latency_to_mote of this MoteInfo.
        :rtype: int
        """
        return self._estimated_latency_to_mote

    @estimated_latency_to_mote.setter
    def estimated_latency_to_mote(self, estimated_latency_to_mote):
        """
        Sets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :param estimated_latency_to_mote: The estimated_latency_to_mote of this MoteInfo.
        :type: int
        """
        self._estimated_latency_to_mote = estimated_latency_to_mote

    @property
    def hw_model(self):
        """
        Gets the hw_model of this MoteInfo.
        Hardware model of the mote

        :return: The hw_model of this MoteInfo.
        :rtype: int
        """
        return self._hw_model

    @hw_model.setter
    def hw_model(self, hw_model):
        """
        Sets the hw_model of this MoteInfo.
        Hardware model of the mote

        :param hw_model: The hw_model of this MoteInfo.
        :type: int
        """
        self._hw_model = hw_model

    @property
    def hw_rev(self):
        """
        Gets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :return: The hw_rev of this MoteInfo.
        :rtype: int
        """
        return self._hw_rev

    @hw_rev.setter
    def hw_rev(self, hw_rev):
        """
        Sets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :param hw_rev: The hw_rev of this MoteInfo.
        :type: int
        """
        self._hw_rev = hw_rev

    @property
    def id(self):
        """
        Gets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :return: The id of this MoteInfo.
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :param id: The id of this MoteInfo.
        :type: int
        """
        self._id = id

    @property
    def join_sys_time(self):
        """
        Gets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :return: The join_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._join_sys_time

    @join_sys_time.setter
    def join_sys_time(self, join_sys_time):
        """
        Sets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :param join_sys_time: The join_sys_time of this MoteInfo.
        :type: datetime
        """
        self._join_sys_time = join_sys_time

    @property
    def last_voltage(self):
        """
        Gets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :return: The last_voltage of this MoteInfo.
        :rtype: int
        """
        return self._last_voltage

    @last_voltage.setter
    def last_voltage(self, last_voltage):
        """
        Sets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :param last_voltage: The last_voltage of this MoteInfo.
        :type: int
        """
        self._last_voltage = last_voltage

    @property
    def lost_packet_count(self):
        """
        Gets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :return: The lost_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._lost_packet_count

    @lost_packet_count.setter
    def lost_packet_count(self, lost_packet_count):
        """
        Sets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :param lost_packet_count: The lost_packet_count of this MoteInfo.
        :type: int
        """
        self._lost_packet_count = lost_packet_count
    <mask token>

    @mac_address.setter
    def mac_address(self, mac_address):
        """
        Sets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :param mac_address: The mac_address of this MoteInfo.
        :type: str
        """
        self._mac_address = mac_address

    @property
    def max_current(self):
        """
        Gets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :return: The max_current of this MoteInfo.
        :rtype: int
        """
        return self._max_current

    @max_current.setter
    def max_current(self, max_current):
        """
        Sets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :param max_current: The max_current of this MoteInfo.
        :type: int
        """
        self._max_current = max_current

    @property
    def max_num_links(self):
        """
        Gets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :return: The max_num_links of this MoteInfo.
        :rtype: int
        """
        return self._max_num_links

    @max_num_links.setter
    def max_num_links(self, max_num_links):
        """
        Sets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :param max_num_links: The max_num_links of this MoteInfo.
        :type: int
        """
        self._max_num_links = max_num_links

    @property
    def max_num_neighbors(self):
        """
        Gets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :return: The max_num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._max_num_neighbors

    @max_num_neighbors.setter
    def max_num_neighbors(self, max_num_neighbors):
        """
        Sets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :param max_num_neighbors: The max_num_neighbors of this MoteInfo.
        :type: int
        """
        self._max_num_neighbors = max_num_neighbors

    @property
    def need_neighbor(self):
        """
        Gets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :return: The need_neighbor of this MoteInfo.
        :rtype: bool
        """
        return self._need_neighbor

    @need_neighbor.setter
    def need_neighbor(self, need_neighbor):
        """
        Sets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the "numParents" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the "single-parent" mote in the first hop) for which needNeighbor is true.

        :param need_neighbor: The need_neighbor of this MoteInfo.
        :type: bool
        """
        self._need_neighbor = need_neighbor

    @property
    def num_good_neighbors(self):
        """
        Gets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :return: The num_good_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_good_neighbors

    @num_good_neighbors.setter
    def num_good_neighbors(self, num_good_neighbors):
        """
        Sets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :param num_good_neighbors: The num_good_neighbors of this MoteInfo.
        :type: int
        """
        self._num_good_neighbors = num_good_neighbors

    @property
    def num_joins(self):
        """
        Gets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :return: The num_joins of this MoteInfo.
        :rtype: int
        """
        return self._num_joins

    @num_joins.setter
    def num_joins(self, num_joins):
        """
        Sets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :param num_joins: The num_joins of this MoteInfo.
        :type: int
        """
        self._num_joins = num_joins

    @property
    def num_links(self):
        """
        Gets the num_links of this MoteInfo.
        Allocated links on the mote

        :return: The num_links of this MoteInfo.
        :rtype: int
        """
        return self._num_links

    @num_links.setter
    def num_links(self, num_links):
        """
        Sets the num_links of this MoteInfo.
        Allocated links on the mote

        :param num_links: The num_links of this MoteInfo.
        :type: int
        """
        self._num_links = num_links

    @property
    def num_neighbors(self):
        """
        Gets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :return: The num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_neighbors

    @num_neighbors.setter
    def num_neighbors(self, num_neighbors):
        """
        Sets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :param num_neighbors: The num_neighbors of this MoteInfo.
        :type: int
        """
        self._num_neighbors = num_neighbors

    @property
    def num_parents(self):
        """
        Gets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :return: The num_parents of this MoteInfo.
        :rtype: int
        """
        return self._num_parents

    @num_parents.setter
    def num_parents(self, num_parents):
        """
        Sets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :param num_parents: The num_parents of this MoteInfo.
        :type: int
        """
        self._num_parents = num_parents

    @property
    def power_cost_rx_link(self):
        """
        Gets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :return: The power_cost_rx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_rx_link

    @power_cost_rx_link.setter
    def power_cost_rx_link(self, power_cost_rx_link):
        """
        Sets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :param power_cost_rx_link: The power_cost_rx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_rx_link = power_cost_rx_link

    @property
    def power_cost_tx_link(self):
        """
        Gets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :return: The power_cost_tx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_tx_link

    @power_cost_tx_link.setter
    def power_cost_tx_link(self, power_cost_tx_link):
        """
        Sets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :param power_cost_tx_link: The power_cost_tx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_tx_link = power_cost_tx_link

    @property
    def reliability(self):
        """
        Gets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :return: The reliability of this MoteInfo.
        :rtype: float
        """
        return self._reliability
    <mask token>

    @property
    def rx_packet_count(self):
        """
        Gets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :return: The rx_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._rx_packet_count

    @rx_packet_count.setter
    def rx_packet_count(self, rx_packet_count):
        """
        Sets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :param rx_packet_count: The rx_packet_count of this MoteInfo.
        :type: int
        """
        self._rx_packet_count = rx_packet_count

    @property
    def stack_sw_rev(self):
        """
        Gets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :return: The stack_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._stack_sw_rev

    @stack_sw_rev.setter
    def stack_sw_rev(self, stack_sw_rev):
        """
        Sets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :param stack_sw_rev: The stack_sw_rev of this MoteInfo.
        :type: str
        """
        self._stack_sw_rev = stack_sw_rev

    @property
    def state(self):
        """
        Gets the state of this MoteInfo.
        Mote state

        :return: The state of this MoteInfo.
        :rtype: str
        """
        return self._state

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

        :param state: The state of this MoteInfo.
        :type: str
        """
        allowed_values = ['lost', 'negotiating', 'connected', 'operational',
            'decommissioned']
        if state not in allowed_values:
            raise ValueError('Invalid value for `state`, must be one of {0}'
                .format(allowed_values))
        self._state = state

    @property
    def state_reason(self):
        """
        Gets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :return: The state_reason of this MoteInfo.
        :rtype: str
        """
        return self._state_reason

    @state_reason.setter
    def state_reason(self, state_reason):
        """
        Sets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :param state_reason: The state_reason of this MoteInfo.
        :type: str
        """
        allowed_values = ['', 'none', 'rejoined', 'globalCmd',
            'initialization', 'noParents', 'noResources', 'unreachable',
            'transport', 'rcError', 'unexpected', 'forced']
        if state_reason not in allowed_values:
            raise ValueError(
                'Invalid value for `state_reason`, must be one of {0}'.
                format(allowed_values))
        self._state_reason = state_reason

    @property
    def state_sys_time(self):
        """
        Gets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :return: The state_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._state_sys_time
    <mask token>

    @property
    def used_current(self):
        """
        Gets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :return: The used_current of this MoteInfo.
        :rtype: int
        """
        return self._used_current

    @used_current.setter
    def used_current(self, used_current):
        """
        Sets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :param used_current: The used_current of this MoteInfo.
        :type: int
        """
        self._used_current = used_current

    def to_dict(self):
        """
        Returns the model properties as a dict
        """
        result = {}
        for attr, _ in 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()
            else:
                result[attr] = value
        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """ 
        Returns true if both objects are not equal
        """
        return not self == other

# coding: utf-8

"""
Copyright 2015 SmartBear Software

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    Ref: https://github.com/swagger-api/swagger-codegen
"""

from pprint import pformat
from six import iteritems


class MoteInfo(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self):
        """
        MoteInfo - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {
            'app_id': 'int',
            'app_sw_rev': 'str',
            'avg_hops': 'float',
            'avg_latency': 'int',
            'charge': 'int',
            'estimated_latency_to_mote': 'int',
            'hw_model': 'int',
            'hw_rev': 'int',
            'id': 'int',
            'join_sys_time': 'datetime',
            'last_voltage': 'int',
            'lost_packet_count': 'int',
            'mac_address': 'str',
            'max_current': 'int',
            'max_num_links': 'int',
            'max_num_neighbors': 'int',
            'need_neighbor': 'bool',
            'num_good_neighbors': 'int',
            'num_joins': 'int',
            'num_links': 'int',
            'num_neighbors': 'int',
            'num_parents': 'int',
            'power_cost_rx_link': 'int',
            'power_cost_tx_link': 'int',
            'reliability': 'float',
            'rx_packet_count': 'int',
            'stack_sw_rev': 'str',
            'state': 'str',
            'state_reason': 'str',
            'state_sys_time': 'datetime',
            'used_current': 'int'
        }

        self.attribute_map = {
            'app_id': 'appId',
            'app_sw_rev': 'appSwRev',
            'avg_hops': 'avgHops',
            'avg_latency': 'avgLatency',
            'charge': 'charge',
            'estimated_latency_to_mote': 'estimatedLatencyToMote',
            'hw_model': 'hwModel',
            'hw_rev': 'hwRev',
            'id': 'id',
            'join_sys_time': 'joinSysTime',
            'last_voltage': 'lastVoltage',
            'lost_packet_count': 'lostPacketCount',
            'mac_address': 'macAddress',
            'max_current': 'maxCurrent',
            'max_num_links': 'maxNumLinks',
            'max_num_neighbors': 'maxNumNeighbors',
            'need_neighbor': 'needNeighbor',
            'num_good_neighbors': 'numGoodNeighbors',
            'num_joins': 'numJoins',
            'num_links': 'numLinks',
            'num_neighbors': 'numNeighbors',
            'num_parents': 'numParents',
            'power_cost_rx_link': 'powerCostRxLink',
            'power_cost_tx_link': 'powerCostTxLink',
            'reliability': 'reliability',
            'rx_packet_count': 'rxPacketCount',
            'stack_sw_rev': 'stackSwRev',
            'state': 'state',
            'state_reason': 'stateReason',
            'state_sys_time': 'stateSysTime',
            'used_current': 'usedCurrent'
        }

        self._app_id = None
        self._app_sw_rev = None
        self._avg_hops = None
        self._avg_latency = None
        self._charge = None
        self._estimated_latency_to_mote = None
        self._hw_model = None
        self._hw_rev = None
        self._id = None
        self._join_sys_time = None
        self._last_voltage = None
        self._lost_packet_count = None
        self._mac_address = None
        self._max_current = None
        self._max_num_links = None
        self._max_num_neighbors = None
        self._need_neighbor = None
        self._num_good_neighbors = None
        self._num_joins = None
        self._num_links = None
        self._num_neighbors = None
        self._num_parents = None
        self._power_cost_rx_link = None
        self._power_cost_tx_link = None
        self._reliability = None
        self._rx_packet_count = None
        self._stack_sw_rev = None
        self._state = None
        self._state_reason = None
        self._state_sys_time = None
        self._used_current = None

    @property
    def app_id(self):
        """
        Gets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :return: The app_id of this MoteInfo.
        :rtype: int
        """
        return self._app_id

    @app_id.setter
    def app_id(self, app_id):
        """
        Sets the app_id of this MoteInfo.
        Identifier for the application running on the mote

        :param app_id: The app_id of this MoteInfo.
        :type: int
        """
        self._app_id = app_id

    @property
    def app_sw_rev(self):
        """
        Gets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :return: The app_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._app_sw_rev

    @app_sw_rev.setter
    def app_sw_rev(self, app_sw_rev):
        """
        Sets the app_sw_rev of this MoteInfo.
        Software version of the mote's application software

        :param app_sw_rev: The app_sw_rev of this MoteInfo.
        :type: str
        """
        self._app_sw_rev = app_sw_rev

    @property
    def avg_hops(self):
        """
        Gets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :return: The avg_hops of this MoteInfo.
        :rtype: float
        """
        return self._avg_hops

    @avg_hops.setter
    def avg_hops(self, avg_hops):
        """
        Sets the avg_hops of this MoteInfo.
        Average hop count of packets traveling from the mote to the Manager*

        :param avg_hops: The avg_hops of this MoteInfo.
        :type: float
        """
        self._avg_hops = avg_hops

    @property
    def avg_latency(self):
        """
        Gets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :return: The avg_latency of this MoteInfo.
        :rtype: int
        """
        return self._avg_latency

    @avg_latency.setter
    def avg_latency(self, avg_latency):
        """
        Sets the avg_latency of this MoteInfo.
        Average latency of packets received from the mote, in milliseconds*

        :param avg_latency: The avg_latency of this MoteInfo.
        :type: int
        """
        self._avg_latency = avg_latency

    @property
    def charge(self):
        """
        Gets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :return: The charge of this MoteInfo.
        :rtype: int
        """
        return self._charge

    @charge.setter
    def charge(self, charge):
        """
        Sets the charge of this MoteInfo.
        Cumulative charge consumed by the mote, in milliCoulombs

        :param charge: The charge of this MoteInfo.
        :type: int
        """
        self._charge = charge

    @property
    def estimated_latency_to_mote(self):
        """
        Gets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :return: The estimated_latency_to_mote of this MoteInfo.
        :rtype: int
        """
        return self._estimated_latency_to_mote

    @estimated_latency_to_mote.setter
    def estimated_latency_to_mote(self, estimated_latency_to_mote):
        """
        Sets the estimated_latency_to_mote of this MoteInfo.
        Estimated time for a packet to reach the mote, in milliseconds.

        :param estimated_latency_to_mote: The estimated_latency_to_mote of this MoteInfo.
        :type: int
        """
        self._estimated_latency_to_mote = estimated_latency_to_mote

    @property
    def hw_model(self):
        """
        Gets the hw_model of this MoteInfo.
        Hardware model of the mote

        :return: The hw_model of this MoteInfo.
        :rtype: int
        """
        return self._hw_model

    @hw_model.setter
    def hw_model(self, hw_model):
        """
        Sets the hw_model of this MoteInfo.
        Hardware model of the mote

        :param hw_model: The hw_model of this MoteInfo.
        :type: int
        """
        self._hw_model = hw_model

    @property
    def hw_rev(self):
        """
        Gets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :return: The hw_rev of this MoteInfo.
        :rtype: int
        """
        return self._hw_rev

    @hw_rev.setter
    def hw_rev(self, hw_rev):
        """
        Sets the hw_rev of this MoteInfo.
        Hardware revision of the mote

        :param hw_rev: The hw_rev of this MoteInfo.
        :type: int
        """
        self._hw_rev = hw_rev

    @property
    def id(self):
        """
        Gets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :return: The id of this MoteInfo.
        :rtype: int
        """
        return self._id

    @id.setter
    def id(self, id):
        """
        Sets the id of this MoteInfo.
        Numeric mote identifier, used as a shortcut on CLI. The id should not be used to uniquely identify a mote as it is not guaranteed to remain constant after a mote reset

        :param id: The id of this MoteInfo.
        :type: int
        """
        self._id = id

    @property
    def join_sys_time(self):
        """
        Gets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :return: The join_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._join_sys_time

    @join_sys_time.setter
    def join_sys_time(self, join_sys_time):
        """
        Sets the join_sys_time of this MoteInfo.
        System time at which the mote last joined, in ISO 8601 format

        :param join_sys_time: The join_sys_time of this MoteInfo.
        :type: datetime
        """
        self._join_sys_time = join_sys_time

    @property
    def last_voltage(self):
        """
        Gets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :return: The last_voltage of this MoteInfo.
        :rtype: int
        """
        return self._last_voltage

    @last_voltage.setter
    def last_voltage(self, last_voltage):
        """
        Sets the last_voltage of this MoteInfo.
        Last voltage measured by mote, in volts

        :param last_voltage: The last_voltage of this MoteInfo.
        :type: int
        """
        self._last_voltage = last_voltage

    @property
    def lost_packet_count(self):
        """
        Gets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :return: The lost_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._lost_packet_count

    @lost_packet_count.setter
    def lost_packet_count(self, lost_packet_count):
        """
        Sets the lost_packet_count of this MoteInfo.
        Number of lost packets from the mote as calculated by the Manager based on the mote's security counter*

        :param lost_packet_count: The lost_packet_count of this MoteInfo.
        :type: int
        """
        self._lost_packet_count = lost_packet_count

    @property
    def mac_address(self):
        """
        Gets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :return: The mac_address of this MoteInfo.
        :rtype: str
        """
        return self._mac_address

    @mac_address.setter
    def mac_address(self, mac_address):
        """
        Sets the mac_address of this MoteInfo.
        Mote MAC address. The mote MAC address is a unique identifier of the mote

        :param mac_address: The mac_address of this MoteInfo.
        :type: str
        """
        self._mac_address = mac_address

    @property
    def max_current(self):
        """
        Gets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :return: The max_current of this MoteInfo.
        :rtype: int
        """
        return self._max_current

    @max_current.setter
    def max_current(self, max_current):
        """
        Sets the max_current of this MoteInfo.
        Maximum steady-state current allowed by the mote's power supply

        :param max_current: The max_current of this MoteInfo.
        :type: int
        """
        self._max_current = max_current

    @property
    def max_num_links(self):
        """
        Gets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :return: The max_num_links of this MoteInfo.
        :rtype: int
        """
        return self._max_num_links

    @max_num_links.setter
    def max_num_links(self, max_num_links):
        """
        Sets the max_num_links of this MoteInfo.
        Maximum number of links supported by the mote

        :param max_num_links: The max_num_links of this MoteInfo.
        :type: int
        """
        self._max_num_links = max_num_links

    @property
    def max_num_neighbors(self):
        """
        Gets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :return: The max_num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._max_num_neighbors

    @max_num_neighbors.setter
    def max_num_neighbors(self, max_num_neighbors):
        """
        Sets the max_num_neighbors of this MoteInfo.
        Maximum number of neighbors supported by the mote

        :param max_num_neighbors: The max_num_neighbors of this MoteInfo.
        :type: int
        """
        self._max_num_neighbors = max_num_neighbors

    @property
    def need_neighbor(self):
        """
        Gets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the \"numParents\" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the \"single-parent\" mote in the first hop) for which needNeighbor is true.

        :return: The need_neighbor of this MoteInfo.
        :rtype: bool
        """
        return self._need_neighbor

    @need_neighbor.setter
    def need_neighbor(self, need_neighbor):
        """
        Sets the need_neighbor of this MoteInfo.
        Indicates that either (1) the mote has fewer parents than defined by the \"numParents\" parameter, or (2) the mote does not have enough links to parents to support its upstream bandwidth requirements. If this field is true, it indicates that an additional routing mote needs to be added nearby. Note that a network with a single AP mote will have one mote (the \"single-parent\" mote in the first hop) for which needNeighbor is true.

        :param need_neighbor: The need_neighbor of this MoteInfo.
        :type: bool
        """
        self._need_neighbor = need_neighbor

    @property
    def num_good_neighbors(self):
        """
        Gets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :return: The num_good_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_good_neighbors

    @num_good_neighbors.setter
    def num_good_neighbors(self, num_good_neighbors):
        """
        Sets the num_good_neighbors of this MoteInfo.
        The number of neighbors to which the mote has a good quality path

        :param num_good_neighbors: The num_good_neighbors of this MoteInfo.
        :type: int
        """
        self._num_good_neighbors = num_good_neighbors

    @property
    def num_joins(self):
        """
        Gets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :return: The num_joins of this MoteInfo.
        :rtype: int
        """
        return self._num_joins

    @num_joins.setter
    def num_joins(self, num_joins):
        """
        Sets the num_joins of this MoteInfo.
        Total number of times the mote has joined the manager

        :param num_joins: The num_joins of this MoteInfo.
        :type: int
        """
        self._num_joins = num_joins

    @property
    def num_links(self):
        """
        Gets the num_links of this MoteInfo.
        Allocated links on the mote

        :return: The num_links of this MoteInfo.
        :rtype: int
        """
        return self._num_links

    @num_links.setter
    def num_links(self, num_links):
        """
        Sets the num_links of this MoteInfo.
        Allocated links on the mote

        :param num_links: The num_links of this MoteInfo.
        :type: int
        """
        self._num_links = num_links

    @property
    def num_neighbors(self):
        """
        Gets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :return: The num_neighbors of this MoteInfo.
        :rtype: int
        """
        return self._num_neighbors

    @num_neighbors.setter
    def num_neighbors(self, num_neighbors):
        """
        Sets the num_neighbors of this MoteInfo.
        The number of neighbors (potential and connected) reachable by the mote

        :param num_neighbors: The num_neighbors of this MoteInfo.
        :type: int
        """
        self._num_neighbors = num_neighbors

    @property
    def num_parents(self):
        """
        Gets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :return: The num_parents of this MoteInfo.
        :rtype: int
        """
        return self._num_parents

    @num_parents.setter
    def num_parents(self, num_parents):
        """
        Sets the num_parents of this MoteInfo.
        Number of parents assigned to the mote

        :param num_parents: The num_parents of this MoteInfo.
        :type: int
        """
        self._num_parents = num_parents

    @property
    def power_cost_rx_link(self):
        """
        Gets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :return: The power_cost_rx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_rx_link

    @power_cost_rx_link.setter
    def power_cost_rx_link(self, power_cost_rx_link):
        """
        Sets the power_cost_rx_link of this MoteInfo.
        Power cost of one RX link

        :param power_cost_rx_link: The power_cost_rx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_rx_link = power_cost_rx_link

    @property
    def power_cost_tx_link(self):
        """
        Gets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :return: The power_cost_tx_link of this MoteInfo.
        :rtype: int
        """
        return self._power_cost_tx_link

    @power_cost_tx_link.setter
    def power_cost_tx_link(self, power_cost_tx_link):
        """
        Sets the power_cost_tx_link of this MoteInfo.
        Power cost of one TX link

        :param power_cost_tx_link: The power_cost_tx_link of this MoteInfo.
        :type: int
        """
        self._power_cost_tx_link = power_cost_tx_link

    @property
    def reliability(self):
        """
        Gets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :return: The reliability of this MoteInfo.
        :rtype: float
        """
        return self._reliability

    @reliability.setter
    def reliability(self, reliability):
        """
        Sets the reliability of this MoteInfo.
        Data reliability, % of packets received from the mote. A negative value means not enough data has been collected.*

        :param reliability: The reliability of this MoteInfo.
        :type: float
        """
        self._reliability = reliability

    @property
    def rx_packet_count(self):
        """
        Gets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :return: The rx_packet_count of this MoteInfo.
        :rtype: int
        """
        return self._rx_packet_count

    @rx_packet_count.setter
    def rx_packet_count(self, rx_packet_count):
        """
        Sets the rx_packet_count of this MoteInfo.
        Number of packets received from the mote*

        :param rx_packet_count: The rx_packet_count of this MoteInfo.
        :type: int
        """
        self._rx_packet_count = rx_packet_count

    @property
    def stack_sw_rev(self):
        """
        Gets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :return: The stack_sw_rev of this MoteInfo.
        :rtype: str
        """
        return self._stack_sw_rev

    @stack_sw_rev.setter
    def stack_sw_rev(self, stack_sw_rev):
        """
        Sets the stack_sw_rev of this MoteInfo.
        Software version of the mote's network stack

        :param stack_sw_rev: The stack_sw_rev of this MoteInfo.
        :type: str
        """
        self._stack_sw_rev = stack_sw_rev

    @property
    def state(self):
        """
        Gets the state of this MoteInfo.
        Mote state

        :return: The state of this MoteInfo.
        :rtype: str
        """
        return self._state

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

        :param state: The state of this MoteInfo.
        :type: str
        """
        allowed_values = ["lost", "negotiating", "connected", "operational", "decommissioned"]
        if state not in allowed_values:
            raise ValueError(
                "Invalid value for `state`, must be one of {0}"
                .format(allowed_values)
            )
        self._state = state

    @property
    def state_reason(self):
        """
        Gets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :return: The state_reason of this MoteInfo.
        :rtype: str
        """
        return self._state_reason

    @state_reason.setter
    def state_reason(self, state_reason):
        """
        Sets the state_reason of this MoteInfo.
        The reason mote is in the current state

        :param state_reason: The state_reason of this MoteInfo.
        :type: str
        """
        allowed_values = ["", "none", "rejoined", "globalCmd", "initialization", "noParents", "noResources", "unreachable", "transport", "rcError", "unexpected", "forced"]
        if state_reason not in allowed_values:
            raise ValueError(
                "Invalid value for `state_reason`, must be one of {0}"
                .format(allowed_values)
            )
        self._state_reason = state_reason

    @property
    def state_sys_time(self):
        """
        Gets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :return: The state_sys_time of this MoteInfo.
        :rtype: datetime
        """
        return self._state_sys_time

    @state_sys_time.setter
    def state_sys_time(self, state_sys_time):
        """
        Sets the state_sys_time of this MoteInfo.
        Time of last state change, in ISO 8601 format

        :param state_sys_time: The state_sys_time of this MoteInfo.
        :type: datetime
        """
        self._state_sys_time = state_sys_time

    @property
    def used_current(self):
        """
        Gets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :return: The used_current of this MoteInfo.
        :rtype: int
        """
        return self._used_current

    @used_current.setter
    def used_current(self, used_current):
        """
        Sets the used_current of this MoteInfo.
        Estimated steady-state current being used

        :param used_current: The used_current of this MoteInfo.
        :type: int
        """
        self._used_current = used_current

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

        for attr, _ in 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()
            else:
                result[attr] = value

        return result

    def to_str(self):
        """
        Returns the string representation of the model
        """
        return 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
        """
        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """ 
        Returns true if both objects are not equal
        """
        return not self == other

