# 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 RepeaterModelV3(Model):
    """RepeaterModelV3.

    All required parameters must be populated in order to send to Azure.

    :param id:
    :type id: long
    :param serial_number: Required.
    :type serial_number: str
    :param radio_mac_address:
    :type radio_mac_address: str
    :param location_id:
    :type location_id: str
    :param location_name:
    :type location_name: str
    :param corporation_id:
    :type corporation_id: str
    :param corporation_name:
    :type corporation_name: str
    :param last_status_update:
    :type last_status_update: datetime
    :param active:
    :type active: bool
    :param type: Possible values include: 'Unknown', 'BaseStation', 'Repeater'
    :type type: str or ~smartdiagnostics_sdk.models.enum
    """

    _validation = {
        'serial_number': {'required': True},
    }

    _attribute_map = {
        'id': {'key': 'Id', 'type': 'long'},
        'serial_number': {'key': 'SerialNumber', 'type': 'str'},
        'radio_mac_address': {'key': 'RadioMacAddress', 'type': 'str'},
        'location_id': {'key': 'LocationId', 'type': 'str'},
        'location_name': {'key': 'LocationName', 'type': 'str'},
        'corporation_id': {'key': 'CorporationId', 'type': 'str'},
        'corporation_name': {'key': 'CorporationName', 'type': 'str'},
        'last_status_update': {'key': 'LastStatusUpdate', 'type': 'iso-8601'},
        'active': {'key': 'Active', 'type': 'bool'},
        'type': {'key': 'Type', 'type': 'str'},
    }

    def __init__(self, *, serial_number: str, id: int=None, radio_mac_address: str=None, location_id: str=None, location_name: str=None, corporation_id: str=None, corporation_name: str=None, last_status_update=None, active: bool=None, type=None, **kwargs) -> None:
        super(RepeaterModelV3, self).__init__(**kwargs)
        self.id = id
        self.serial_number = serial_number
        self.radio_mac_address = radio_mac_address
        self.location_id = location_id
        self.location_name = location_name
        self.corporation_id = corporation_id
        self.corporation_name = corporation_name
        self.last_status_update = last_status_update
        self.active = active
        self.type = type
