您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

259 行
7.7 KiB

  1. from collections.abc import Mapping
  2. from typing import Any, TypeVar, Union
  3. from uuid import UUID
  4. from attrs import define as _attrs_define
  5. from attrs import field as _attrs_field
  6. from ..types import UNSET, Unset
  7. T = TypeVar("T", bound="AlarmItem")
  8. @_attrs_define
  9. class AlarmItem:
  10. """Alarm triggered if a monitored subject is lost or out of their zone
  11. Attributes:
  12. id (str): ID
  13. time (Union[Unset, str]): Time
  14. type_ (Union[Unset, str]): Type
  15. status (Union[Unset, str]): Status
  16. gateway (Union[Unset, UUID]): Gateway
  17. gateway_mac (Union[Unset, str]): Gateway MAC
  18. gateway_name (Union[Unset, str]): Gateway name
  19. tracker (Union[Unset, UUID]): Tracker
  20. tracker_mac (Union[Unset, str]): Tracker MAC
  21. tracker_name (Union[Unset, str]): Tracker name
  22. subject (Union[Unset, UUID]): Subject
  23. subject_name (Union[Unset, str]): Subject name
  24. operator (Union[Unset, UUID]): Operator
  25. operator_name (Union[Unset, str]): Operator name
  26. zone (Union[Unset, UUID]): Zone
  27. zone_name (Union[Unset, str]): Zone name
  28. building (Union[Unset, UUID]): Building
  29. building_name (Union[Unset, str]): Building name
  30. """
  31. id: str
  32. time: Union[Unset, str] = UNSET
  33. type_: Union[Unset, str] = UNSET
  34. status: Union[Unset, str] = UNSET
  35. gateway: Union[Unset, UUID] = UNSET
  36. gateway_mac: Union[Unset, str] = UNSET
  37. gateway_name: Union[Unset, str] = UNSET
  38. tracker: Union[Unset, UUID] = UNSET
  39. tracker_mac: Union[Unset, str] = UNSET
  40. tracker_name: Union[Unset, str] = UNSET
  41. subject: Union[Unset, UUID] = UNSET
  42. subject_name: Union[Unset, str] = UNSET
  43. operator: Union[Unset, UUID] = UNSET
  44. operator_name: Union[Unset, str] = UNSET
  45. zone: Union[Unset, UUID] = UNSET
  46. zone_name: Union[Unset, str] = UNSET
  47. building: Union[Unset, UUID] = UNSET
  48. building_name: Union[Unset, str] = UNSET
  49. additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
  50. def to_dict(self) -> dict[str, Any]:
  51. id = self.id
  52. time = self.time
  53. type_ = self.type_
  54. status = self.status
  55. gateway: Union[Unset, str] = UNSET
  56. if not isinstance(self.gateway, Unset):
  57. gateway = str(self.gateway)
  58. gateway_mac = self.gateway_mac
  59. gateway_name = self.gateway_name
  60. tracker: Union[Unset, str] = UNSET
  61. if not isinstance(self.tracker, Unset):
  62. tracker = str(self.tracker)
  63. tracker_mac = self.tracker_mac
  64. tracker_name = self.tracker_name
  65. subject: Union[Unset, str] = UNSET
  66. if not isinstance(self.subject, Unset):
  67. subject = str(self.subject)
  68. subject_name = self.subject_name
  69. operator: Union[Unset, str] = UNSET
  70. if not isinstance(self.operator, Unset):
  71. operator = str(self.operator)
  72. operator_name = self.operator_name
  73. zone: Union[Unset, str] = UNSET
  74. if not isinstance(self.zone, Unset):
  75. zone = str(self.zone)
  76. zone_name = self.zone_name
  77. building: Union[Unset, str] = UNSET
  78. if not isinstance(self.building, Unset):
  79. building = str(self.building)
  80. building_name = self.building_name
  81. field_dict: dict[str, Any] = {}
  82. field_dict.update(self.additional_properties)
  83. field_dict.update(
  84. {
  85. "id": id,
  86. }
  87. )
  88. if time is not UNSET:
  89. field_dict["time"] = time
  90. if type_ is not UNSET:
  91. field_dict["type"] = type_
  92. if status is not UNSET:
  93. field_dict["status"] = status
  94. if gateway is not UNSET:
  95. field_dict["gateway"] = gateway
  96. if gateway_mac is not UNSET:
  97. field_dict["gatewayMac"] = gateway_mac
  98. if gateway_name is not UNSET:
  99. field_dict["gatewayName"] = gateway_name
  100. if tracker is not UNSET:
  101. field_dict["tracker"] = tracker
  102. if tracker_mac is not UNSET:
  103. field_dict["trackerMac"] = tracker_mac
  104. if tracker_name is not UNSET:
  105. field_dict["trackerName"] = tracker_name
  106. if subject is not UNSET:
  107. field_dict["subject"] = subject
  108. if subject_name is not UNSET:
  109. field_dict["subjectName"] = subject_name
  110. if operator is not UNSET:
  111. field_dict["operator"] = operator
  112. if operator_name is not UNSET:
  113. field_dict["operatorName"] = operator_name
  114. if zone is not UNSET:
  115. field_dict["zone"] = zone
  116. if zone_name is not UNSET:
  117. field_dict["zoneName"] = zone_name
  118. if building is not UNSET:
  119. field_dict["building"] = building
  120. if building_name is not UNSET:
  121. field_dict["buildingName"] = building_name
  122. return field_dict
  123. @classmethod
  124. def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
  125. d = dict(src_dict)
  126. id = d.pop("id")
  127. time = d.pop("time", UNSET)
  128. type_ = d.pop("type", UNSET)
  129. status = d.pop("status", UNSET)
  130. _gateway = d.pop("gateway", UNSET)
  131. gateway: Union[Unset, UUID]
  132. if isinstance(_gateway, Unset):
  133. gateway = UNSET
  134. else:
  135. gateway = UUID(_gateway)
  136. gateway_mac = d.pop("gatewayMac", UNSET)
  137. gateway_name = d.pop("gatewayName", UNSET)
  138. _tracker = d.pop("tracker", UNSET)
  139. tracker: Union[Unset, UUID]
  140. if isinstance(_tracker, Unset):
  141. tracker = UNSET
  142. else:
  143. tracker = UUID(_tracker)
  144. tracker_mac = d.pop("trackerMac", UNSET)
  145. tracker_name = d.pop("trackerName", UNSET)
  146. _subject = d.pop("subject", UNSET)
  147. subject: Union[Unset, UUID]
  148. if isinstance(_subject, Unset):
  149. subject = UNSET
  150. else:
  151. subject = UUID(_subject)
  152. subject_name = d.pop("subjectName", UNSET)
  153. _operator = d.pop("operator", UNSET)
  154. operator: Union[Unset, UUID]
  155. if isinstance(_operator, Unset):
  156. operator = UNSET
  157. else:
  158. operator = UUID(_operator)
  159. operator_name = d.pop("operatorName", UNSET)
  160. _zone = d.pop("zone", UNSET)
  161. zone: Union[Unset, UUID]
  162. if isinstance(_zone, Unset):
  163. zone = UNSET
  164. else:
  165. zone = UUID(_zone)
  166. zone_name = d.pop("zoneName", UNSET)
  167. _building = d.pop("building", UNSET)
  168. building: Union[Unset, UUID]
  169. if isinstance(_building, Unset):
  170. building = UNSET
  171. else:
  172. building = UUID(_building)
  173. building_name = d.pop("buildingName", UNSET)
  174. alarm_item = cls(
  175. id=id,
  176. time=time,
  177. type_=type_,
  178. status=status,
  179. gateway=gateway,
  180. gateway_mac=gateway_mac,
  181. gateway_name=gateway_name,
  182. tracker=tracker,
  183. tracker_mac=tracker_mac,
  184. tracker_name=tracker_name,
  185. subject=subject,
  186. subject_name=subject_name,
  187. operator=operator,
  188. operator_name=operator_name,
  189. zone=zone,
  190. zone_name=zone_name,
  191. building=building,
  192. building_name=building_name,
  193. )
  194. alarm_item.additional_properties = d
  195. return alarm_item
  196. @property
  197. def additional_keys(self) -> list[str]:
  198. return list(self.additional_properties.keys())
  199. def __getitem__(self, key: str) -> Any:
  200. return self.additional_properties[key]
  201. def __setitem__(self, key: str, value: Any) -> None:
  202. self.additional_properties[key] = value
  203. def __delitem__(self, key: str) -> None:
  204. del self.additional_properties[key]
  205. def __contains__(self, key: str) -> bool:
  206. return key in self.additional_properties