azext_iot/central/models/ga_2022_07_31/device.py (29 lines of code) (raw):
# coding=utf-8
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
from azext_iot.central.models.enum import DeviceStatus
class Device:
def __init__(self, device: dict):
self.enabled = device.get("enabled")
self.display_name = device.get("displayName")
self.etag = device.get("etag")
self.id = device.get("id")
self.template = device.get("template")
self.provisioned = device.get("provisioned")
self.simulated = device.get("simulated")
self.organizations = device.get("organizations")
self._device_status = self._parse_device_status()
def _parse_device_status(self) -> DeviceStatus:
if not self.enabled:
return DeviceStatus.blocked
if not self.template:
return DeviceStatus.unassociated
if not self.provisioned:
return DeviceStatus.registered
return DeviceStatus.provisioned
def get_registration_info(self) -> dict:
registration_info = {
"device_status": self._device_status.value,
"display_name": self.display_name,
"id": self.id,
"simulated": self.simulated,
"template": self.template,
}
return registration_info