# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class HubResponse(Model):
    """HubResponse.

    :param id:
    :type id: long
    :param receiver:
    :type receiver: ~smartdiagnostics_sdk.models.ReceiverChild
    :param location:
    :type location: ~smartdiagnostics_sdk.models.LocationChild
    :param corporation:
    :type corporation: ~smartdiagnostics_sdk.models.CorporationChild
    :param serial_number:
    :type serial_number: str
    :param nickname:
    :type nickname: str
    :param power_type_id: Possible values include: 'Unspecified', 'DC (24V)',
     'Battery', 'AC (120V)'
    :type power_type_id: str or ~smartdiagnostics_sdk.models.enum
    :param firmware_version:
    :type firmware_version: str
    :param hub_type_id: Possible values include: 'Unknown', 'Version 1
     (SevenPort)'
    :type hub_type_id: str or ~smartdiagnostics_sdk.models.enum
    :param created:
    :type created: datetime
    :param updated:
    :type updated: datetime
    :param packet_success_rate:
    :type packet_success_rate: float
    :param wireless_efficiency:
    :type wireless_efficiency: float
    :param is_online:
    :type is_online: bool
    :param triggering_enabled:
    :type triggering_enabled: bool
    :param ports:
    :type ports: list[~smartdiagnostics_sdk.models.HubPortChild]
    """

    _validation = {
        'serial_number': {'max_length': 16},
        'nickname': {'max_length': 50},
    }

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'long'},
        'receiver': {'key': 'Receiver', 'type': 'ReceiverChild'},
        'location': {'key': 'Location', 'type': 'LocationChild'},
        'corporation': {'key': 'Corporation', 'type': 'CorporationChild'},
        'serial_number': {'key': 'SerialNumber', 'type': 'str'},
        'nickname': {'key': 'Nickname', 'type': 'str'},
        'power_type_id': {'key': 'PowerTypeId', 'type': 'str'},
        'firmware_version': {'key': 'FirmwareVersion', 'type': 'str'},
        'hub_type_id': {'key': 'HubTypeId', 'type': 'str'},
        'created': {'key': 'Created', 'type': 'iso-8601'},
        'updated': {'key': 'Updated', 'type': 'iso-8601'},
        'packet_success_rate': {'key': 'PacketSuccessRate', 'type': 'float'},
        'wireless_efficiency': {'key': 'WirelessEfficiency', 'type': 'float'},
        'is_online': {'key': 'IsOnline', 'type': 'bool'},
        'triggering_enabled': {'key': 'TriggeringEnabled', 'type': 'bool'},
        'ports': {'key': 'Ports', 'type': '[HubPortChild]'},
    }

    def __init__(self, **kwargs):
        super(HubResponse, self).__init__(**kwargs)
        self.id = kwargs.get('id', None)
        self.receiver = kwargs.get('receiver', None)
        self.location = kwargs.get('location', None)
        self.corporation = kwargs.get('corporation', None)
        self.serial_number = kwargs.get('serial_number', None)
        self.nickname = kwargs.get('nickname', None)
        self.power_type_id = kwargs.get('power_type_id', None)
        self.firmware_version = kwargs.get('firmware_version', None)
        self.hub_type_id = kwargs.get('hub_type_id', None)
        self.created = kwargs.get('created', None)
        self.updated = kwargs.get('updated', None)
        self.packet_success_rate = kwargs.get('packet_success_rate', None)
        self.wireless_efficiency = kwargs.get('wireless_efficiency', None)
        self.is_online = kwargs.get('is_online', None)
        self.triggering_enabled = kwargs.get('triggering_enabled', None)
        self.ports = kwargs.get('ports', None)
