# coding: utf-8

"""
    UBIKA WAAP Gateway and Cloud API

    The UBIKA's WAAP management API provides a REST/JSON programming interface. It allows automation and scripting of WAAP administration tasks, such as management of reverse proxies and tunnels. The API documentation is shipped with the product itself. Once the product installed, you can access the documentation on the following URL https://ManagementWAAP:3001/api/v1/doc/  # noqa: E501

    The version of the OpenAPI document: 1.0.9
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from ubika_waap_api_client.configuration import Configuration


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

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        'appliance': 'CreateApplianceSysctlProfile',
        'uid': 'str',
        'name': 'str',
        'status': 'str',
        'mac': 'str',
        'mtu': 'str',
        'autoneg': 'str',
        'duplex': 'str',
        'speed': 'str',
        'interfaces': 'list[object]',
        'used_by': 'list[GetNetworkDevicesUsedBySuccessArray]',
        't_update': 'float'
    }

    attribute_map = {
        'appliance': 'appliance',
        'uid': 'uid',
        'name': 'name',
        'status': 'status',
        'mac': 'mac',
        'mtu': 'mtu',
        'autoneg': 'autoneg',
        'duplex': 'duplex',
        'speed': 'speed',
        'interfaces': 'interfaces',
        'used_by': 'usedBy',
        't_update': 'tUpdate'
    }

    def __init__(self, appliance=None, uid=None, name=None, status=None, mac=None, mtu=None, autoneg=None, duplex=None, speed=None, interfaces=None, used_by=None, t_update=None, local_vars_configuration=None):  # noqa: E501
        """GetNetworkDevicesDataSuccessArray - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._appliance = None
        self._uid = None
        self._name = None
        self._status = None
        self._mac = None
        self._mtu = None
        self._autoneg = None
        self._duplex = None
        self._speed = None
        self._interfaces = None
        self._used_by = None
        self._t_update = None
        self.discriminator = None

        if appliance is not None:
            self.appliance = appliance
        if uid is not None:
            self.uid = uid
        if name is not None:
            self.name = name
        if status is not None:
            self.status = status
        if mac is not None:
            self.mac = mac
        if mtu is not None:
            self.mtu = mtu
        if autoneg is not None:
            self.autoneg = autoneg
        if duplex is not None:
            self.duplex = duplex
        if speed is not None:
            self.speed = speed
        if interfaces is not None:
            self.interfaces = interfaces
        if used_by is not None:
            self.used_by = used_by
        if t_update is not None:
            self.t_update = t_update

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


        :return: The appliance of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: CreateApplianceSysctlProfile
        """
        return self._appliance

    @appliance.setter
    def appliance(self, appliance):
        """Sets the appliance of this GetNetworkDevicesDataSuccessArray.


        :param appliance: The appliance of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: CreateApplianceSysctlProfile
        """

        self._appliance = appliance

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


        :return: The uid of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: str
        """
        return self._uid

    @uid.setter
    def uid(self, uid):
        """Sets the uid of this GetNetworkDevicesDataSuccessArray.


        :param uid: The uid of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: str
        """

        self._uid = uid

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


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

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


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

        self._name = name

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


        :return: The status of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """Sets the status of this GetNetworkDevicesDataSuccessArray.


        :param status: The status of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: str
        """

        self._status = status

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


        :return: The mac of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: str
        """
        return self._mac

    @mac.setter
    def mac(self, mac):
        """Sets the mac of this GetNetworkDevicesDataSuccessArray.


        :param mac: The mac of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: str
        """

        self._mac = mac

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


        :return: The mtu of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: str
        """
        return self._mtu

    @mtu.setter
    def mtu(self, mtu):
        """Sets the mtu of this GetNetworkDevicesDataSuccessArray.


        :param mtu: The mtu of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: str
        """

        self._mtu = mtu

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


        :return: The autoneg of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: str
        """
        return self._autoneg

    @autoneg.setter
    def autoneg(self, autoneg):
        """Sets the autoneg of this GetNetworkDevicesDataSuccessArray.


        :param autoneg: The autoneg of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: str
        """

        self._autoneg = autoneg

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


        :return: The duplex of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: str
        """
        return self._duplex

    @duplex.setter
    def duplex(self, duplex):
        """Sets the duplex of this GetNetworkDevicesDataSuccessArray.


        :param duplex: The duplex of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: str
        """

        self._duplex = duplex

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


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

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


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

        self._speed = speed

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


        :return: The interfaces of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: list[object]
        """
        return self._interfaces

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


        :param interfaces: The interfaces of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: list[object]
        """

        self._interfaces = interfaces

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


        :return: The used_by of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: list[GetNetworkDevicesUsedBySuccessArray]
        """
        return self._used_by

    @used_by.setter
    def used_by(self, used_by):
        """Sets the used_by of this GetNetworkDevicesDataSuccessArray.


        :param used_by: The used_by of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: list[GetNetworkDevicesUsedBySuccessArray]
        """

        self._used_by = used_by

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


        :return: The t_update of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :rtype: float
        """
        return self._t_update

    @t_update.setter
    def t_update(self, t_update):
        """Sets the t_update of this GetNetworkDevicesDataSuccessArray.


        :param t_update: The t_update of this GetNetworkDevicesDataSuccessArray.  # noqa: E501
        :type: float
        """

        self._t_update = t_update

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

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, GetNetworkDevicesDataSuccessArray):
            return False

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

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

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