tb-rest-client 3.9.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1111) hide show
  1. tb_rest_client/__init__.py +16 -0
  2. tb_rest_client/api/__init__.py +14 -0
  3. tb_rest_client/api/api_ce/__init__.py +66 -0
  4. tb_rest_client/api/api_ce/admin_controller_api.py +2250 -0
  5. tb_rest_client/api/api_ce/alarm_comment_controller_api.py +376 -0
  6. tb_rest_client/api/api_ce/alarm_controller_api.py +1639 -0
  7. tb_rest_client/api/api_ce/asset_controller_api.py +2040 -0
  8. tb_rest_client/api/api_ce/asset_profile_controller_api.py +934 -0
  9. tb_rest_client/api/api_ce/audit_log_controller_api.py +587 -0
  10. tb_rest_client/api/api_ce/auth_controller_api.py +882 -0
  11. tb_rest_client/api/api_ce/component_descriptor_controller_api.py +340 -0
  12. tb_rest_client/api/api_ce/customer_controller_api.py +731 -0
  13. tb_rest_client/api/api_ce/dashboard_controller_api.py +2364 -0
  14. tb_rest_client/api/api_ce/device_api_controller_api.py +1212 -0
  15. tb_rest_client/api/api_ce/device_connectivity_controller_api.py +332 -0
  16. tb_rest_client/api/api_ce/device_controller_api.py +2737 -0
  17. tb_rest_client/api/api_ce/device_profile_controller_api.py +1120 -0
  18. tb_rest_client/api/api_ce/domain_controller_api.py +563 -0
  19. tb_rest_client/api/api_ce/edge_controller_api.py +2475 -0
  20. tb_rest_client/api/api_ce/edge_event_controller_api.py +178 -0
  21. tb_rest_client/api/api_ce/entities_version_control_controller_api.py +1327 -0
  22. tb_rest_client/api/api_ce/entity_query_controller_api.py +542 -0
  23. tb_rest_client/api/api_ce/entity_relation_controller_api.py +1355 -0
  24. tb_rest_client/api/api_ce/entity_view_controller_api.py +1828 -0
  25. tb_rest_client/api/api_ce/event_controller_api.py +623 -0
  26. tb_rest_client/api/api_ce/image_controller_api.py +1295 -0
  27. tb_rest_client/api/api_ce/login_endpoint_api.py +142 -0
  28. tb_rest_client/api/api_ce/lwm_2m_controller_api.py +142 -0
  29. tb_rest_client/api/api_ce/mail_config_template_controller_api.py +134 -0
  30. tb_rest_client/api/api_ce/mobile_app_bundle_controller_api.py +562 -0
  31. tb_rest_client/api/api_ce/mobile_app_controller_api.py +563 -0
  32. tb_rest_client/api/api_ce/mobile_application_controller_api.py +508 -0
  33. tb_rest_client/api/api_ce/notification_controller_api.py +1480 -0
  34. tb_rest_client/api/api_ce/notification_rule_controller_api.py +447 -0
  35. tb_rest_client/api/api_ce/notification_target_controller_api.py +776 -0
  36. tb_rest_client/api/api_ce/notification_template_controller_api.py +550 -0
  37. tb_rest_client/api/api_ce/o_auth_2_config_template_controller_api.py +324 -0
  38. tb_rest_client/api/api_ce/o_auth_2_controller_api.py +915 -0
  39. tb_rest_client/api/api_ce/ota_package_controller_api.py +879 -0
  40. tb_rest_client/api/api_ce/qr_code_settings_controller_api.py +508 -0
  41. tb_rest_client/api/api_ce/queue_controller_api.py +558 -0
  42. tb_rest_client/api/api_ce/queue_stats_controller_api.py +352 -0
  43. tb_rest_client/api/api_ce/rpc_v_1_controller_api.py +253 -0
  44. tb_rest_client/api/api_ce/rpc_v_2_controller_api.py +570 -0
  45. tb_rest_client/api/api_ce/rule_chain_controller_api.py +2201 -0
  46. tb_rest_client/api/api_ce/rule_engine_controller_api.py +515 -0
  47. tb_rest_client/api/api_ce/tb_resource_controller_api.py +1379 -0
  48. tb_rest_client/api/api_ce/telemetry_controller_api.py +1808 -0
  49. tb_rest_client/api/api_ce/tenant_controller_api.py +657 -0
  50. tb_rest_client/api/api_ce/tenant_profile_controller_api.py +932 -0
  51. tb_rest_client/api/api_ce/two_factor_auth_config_controller_api.py +890 -0
  52. tb_rest_client/api/api_ce/two_factor_auth_controller_api.py +332 -0
  53. tb_rest_client/api/api_ce/ui_settings_controller_api.py +134 -0
  54. tb_rest_client/api/api_ce/usage_info_controller_api.py +132 -0
  55. tb_rest_client/api/api_ce/user_controller_api.py +2645 -0
  56. tb_rest_client/api/api_ce/widget_type_controller_api.py +1505 -0
  57. tb_rest_client/api/api_ce/widgets_bundle_controller_api.py +752 -0
  58. tb_rest_client/api/api_pe/__init__.py +67 -0
  59. tb_rest_client/api/api_pe/admin_controller_api.py +2310 -0
  60. tb_rest_client/api/api_pe/alarm_comment_controller_api.py +372 -0
  61. tb_rest_client/api/api_pe/alarm_controller_api.py +1629 -0
  62. tb_rest_client/api/api_pe/asset_controller_api.py +1648 -0
  63. tb_rest_client/api/api_pe/asset_profile_controller_api.py +1029 -0
  64. tb_rest_client/api/api_pe/audit_log_controller_api.py +587 -0
  65. tb_rest_client/api/api_pe/auth_controller_api.py +882 -0
  66. tb_rest_client/api/api_pe/billing_endpoint_controller_api.py +868 -0
  67. tb_rest_client/api/api_pe/blob_entity_controller_api.py +554 -0
  68. tb_rest_client/api/api_pe/chirp_stack_integration_controller_api.py +838 -0
  69. tb_rest_client/api/api_pe/cloud_endpoint_controller_api.py +298 -0
  70. tb_rest_client/api/api_pe/component_descriptor_controller_api.py +340 -0
  71. tb_rest_client/api/api_pe/converter_controller_api.py +851 -0
  72. tb_rest_client/api/api_pe/converter_library_controller_api.py +915 -0
  73. tb_rest_client/api/api_pe/custom_menu_controller_api.py +1090 -0
  74. tb_rest_client/api/api_pe/custom_translation_controller_api.py +757 -0
  75. tb_rest_client/api/api_pe/customer_controller_api.py +1413 -0
  76. tb_rest_client/api/api_pe/dashboard_controller_api.py +2194 -0
  77. tb_rest_client/api/api_pe/device_api_controller_api.py +1212 -0
  78. tb_rest_client/api/api_pe/device_connectivity_controller_api.py +332 -0
  79. tb_rest_client/api/api_pe/device_controller_api.py +2468 -0
  80. tb_rest_client/api/api_pe/device_group_ota_package_controller_api.py +334 -0
  81. tb_rest_client/api/api_pe/device_profile_controller_api.py +1215 -0
  82. tb_rest_client/api/api_pe/domain_controller_api.py +549 -0
  83. tb_rest_client/api/api_pe/edge_controller_api.py +2638 -0
  84. tb_rest_client/api/api_pe/edge_event_controller_api.py +178 -0
  85. tb_rest_client/api/api_pe/entities_version_control_controller_api.py +1335 -0
  86. tb_rest_client/api/api_pe/entity_group_controller_api.py +3936 -0
  87. tb_rest_client/api/api_pe/entity_query_controller_api.py +542 -0
  88. tb_rest_client/api/api_pe/entity_relation_controller_api.py +1355 -0
  89. tb_rest_client/api/api_pe/entity_view_controller_api.py +1549 -0
  90. tb_rest_client/api/api_pe/event_controller_api.py +623 -0
  91. tb_rest_client/api/api_pe/group_permission_controller_api.py +720 -0
  92. tb_rest_client/api/api_pe/http_integration_controller_api.py +358 -0
  93. tb_rest_client/api/api_pe/image_controller_api.py +1505 -0
  94. tb_rest_client/api/api_pe/integration_controller_api.py +1592 -0
  95. tb_rest_client/api/api_pe/login_endpoint_api.py +142 -0
  96. tb_rest_client/api/api_pe/lwm_2m_controller_api.py +142 -0
  97. tb_rest_client/api/api_pe/mail_config_template_controller_api.py +134 -0
  98. tb_rest_client/api/api_pe/mobile_app_bundle_controller_api.py +562 -0
  99. tb_rest_client/api/api_pe/mobile_app_controller_api.py +549 -0
  100. tb_rest_client/api/api_pe/mobile_application_controller_api.py +581 -0
  101. tb_rest_client/api/api_pe/notification_controller_api.py +1476 -0
  102. tb_rest_client/api/api_pe/notification_rule_controller_api.py +447 -0
  103. tb_rest_client/api/api_pe/notification_target_controller_api.py +776 -0
  104. tb_rest_client/api/api_pe/notification_template_controller_api.py +550 -0
  105. tb_rest_client/api/api_pe/o_auth_2_config_template_controller_api.py +324 -0
  106. tb_rest_client/api/api_pe/o_auth_2_controller_api.py +816 -0
  107. tb_rest_client/api/api_pe/ota_package_controller_api.py +1010 -0
  108. tb_rest_client/api/api_pe/owner_controller_api.py +285 -0
  109. tb_rest_client/api/api_pe/qr_code_settings_controller_api.py +595 -0
  110. tb_rest_client/api/api_pe/queue_controller_api.py +558 -0
  111. tb_rest_client/api/api_pe/queue_stats_controller_api.py +339 -0
  112. tb_rest_client/api/api_pe/report_controller_api.py +245 -0
  113. tb_rest_client/api/api_pe/role_controller_api.py +546 -0
  114. tb_rest_client/api/api_pe/rpc_controller_api.py +257 -0
  115. tb_rest_client/api/api_pe/rpc_v_1_controller_api.py +253 -0
  116. tb_rest_client/api/api_pe/rpc_v_2_controller_api.py +570 -0
  117. tb_rest_client/api/api_pe/rule_chain_controller_api.py +2201 -0
  118. tb_rest_client/api/api_pe/rule_engine_controller_api.py +499 -0
  119. tb_rest_client/api/api_pe/scheduler_event_controller_api.py +1140 -0
  120. tb_rest_client/api/api_pe/self_registration_controller_api.py +587 -0
  121. tb_rest_client/api/api_pe/sig_fox_integration_controller_api.py +838 -0
  122. tb_rest_client/api/api_pe/sign_up_controller_api.py +882 -0
  123. tb_rest_client/api/api_pe/solution_controller_api.py +514 -0
  124. tb_rest_client/api/api_pe/subscription_controller_api.py +310 -0
  125. tb_rest_client/api/api_pe/t_mobile_iot_cdp_integration_controller_api.py +838 -0
  126. tb_rest_client/api/api_pe/tb_resource_controller_api.py +1379 -0
  127. tb_rest_client/api/api_pe/telemetry_controller_api.py +1808 -0
  128. tb_rest_client/api/api_pe/tenant_controller_api.py +750 -0
  129. tb_rest_client/api/api_pe/tenant_profile_controller_api.py +932 -0
  130. tb_rest_client/api/api_pe/thing_park_integration_controller_api.py +1741 -0
  131. tb_rest_client/api/api_pe/translation_controller_api.py +690 -0
  132. tb_rest_client/api/api_pe/two_factor_auth_config_controller_api.py +890 -0
  133. tb_rest_client/api/api_pe/two_factor_auth_controller_api.py +332 -0
  134. tb_rest_client/api/api_pe/ui_settings_controller_api.py +134 -0
  135. tb_rest_client/api/api_pe/usage_info_controller_api.py +132 -0
  136. tb_rest_client/api/api_pe/user_controller_api.py +3328 -0
  137. tb_rest_client/api/api_pe/user_permissions_controller_api.py +134 -0
  138. tb_rest_client/api/api_pe/white_labeling_controller_api.py +1056 -0
  139. tb_rest_client/api/api_pe/widget_type_controller_api.py +1410 -0
  140. tb_rest_client/api/api_pe/widgets_bundle_controller_api.py +847 -0
  141. tb_rest_client/api_client.py +705 -0
  142. tb_rest_client/configuration.py +234 -0
  143. tb_rest_client/models/__init__.py +14 -0
  144. tb_rest_client/models/models_ce/__init__.py +493 -0
  145. tb_rest_client/models/models_ce/account_configverification_code_body.py +98 -0
  146. tb_rest_client/models/models_ce/account_two_fa_settings.py +124 -0
  147. tb_rest_client/models/models_ce/activate_user_request.py +154 -0
  148. tb_rest_client/models/models_ce/admin_settings.py +232 -0
  149. tb_rest_client/models/models_ce/admin_settings_id.py +127 -0
  150. tb_rest_client/models/models_ce/affected_tenant_administrators_filter.py +104 -0
  151. tb_rest_client/models/models_ce/affected_user_filter.py +104 -0
  152. tb_rest_client/models/models_ce/alarm.py +707 -0
  153. tb_rest_client/models/models_ce/alarm_assignee.py +202 -0
  154. tb_rest_client/models/models_ce/alarm_assignment_notification_rule_trigger_config.py +216 -0
  155. tb_rest_client/models/models_ce/alarm_comment.py +292 -0
  156. tb_rest_client/models/models_ce/alarm_comment_id.py +127 -0
  157. tb_rest_client/models/models_ce/alarm_comment_info.py +376 -0
  158. tb_rest_client/models/models_ce/alarm_comment_notification_rule_trigger_config.py +248 -0
  159. tb_rest_client/models/models_ce/alarm_condition.py +154 -0
  160. tb_rest_client/models/models_ce/alarm_condition_filter.py +214 -0
  161. tb_rest_client/models/models_ce/alarm_condition_filter_key.py +160 -0
  162. tb_rest_client/models/models_ce/alarm_condition_spec.py +135 -0
  163. tb_rest_client/models/models_ce/alarm_count_query.py +372 -0
  164. tb_rest_client/models/models_ce/alarm_data.py +855 -0
  165. tb_rest_client/models/models_ce/alarm_data_page_link.py +450 -0
  166. tb_rest_client/models/models_ce/alarm_data_query.py +254 -0
  167. tb_rest_client/models/models_ce/alarm_id.py +162 -0
  168. tb_rest_client/models/models_ce/alarm_info.py +803 -0
  169. tb_rest_client/models/models_ce/alarm_notification_rule_trigger_config.py +223 -0
  170. tb_rest_client/models/models_ce/alarm_rule.py +206 -0
  171. tb_rest_client/models/models_ce/alarm_schedule.py +166 -0
  172. tb_rest_client/models/models_ce/all_users_filter.py +104 -0
  173. tb_rest_client/models/models_ce/allow_create_new_devices_device_profile_provision_configuration.py +104 -0
  174. tb_rest_client/models/models_ce/android_config.py +202 -0
  175. tb_rest_client/models/models_ce/any_time_schedule.py +104 -0
  176. tb_rest_client/models/models_ce/api_image_body.py +177 -0
  177. tb_rest_client/models/models_ce/api_usage_limit_notification_rule_trigger_config.py +170 -0
  178. tb_rest_client/models/models_ce/api_usage_state_filter.py +130 -0
  179. tb_rest_client/models/models_ce/asset.py +367 -0
  180. tb_rest_client/models/models_ce/asset_id.py +162 -0
  181. tb_rest_client/models/models_ce/asset_info.py +451 -0
  182. tb_rest_client/models/models_ce/asset_profile.py +422 -0
  183. tb_rest_client/models/models_ce/asset_profile_id.py +162 -0
  184. tb_rest_client/models/models_ce/asset_profile_info.py +232 -0
  185. tb_rest_client/models/models_ce/asset_search_query.py +180 -0
  186. tb_rest_client/models/models_ce/asset_search_query_filter.py +266 -0
  187. tb_rest_client/models/models_ce/asset_type_filter.py +182 -0
  188. tb_rest_client/models/models_ce/atomic_integer.py +228 -0
  189. tb_rest_client/models/models_ce/attribute_export_data.py +280 -0
  190. tb_rest_client/models/models_ce/attributes_entity_view.py +185 -0
  191. tb_rest_client/models/models_ce/audit_log.py +434 -0
  192. tb_rest_client/models/models_ce/audit_log_id.py +127 -0
  193. tb_rest_client/models/models_ce/auto_commit_settings.py +103 -0
  194. tb_rest_client/models/models_ce/auto_version_create_config.py +202 -0
  195. tb_rest_client/models/models_ce/aws_sns_sms_provider_configuration.py +188 -0
  196. tb_rest_client/models/models_ce/backup_code_two_fa_account_config.py +157 -0
  197. tb_rest_client/models/models_ce/backup_code_two_fa_provider_config.py +130 -0
  198. tb_rest_client/models/models_ce/boolean_filter_predicate.py +162 -0
  199. tb_rest_client/models/models_ce/branch_info.py +150 -0
  200. tb_rest_client/models/models_ce/bulk_import_request.py +150 -0
  201. tb_rest_client/models/models_ce/bulk_import_result_asset.py +202 -0
  202. tb_rest_client/models/models_ce/bulk_import_result_asset_created.py +254 -0
  203. tb_rest_client/models/models_ce/bulk_import_result_device.py +202 -0
  204. tb_rest_client/models/models_ce/bulk_import_result_edge.py +202 -0
  205. tb_rest_client/models/models_ce/button.py +286 -0
  206. tb_rest_client/models/models_ce/byte_array_resource.py +332 -0
  207. tb_rest_client/models/models_ce/byte_buffer.py +306 -0
  208. tb_rest_client/models/models_ce/change_password_request.py +154 -0
  209. tb_rest_client/models/models_ce/check_pre_provisioned_devices_device_profile_provision_configuration.py +104 -0
  210. tb_rest_client/models/models_ce/claim_request.py +124 -0
  211. tb_rest_client/models/models_ce/clear_rule.py +131 -0
  212. tb_rest_client/models/models_ce/client_attributes_querying_snmp_communication_config.py +156 -0
  213. tb_rest_client/models/models_ce/coap_device_profile_transport_configuration.py +156 -0
  214. tb_rest_client/models/models_ce/coap_device_transport_configuration.py +214 -0
  215. tb_rest_client/models/models_ce/coap_device_type_configuration.py +134 -0
  216. tb_rest_client/models/models_ce/column_mapping.py +156 -0
  217. tb_rest_client/models/models_ce/comparison_ts_value.py +150 -0
  218. tb_rest_client/models/models_ce/complex_filter_predicate.py +162 -0
  219. tb_rest_client/models/models_ce/complex_version_create_request.py +162 -0
  220. tb_rest_client/models/models_ce/component_descriptor.py +420 -0
  221. tb_rest_client/models/models_ce/component_descriptor_id.py +127 -0
  222. tb_rest_client/models/models_ce/config_submit_body.py +98 -0
  223. tb_rest_client/models/models_ce/custom_mobile_page.py +98 -0
  224. tb_rest_client/models/models_ce/custom_time_schedule.py +156 -0
  225. tb_rest_client/models/models_ce/custom_time_schedule_item.py +202 -0
  226. tb_rest_client/models/models_ce/customer.py +510 -0
  227. tb_rest_client/models/models_ce/customer_id.py +162 -0
  228. tb_rest_client/models/models_ce/customer_users_filter.py +131 -0
  229. tb_rest_client/models/models_ce/dashboard.py +399 -0
  230. tb_rest_client/models/models_ce/dashboard_id.py +162 -0
  231. tb_rest_client/models/models_ce/dashboard_info.py +373 -0
  232. tb_rest_client/models/models_ce/dashboard_page.py +98 -0
  233. tb_rest_client/models/models_ce/debug_converter_event_filter.py +351 -0
  234. tb_rest_client/models/models_ce/debug_integration_event_filter.py +325 -0
  235. tb_rest_client/models/models_ce/debug_rule_chain_event_filter.py +429 -0
  236. tb_rest_client/models/models_ce/debug_settings.py +182 -0
  237. tb_rest_client/models/models_ce/default_coap_device_type_configuration.py +130 -0
  238. tb_rest_client/models/models_ce/default_device_configuration.py +104 -0
  239. tb_rest_client/models/models_ce/default_device_profile_configuration.py +104 -0
  240. tb_rest_client/models/models_ce/default_device_profile_transport_configuration.py +104 -0
  241. tb_rest_client/models/models_ce/default_device_transport_configuration.py +104 -0
  242. tb_rest_client/models/models_ce/default_mobile_page.py +98 -0
  243. tb_rest_client/models/models_ce/default_rule_chain_create_request.py +127 -0
  244. tb_rest_client/models/models_ce/default_tenant_profile_configuration.py +1638 -0
  245. tb_rest_client/models/models_ce/deferred_result_entity_data_diff.py +150 -0
  246. tb_rest_client/models/models_ce/deferred_result_entity_data_info.py +150 -0
  247. tb_rest_client/models/models_ce/deferred_result_list_branch_info.py +150 -0
  248. tb_rest_client/models/models_ce/deferred_result_list_versioned_entity_info.py +150 -0
  249. tb_rest_client/models/models_ce/deferred_result_page_data_entity_version.py +150 -0
  250. tb_rest_client/models/models_ce/deferred_result_repository_settings.py +150 -0
  251. tb_rest_client/models/models_ce/deferred_result_response_entity.py +150 -0
  252. tb_rest_client/models/models_ce/deferred_result_void.py +150 -0
  253. tb_rest_client/models/models_ce/deferred_resultuuid.py +150 -0
  254. tb_rest_client/models/models_ce/delivery_method_notification_template.py +191 -0
  255. tb_rest_client/models/models_ce/device.py +446 -0
  256. tb_rest_client/models/models_ce/device_activity_notification_rule_trigger_config.py +190 -0
  257. tb_rest_client/models/models_ce/device_configuration.py +133 -0
  258. tb_rest_client/models/models_ce/device_credentials.py +293 -0
  259. tb_rest_client/models/models_ce/device_credentials_id.py +127 -0
  260. tb_rest_client/models/models_ce/device_data.py +154 -0
  261. tb_rest_client/models/models_ce/device_export_data.py +156 -0
  262. tb_rest_client/models/models_ce/device_id.py +162 -0
  263. tb_rest_client/models/models_ce/device_info.py +558 -0
  264. tb_rest_client/models/models_ce/device_profile.py +630 -0
  265. tb_rest_client/models/models_ce/device_profile_alarm.py +320 -0
  266. tb_rest_client/models/models_ce/device_profile_configuration.py +133 -0
  267. tb_rest_client/models/models_ce/device_profile_data.py +210 -0
  268. tb_rest_client/models/models_ce/device_profile_id.py +162 -0
  269. tb_rest_client/models/models_ce/device_profile_info.py +300 -0
  270. tb_rest_client/models/models_ce/device_profile_provision_configuration.py +162 -0
  271. tb_rest_client/models/models_ce/device_profile_transport_configuration.py +137 -0
  272. tb_rest_client/models/models_ce/device_search_query.py +180 -0
  273. tb_rest_client/models/models_ce/device_search_query_filter.py +266 -0
  274. tb_rest_client/models/models_ce/device_transport_configuration.py +137 -0
  275. tb_rest_client/models/models_ce/device_type_filter.py +182 -0
  276. tb_rest_client/models/models_ce/disabled_device_profile_provision_configuration.py +104 -0
  277. tb_rest_client/models/models_ce/domain.py +247 -0
  278. tb_rest_client/models/models_ce/domain_id.py +146 -0
  279. tb_rest_client/models/models_ce/domain_info.py +275 -0
  280. tb_rest_client/models/models_ce/duration_alarm_condition_spec.py +162 -0
  281. tb_rest_client/models/models_ce/dynamic_value_boolean.py +182 -0
  282. tb_rest_client/models/models_ce/dynamic_value_double.py +182 -0
  283. tb_rest_client/models/models_ce/dynamic_value_integer.py +182 -0
  284. tb_rest_client/models/models_ce/dynamic_value_long.py +182 -0
  285. tb_rest_client/models/models_ce/dynamic_value_string.py +182 -0
  286. tb_rest_client/models/models_ce/edge.py +426 -0
  287. tb_rest_client/models/models_ce/edge_communication_failure_notification_rule_trigger_config.py +130 -0
  288. tb_rest_client/models/models_ce/edge_connection_notification_rule_trigger_config.py +163 -0
  289. tb_rest_client/models/models_ce/edge_event.py +370 -0
  290. tb_rest_client/models/models_ce/edge_event_id.py +127 -0
  291. tb_rest_client/models/models_ce/edge_id.py +162 -0
  292. tb_rest_client/models/models_ce/edge_info.py +478 -0
  293. tb_rest_client/models/models_ce/edge_install_instructions.py +126 -0
  294. tb_rest_client/models/models_ce/edge_instructions.py +126 -0
  295. tb_rest_client/models/models_ce/edge_search_query.py +180 -0
  296. tb_rest_client/models/models_ce/edge_search_query_filter.py +266 -0
  297. tb_rest_client/models/models_ce/edge_type_filter.py +182 -0
  298. tb_rest_client/models/models_ce/efento_coap_device_type_configuration.py +104 -0
  299. tb_rest_client/models/models_ce/email_delivery_method_notification_template.py +131 -0
  300. tb_rest_client/models/models_ce/email_two_fa_account_config.py +131 -0
  301. tb_rest_client/models/models_ce/email_two_fa_provider_config.py +130 -0
  302. tb_rest_client/models/models_ce/entities_limit_notification_rule_trigger_config.py +163 -0
  303. tb_rest_client/models/models_ce/entity_action_notification_rule_trigger_config.py +215 -0
  304. tb_rest_client/models/models_ce/entity_count_query.py +150 -0
  305. tb_rest_client/models/models_ce/entity_data.py +202 -0
  306. tb_rest_client/models/models_ce/entity_data_diff.py +150 -0
  307. tb_rest_client/models/models_ce/entity_data_info.py +176 -0
  308. tb_rest_client/models/models_ce/entity_data_page_link.py +228 -0
  309. tb_rest_client/models/models_ce/entity_data_query.py +228 -0
  310. tb_rest_client/models/models_ce/entity_data_sort_order.py +156 -0
  311. tb_rest_client/models/models_ce/entity_export_data_object.py +219 -0
  312. tb_rest_client/models/models_ce/entity_filter.py +134 -0
  313. tb_rest_client/models/models_ce/entity_id.py +160 -0
  314. tb_rest_client/models/models_ce/entity_id_clearstart_timeend_time_body.py +98 -0
  315. tb_rest_client/models/models_ce/entity_info.py +152 -0
  316. tb_rest_client/models/models_ce/entity_key.py +156 -0
  317. tb_rest_client/models/models_ce/entity_list_filter.py +162 -0
  318. tb_rest_client/models/models_ce/entity_load_error.py +202 -0
  319. tb_rest_client/models/models_ce/entity_name_filter.py +162 -0
  320. tb_rest_client/models/models_ce/entity_relation.py +264 -0
  321. tb_rest_client/models/models_ce/entity_relation_info.py +320 -0
  322. tb_rest_client/models/models_ce/entity_relations_query.py +152 -0
  323. tb_rest_client/models/models_ce/entity_subtype.py +182 -0
  324. tb_rest_client/models/models_ce/entity_type_entity_idtenant_idpage_sizepagetext_searchsort_propertysort_orderstart_timeend_time_body.py +98 -0
  325. tb_rest_client/models/models_ce/entity_type_filter.py +136 -0
  326. tb_rest_client/models/models_ce/entity_type_load_result.py +208 -0
  327. tb_rest_client/models/models_ce/entity_type_version_create_config.py +260 -0
  328. tb_rest_client/models/models_ce/entity_type_version_load_config.py +228 -0
  329. tb_rest_client/models/models_ce/entity_type_version_load_request.py +156 -0
  330. tb_rest_client/models/models_ce/entity_version.py +202 -0
  331. tb_rest_client/models/models_ce/entity_view.py +423 -0
  332. tb_rest_client/models/models_ce/entity_view_id.py +162 -0
  333. tb_rest_client/models/models_ce/entity_view_info.py +479 -0
  334. tb_rest_client/models/models_ce/entity_view_search_query.py +180 -0
  335. tb_rest_client/models/models_ce/entity_view_search_query_filter.py +266 -0
  336. tb_rest_client/models/models_ce/entity_view_type_filter.py +182 -0
  337. tb_rest_client/models/models_ce/error_event_filter.py +188 -0
  338. tb_rest_client/models/models_ce/escalated_notification_rule_recipients_config.py +131 -0
  339. tb_rest_client/models/models_ce/event.py +286 -0
  340. tb_rest_client/models/models_ce/event_filter.py +171 -0
  341. tb_rest_client/models/models_ce/event_id.py +127 -0
  342. tb_rest_client/models/models_ce/event_info.py +286 -0
  343. tb_rest_client/models/models_ce/features_info.py +228 -0
  344. tb_rest_client/models/models_ce/file.py +488 -0
  345. tb_rest_client/models/models_ce/filter_predicate_value_boolean.py +176 -0
  346. tb_rest_client/models/models_ce/filter_predicate_value_double.py +176 -0
  347. tb_rest_client/models/models_ce/filter_predicate_value_integer.py +176 -0
  348. tb_rest_client/models/models_ce/filter_predicate_value_long.py +176 -0
  349. tb_rest_client/models/models_ce/filter_predicate_value_string.py +176 -0
  350. tb_rest_client/models/models_ce/has_id_object.py +124 -0
  351. tb_rest_client/models/models_ce/home_dashboard.py +427 -0
  352. tb_rest_client/models/models_ce/home_dashboard_info.py +152 -0
  353. tb_rest_client/models/models_ce/image_export_data.py +332 -0
  354. tb_rest_client/models/models_ce/inline_response200.py +99 -0
  355. tb_rest_client/models/models_ce/input_stream.py +98 -0
  356. tb_rest_client/models/models_ce/ios_config.py +176 -0
  357. tb_rest_client/models/models_ce/json_node.py +98 -0
  358. tb_rest_client/models/models_ce/json_transport_payload_configuration.py +104 -0
  359. tb_rest_client/models/models_ce/jwt_pair.py +186 -0
  360. tb_rest_client/models/models_ce/jwt_settings.py +210 -0
  361. tb_rest_client/models/models_ce/key_filter.py +182 -0
  362. tb_rest_client/models/models_ce/key_filter_predicate.py +136 -0
  363. tb_rest_client/models/models_ce/last_visited_dashboard_info.py +210 -0
  364. tb_rest_client/models/models_ce/life_cycle_event_filter.py +222 -0
  365. tb_rest_client/models/models_ce/login_mobile_info.py +176 -0
  366. tb_rest_client/models/models_ce/login_request.py +156 -0
  367. tb_rest_client/models/models_ce/login_response.py +156 -0
  368. tb_rest_client/models/models_ce/lw_m2_m_bootstrap_server_credential.py +136 -0
  369. tb_rest_client/models/models_ce/lw_m2_m_server_security_config_default.py +490 -0
  370. tb_rest_client/models/models_ce/lw_m2m_instance.py +154 -0
  371. tb_rest_client/models/models_ce/lw_m2m_object.py +266 -0
  372. tb_rest_client/models/models_ce/lw_m2m_resource_observe.py +266 -0
  373. tb_rest_client/models/models_ce/lw_m2m_version.py +124 -0
  374. tb_rest_client/models/models_ce/lwm2m_device_profile_transport_configuration.py +208 -0
  375. tb_rest_client/models/models_ce/lwm2m_device_transport_configuration.py +214 -0
  376. tb_rest_client/models/models_ce/mapping.py +202 -0
  377. tb_rest_client/models/models_ce/microsoft_teams_delivery_method_notification_template.py +182 -0
  378. tb_rest_client/models/models_ce/microsoft_teams_notification_target_config.py +314 -0
  379. tb_rest_client/models/models_ce/mobile_app.py +290 -0
  380. tb_rest_client/models/models_ce/mobile_app_bundle.py +375 -0
  381. tb_rest_client/models/models_ce/mobile_app_bundle_id.py +154 -0
  382. tb_rest_client/models/models_ce/mobile_app_bundle_info.py +487 -0
  383. tb_rest_client/models/models_ce/mobile_app_delivery_method_notification_template.py +157 -0
  384. tb_rest_client/models/models_ce/mobile_app_id.py +160 -0
  385. tb_rest_client/models/models_ce/mobile_app_info.py +318 -0
  386. tb_rest_client/models/models_ce/mobile_app_notification_delivery_method_config.py +157 -0
  387. tb_rest_client/models/models_ce/mobile_app_settings.py +352 -0
  388. tb_rest_client/models/models_ce/mobile_app_settings_id.py +127 -0
  389. tb_rest_client/models/models_ce/mobile_app_version_info.py +210 -0
  390. tb_rest_client/models/models_ce/mobile_layout_config.py +126 -0
  391. tb_rest_client/models/models_ce/mobile_page.py +158 -0
  392. tb_rest_client/models/models_ce/mobile_session_info.py +124 -0
  393. tb_rest_client/models/models_ce/mqtt_device_profile_transport_configuration.py +286 -0
  394. tb_rest_client/models/models_ce/mqtt_device_transport_configuration.py +104 -0
  395. tb_rest_client/models/models_ce/new_platform_version_notification_rule_trigger_config.py +104 -0
  396. tb_rest_client/models/models_ce/no_sec_lw_m2_m_bootstrap_server_credential.py +440 -0
  397. tb_rest_client/models/models_ce/node_connection_info.py +185 -0
  398. tb_rest_client/models/models_ce/notification.py +402 -0
  399. tb_rest_client/models/models_ce/notification_delivery_method_config.py +134 -0
  400. tb_rest_client/models/models_ce/notification_id.py +162 -0
  401. tb_rest_client/models/models_ce/notification_info.py +185 -0
  402. tb_rest_client/models/models_ce/notification_pref.py +151 -0
  403. tb_rest_client/models/models_ce/notification_request.py +417 -0
  404. tb_rest_client/models/models_ce/notification_request_config.py +124 -0
  405. tb_rest_client/models/models_ce/notification_request_id.py +162 -0
  406. tb_rest_client/models/models_ce/notification_request_info.py +476 -0
  407. tb_rest_client/models/models_ce/notification_request_preview.py +202 -0
  408. tb_rest_client/models/models_ce/notification_request_stats.py +202 -0
  409. tb_rest_client/models/models_ce/notification_rule.py +369 -0
  410. tb_rest_client/models/models_ce/notification_rule_config.py +124 -0
  411. tb_rest_client/models/models_ce/notification_rule_id.py +162 -0
  412. tb_rest_client/models/models_ce/notification_rule_info.py +428 -0
  413. tb_rest_client/models/models_ce/notification_rule_recipients_config.py +139 -0
  414. tb_rest_client/models/models_ce/notification_rule_trigger_config.py +178 -0
  415. tb_rest_client/models/models_ce/notification_settings.py +125 -0
  416. tb_rest_client/models/models_ce/notification_target.py +230 -0
  417. tb_rest_client/models/models_ce/notification_target_config.py +148 -0
  418. tb_rest_client/models/models_ce/notification_target_id.py +162 -0
  419. tb_rest_client/models/models_ce/notification_template.py +263 -0
  420. tb_rest_client/models/models_ce/notification_template_config.py +125 -0
  421. tb_rest_client/models/models_ce/notification_template_id.py +162 -0
  422. tb_rest_client/models/models_ce/numeric_filter_predicate.py +162 -0
  423. tb_rest_client/models/models_ce/o_auth2_basic_mapper_config.py +329 -0
  424. tb_rest_client/models/models_ce/o_auth2_client.py +636 -0
  425. tb_rest_client/models/models_ce/o_auth2_client_id.py +160 -0
  426. tb_rest_client/models/models_ce/o_auth2_client_info.py +267 -0
  427. tb_rest_client/models/models_ce/o_auth2_client_login_info.py +182 -0
  428. tb_rest_client/models/models_ce/o_auth2_client_registration_template.py +565 -0
  429. tb_rest_client/models/models_ce/o_auth2_client_registration_template_id.py +127 -0
  430. tb_rest_client/models/models_ce/o_auth2_custom_mapper_config.py +202 -0
  431. tb_rest_client/models/models_ce/o_auth2_domain_info.py +162 -0
  432. tb_rest_client/models/models_ce/o_auth2_info.py +183 -0
  433. tb_rest_client/models/models_ce/o_auth2_mapper_config.py +241 -0
  434. tb_rest_client/models/models_ce/o_auth2_mobile_info.py +156 -0
  435. tb_rest_client/models/models_ce/o_auth2_params_info.py +185 -0
  436. tb_rest_client/models/models_ce/o_auth2_registration_info.py +502 -0
  437. tb_rest_client/models/models_ce/object_attributes.py +410 -0
  438. tb_rest_client/models/models_ce/object_node.py +98 -0
  439. tb_rest_client/models/models_ce/one_of_alarm_condition_filter_predicate.py +98 -0
  440. tb_rest_client/models/models_ce/one_of_alarm_condition_spec.py +98 -0
  441. tb_rest_client/models/models_ce/one_of_alarm_count_query_entity_filter.py +98 -0
  442. tb_rest_client/models/models_ce/one_of_alarm_data_query_entity_filter.py +98 -0
  443. tb_rest_client/models/models_ce/one_of_alarm_rule_schedule.py +98 -0
  444. tb_rest_client/models/models_ce/one_of_device_data_configuration.py +98 -0
  445. tb_rest_client/models/models_ce/one_of_device_data_transport_configuration.py +98 -0
  446. tb_rest_client/models/models_ce/one_of_device_profile_data_configuration.py +98 -0
  447. tb_rest_client/models/models_ce/one_of_device_profile_data_provision_configuration.py +98 -0
  448. tb_rest_client/models/models_ce/one_of_device_profile_data_transport_configuration.py +98 -0
  449. tb_rest_client/models/models_ce/one_of_entity_count_query_entity_filter.py +98 -0
  450. tb_rest_client/models/models_ce/one_of_entity_data_diff_current_version.py +98 -0
  451. tb_rest_client/models/models_ce/one_of_entity_data_diff_other_version.py +98 -0
  452. tb_rest_client/models/models_ce/one_of_entity_data_query_entity_filter.py +98 -0
  453. tb_rest_client/models/models_ce/one_of_key_filter_predicate.py +98 -0
  454. tb_rest_client/models/models_ce/one_of_notification_rule_info_recipients_config.py +98 -0
  455. tb_rest_client/models/models_ce/one_of_notification_rule_info_trigger_config.py +98 -0
  456. tb_rest_client/models/models_ce/one_of_notification_rule_recipients_config.py +98 -0
  457. tb_rest_client/models/models_ce/one_of_notification_rule_trigger_config.py +98 -0
  458. tb_rest_client/models/models_ce/one_of_notification_target_configuration.py +98 -0
  459. tb_rest_client/models/models_ce/one_of_platform_two_fa_settings_providers_items.py +98 -0
  460. tb_rest_client/models/models_ce/one_of_tenant_profile_data_configuration.py +98 -0
  461. tb_rest_client/models/models_ce/one_of_test_sms_request_provider_configuration.py +98 -0
  462. tb_rest_client/models/models_ce/originator_entity_owner_users_filter.py +104 -0
  463. tb_rest_client/models/models_ce/ota_package.py +576 -0
  464. tb_rest_client/models/models_ce/ota_package_data.py +306 -0
  465. tb_rest_client/models/models_ce/ota_package_id.py +162 -0
  466. tb_rest_client/models/models_ce/ota_package_info.py +550 -0
  467. tb_rest_client/models/models_ce/ota_package_ota_package_idchecksumchecksum_algorithm_body.py +127 -0
  468. tb_rest_client/models/models_ce/other_configuration.py +364 -0
  469. tb_rest_client/models/models_ce/page_data_alarm_comment_info.py +210 -0
  470. tb_rest_client/models/models_ce/page_data_alarm_data.py +210 -0
  471. tb_rest_client/models/models_ce/page_data_alarm_info.py +210 -0
  472. tb_rest_client/models/models_ce/page_data_asset.py +210 -0
  473. tb_rest_client/models/models_ce/page_data_asset_info.py +210 -0
  474. tb_rest_client/models/models_ce/page_data_asset_profile.py +210 -0
  475. tb_rest_client/models/models_ce/page_data_asset_profile_info.py +210 -0
  476. tb_rest_client/models/models_ce/page_data_audit_log.py +210 -0
  477. tb_rest_client/models/models_ce/page_data_customer.py +210 -0
  478. tb_rest_client/models/models_ce/page_data_dashboard_info.py +210 -0
  479. tb_rest_client/models/models_ce/page_data_device.py +210 -0
  480. tb_rest_client/models/models_ce/page_data_device_info.py +210 -0
  481. tb_rest_client/models/models_ce/page_data_device_profile.py +210 -0
  482. tb_rest_client/models/models_ce/page_data_device_profile_info.py +210 -0
  483. tb_rest_client/models/models_ce/page_data_domain_info.py +210 -0
  484. tb_rest_client/models/models_ce/page_data_edge.py +210 -0
  485. tb_rest_client/models/models_ce/page_data_edge_event.py +210 -0
  486. tb_rest_client/models/models_ce/page_data_edge_info.py +210 -0
  487. tb_rest_client/models/models_ce/page_data_entity_data.py +210 -0
  488. tb_rest_client/models/models_ce/page_data_entity_info.py +210 -0
  489. tb_rest_client/models/models_ce/page_data_entity_subtype.py +210 -0
  490. tb_rest_client/models/models_ce/page_data_entity_version.py +210 -0
  491. tb_rest_client/models/models_ce/page_data_entity_view.py +210 -0
  492. tb_rest_client/models/models_ce/page_data_entity_view_info.py +210 -0
  493. tb_rest_client/models/models_ce/page_data_event.py +210 -0
  494. tb_rest_client/models/models_ce/page_data_event_info.py +210 -0
  495. tb_rest_client/models/models_ce/page_data_mobile_app.py +210 -0
  496. tb_rest_client/models/models_ce/page_data_mobile_app_bundle_info.py +196 -0
  497. tb_rest_client/models/models_ce/page_data_mobile_app_info.py +210 -0
  498. tb_rest_client/models/models_ce/page_data_notification.py +210 -0
  499. tb_rest_client/models/models_ce/page_data_notification_request_info.py +210 -0
  500. tb_rest_client/models/models_ce/page_data_notification_rule_info.py +210 -0
  501. tb_rest_client/models/models_ce/page_data_notification_target.py +210 -0
  502. tb_rest_client/models/models_ce/page_data_notification_template.py +210 -0
  503. tb_rest_client/models/models_ce/page_data_o_auth2_client_info.py +210 -0
  504. tb_rest_client/models/models_ce/page_data_ota_package_info.py +210 -0
  505. tb_rest_client/models/models_ce/page_data_queue.py +210 -0
  506. tb_rest_client/models/models_ce/page_data_queue_stats.py +210 -0
  507. tb_rest_client/models/models_ce/page_data_rpc.py +202 -0
  508. tb_rest_client/models/models_ce/page_data_rule_chain.py +210 -0
  509. tb_rest_client/models/models_ce/page_data_tb_resource_info.py +210 -0
  510. tb_rest_client/models/models_ce/page_data_tenant.py +210 -0
  511. tb_rest_client/models/models_ce/page_data_tenant_info.py +210 -0
  512. tb_rest_client/models/models_ce/page_data_tenant_profile.py +210 -0
  513. tb_rest_client/models/models_ce/page_data_user.py +210 -0
  514. tb_rest_client/models/models_ce/page_data_user_email_info.py +210 -0
  515. tb_rest_client/models/models_ce/page_data_widget_type_info.py +210 -0
  516. tb_rest_client/models/models_ce/page_data_widgets_bundle.py +210 -0
  517. tb_rest_client/models/models_ce/platform_two_fa_settings.py +231 -0
  518. tb_rest_client/models/models_ce/platform_users_notification_target_config.py +131 -0
  519. tb_rest_client/models/models_ce/power_saving_configuration.py +208 -0
  520. tb_rest_client/models/models_ce/processing_strategy.py +234 -0
  521. tb_rest_client/models/models_ce/proto_transport_payload_configuration.py +260 -0
  522. tb_rest_client/models/models_ce/psklw_m2_m_bootstrap_server_credential.py +440 -0
  523. tb_rest_client/models/models_ce/qr_code_config.py +234 -0
  524. tb_rest_client/models/models_ce/qr_code_settings.py +399 -0
  525. tb_rest_client/models/models_ce/qr_code_settings_id.py +127 -0
  526. tb_rest_client/models/models_ce/queue.py +410 -0
  527. tb_rest_client/models/models_ce/queue_id.py +162 -0
  528. tb_rest_client/models/models_ce/queue_stats.py +228 -0
  529. tb_rest_client/models/models_ce/queue_stats_id.py +162 -0
  530. tb_rest_client/models/models_ce/rate_limits_notification_rule_trigger_config.py +137 -0
  531. tb_rest_client/models/models_ce/relation_entity_type_filter.py +189 -0
  532. tb_rest_client/models/models_ce/relations_query_filter.py +350 -0
  533. tb_rest_client/models/models_ce/relations_search_parameters.py +284 -0
  534. tb_rest_client/models/models_ce/repeating_alarm_condition_spec.py +130 -0
  535. tb_rest_client/models/models_ce/repository_settings.py +390 -0
  536. tb_rest_client/models/models_ce/repository_settings_info.py +150 -0
  537. tb_rest_client/models/models_ce/reset_password_email_request.py +126 -0
  538. tb_rest_client/models/models_ce/reset_password_request.py +154 -0
  539. tb_rest_client/models/models_ce/resource.py +306 -0
  540. tb_rest_client/models/models_ce/resource_export_data.py +384 -0
  541. tb_rest_client/models/models_ce/response_entity.py +182 -0
  542. tb_rest_client/models/models_ce/rpc.py +344 -0
  543. tb_rest_client/models/models_ce/rpc_id.py +162 -0
  544. tb_rest_client/models/models_ce/rpklw_m2_m_bootstrap_server_credential.py +440 -0
  545. tb_rest_client/models/models_ce/rule_chain.py +402 -0
  546. tb_rest_client/models/models_ce/rule_chain_connection_info.py +210 -0
  547. tb_rest_client/models/models_ce/rule_chain_data.py +156 -0
  548. tb_rest_client/models/models_ce/rule_chain_debug_event_filter.py +240 -0
  549. tb_rest_client/models/models_ce/rule_chain_export_data.py +156 -0
  550. tb_rest_client/models/models_ce/rule_chain_id.py +162 -0
  551. tb_rest_client/models/models_ce/rule_chain_import_result.py +202 -0
  552. tb_rest_client/models/models_ce/rule_chain_meta_data.py +269 -0
  553. tb_rest_client/models/models_ce/rule_chain_output_labels_usage.py +239 -0
  554. tb_rest_client/models/models_ce/rule_engine_component_lifecycle_event_notification_rule_trigger_config.py +274 -0
  555. tb_rest_client/models/models_ce/rule_node.py +424 -0
  556. tb_rest_client/models/models_ce/rule_node_debug_event_filter.py +448 -0
  557. tb_rest_client/models/models_ce/rule_node_id.py +162 -0
  558. tb_rest_client/models/models_ce/save_device_with_credentials_request.py +152 -0
  559. tb_rest_client/models/models_ce/save_ota_package_info_request.py +578 -0
  560. tb_rest_client/models/models_ce/security_settings.py +266 -0
  561. tb_rest_client/models/models_ce/server_security_config.py +332 -0
  562. tb_rest_client/models/models_ce/shared_attributes_setting_snmp_communication_config.py +130 -0
  563. tb_rest_client/models/models_ce/short_customer_info.py +204 -0
  564. tb_rest_client/models/models_ce/sign_up_request.py +294 -0
  565. tb_rest_client/models/models_ce/simple_alarm_condition_spec.py +104 -0
  566. tb_rest_client/models/models_ce/single_entity_filter.py +130 -0
  567. tb_rest_client/models/models_ce/single_entity_version_create_request.py +156 -0
  568. tb_rest_client/models/models_ce/single_entity_version_load_request.py +156 -0
  569. tb_rest_client/models/models_ce/slack_conversation.py +263 -0
  570. tb_rest_client/models/models_ce/slack_delivery_method_notification_template.py +104 -0
  571. tb_rest_client/models/models_ce/slack_notification_delivery_method_config.py +131 -0
  572. tb_rest_client/models/models_ce/slack_notification_target_config.py +163 -0
  573. tb_rest_client/models/models_ce/smpp_sms_provider_configuration.py +541 -0
  574. tb_rest_client/models/models_ce/sms_delivery_method_notification_template.py +104 -0
  575. tb_rest_client/models/models_ce/sms_provider_configuration.py +135 -0
  576. tb_rest_client/models/models_ce/sms_two_fa_account_config.py +131 -0
  577. tb_rest_client/models/models_ce/sms_two_fa_provider_config.py +157 -0
  578. tb_rest_client/models/models_ce/snmp_communication_config.py +142 -0
  579. tb_rest_client/models/models_ce/snmp_device_profile_transport_configuration.py +182 -0
  580. tb_rest_client/models/models_ce/snmp_device_transport_configuration.py +434 -0
  581. tb_rest_client/models/models_ce/snmp_mapping.py +182 -0
  582. tb_rest_client/models/models_ce/specific_time_schedule.py +208 -0
  583. tb_rest_client/models/models_ce/starred_dashboard_info.py +182 -0
  584. tb_rest_client/models/models_ce/statistics_event_filter.py +244 -0
  585. tb_rest_client/models/models_ce/store_info.py +176 -0
  586. tb_rest_client/models/models_ce/string_filter_predicate.py +188 -0
  587. tb_rest_client/models/models_ce/submit_strategy.py +156 -0
  588. tb_rest_client/models/models_ce/system_administrators_filter.py +104 -0
  589. tb_rest_client/models/models_ce/system_info.py +152 -0
  590. tb_rest_client/models/models_ce/system_info_data.py +322 -0
  591. tb_rest_client/models/models_ce/task_processing_failure_notification_rule_trigger_config.py +104 -0
  592. tb_rest_client/models/models_ce/tb_image_delete_result.py +150 -0
  593. tb_rest_client/models/models_ce/tb_resource.py +568 -0
  594. tb_rest_client/models/models_ce/tb_resource_id.py +162 -0
  595. tb_rest_client/models/models_ce/tb_resource_info.py +514 -0
  596. tb_rest_client/models/models_ce/telemetry_entity_view.py +154 -0
  597. tb_rest_client/models/models_ce/telemetry_mapping_configuration.py +228 -0
  598. tb_rest_client/models/models_ce/telemetry_querying_snmp_communication_config.py +156 -0
  599. tb_rest_client/models/models_ce/tenant.py +539 -0
  600. tb_rest_client/models/models_ce/tenant_administrators_filter.py +156 -0
  601. tb_rest_client/models/models_ce/tenant_id.py +162 -0
  602. tb_rest_client/models/models_ce/tenant_info.py +567 -0
  603. tb_rest_client/models/models_ce/tenant_profile.py +288 -0
  604. tb_rest_client/models/models_ce/tenant_profile_configuration.py +133 -0
  605. tb_rest_client/models/models_ce/tenant_profile_data.py +154 -0
  606. tb_rest_client/models/models_ce/tenant_profile_id.py +162 -0
  607. tb_rest_client/models/models_ce/tenant_profile_queue_configuration.py +332 -0
  608. tb_rest_client/models/models_ce/test_sms_request.py +182 -0
  609. tb_rest_client/models/models_ce/thingsboard_credentials_expired_response.py +238 -0
  610. tb_rest_client/models/models_ce/thingsboard_error_response.py +210 -0
  611. tb_rest_client/models/models_ce/to_device_rpc_request_snmp_communication_config.py +130 -0
  612. tb_rest_client/models/models_ce/to_server_rpc_request_snmp_communication_config.py +130 -0
  613. tb_rest_client/models/models_ce/totp_two_fa_account_config.py +131 -0
  614. tb_rest_client/models/models_ce/totp_two_fa_provider_config.py +131 -0
  615. tb_rest_client/models/models_ce/transport_payload_type_configuration.py +134 -0
  616. tb_rest_client/models/models_ce/ts_value.py +176 -0
  617. tb_rest_client/models/models_ce/twilio_sms_provider_configuration.py +188 -0
  618. tb_rest_client/models/models_ce/two_fa_account_config.py +162 -0
  619. tb_rest_client/models/models_ce/two_fa_account_config_update_request.py +124 -0
  620. tb_rest_client/models/models_ce/two_fa_provider_config.py +136 -0
  621. tb_rest_client/models/models_ce/two_fa_provider_info.py +234 -0
  622. tb_rest_client/models/models_ce/type_key_body.py +125 -0
  623. tb_rest_client/models/models_ce/update_message.py +266 -0
  624. tb_rest_client/models/models_ce/usage_info.py +696 -0
  625. tb_rest_client/models/models_ce/user.py +432 -0
  626. tb_rest_client/models/models_ce/user_activation_link.py +150 -0
  627. tb_rest_client/models/models_ce/user_dashboards_info.py +154 -0
  628. tb_rest_client/models/models_ce/user_email_info.py +208 -0
  629. tb_rest_client/models/models_ce/user_id.py +162 -0
  630. tb_rest_client/models/models_ce/user_list_filter.py +131 -0
  631. tb_rest_client/models/models_ce/user_mobile_info.py +228 -0
  632. tb_rest_client/models/models_ce/user_notification_settings.py +125 -0
  633. tb_rest_client/models/models_ce/user_password_policy.py +378 -0
  634. tb_rest_client/models/models_ce/users_filter.py +140 -0
  635. tb_rest_client/models/models_ce/vc_entity_body.py +98 -0
  636. tb_rest_client/models/models_ce/vc_version_body.py +98 -0
  637. tb_rest_client/models/models_ce/version.py +98 -0
  638. tb_rest_client/models/models_ce/version_create_config.py +176 -0
  639. tb_rest_client/models/models_ce/version_create_request.py +191 -0
  640. tb_rest_client/models/models_ce/version_creation_result.py +254 -0
  641. tb_rest_client/models/models_ce/version_load_config.py +176 -0
  642. tb_rest_client/models/models_ce/version_load_request.py +165 -0
  643. tb_rest_client/models/models_ce/version_load_result.py +176 -0
  644. tb_rest_client/models/models_ce/versioned_entity_info.py +124 -0
  645. tb_rest_client/models/models_ce/web_delivery_method_notification_template.py +157 -0
  646. tb_rest_client/models/models_ce/web_view_page.py +98 -0
  647. tb_rest_client/models/models_ce/widget_type.py +342 -0
  648. tb_rest_client/models/models_ce/widget_type_details.py +426 -0
  649. tb_rest_client/models/models_ce/widget_type_export_data.py +130 -0
  650. tb_rest_client/models/models_ce/widget_type_id.py +162 -0
  651. tb_rest_client/models/models_ce/widget_type_info.py +428 -0
  652. tb_rest_client/models/models_ce/widgets_bundle.py +400 -0
  653. tb_rest_client/models/models_ce/widgets_bundle_export_data.py +182 -0
  654. tb_rest_client/models/models_ce/widgets_bundle_id.py +162 -0
  655. tb_rest_client/models/models_ce/x509_certificate_chain_provision_configuration.py +156 -0
  656. tb_rest_client/models/models_ce/x509_lw_m2_m_bootstrap_server_credential.py +440 -0
  657. tb_rest_client/models/models_pe/__init__.py +413 -0
  658. tb_rest_client/models/models_pe/account_two_fa_settings.py +124 -0
  659. tb_rest_client/models/models_pe/activate_user_request.py +154 -0
  660. tb_rest_client/models/models_pe/admin_settings.py +232 -0
  661. tb_rest_client/models/models_pe/admin_settings_id.py +127 -0
  662. tb_rest_client/models/models_pe/affected_tenant_administrators_filter.py +104 -0
  663. tb_rest_client/models/models_pe/affected_user_filter.py +104 -0
  664. tb_rest_client/models/models_pe/alarm.py +749 -0
  665. tb_rest_client/models/models_pe/alarm_assignee.py +202 -0
  666. tb_rest_client/models/models_pe/alarm_assignment_notification_rule_trigger_config.py +230 -0
  667. tb_rest_client/models/models_pe/alarm_comment.py +292 -0
  668. tb_rest_client/models/models_pe/alarm_comment_id.py +127 -0
  669. tb_rest_client/models/models_pe/alarm_comment_info.py +376 -0
  670. tb_rest_client/models/models_pe/alarm_comment_notification_rule_trigger_config.py +248 -0
  671. tb_rest_client/models/models_pe/alarm_condition.py +154 -0
  672. tb_rest_client/models/models_pe/alarm_condition_filter.py +214 -0
  673. tb_rest_client/models/models_pe/alarm_condition_filter_key.py +160 -0
  674. tb_rest_client/models/models_pe/alarm_condition_spec.py +135 -0
  675. tb_rest_client/models/models_pe/alarm_count_query.py +372 -0
  676. tb_rest_client/models/models_pe/alarm_data.py +883 -0
  677. tb_rest_client/models/models_pe/alarm_data_page_link.py +450 -0
  678. tb_rest_client/models/models_pe/alarm_data_query.py +254 -0
  679. tb_rest_client/models/models_pe/alarm_id.py +162 -0
  680. tb_rest_client/models/models_pe/alarm_info.py +831 -0
  681. tb_rest_client/models/models_pe/alarm_notification_rule_trigger_config.py +223 -0
  682. tb_rest_client/models/models_pe/alarm_rule.py +206 -0
  683. tb_rest_client/models/models_pe/alarm_schedule.py +152 -0
  684. tb_rest_client/models/models_pe/all_users_filter.py +104 -0
  685. tb_rest_client/models/models_pe/allow_create_new_devices_device_profile_provision_configuration.py +104 -0
  686. tb_rest_client/models/models_pe/allowed_permissions_info.py +318 -0
  687. tb_rest_client/models/models_pe/any_time_schedule.py +104 -0
  688. tb_rest_client/models/models_pe/api_usage_limit_notification_rule_trigger_config.py +170 -0
  689. tb_rest_client/models/models_pe/api_usage_state_filter.py +130 -0
  690. tb_rest_client/models/models_pe/array_node.py +98 -0
  691. tb_rest_client/models/models_pe/asset.py +393 -0
  692. tb_rest_client/models/models_pe/asset_id.py +162 -0
  693. tb_rest_client/models/models_pe/asset_info.py +449 -0
  694. tb_rest_client/models/models_pe/asset_profile_id.py +162 -0
  695. tb_rest_client/models/models_pe/asset_search_query.py +180 -0
  696. tb_rest_client/models/models_pe/asset_search_query_filter.py +266 -0
  697. tb_rest_client/models/models_pe/asset_type_filter.py +182 -0
  698. tb_rest_client/models/models_pe/atomic_integer.py +228 -0
  699. tb_rest_client/models/models_pe/attribute_export_data.py +280 -0
  700. tb_rest_client/models/models_pe/attributes_entity_view.py +185 -0
  701. tb_rest_client/models/models_pe/audit_log.py +434 -0
  702. tb_rest_client/models/models_pe/audit_log_id.py +127 -0
  703. tb_rest_client/models/models_pe/auto_version_create_config.py +254 -0
  704. tb_rest_client/models/models_pe/aws_sns_sms_provider_configuration.py +188 -0
  705. tb_rest_client/models/models_pe/backup_code_two_fa_account_config.py +157 -0
  706. tb_rest_client/models/models_pe/backup_code_two_fa_provider_config.py +130 -0
  707. tb_rest_client/models/models_pe/blob_entity_id.py +162 -0
  708. tb_rest_client/models/models_pe/blob_entity_info.py +346 -0
  709. tb_rest_client/models/models_pe/blob_entity_with_customer_info.py +402 -0
  710. tb_rest_client/models/models_pe/boolean_filter_predicate.py +162 -0
  711. tb_rest_client/models/models_pe/branch_info.py +150 -0
  712. tb_rest_client/models/models_pe/bulk_import_request.py +202 -0
  713. tb_rest_client/models/models_pe/bulk_import_result_asset.py +202 -0
  714. tb_rest_client/models/models_pe/bulk_import_result_device.py +202 -0
  715. tb_rest_client/models/models_pe/bulk_import_result_edge.py +202 -0
  716. tb_rest_client/models/models_pe/byte_buffer.py +306 -0
  717. tb_rest_client/models/models_pe/captcha_params.py +132 -0
  718. tb_rest_client/models/models_pe/change_password_request.py +154 -0
  719. tb_rest_client/models/models_pe/check_pre_provisioned_devices_device_profile_provision_configuration.py +104 -0
  720. tb_rest_client/models/models_pe/claim_request.py +124 -0
  721. tb_rest_client/models/models_pe/clear_rule.py +131 -0
  722. tb_rest_client/models/models_pe/client_attributes_querying_snmp_communication_config.py +156 -0
  723. tb_rest_client/models/models_pe/coap_device_profile_transport_configuration.py +156 -0
  724. tb_rest_client/models/models_pe/coap_device_transport_configuration.py +214 -0
  725. tb_rest_client/models/models_pe/coap_device_type_configuration.py +134 -0
  726. tb_rest_client/models/models_pe/column_mapping.py +156 -0
  727. tb_rest_client/models/models_pe/comparison_ts_value.py +150 -0
  728. tb_rest_client/models/models_pe/complex_filter_predicate.py +162 -0
  729. tb_rest_client/models/models_pe/complex_version_create_request.py +162 -0
  730. tb_rest_client/models/models_pe/component_descriptor.py +420 -0
  731. tb_rest_client/models/models_pe/component_descriptor_id.py +127 -0
  732. tb_rest_client/models/models_pe/contact_based_object.py +410 -0
  733. tb_rest_client/models/models_pe/converter.py +376 -0
  734. tb_rest_client/models/models_pe/converter_id.py +162 -0
  735. tb_rest_client/models/models_pe/converters_info.py +136 -0
  736. tb_rest_client/models/models_pe/custom_menu.py +327 -0
  737. tb_rest_client/models/models_pe/custom_menu_config.py +113 -0
  738. tb_rest_client/models/models_pe/custom_menu_delete_result.py +168 -0
  739. tb_rest_client/models/models_pe/custom_menu_id.py +113 -0
  740. tb_rest_client/models/models_pe/custom_menu_info.py +287 -0
  741. tb_rest_client/models/models_pe/custom_menu_item.py +398 -0
  742. tb_rest_client/models/models_pe/custom_time_schedule.py +156 -0
  743. tb_rest_client/models/models_pe/custom_time_schedule_item.py +202 -0
  744. tb_rest_client/models/models_pe/custom_translation.py +127 -0
  745. tb_rest_client/models/models_pe/customer_id.py +162 -0
  746. tb_rest_client/models/models_pe/customer_info.py +672 -0
  747. tb_rest_client/models/models_pe/customer_users_filter.py +131 -0
  748. tb_rest_client/models/models_pe/dashboard_id.py +162 -0
  749. tb_rest_client/models/models_pe/dashboard_info.py +506 -0
  750. tb_rest_client/models/models_pe/debug_converter_event_filter.py +316 -0
  751. tb_rest_client/models/models_pe/debug_integration_event_filter.py +290 -0
  752. tb_rest_client/models/models_pe/default_coap_device_type_configuration.py +130 -0
  753. tb_rest_client/models/models_pe/default_dashboard_params.py +154 -0
  754. tb_rest_client/models/models_pe/default_device_configuration.py +104 -0
  755. tb_rest_client/models/models_pe/default_device_profile_configuration.py +104 -0
  756. tb_rest_client/models/models_pe/default_device_profile_transport_configuration.py +104 -0
  757. tb_rest_client/models/models_pe/default_device_transport_configuration.py +104 -0
  758. tb_rest_client/models/models_pe/default_menu_item.py +230 -0
  759. tb_rest_client/models/models_pe/default_rule_chain_create_request.py +127 -0
  760. tb_rest_client/models/models_pe/default_tenant_profile_configuration.py +1794 -0
  761. tb_rest_client/models/models_pe/deferred_result_entity_data_diff.py +150 -0
  762. tb_rest_client/models/models_pe/deferred_result_entity_data_info.py +150 -0
  763. tb_rest_client/models/models_pe/deferred_result_list_branch_info.py +150 -0
  764. tb_rest_client/models/models_pe/deferred_result_list_versioned_entity_info.py +150 -0
  765. tb_rest_client/models/models_pe/deferred_result_page_data_entity_version.py +150 -0
  766. tb_rest_client/models/models_pe/deferred_result_repository_settings.py +150 -0
  767. tb_rest_client/models/models_pe/deferred_result_void.py +150 -0
  768. tb_rest_client/models/models_pe/deferred_resultuuid.py +150 -0
  769. tb_rest_client/models/models_pe/delivery_method_notification_template.py +191 -0
  770. tb_rest_client/models/models_pe/device.py +471 -0
  771. tb_rest_client/models/models_pe/device_activity_notification_rule_trigger_config.py +190 -0
  772. tb_rest_client/models/models_pe/device_configuration.py +133 -0
  773. tb_rest_client/models/models_pe/device_credentials_id.py +127 -0
  774. tb_rest_client/models/models_pe/device_data.py +154 -0
  775. tb_rest_client/models/models_pe/device_export_data.py +156 -0
  776. tb_rest_client/models/models_pe/device_group_ota_package.py +234 -0
  777. tb_rest_client/models/models_pe/device_id.py +162 -0
  778. tb_rest_client/models/models_pe/device_info.py +555 -0
  779. tb_rest_client/models/models_pe/device_profile_alarm.py +348 -0
  780. tb_rest_client/models/models_pe/device_profile_configuration.py +133 -0
  781. tb_rest_client/models/models_pe/device_profile_data.py +210 -0
  782. tb_rest_client/models/models_pe/device_profile_id.py +162 -0
  783. tb_rest_client/models/models_pe/device_profile_provision_configuration.py +162 -0
  784. tb_rest_client/models/models_pe/device_profile_transport_configuration.py +137 -0
  785. tb_rest_client/models/models_pe/device_search_query.py +180 -0
  786. tb_rest_client/models/models_pe/device_search_query_filter.py +266 -0
  787. tb_rest_client/models/models_pe/device_transport_configuration.py +137 -0
  788. tb_rest_client/models/models_pe/device_type_filter.py +182 -0
  789. tb_rest_client/models/models_pe/disabled_device_profile_provision_configuration.py +104 -0
  790. tb_rest_client/models/models_pe/duration_alarm_condition_spec.py +162 -0
  791. tb_rest_client/models/models_pe/edge.py +510 -0
  792. tb_rest_client/models/models_pe/edge_communication_failure_notification_rule_trigger_config.py +130 -0
  793. tb_rest_client/models/models_pe/edge_connection_notification_rule_trigger_config.py +163 -0
  794. tb_rest_client/models/models_pe/edge_event.py +396 -0
  795. tb_rest_client/models/models_pe/edge_event_id.py +127 -0
  796. tb_rest_client/models/models_pe/edge_id.py +162 -0
  797. tb_rest_client/models/models_pe/edge_info.py +566 -0
  798. tb_rest_client/models/models_pe/edge_instructions.py +126 -0
  799. tb_rest_client/models/models_pe/edge_search_query.py +180 -0
  800. tb_rest_client/models/models_pe/edge_search_query_filter.py +266 -0
  801. tb_rest_client/models/models_pe/edge_type_filter.py +168 -0
  802. tb_rest_client/models/models_pe/efento_coap_device_type_configuration.py +104 -0
  803. tb_rest_client/models/models_pe/email_delivery_method_notification_template.py +131 -0
  804. tb_rest_client/models/models_pe/email_two_fa_account_config.py +131 -0
  805. tb_rest_client/models/models_pe/email_two_fa_provider_config.py +130 -0
  806. tb_rest_client/models/models_pe/enterprise_captcha_params.py +98 -0
  807. tb_rest_client/models/models_pe/entities_by_group_name_filter.py +188 -0
  808. tb_rest_client/models/models_pe/entities_limit_notification_rule_trigger_config.py +163 -0
  809. tb_rest_client/models/models_pe/entity_action_notification_rule_trigger_config.py +215 -0
  810. tb_rest_client/models/models_pe/entity_count_query.py +150 -0
  811. tb_rest_client/models/models_pe/entity_data.py +254 -0
  812. tb_rest_client/models/models_pe/entity_data_diff.py +150 -0
  813. tb_rest_client/models/models_pe/entity_data_info.py +228 -0
  814. tb_rest_client/models/models_pe/entity_data_page_link.py +228 -0
  815. tb_rest_client/models/models_pe/entity_data_query.py +228 -0
  816. tb_rest_client/models/models_pe/entity_data_sort_order.py +156 -0
  817. tb_rest_client/models/models_pe/entity_export_data_object.py +210 -0
  818. tb_rest_client/models/models_pe/entity_filter.py +152 -0
  819. tb_rest_client/models/models_pe/entity_group.py +400 -0
  820. tb_rest_client/models/models_pe/entity_group_export_data.py +182 -0
  821. tb_rest_client/models/models_pe/entity_group_filter.py +162 -0
  822. tb_rest_client/models/models_pe/entity_group_id.py +162 -0
  823. tb_rest_client/models/models_pe/entity_group_info.py +429 -0
  824. tb_rest_client/models/models_pe/entity_group_list_filter.py +162 -0
  825. tb_rest_client/models/models_pe/entity_group_name_filter.py +162 -0
  826. tb_rest_client/models/models_pe/entity_id.py +160 -0
  827. tb_rest_client/models/models_pe/entity_key.py +156 -0
  828. tb_rest_client/models/models_pe/entity_list_filter.py +162 -0
  829. tb_rest_client/models/models_pe/entity_load_error.py +202 -0
  830. tb_rest_client/models/models_pe/entity_name_filter.py +162 -0
  831. tb_rest_client/models/models_pe/entity_relation_info.py +320 -0
  832. tb_rest_client/models/models_pe/entity_relations_query.py +152 -0
  833. tb_rest_client/models/models_pe/entity_subtype.py +182 -0
  834. tb_rest_client/models/models_pe/entity_type_filter.py +136 -0
  835. tb_rest_client/models/models_pe/entity_type_load_result.py +286 -0
  836. tb_rest_client/models/models_pe/entity_type_version_create_config.py +312 -0
  837. tb_rest_client/models/models_pe/entity_type_version_load_config.py +306 -0
  838. tb_rest_client/models/models_pe/entity_type_version_load_request.py +156 -0
  839. tb_rest_client/models/models_pe/entity_version.py +202 -0
  840. tb_rest_client/models/models_pe/entity_view.py +449 -0
  841. tb_rest_client/models/models_pe/entity_view_id.py +162 -0
  842. tb_rest_client/models/models_pe/entity_view_info.py +505 -0
  843. tb_rest_client/models/models_pe/entity_view_search_query.py +180 -0
  844. tb_rest_client/models/models_pe/entity_view_search_query_filter.py +266 -0
  845. tb_rest_client/models/models_pe/entity_view_type_filter.py +182 -0
  846. tb_rest_client/models/models_pe/error_event_filter.py +188 -0
  847. tb_rest_client/models/models_pe/escalated_notification_rule_recipients_config.py +131 -0
  848. tb_rest_client/models/models_pe/event_filter.py +174 -0
  849. tb_rest_client/models/models_pe/event_id.py +127 -0
  850. tb_rest_client/models/models_pe/event_info.py +286 -0
  851. tb_rest_client/models/models_pe/exportable_entity_entity_id.py +150 -0
  852. tb_rest_client/models/models_pe/favicon.py +124 -0
  853. tb_rest_client/models/models_pe/features_info.py +254 -0
  854. tb_rest_client/models/models_pe/group_entity_export_data.py +130 -0
  855. tb_rest_client/models/models_pe/group_permission.py +370 -0
  856. tb_rest_client/models/models_pe/group_permission_id.py +162 -0
  857. tb_rest_client/models/models_pe/group_permission_info.py +560 -0
  858. tb_rest_client/models/models_pe/home_dashboard.py +478 -0
  859. tb_rest_client/models/models_pe/home_menu_item.py +320 -0
  860. tb_rest_client/models/models_pe/input_stream.py +98 -0
  861. tb_rest_client/models/models_pe/integration.py +571 -0
  862. tb_rest_client/models/models_pe/integration_converters_info.py +136 -0
  863. tb_rest_client/models/models_pe/integration_id.py +162 -0
  864. tb_rest_client/models/models_pe/integration_info.py +460 -0
  865. tb_rest_client/models/models_pe/integration_lifecycle_event_notification_rule_trigger_config.py +222 -0
  866. tb_rest_client/models/models_pe/json_node.py +98 -0
  867. tb_rest_client/models/models_pe/json_transport_payload_configuration.py +104 -0
  868. tb_rest_client/models/models_pe/key_filter.py +182 -0
  869. tb_rest_client/models/models_pe/key_filter_predicate.py +136 -0
  870. tb_rest_client/models/models_pe/last_visited_dashboard_info.py +210 -0
  871. tb_rest_client/models/models_pe/license_usage_info.py +332 -0
  872. tb_rest_client/models/models_pe/life_cycle_event_filter.py +222 -0
  873. tb_rest_client/models/models_pe/locale_code_upload_body.py +125 -0
  874. tb_rest_client/models/models_pe/login_request.py +156 -0
  875. tb_rest_client/models/models_pe/login_response.py +156 -0
  876. tb_rest_client/models/models_pe/login_white_labeling_params.py +682 -0
  877. tb_rest_client/models/models_pe/lw_m2_m_bootstrap_server_credential.py +136 -0
  878. tb_rest_client/models/models_pe/lw_m2_m_server_security_config_default.py +490 -0
  879. tb_rest_client/models/models_pe/lw_m2m_instance.py +154 -0
  880. tb_rest_client/models/models_pe/lw_m2m_object.py +266 -0
  881. tb_rest_client/models/models_pe/lw_m2m_resource_observe.py +266 -0
  882. tb_rest_client/models/models_pe/lwm2m_device_profile_transport_configuration.py +208 -0
  883. tb_rest_client/models/models_pe/lwm2m_device_transport_configuration.py +214 -0
  884. tb_rest_client/models/models_pe/mapping.py +202 -0
  885. tb_rest_client/models/models_pe/menu_item.py +152 -0
  886. tb_rest_client/models/models_pe/merged_group_permission_info.py +163 -0
  887. tb_rest_client/models/models_pe/merged_group_type_permission_info.py +154 -0
  888. tb_rest_client/models/models_pe/merged_user_permissions.py +273 -0
  889. tb_rest_client/models/models_pe/mobile_app_delivery_method_notification_template.py +157 -0
  890. tb_rest_client/models/models_pe/mobile_app_notification_delivery_method_config.py +182 -0
  891. tb_rest_client/models/models_pe/mobile_app_settings_id.py +113 -0
  892. tb_rest_client/models/models_pe/mobile_redirect_params.py +154 -0
  893. tb_rest_client/models/models_pe/mobile_self_registration_params.py +98 -0
  894. tb_rest_client/models/models_pe/mobile_session_info.py +124 -0
  895. tb_rest_client/models/models_pe/model.py +162 -0
  896. tb_rest_client/models/models_pe/mqtt_device_profile_transport_configuration.py +286 -0
  897. tb_rest_client/models/models_pe/mqtt_device_transport_configuration.py +104 -0
  898. tb_rest_client/models/models_pe/new_platform_version_notification_rule_trigger_config.py +104 -0
  899. tb_rest_client/models/models_pe/no_sec_lw_m2_m_bootstrap_server_credential.py +440 -0
  900. tb_rest_client/models/models_pe/node_connection_info.py +185 -0
  901. tb_rest_client/models/models_pe/notification.py +402 -0
  902. tb_rest_client/models/models_pe/notification_delivery_method_config.py +134 -0
  903. tb_rest_client/models/models_pe/notification_id.py +162 -0
  904. tb_rest_client/models/models_pe/notification_info.py +185 -0
  905. tb_rest_client/models/models_pe/notification_request.py +417 -0
  906. tb_rest_client/models/models_pe/notification_request_config.py +124 -0
  907. tb_rest_client/models/models_pe/notification_request_id.py +162 -0
  908. tb_rest_client/models/models_pe/notification_request_preview.py +202 -0
  909. tb_rest_client/models/models_pe/notification_request_stats.py +202 -0
  910. tb_rest_client/models/models_pe/notification_rule_config.py +124 -0
  911. tb_rest_client/models/models_pe/notification_rule_id.py +162 -0
  912. tb_rest_client/models/models_pe/notification_rule_recipients_config.py +139 -0
  913. tb_rest_client/models/models_pe/notification_rule_trigger_config.py +135 -0
  914. tb_rest_client/models/models_pe/notification_template_config.py +125 -0
  915. tb_rest_client/models/models_pe/notification_template_id.py +162 -0
  916. tb_rest_client/models/models_pe/numeric_filter_predicate.py +162 -0
  917. tb_rest_client/models/models_pe/o_auth2_basic_mapper_config.py +381 -0
  918. tb_rest_client/models/models_pe/o_auth2_client_info.py +267 -0
  919. tb_rest_client/models/models_pe/o_auth2_client_registration_template.py +565 -0
  920. tb_rest_client/models/models_pe/o_auth2_client_registration_template_id.py +127 -0
  921. tb_rest_client/models/models_pe/o_auth2_custom_mapper_config.py +202 -0
  922. tb_rest_client/models/models_pe/o_auth2_domain_info.py +162 -0
  923. tb_rest_client/models/models_pe/o_auth2_info.py +183 -0
  924. tb_rest_client/models/models_pe/o_auth2_mapper_config.py +241 -0
  925. tb_rest_client/models/models_pe/o_auth2_mobile_info.py +156 -0
  926. tb_rest_client/models/models_pe/o_auth2_params_info.py +185 -0
  927. tb_rest_client/models/models_pe/o_auth2_registration_info.py +502 -0
  928. tb_rest_client/models/models_pe/object_attributes.py +410 -0
  929. tb_rest_client/models/models_pe/object_node.py +98 -0
  930. tb_rest_client/models/models_pe/originator_entity_owner_users_filter.py +104 -0
  931. tb_rest_client/models/models_pe/ota_package.py +576 -0
  932. tb_rest_client/models/models_pe/ota_package_id.py +162 -0
  933. tb_rest_client/models/models_pe/ota_package_info.py +550 -0
  934. tb_rest_client/models/models_pe/ota_package_ota_package_id_body.py +184 -0
  935. tb_rest_client/models/models_pe/other_configuration.py +364 -0
  936. tb_rest_client/models/models_pe/page_data_blob_entity_with_customer_info.py +210 -0
  937. tb_rest_client/models/models_pe/page_data_contact_basedobject.py +210 -0
  938. tb_rest_client/models/models_pe/page_data_converter.py +210 -0
  939. tb_rest_client/models/models_pe/page_data_customer_info.py +210 -0
  940. tb_rest_client/models/models_pe/page_data_edge.py +210 -0
  941. tb_rest_client/models/models_pe/page_data_edge_event.py +210 -0
  942. tb_rest_client/models/models_pe/page_data_edge_info.py +210 -0
  943. tb_rest_client/models/models_pe/page_data_entity_group_info.py +210 -0
  944. tb_rest_client/models/models_pe/page_data_entity_version.py +210 -0
  945. tb_rest_client/models/models_pe/page_data_entity_view_info.py +210 -0
  946. tb_rest_client/models/models_pe/page_data_event_info.py +210 -0
  947. tb_rest_client/models/models_pe/page_data_integration.py +210 -0
  948. tb_rest_client/models/models_pe/page_data_integration_info.py +210 -0
  949. tb_rest_client/models/models_pe/page_data_ota_package_info.py +210 -0
  950. tb_rest_client/models/models_pe/page_data_queue.py +210 -0
  951. tb_rest_client/models/models_pe/page_data_role.py +210 -0
  952. tb_rest_client/models/models_pe/page_data_rule_chain.py +210 -0
  953. tb_rest_client/models/models_pe/page_data_scheduler_event_info.py +210 -0
  954. tb_rest_client/models/models_pe/page_data_short_entity_view.py +210 -0
  955. tb_rest_client/models/models_pe/page_data_user_email_info.py +210 -0
  956. tb_rest_client/models/models_pe/page_data_user_info.py +210 -0
  957. tb_rest_client/models/models_pe/palette.py +183 -0
  958. tb_rest_client/models/models_pe/palette_settings.py +152 -0
  959. tb_rest_client/models/models_pe/platform_two_fa_settings.py +257 -0
  960. tb_rest_client/models/models_pe/platform_users_notification_target_config.py +131 -0
  961. tb_rest_client/models/models_pe/power_saving_configuration.py +208 -0
  962. tb_rest_client/models/models_pe/processing_strategy.py +234 -0
  963. tb_rest_client/models/models_pe/proto_transport_payload_configuration.py +260 -0
  964. tb_rest_client/models/models_pe/psklw_m2_m_bootstrap_server_credential.py +440 -0
  965. tb_rest_client/models/models_pe/queue.py +410 -0
  966. tb_rest_client/models/models_pe/raw_data_event_filter.py +216 -0
  967. tb_rest_client/models/models_pe/relation_entity_type_filter.py +189 -0
  968. tb_rest_client/models/models_pe/relations_query_filter.py +350 -0
  969. tb_rest_client/models/models_pe/relations_search_parameters.py +284 -0
  970. tb_rest_client/models/models_pe/repeating_alarm_condition_spec.py +130 -0
  971. tb_rest_client/models/models_pe/report_config.py +381 -0
  972. tb_rest_client/models/models_pe/repository_settings.py +390 -0
  973. tb_rest_client/models/models_pe/repository_settings_info.py +150 -0
  974. tb_rest_client/models/models_pe/reset_password_email_request.py +126 -0
  975. tb_rest_client/models/models_pe/reset_password_request.py +154 -0
  976. tb_rest_client/models/models_pe/resource.py +306 -0
  977. tb_rest_client/models/models_pe/response_entity.py +182 -0
  978. tb_rest_client/models/models_pe/role.py +371 -0
  979. tb_rest_client/models/models_pe/role_id.py +162 -0
  980. tb_rest_client/models/models_pe/rpc.py +344 -0
  981. tb_rest_client/models/models_pe/rpc_id.py +162 -0
  982. tb_rest_client/models/models_pe/rpklw_m2_m_bootstrap_server_credential.py +440 -0
  983. tb_rest_client/models/models_pe/rule_chain.py +402 -0
  984. tb_rest_client/models/models_pe/rule_chain_connection_info.py +210 -0
  985. tb_rest_client/models/models_pe/rule_chain_data.py +156 -0
  986. tb_rest_client/models/models_pe/rule_chain_debug_event_filter.py +240 -0
  987. tb_rest_client/models/models_pe/rule_chain_export_data.py +156 -0
  988. tb_rest_client/models/models_pe/rule_chain_id.py +162 -0
  989. tb_rest_client/models/models_pe/rule_chain_import_result.py +202 -0
  990. tb_rest_client/models/models_pe/rule_chain_meta_data.py +269 -0
  991. tb_rest_client/models/models_pe/rule_chain_output_labels_usage.py +239 -0
  992. tb_rest_client/models/models_pe/rule_engine_component_lifecycle_event_notification_rule_trigger_config.py +274 -0
  993. tb_rest_client/models/models_pe/rule_node.py +424 -0
  994. tb_rest_client/models/models_pe/rule_node_debug_event_filter.py +448 -0
  995. tb_rest_client/models/models_pe/rule_node_id.py +162 -0
  996. tb_rest_client/models/models_pe/save_device_with_credentials_request.py +152 -0
  997. tb_rest_client/models/models_pe/save_ota_package_info_request.py +578 -0
  998. tb_rest_client/models/models_pe/scheduler_event.py +444 -0
  999. tb_rest_client/models/models_pe/scheduler_event_filter.py +156 -0
  1000. tb_rest_client/models/models_pe/scheduler_event_id.py +162 -0
  1001. tb_rest_client/models/models_pe/scheduler_event_info.py +418 -0
  1002. tb_rest_client/models/models_pe/scheduler_event_with_customer_info.py +474 -0
  1003. tb_rest_client/models/models_pe/security_settings.py +266 -0
  1004. tb_rest_client/models/models_pe/self_registration_params.py +630 -0
  1005. tb_rest_client/models/models_pe/share_group_request.py +235 -0
  1006. tb_rest_client/models/models_pe/shared_attributes_setting_snmp_communication_config.py +130 -0
  1007. tb_rest_client/models/models_pe/short_customer_info.py +204 -0
  1008. tb_rest_client/models/models_pe/short_entity_view.py +154 -0
  1009. tb_rest_client/models/models_pe/sign_up_field.py +184 -0
  1010. tb_rest_client/models/models_pe/sign_up_request.py +294 -0
  1011. tb_rest_client/models/models_pe/sign_up_self_registration_params.py +266 -0
  1012. tb_rest_client/models/models_pe/simple_alarm_condition_spec.py +104 -0
  1013. tb_rest_client/models/models_pe/single_entity_filter.py +130 -0
  1014. tb_rest_client/models/models_pe/single_entity_version_create_request.py +156 -0
  1015. tb_rest_client/models/models_pe/single_entity_version_load_request.py +182 -0
  1016. tb_rest_client/models/models_pe/slack_conversation.py +263 -0
  1017. tb_rest_client/models/models_pe/slack_delivery_method_notification_template.py +104 -0
  1018. tb_rest_client/models/models_pe/slack_notification_delivery_method_config.py +131 -0
  1019. tb_rest_client/models/models_pe/slack_notification_target_config.py +163 -0
  1020. tb_rest_client/models/models_pe/smpp_sms_provider_configuration.py +541 -0
  1021. tb_rest_client/models/models_pe/sms_delivery_method_notification_template.py +104 -0
  1022. tb_rest_client/models/models_pe/sms_provider_configuration.py +135 -0
  1023. tb_rest_client/models/models_pe/sms_two_fa_account_config.py +131 -0
  1024. tb_rest_client/models/models_pe/sms_two_fa_provider_config.py +157 -0
  1025. tb_rest_client/models/models_pe/snmp_communication_config.py +142 -0
  1026. tb_rest_client/models/models_pe/snmp_device_profile_transport_configuration.py +182 -0
  1027. tb_rest_client/models/models_pe/snmp_device_transport_configuration.py +434 -0
  1028. tb_rest_client/models/models_pe/snmp_mapping.py +182 -0
  1029. tb_rest_client/models/models_pe/solution_install_response.py +260 -0
  1030. tb_rest_client/models/models_pe/specific_time_schedule.py +208 -0
  1031. tb_rest_client/models/models_pe/starred_dashboard_info.py +182 -0
  1032. tb_rest_client/models/models_pe/state_entity_owner_filter.py +130 -0
  1033. tb_rest_client/models/models_pe/statistics_event_filter.py +244 -0
  1034. tb_rest_client/models/models_pe/string_filter_predicate.py +188 -0
  1035. tb_rest_client/models/models_pe/submit_strategy.py +156 -0
  1036. tb_rest_client/models/models_pe/subscription_usage.py +540 -0
  1037. tb_rest_client/models/models_pe/system_administrators_filter.py +104 -0
  1038. tb_rest_client/models/models_pe/system_info.py +152 -0
  1039. tb_rest_client/models/models_pe/system_info_data.py +322 -0
  1040. tb_rest_client/models/models_pe/task_processing_failure_notification_rule_trigger_config.py +98 -0
  1041. tb_rest_client/models/models_pe/tb_image_delete_result.py +176 -0
  1042. tb_rest_client/models/models_pe/tb_resource.py +594 -0
  1043. tb_rest_client/models/models_pe/tb_resource_id.py +162 -0
  1044. tb_rest_client/models/models_pe/tb_resource_info.py +540 -0
  1045. tb_rest_client/models/models_pe/telemetry_entity_view.py +154 -0
  1046. tb_rest_client/models/models_pe/telemetry_mapping_configuration.py +228 -0
  1047. tb_rest_client/models/models_pe/telemetry_querying_snmp_communication_config.py +156 -0
  1048. tb_rest_client/models/models_pe/tenant_administrators_filter.py +156 -0
  1049. tb_rest_client/models/models_pe/tenant_profile_configuration.py +133 -0
  1050. tb_rest_client/models/models_pe/tenant_profile_data.py +154 -0
  1051. tb_rest_client/models/models_pe/tenant_profile_id.py +162 -0
  1052. tb_rest_client/models/models_pe/tenant_profile_queue_configuration.py +332 -0
  1053. tb_rest_client/models/models_pe/tenant_solution_template_details.py +376 -0
  1054. tb_rest_client/models/models_pe/tenant_solution_template_info.py +440 -0
  1055. tb_rest_client/models/models_pe/tenant_solution_template_instructions.py +232 -0
  1056. tb_rest_client/models/models_pe/test_sms_request.py +182 -0
  1057. tb_rest_client/models/models_pe/thingsboard_credentials_expired_response.py +238 -0
  1058. tb_rest_client/models/models_pe/thingsboard_error_response.py +210 -0
  1059. tb_rest_client/models/models_pe/to_device_rpc_request_snmp_communication_config.py +130 -0
  1060. tb_rest_client/models/models_pe/totp_two_fa_account_config.py +131 -0
  1061. tb_rest_client/models/models_pe/totp_two_fa_provider_config.py +131 -0
  1062. tb_rest_client/models/models_pe/translation_info.py +238 -0
  1063. tb_rest_client/models/models_pe/transport_payload_type_configuration.py +134 -0
  1064. tb_rest_client/models/models_pe/ts_value.py +176 -0
  1065. tb_rest_client/models/models_pe/twilio_sms_provider_configuration.py +188 -0
  1066. tb_rest_client/models/models_pe/two_fa_account_config.py +162 -0
  1067. tb_rest_client/models/models_pe/two_fa_account_config_update_request.py +124 -0
  1068. tb_rest_client/models/models_pe/two_fa_provider_config.py +136 -0
  1069. tb_rest_client/models/models_pe/two_fa_provider_info.py +234 -0
  1070. tb_rest_client/models/models_pe/update_message.py +266 -0
  1071. tb_rest_client/models/models_pe/user.py +484 -0
  1072. tb_rest_client/models/models_pe/user_dashboards_info.py +154 -0
  1073. tb_rest_client/models/models_pe/user_email_info.py +208 -0
  1074. tb_rest_client/models/models_pe/user_group_list_filter.py +131 -0
  1075. tb_rest_client/models/models_pe/user_id.py +162 -0
  1076. tb_rest_client/models/models_pe/user_info.py +540 -0
  1077. tb_rest_client/models/models_pe/user_list_filter.py +131 -0
  1078. tb_rest_client/models/models_pe/user_password_policy.py +378 -0
  1079. tb_rest_client/models/models_pe/user_role_filter.py +131 -0
  1080. tb_rest_client/models/models_pe/users_filter.py +142 -0
  1081. tb_rest_client/models/models_pe/v2_captcha_params.py +98 -0
  1082. tb_rest_client/models/models_pe/v3_captcha_params.py +98 -0
  1083. tb_rest_client/models/models_pe/vendor.py +150 -0
  1084. tb_rest_client/models/models_pe/version_create_config.py +228 -0
  1085. tb_rest_client/models/models_pe/version_create_request.py +191 -0
  1086. tb_rest_client/models/models_pe/version_creation_result.py +254 -0
  1087. tb_rest_client/models/models_pe/version_load_config.py +254 -0
  1088. tb_rest_client/models/models_pe/version_load_request.py +165 -0
  1089. tb_rest_client/models/models_pe/version_load_result.py +176 -0
  1090. tb_rest_client/models/models_pe/versioned_entity_info.py +150 -0
  1091. tb_rest_client/models/models_pe/web_delivery_method_notification_template.py +157 -0
  1092. tb_rest_client/models/models_pe/web_self_registration_params.py +98 -0
  1093. tb_rest_client/models/models_pe/white_labeling.py +234 -0
  1094. tb_rest_client/models/models_pe/white_labeling_params.py +486 -0
  1095. tb_rest_client/models/models_pe/widget_type.py +342 -0
  1096. tb_rest_client/models/models_pe/widget_type_details.py +426 -0
  1097. tb_rest_client/models/models_pe/widget_type_export_data.py +130 -0
  1098. tb_rest_client/models/models_pe/widget_type_id.py +162 -0
  1099. tb_rest_client/models/models_pe/widget_type_info.py +428 -0
  1100. tb_rest_client/models/models_pe/widgets_bundle_export_data.py +182 -0
  1101. tb_rest_client/models/models_pe/widgets_bundle_id.py +162 -0
  1102. tb_rest_client/models/models_pe/x509_certificate_chain_provision_configuration.py +156 -0
  1103. tb_rest_client/models/models_pe/x509_lw_m2_m_bootstrap_server_credential.py +440 -0
  1104. tb_rest_client/rest.py +342 -0
  1105. tb_rest_client/rest_client_base.py +2193 -0
  1106. tb_rest_client/rest_client_ce.py +1284 -0
  1107. tb_rest_client/rest_client_pe.py +1910 -0
  1108. tb_rest_client-3.9.0.dist-info/LICENSE +201 -0
  1109. tb_rest_client-3.9.0.dist-info/METADATA +80 -0
  1110. tb_rest_client-3.9.0.dist-info/RECORD +1111 -0
  1111. tb_rest_client-3.9.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,542 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ ThingsBoard REST API
5
+
6
+ ThingsBoard Professional Edition IoT platform REST API documentation. # noqa: E501
7
+
8
+ OpenAPI spec version: 3.9.0PE
9
+ Contact: info@thingsboard.io
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ # Copyright 2025. ThingsBoard
14
+ #
15
+ # Licensed under the Apache License, Version 2.0 (the "License");
16
+ # you may not use this file except in compliance with the License.
17
+ # You may obtain a copy of the License at
18
+ #
19
+ # http://www.apache.org/licenses/LICENSE-2.0
20
+ #
21
+ # Unless required by applicable law or agreed to in writing, software
22
+ # distributed under the License is distributed on an "AS IS" BASIS,
23
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ # See the License for the specific language governing permissions and
25
+ # limitations under the License.
26
+
27
+ from __future__ import absolute_import
28
+
29
+ import re # noqa: F401
30
+
31
+ # python 2 and python 3 compatibility library
32
+ import six
33
+
34
+ from tb_rest_client.api_client import ApiClient
35
+
36
+
37
+ class EntityQueryControllerApi(object):
38
+ """NOTE: This class is auto generated by the swagger code generator program.
39
+
40
+ Do not edit the class manually.
41
+ Ref: https://github.com/swagger-api/swagger-codegen
42
+ """
43
+
44
+ def __init__(self, api_client=None):
45
+ if api_client is None:
46
+ api_client = ApiClient()
47
+ self.api_client = api_client
48
+
49
+ def count_alarms_by_query_using_post(self, **kwargs): # noqa: E501
50
+ """Count Alarms by Query (countAlarmsByQuery) # noqa: E501
51
+
52
+ Returns the number of alarms that match the query definition. # noqa: E501
53
+ This method makes a synchronous HTTP request by default. To make an
54
+ asynchronous HTTP request, please pass async_req=True
55
+ >>> thread = api.count_alarms_by_query_using_post(async_req=True)
56
+ >>> result = thread.get()
57
+
58
+ :param async_req bool
59
+ :param AlarmCountQuery body:
60
+ :return: int
61
+ If the method is called asynchronously,
62
+ returns the request thread.
63
+ """
64
+ kwargs['_return_http_data_only'] = True
65
+ if kwargs.get('async_req'):
66
+ return self.count_alarms_by_query_using_post_with_http_info(**kwargs) # noqa: E501
67
+ else:
68
+ (data) = self.count_alarms_by_query_using_post_with_http_info(**kwargs) # noqa: E501
69
+ return data
70
+
71
+ def count_alarms_by_query_using_post_with_http_info(self, **kwargs): # noqa: E501
72
+ """Count Alarms by Query (countAlarmsByQuery) # noqa: E501
73
+
74
+ Returns the number of alarms that match the query definition. # noqa: E501
75
+ This method makes a synchronous HTTP request by default. To make an
76
+ asynchronous HTTP request, please pass async_req=True
77
+ >>> thread = api.count_alarms_by_query_using_post_with_http_info(async_req=True)
78
+ >>> result = thread.get()
79
+
80
+ :param async_req bool
81
+ :param AlarmCountQuery body:
82
+ :return: int
83
+ If the method is called asynchronously,
84
+ returns the request thread.
85
+ """
86
+
87
+ all_params = ['body'] # noqa: E501
88
+ all_params.append('async_req')
89
+ all_params.append('_return_http_data_only')
90
+ all_params.append('_preload_content')
91
+ all_params.append('_request_timeout')
92
+
93
+ params = locals()
94
+ for key, val in six.iteritems(params['kwargs']):
95
+ if key not in all_params:
96
+ raise TypeError(
97
+ "Got an unexpected keyword argument '%s'"
98
+ " to method count_alarms_by_query_using_post" % key
99
+ )
100
+ params[key] = val
101
+ del params['kwargs']
102
+
103
+ collection_formats = {}
104
+
105
+ path_params = {}
106
+
107
+ query_params = []
108
+
109
+ header_params = {}
110
+
111
+ form_params = []
112
+ local_var_files = {}
113
+
114
+ body_params = None
115
+ if 'body' in params:
116
+ body_params = params['body']
117
+ # HTTP header `Accept`
118
+ header_params['Accept'] = self.api_client.select_header_accept(
119
+ ['application/json']) # noqa: E501
120
+
121
+ # HTTP header `Content-Type`
122
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
123
+ ['application/json']) # noqa: E501
124
+
125
+ # Authentication setting
126
+ auth_settings = ['X-Authorization'] # noqa: E501
127
+
128
+ return self.api_client.call_api(
129
+ '/api/alarmsQuery/count', 'POST',
130
+ path_params,
131
+ query_params,
132
+ header_params,
133
+ body=body_params,
134
+ post_params=form_params,
135
+ files=local_var_files,
136
+ response_type='int', # noqa: E501
137
+ auth_settings=auth_settings,
138
+ async_req=params.get('async_req'),
139
+ _return_http_data_only=params.get('_return_http_data_only'),
140
+ _preload_content=params.get('_preload_content', True),
141
+ _request_timeout=params.get('_request_timeout'),
142
+ collection_formats=collection_formats)
143
+
144
+ def count_entities_by_query_using_post(self, **kwargs): # noqa: E501
145
+ """Count Entities by Query # noqa: E501
146
+
147
+ Allows to run complex queries to search the count of platform entities (devices, assets, customers, etc) based on the combination of main entity filter and multiple key filters. Returns the number of entities that match the query definition. # Query Definition Main **entity filter** is mandatory and defines generic search criteria. For example, \"find all devices with profile 'Moisture Sensor'\" or \"Find all devices related to asset 'Building A'\" Optional **key filters** allow to filter results of the entity filter by complex criteria against main entity fields (name, label, type, etc), attributes and telemetry. For example, \"temperature > 20 or temperature< 10\" or \"name starts with 'T', and attribute 'model' is 'T1000', and timeseries field 'batteryLevel' > 40\". Let's review the example: ```json { \"entityFilter\": { \"type\": \"entityType\", \"entityType\": \"DEVICE\" }, \"keyFilters\": [ { \"key\": { \"type\": \"ATTRIBUTE\", \"key\": \"active\" }, \"valueType\": \"BOOLEAN\", \"predicate\": { \"operation\": \"EQUAL\", \"value\": { \"defaultValue\": true, \"dynamicValue\": null }, \"type\": \"BOOLEAN\" } } ] } ``` Example mentioned above search all devices which have attribute 'active' set to 'true'. Now let's review available entity filters and key filters syntax: # Entity Filters Entity Filter body depends on the 'type' parameter. Let's review available entity filter types. In fact, they do correspond to available dashboard aliases. ## Single Entity Allows to filter only one entity based on the id. For example, this entity filter selects certain device: ```json { \"type\": \"singleEntity\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Group Entities Filter Allows to filter multiple entities of the same type using the entity group type and id. For example, this entity filter selects all devices that belong to the group 'e52b0020-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"entityGroup\", \"groupType\": \"DEVICE\", \"entityGroup\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" } ``` ## Entity List Filter Allows to filter entities of the same type using their ids. For example, this entity filter selects two devices: ```json { \"type\": \"entityList\", \"entityType\": \"DEVICE\", \"entityList\": [ \"e6501f30-2a7a-11ec-94eb-213c95f54092\", \"e6657bf0-2a7a-11ec-94eb-213c95f54092\" ] } ``` ## Entity Name Filter Allows to filter entities of the same type using the **'starts with'** expression over entity name. For example, this entity filter selects all devices which name starts with 'Air Quality': ```json { \"type\": \"entityName\", \"entityType\": \"DEVICE\", \"entityNameFilter\": \"Air Quality\" } ``` ## Entity Type Filter Allows to filter entities based on their type (CUSTOMER, USER, DASHBOARD, ASSET, DEVICE, etc)For example, this entity filter selects all tenant customers: ```json { \"type\": \"entityType\", \"entityType\": \"CUSTOMER\" } ``` ## Group List Filter Return multiple groups of the same type using specified ids. For example, this entity filter selects 2 device groups (if they are present in the system) with ids 'e52b0020-2a7a-11ec-94eb-213c95f54092' and 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entityGroupList\", \"groupType\": \"DEVICE\", \"entityGroupList\": [\"e52b0020-2a7a-11ec-94eb-213c95f54092\", \"e52b0020-2a7a-11ec-94eb-213c95f54093\"] } ``` ## Group Name Filter Allows to filter entity groups based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all devices which name starts with 'CAT': ```json { \"type\": \"entityGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"CAT\" } ``` ## Entities by Group Name Filter Allows to filter entities that belong to group based on the entity type and the group name. Optional parameter 'ownerId' allows you to specify the owner of the group (Tenant or Customer, current user owner by default).For example, this entity filter selects all devices which belong to group 'Water Meters': ```json { \"type\": \"entitiesByGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` Other example, this entity filter selects all devices which belong to group 'Water Meters' which in turn belongs to (sub-)Customer with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entitiesByGroupName\", \"ownerId\": \"e52b0020-2a7a-11ec-94eb-213c95f54093\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` ## Entity owner Filter Allows to fetch owner (Tenant or Customer) of the specified entity. For example, this entity filter selects owner of the device with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"stateEntityOwner\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Asset Type Filter Allows to filter assets based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'charging station' assets which name starts with 'Tesla': ```json { \"type\": \"assetType\", \"assetType\": \"charging station\", \"assetNameFilter\": \"Tesla\" } ``` ## Device Type Filter Allows to filter devices based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Temperature Sensor' devices which name starts with 'ABC': ```json { \"type\": \"deviceType\", \"deviceType\": \"Temperature Sensor\", \"deviceNameFilter\": \"ABC\" } ``` ## Edge Type Filter Allows to filter edge instances based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Factory' edge instances which name starts with 'Nevada': ```json { \"type\": \"edgeType\", \"edgeType\": \"Factory\", \"edgeNameFilter\": \"Nevada\" } ``` ## Entity View Filter Allows to filter entity views based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Concrete Mixer' entity views which name starts with 'CAT': ```json { \"type\": \"entityViewType\", \"entityViewType\": \"Concrete Mixer\", \"entityViewNameFilter\": \"CAT\" } ``` ## Api Usage Filter Allows to query for Api Usage based on optional customer id. If the customer id is not set, returns current tenant API usage.For example, this entity filter selects the 'Api Usage' entity for customer with id 'e6501f30-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"apiUsageState\", \"customerId\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"CUSTOMER\" } } ``` ## Relations Query Filter Allows to filter entities that are related to the provided root entity. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'filter' object allows you to define the relation type and set of acceptable entity types to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only those who match the 'filters'. For example, this entity filter selects all devices and assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"relationsQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"filters\": [ { \"relationType\": \"Contains\", \"entityTypes\": [ \"DEVICE\", \"ASSET\" ] } ] } ``` ## Asset Search Query Allows to filter assets that are related to the provided root entity. Filters related assets based on the relation type and set of asset types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'assetTypes' defines the type of the asset to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only assets that match 'relationType' and 'assetTypes' conditions. For example, this entity filter selects 'charging station' assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"assetSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"assetTypes\": [ \"charging station\" ] } ``` ## Device Search Query Allows to filter devices that are related to the provided root entity. Filters related devices based on the relation type and set of device types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Charging port' and 'Air Quality Sensor' devices which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"deviceTypes\": [ \"Air Quality Sensor\", \"Charging port\" ] } ``` ## Entity View Query Allows to filter entity views that are related to the provided root entity. Filters related entity views based on the relation type and set of entity view types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'entityViewTypes' defines the type of the entity view to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Concrete mixer' entity views which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"entityViewSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"entityViewTypes\": [ \"Concrete mixer\" ] } ``` ## Edge Search Query Allows to filter edge instances that are related to the provided root entity. Filters related edge instances based on the relation type and set of edge types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Factory' edge instances which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"edgeTypes\": [ \"Factory\" ] } ``` # Key Filters Key Filter allows you to define complex logical expressions over entity field, attribute or latest time-series value. The filter is defined using 'key', 'valueType' and 'predicate' objects. Single Entity Query may have zero, one or multiple predicates. If multiple filters are defined, they are evaluated using logical 'AND'. The example below checks that temperature of the entity is above 20 degrees: ```json { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } } ``` Now let's review 'key', 'valueType' and 'predicate' objects in detail. ## Filter Key Filter Key defines either entity field, attribute or telemetry. It is a JSON object that consists the key name and type. The following filter key types are supported: * 'CLIENT_ATTRIBUTE' - used for client attributes; * 'SHARED_ATTRIBUTE' - used for shared attributes; * 'SERVER_ATTRIBUTE' - used for server attributes; * 'ATTRIBUTE' - used for any of the above; * 'TIME_SERIES' - used for time-series values; * 'ENTITY_FIELD' - used for accessing entity fields like 'name', 'label', etc. The list of available fields depends on the entity type; * 'ALARM_FIELD' - similar to entity field, but is used in alarm queries only; Let's review the example: ```json { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ``` ## Value Type and Operations Provides a hint about the data type of the entity field that is defined in the filter key. The value type impacts the list of possible operations that you may use in the corresponding predicate. For example, you may use 'STARTS_WITH' or 'END_WITH', but you can't use 'GREATER_OR_EQUAL' for string values.The following filter value types and corresponding predicate operations are supported: * 'STRING' - used to filter any 'String' or 'JSON' values. Operations: EQUAL, NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, NOT_CONTAINS; * 'NUMERIC' - used for 'Long' and 'Double' values. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; * 'BOOLEAN' - used for boolean values. Operations: EQUAL, NOT_EQUAL; * 'DATE_TIME' - similar to numeric, transforms value to milliseconds since epoch. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; ## Filter Predicate Filter Predicate defines the logical expression to evaluate. The list of available operations depends on the filter value type, see above. Platform supports 4 predicate types: 'STRING', 'NUMERIC', 'BOOLEAN' and 'COMPLEX'. The last one allows to combine multiple operations over one filter key. Simple predicate example to check 'value < 100': ```json { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 100, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ``` Complex predicate example, to check 'value < 10 or value > 20': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ``` More complex predicate example, to check 'value < 10 or (value > 50 && value < 60)': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"type\": \"COMPLEX\", \"operation\": \"AND\", \"predicates\": [ { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 50, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 60, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ] } ``` You may also want to replace hardcoded values (for example, temperature > 20) with the more dynamic expression (for example, temperature > 'value of the tenant attribute with key 'temperatureThreshold'). It is possible to use 'dynamicValue' to define attribute of the tenant, customer or user that is performing the API call. See example below: ```json { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": { \"sourceType\": \"CURRENT_USER\", \"sourceAttribute\": \"temperatureThreshold\" } }, \"type\": \"NUMERIC\" } ``` Note that you may use 'CURRENT_USER', 'CURRENT_CUSTOMER' and 'CURRENT_TENANT' as a 'sourceType'. The 'defaultValue' is used when the attribute with such a name is not defined for the chosen source. Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. # noqa: E501
148
+ This method makes a synchronous HTTP request by default. To make an
149
+ asynchronous HTTP request, please pass async_req=True
150
+ >>> thread = api.count_entities_by_query_using_post(async_req=True)
151
+ >>> result = thread.get()
152
+
153
+ :param async_req bool
154
+ :param EntityCountQuery body:
155
+ :return: int
156
+ If the method is called asynchronously,
157
+ returns the request thread.
158
+ """
159
+ kwargs['_return_http_data_only'] = True
160
+ if kwargs.get('async_req'):
161
+ return self.count_entities_by_query_using_post_with_http_info(**kwargs) # noqa: E501
162
+ else:
163
+ (data) = self.count_entities_by_query_using_post_with_http_info(**kwargs) # noqa: E501
164
+ return data
165
+
166
+ def count_entities_by_query_using_post_with_http_info(self, **kwargs): # noqa: E501
167
+ """Count Entities by Query # noqa: E501
168
+
169
+ Allows to run complex queries to search the count of platform entities (devices, assets, customers, etc) based on the combination of main entity filter and multiple key filters. Returns the number of entities that match the query definition. # Query Definition Main **entity filter** is mandatory and defines generic search criteria. For example, \"find all devices with profile 'Moisture Sensor'\" or \"Find all devices related to asset 'Building A'\" Optional **key filters** allow to filter results of the entity filter by complex criteria against main entity fields (name, label, type, etc), attributes and telemetry. For example, \"temperature > 20 or temperature< 10\" or \"name starts with 'T', and attribute 'model' is 'T1000', and timeseries field 'batteryLevel' > 40\". Let's review the example: ```json { \"entityFilter\": { \"type\": \"entityType\", \"entityType\": \"DEVICE\" }, \"keyFilters\": [ { \"key\": { \"type\": \"ATTRIBUTE\", \"key\": \"active\" }, \"valueType\": \"BOOLEAN\", \"predicate\": { \"operation\": \"EQUAL\", \"value\": { \"defaultValue\": true, \"dynamicValue\": null }, \"type\": \"BOOLEAN\" } } ] } ``` Example mentioned above search all devices which have attribute 'active' set to 'true'. Now let's review available entity filters and key filters syntax: # Entity Filters Entity Filter body depends on the 'type' parameter. Let's review available entity filter types. In fact, they do correspond to available dashboard aliases. ## Single Entity Allows to filter only one entity based on the id. For example, this entity filter selects certain device: ```json { \"type\": \"singleEntity\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Group Entities Filter Allows to filter multiple entities of the same type using the entity group type and id. For example, this entity filter selects all devices that belong to the group 'e52b0020-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"entityGroup\", \"groupType\": \"DEVICE\", \"entityGroup\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" } ``` ## Entity List Filter Allows to filter entities of the same type using their ids. For example, this entity filter selects two devices: ```json { \"type\": \"entityList\", \"entityType\": \"DEVICE\", \"entityList\": [ \"e6501f30-2a7a-11ec-94eb-213c95f54092\", \"e6657bf0-2a7a-11ec-94eb-213c95f54092\" ] } ``` ## Entity Name Filter Allows to filter entities of the same type using the **'starts with'** expression over entity name. For example, this entity filter selects all devices which name starts with 'Air Quality': ```json { \"type\": \"entityName\", \"entityType\": \"DEVICE\", \"entityNameFilter\": \"Air Quality\" } ``` ## Entity Type Filter Allows to filter entities based on their type (CUSTOMER, USER, DASHBOARD, ASSET, DEVICE, etc)For example, this entity filter selects all tenant customers: ```json { \"type\": \"entityType\", \"entityType\": \"CUSTOMER\" } ``` ## Group List Filter Return multiple groups of the same type using specified ids. For example, this entity filter selects 2 device groups (if they are present in the system) with ids 'e52b0020-2a7a-11ec-94eb-213c95f54092' and 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entityGroupList\", \"groupType\": \"DEVICE\", \"entityGroupList\": [\"e52b0020-2a7a-11ec-94eb-213c95f54092\", \"e52b0020-2a7a-11ec-94eb-213c95f54093\"] } ``` ## Group Name Filter Allows to filter entity groups based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all devices which name starts with 'CAT': ```json { \"type\": \"entityGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"CAT\" } ``` ## Entities by Group Name Filter Allows to filter entities that belong to group based on the entity type and the group name. Optional parameter 'ownerId' allows you to specify the owner of the group (Tenant or Customer, current user owner by default).For example, this entity filter selects all devices which belong to group 'Water Meters': ```json { \"type\": \"entitiesByGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` Other example, this entity filter selects all devices which belong to group 'Water Meters' which in turn belongs to (sub-)Customer with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entitiesByGroupName\", \"ownerId\": \"e52b0020-2a7a-11ec-94eb-213c95f54093\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` ## Entity owner Filter Allows to fetch owner (Tenant or Customer) of the specified entity. For example, this entity filter selects owner of the device with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"stateEntityOwner\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Asset Type Filter Allows to filter assets based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'charging station' assets which name starts with 'Tesla': ```json { \"type\": \"assetType\", \"assetType\": \"charging station\", \"assetNameFilter\": \"Tesla\" } ``` ## Device Type Filter Allows to filter devices based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Temperature Sensor' devices which name starts with 'ABC': ```json { \"type\": \"deviceType\", \"deviceType\": \"Temperature Sensor\", \"deviceNameFilter\": \"ABC\" } ``` ## Edge Type Filter Allows to filter edge instances based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Factory' edge instances which name starts with 'Nevada': ```json { \"type\": \"edgeType\", \"edgeType\": \"Factory\", \"edgeNameFilter\": \"Nevada\" } ``` ## Entity View Filter Allows to filter entity views based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Concrete Mixer' entity views which name starts with 'CAT': ```json { \"type\": \"entityViewType\", \"entityViewType\": \"Concrete Mixer\", \"entityViewNameFilter\": \"CAT\" } ``` ## Api Usage Filter Allows to query for Api Usage based on optional customer id. If the customer id is not set, returns current tenant API usage.For example, this entity filter selects the 'Api Usage' entity for customer with id 'e6501f30-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"apiUsageState\", \"customerId\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"CUSTOMER\" } } ``` ## Relations Query Filter Allows to filter entities that are related to the provided root entity. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'filter' object allows you to define the relation type and set of acceptable entity types to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only those who match the 'filters'. For example, this entity filter selects all devices and assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"relationsQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"filters\": [ { \"relationType\": \"Contains\", \"entityTypes\": [ \"DEVICE\", \"ASSET\" ] } ] } ``` ## Asset Search Query Allows to filter assets that are related to the provided root entity. Filters related assets based on the relation type and set of asset types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'assetTypes' defines the type of the asset to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only assets that match 'relationType' and 'assetTypes' conditions. For example, this entity filter selects 'charging station' assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"assetSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"assetTypes\": [ \"charging station\" ] } ``` ## Device Search Query Allows to filter devices that are related to the provided root entity. Filters related devices based on the relation type and set of device types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Charging port' and 'Air Quality Sensor' devices which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"deviceTypes\": [ \"Air Quality Sensor\", \"Charging port\" ] } ``` ## Entity View Query Allows to filter entity views that are related to the provided root entity. Filters related entity views based on the relation type and set of entity view types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'entityViewTypes' defines the type of the entity view to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Concrete mixer' entity views which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"entityViewSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"entityViewTypes\": [ \"Concrete mixer\" ] } ``` ## Edge Search Query Allows to filter edge instances that are related to the provided root entity. Filters related edge instances based on the relation type and set of edge types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Factory' edge instances which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"edgeTypes\": [ \"Factory\" ] } ``` # Key Filters Key Filter allows you to define complex logical expressions over entity field, attribute or latest time-series value. The filter is defined using 'key', 'valueType' and 'predicate' objects. Single Entity Query may have zero, one or multiple predicates. If multiple filters are defined, they are evaluated using logical 'AND'. The example below checks that temperature of the entity is above 20 degrees: ```json { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } } ``` Now let's review 'key', 'valueType' and 'predicate' objects in detail. ## Filter Key Filter Key defines either entity field, attribute or telemetry. It is a JSON object that consists the key name and type. The following filter key types are supported: * 'CLIENT_ATTRIBUTE' - used for client attributes; * 'SHARED_ATTRIBUTE' - used for shared attributes; * 'SERVER_ATTRIBUTE' - used for server attributes; * 'ATTRIBUTE' - used for any of the above; * 'TIME_SERIES' - used for time-series values; * 'ENTITY_FIELD' - used for accessing entity fields like 'name', 'label', etc. The list of available fields depends on the entity type; * 'ALARM_FIELD' - similar to entity field, but is used in alarm queries only; Let's review the example: ```json { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ``` ## Value Type and Operations Provides a hint about the data type of the entity field that is defined in the filter key. The value type impacts the list of possible operations that you may use in the corresponding predicate. For example, you may use 'STARTS_WITH' or 'END_WITH', but you can't use 'GREATER_OR_EQUAL' for string values.The following filter value types and corresponding predicate operations are supported: * 'STRING' - used to filter any 'String' or 'JSON' values. Operations: EQUAL, NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, NOT_CONTAINS; * 'NUMERIC' - used for 'Long' and 'Double' values. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; * 'BOOLEAN' - used for boolean values. Operations: EQUAL, NOT_EQUAL; * 'DATE_TIME' - similar to numeric, transforms value to milliseconds since epoch. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; ## Filter Predicate Filter Predicate defines the logical expression to evaluate. The list of available operations depends on the filter value type, see above. Platform supports 4 predicate types: 'STRING', 'NUMERIC', 'BOOLEAN' and 'COMPLEX'. The last one allows to combine multiple operations over one filter key. Simple predicate example to check 'value < 100': ```json { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 100, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ``` Complex predicate example, to check 'value < 10 or value > 20': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ``` More complex predicate example, to check 'value < 10 or (value > 50 && value < 60)': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"type\": \"COMPLEX\", \"operation\": \"AND\", \"predicates\": [ { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 50, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 60, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ] } ``` You may also want to replace hardcoded values (for example, temperature > 20) with the more dynamic expression (for example, temperature > 'value of the tenant attribute with key 'temperatureThreshold'). It is possible to use 'dynamicValue' to define attribute of the tenant, customer or user that is performing the API call. See example below: ```json { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": { \"sourceType\": \"CURRENT_USER\", \"sourceAttribute\": \"temperatureThreshold\" } }, \"type\": \"NUMERIC\" } ``` Note that you may use 'CURRENT_USER', 'CURRENT_CUSTOMER' and 'CURRENT_TENANT' as a 'sourceType'. The 'defaultValue' is used when the attribute with such a name is not defined for the chosen source. Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. # noqa: E501
170
+ This method makes a synchronous HTTP request by default. To make an
171
+ asynchronous HTTP request, please pass async_req=True
172
+ >>> thread = api.count_entities_by_query_using_post_with_http_info(async_req=True)
173
+ >>> result = thread.get()
174
+
175
+ :param async_req bool
176
+ :param EntityCountQuery body:
177
+ :return: int
178
+ If the method is called asynchronously,
179
+ returns the request thread.
180
+ """
181
+
182
+ all_params = ['body'] # noqa: E501
183
+ all_params.append('async_req')
184
+ all_params.append('_return_http_data_only')
185
+ all_params.append('_preload_content')
186
+ all_params.append('_request_timeout')
187
+
188
+ params = locals()
189
+ for key, val in six.iteritems(params['kwargs']):
190
+ if key not in all_params:
191
+ raise TypeError(
192
+ "Got an unexpected keyword argument '%s'"
193
+ " to method count_entities_by_query_using_post" % key
194
+ )
195
+ params[key] = val
196
+ del params['kwargs']
197
+
198
+ collection_formats = {}
199
+
200
+ path_params = {}
201
+
202
+ query_params = []
203
+
204
+ header_params = {}
205
+
206
+ form_params = []
207
+ local_var_files = {}
208
+
209
+ body_params = None
210
+ if 'body' in params:
211
+ body_params = params['body']
212
+ # HTTP header `Accept`
213
+ header_params['Accept'] = self.api_client.select_header_accept(
214
+ ['application/json']) # noqa: E501
215
+
216
+ # HTTP header `Content-Type`
217
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
218
+ ['application/json']) # noqa: E501
219
+
220
+ # Authentication setting
221
+ auth_settings = ['X-Authorization'] # noqa: E501
222
+
223
+ return self.api_client.call_api(
224
+ '/api/entitiesQuery/count', 'POST',
225
+ path_params,
226
+ query_params,
227
+ header_params,
228
+ body=body_params,
229
+ post_params=form_params,
230
+ files=local_var_files,
231
+ response_type='int', # noqa: E501
232
+ auth_settings=auth_settings,
233
+ async_req=params.get('async_req'),
234
+ _return_http_data_only=params.get('_return_http_data_only'),
235
+ _preload_content=params.get('_preload_content', True),
236
+ _request_timeout=params.get('_request_timeout'),
237
+ collection_formats=collection_formats)
238
+
239
+ def find_alarm_data_by_query_using_post(self, **kwargs): # noqa: E501
240
+ """Find Alarms by Query # noqa: E501
241
+
242
+ This method description defines how Alarm Data Query extends the Entity Data Query. See method 'Find Entity Data by Query' first to get the info about 'Entity Data Query'. The platform will first search the entities that match the entity and key filters. Then, the platform will use 'Alarm Page Link' to filter the alarms related to those entities. Finally, platform fetch the properties of alarm that are defined in the **'alarmFields'** and combine them with the other entity, attribute and latest time-series fields to return the result. See example of the alarm query below. The query will search first 100 active alarms with type 'Temperature Alarm' or 'Fire Alarm' for any device with current temperature > 0. The query will return combination of the entity fields: name of the device, device model and latest temperature reading and alarms fields: createdTime, type, severity and status: ```json { \"entityFilter\": { \"type\": \"entityType\", \"resolveMultiple\": true, \"entityType\": \"DEVICE\" }, \"pageLink\": { \"page\": 0, \"pageSize\": 100, \"textSearch\": null, \"searchPropagatedAlarms\": false, \"statusList\": [ \"ACTIVE\" ], \"severityList\": [ \"CRITICAL\", \"MAJOR\" ], \"typeList\": [ \"Temperature Alarm\", \"Fire Alarm\" ], \"sortOrder\": { \"key\": { \"key\": \"createdTime\", \"type\": \"ALARM_FIELD\" }, \"direction\": \"DESC\" }, \"timeWindow\": 86400000 }, \"keyFilters\": [ { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } } ], \"alarmFields\": [ { \"type\": \"ALARM_FIELD\", \"key\": \"createdTime\" }, { \"type\": \"ALARM_FIELD\", \"key\": \"type\" }, { \"type\": \"ALARM_FIELD\", \"key\": \"severity\" }, { \"type\": \"ALARM_FIELD\", \"key\": \"status\" } ], \"entityFields\": [ { \"type\": \"ENTITY_FIELD\", \"key\": \"name\" } ], \"latestValues\": [ { \"type\": \"ATTRIBUTE\", \"key\": \"model\" }, { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ] } ``` # noqa: E501
243
+ This method makes a synchronous HTTP request by default. To make an
244
+ asynchronous HTTP request, please pass async_req=True
245
+ >>> thread = api.find_alarm_data_by_query_using_post(async_req=True)
246
+ >>> result = thread.get()
247
+
248
+ :param async_req bool
249
+ :param AlarmDataQuery body:
250
+ :return: PageDataAlarmData
251
+ If the method is called asynchronously,
252
+ returns the request thread.
253
+ """
254
+ kwargs['_return_http_data_only'] = True
255
+ if kwargs.get('async_req'):
256
+ return self.find_alarm_data_by_query_using_post_with_http_info(**kwargs) # noqa: E501
257
+ else:
258
+ (data) = self.find_alarm_data_by_query_using_post_with_http_info(**kwargs) # noqa: E501
259
+ return data
260
+
261
+ def find_alarm_data_by_query_using_post_with_http_info(self, **kwargs): # noqa: E501
262
+ """Find Alarms by Query # noqa: E501
263
+
264
+ This method description defines how Alarm Data Query extends the Entity Data Query. See method 'Find Entity Data by Query' first to get the info about 'Entity Data Query'. The platform will first search the entities that match the entity and key filters. Then, the platform will use 'Alarm Page Link' to filter the alarms related to those entities. Finally, platform fetch the properties of alarm that are defined in the **'alarmFields'** and combine them with the other entity, attribute and latest time-series fields to return the result. See example of the alarm query below. The query will search first 100 active alarms with type 'Temperature Alarm' or 'Fire Alarm' for any device with current temperature > 0. The query will return combination of the entity fields: name of the device, device model and latest temperature reading and alarms fields: createdTime, type, severity and status: ```json { \"entityFilter\": { \"type\": \"entityType\", \"resolveMultiple\": true, \"entityType\": \"DEVICE\" }, \"pageLink\": { \"page\": 0, \"pageSize\": 100, \"textSearch\": null, \"searchPropagatedAlarms\": false, \"statusList\": [ \"ACTIVE\" ], \"severityList\": [ \"CRITICAL\", \"MAJOR\" ], \"typeList\": [ \"Temperature Alarm\", \"Fire Alarm\" ], \"sortOrder\": { \"key\": { \"key\": \"createdTime\", \"type\": \"ALARM_FIELD\" }, \"direction\": \"DESC\" }, \"timeWindow\": 86400000 }, \"keyFilters\": [ { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } } ], \"alarmFields\": [ { \"type\": \"ALARM_FIELD\", \"key\": \"createdTime\" }, { \"type\": \"ALARM_FIELD\", \"key\": \"type\" }, { \"type\": \"ALARM_FIELD\", \"key\": \"severity\" }, { \"type\": \"ALARM_FIELD\", \"key\": \"status\" } ], \"entityFields\": [ { \"type\": \"ENTITY_FIELD\", \"key\": \"name\" } ], \"latestValues\": [ { \"type\": \"ATTRIBUTE\", \"key\": \"model\" }, { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ] } ``` # noqa: E501
265
+ This method makes a synchronous HTTP request by default. To make an
266
+ asynchronous HTTP request, please pass async_req=True
267
+ >>> thread = api.find_alarm_data_by_query_using_post_with_http_info(async_req=True)
268
+ >>> result = thread.get()
269
+
270
+ :param async_req bool
271
+ :param AlarmDataQuery body:
272
+ :return: PageDataAlarmData
273
+ If the method is called asynchronously,
274
+ returns the request thread.
275
+ """
276
+
277
+ all_params = ['body'] # noqa: E501
278
+ all_params.append('async_req')
279
+ all_params.append('_return_http_data_only')
280
+ all_params.append('_preload_content')
281
+ all_params.append('_request_timeout')
282
+
283
+ params = locals()
284
+ for key, val in six.iteritems(params['kwargs']):
285
+ if key not in all_params:
286
+ raise TypeError(
287
+ "Got an unexpected keyword argument '%s'"
288
+ " to method find_alarm_data_by_query_using_post" % key
289
+ )
290
+ params[key] = val
291
+ del params['kwargs']
292
+
293
+ collection_formats = {}
294
+
295
+ path_params = {}
296
+
297
+ query_params = []
298
+
299
+ header_params = {}
300
+
301
+ form_params = []
302
+ local_var_files = {}
303
+
304
+ body_params = None
305
+ if 'body' in params:
306
+ body_params = params['body']
307
+ # HTTP header `Accept`
308
+ header_params['Accept'] = self.api_client.select_header_accept(
309
+ ['application/json']) # noqa: E501
310
+
311
+ # HTTP header `Content-Type`
312
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
313
+ ['application/json']) # noqa: E501
314
+
315
+ # Authentication setting
316
+ auth_settings = ['X-Authorization'] # noqa: E501
317
+
318
+ return self.api_client.call_api(
319
+ '/api/alarmsQuery/find', 'POST',
320
+ path_params,
321
+ query_params,
322
+ header_params,
323
+ body=body_params,
324
+ post_params=form_params,
325
+ files=local_var_files,
326
+ response_type='PageDataAlarmData', # noqa: E501
327
+ auth_settings=auth_settings,
328
+ async_req=params.get('async_req'),
329
+ _return_http_data_only=params.get('_return_http_data_only'),
330
+ _preload_content=params.get('_preload_content', True),
331
+ _request_timeout=params.get('_request_timeout'),
332
+ collection_formats=collection_formats)
333
+
334
+ def find_entity_data_by_query_using_post(self, **kwargs): # noqa: E501
335
+ """Find Entity Data by Query # noqa: E501
336
+
337
+ Allows to run complex queries over platform entities (devices, assets, customers, etc) based on the combination of main entity filter and multiple key filters. Returns the paginated result of the query that contains requested entity fields and latest values of requested attributes and time-series data. # Query Definition Main **entity filter** is mandatory and defines generic search criteria. For example, \"find all devices with profile 'Moisture Sensor'\" or \"Find all devices related to asset 'Building A'\" Optional **key filters** allow to filter results of the **entity filter** by complex criteria against main entity fields (name, label, type, etc), attributes and telemetry. For example, \"temperature > 20 or temperature< 10\" or \"name starts with 'T', and attribute 'model' is 'T1000', and timeseries field 'batteryLevel' > 40\". The **entity fields** and **latest values** contains list of entity fields and latest attribute/telemetry fields to fetch for each entity. The **page link** contains information about the page to fetch and the sort ordering. Let's review the example: ```json { \"entityFilter\": { \"type\": \"entityType\", \"resolveMultiple\": true, \"entityType\": \"DEVICE\" }, \"keyFilters\": [ { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": { \"sourceType\": \"CURRENT_USER\", \"sourceAttribute\": \"temperatureThreshold\", \"inherit\": false } }, \"type\": \"NUMERIC\" } } ], \"entityFields\": [ { \"type\": \"ENTITY_FIELD\", \"key\": \"name\" }, { \"type\": \"ENTITY_FIELD\", \"key\": \"label\" }, { \"type\": \"ENTITY_FIELD\", \"key\": \"additionalInfo\" } ], \"latestValues\": [ { \"type\": \"ATTRIBUTE\", \"key\": \"model\" }, { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ], \"pageLink\": { \"page\": 0, \"pageSize\": 10, \"sortOrder\": { \"key\": { \"key\": \"name\", \"type\": \"ENTITY_FIELD\" }, \"direction\": \"ASC\" } } } ``` Example mentioned above search all devices which have attribute 'active' set to 'true'. Now let's review available entity filters and key filters syntax: # Entity Filters Entity Filter body depends on the 'type' parameter. Let's review available entity filter types. In fact, they do correspond to available dashboard aliases. ## Single Entity Allows to filter only one entity based on the id. For example, this entity filter selects certain device: ```json { \"type\": \"singleEntity\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Group Entities Filter Allows to filter multiple entities of the same type using the entity group type and id. For example, this entity filter selects all devices that belong to the group 'e52b0020-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"entityGroup\", \"groupType\": \"DEVICE\", \"entityGroup\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" } ``` ## Entity List Filter Allows to filter entities of the same type using their ids. For example, this entity filter selects two devices: ```json { \"type\": \"entityList\", \"entityType\": \"DEVICE\", \"entityList\": [ \"e6501f30-2a7a-11ec-94eb-213c95f54092\", \"e6657bf0-2a7a-11ec-94eb-213c95f54092\" ] } ``` ## Entity Name Filter Allows to filter entities of the same type using the **'starts with'** expression over entity name. For example, this entity filter selects all devices which name starts with 'Air Quality': ```json { \"type\": \"entityName\", \"entityType\": \"DEVICE\", \"entityNameFilter\": \"Air Quality\" } ``` ## Entity Type Filter Allows to filter entities based on their type (CUSTOMER, USER, DASHBOARD, ASSET, DEVICE, etc)For example, this entity filter selects all tenant customers: ```json { \"type\": \"entityType\", \"entityType\": \"CUSTOMER\" } ``` ## Group List Filter Return multiple groups of the same type using specified ids. For example, this entity filter selects 2 device groups (if they are present in the system) with ids 'e52b0020-2a7a-11ec-94eb-213c95f54092' and 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entityGroupList\", \"groupType\": \"DEVICE\", \"entityGroupList\": [\"e52b0020-2a7a-11ec-94eb-213c95f54092\", \"e52b0020-2a7a-11ec-94eb-213c95f54093\"] } ``` ## Group Name Filter Allows to filter entity groups based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all devices which name starts with 'CAT': ```json { \"type\": \"entityGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"CAT\" } ``` ## Entities by Group Name Filter Allows to filter entities that belong to group based on the entity type and the group name. Optional parameter 'ownerId' allows you to specify the owner of the group (Tenant or Customer, current user owner by default).For example, this entity filter selects all devices which belong to group 'Water Meters': ```json { \"type\": \"entitiesByGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` Other example, this entity filter selects all devices which belong to group 'Water Meters' which in turn belongs to (sub-)Customer with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entitiesByGroupName\", \"ownerId\": \"e52b0020-2a7a-11ec-94eb-213c95f54093\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` ## Entity owner Filter Allows to fetch owner (Tenant or Customer) of the specified entity. For example, this entity filter selects owner of the device with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"stateEntityOwner\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Asset Type Filter Allows to filter assets based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'charging station' assets which name starts with 'Tesla': ```json { \"type\": \"assetType\", \"assetType\": \"charging station\", \"assetNameFilter\": \"Tesla\" } ``` ## Device Type Filter Allows to filter devices based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Temperature Sensor' devices which name starts with 'ABC': ```json { \"type\": \"deviceType\", \"deviceType\": \"Temperature Sensor\", \"deviceNameFilter\": \"ABC\" } ``` ## Edge Type Filter Allows to filter edge instances based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Factory' edge instances which name starts with 'Nevada': ```json { \"type\": \"edgeType\", \"edgeType\": \"Factory\", \"edgeNameFilter\": \"Nevada\" } ``` ## Entity View Filter Allows to filter entity views based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Concrete Mixer' entity views which name starts with 'CAT': ```json { \"type\": \"entityViewType\", \"entityViewType\": \"Concrete Mixer\", \"entityViewNameFilter\": \"CAT\" } ``` ## Api Usage Filter Allows to query for Api Usage based on optional customer id. If the customer id is not set, returns current tenant API usage.For example, this entity filter selects the 'Api Usage' entity for customer with id 'e6501f30-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"apiUsageState\", \"customerId\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"CUSTOMER\" } } ``` ## Relations Query Filter Allows to filter entities that are related to the provided root entity. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'filter' object allows you to define the relation type and set of acceptable entity types to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only those who match the 'filters'. For example, this entity filter selects all devices and assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"relationsQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"filters\": [ { \"relationType\": \"Contains\", \"entityTypes\": [ \"DEVICE\", \"ASSET\" ] } ] } ``` ## Asset Search Query Allows to filter assets that are related to the provided root entity. Filters related assets based on the relation type and set of asset types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'assetTypes' defines the type of the asset to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only assets that match 'relationType' and 'assetTypes' conditions. For example, this entity filter selects 'charging station' assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"assetSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"assetTypes\": [ \"charging station\" ] } ``` ## Device Search Query Allows to filter devices that are related to the provided root entity. Filters related devices based on the relation type and set of device types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Charging port' and 'Air Quality Sensor' devices which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"deviceTypes\": [ \"Air Quality Sensor\", \"Charging port\" ] } ``` ## Entity View Query Allows to filter entity views that are related to the provided root entity. Filters related entity views based on the relation type and set of entity view types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'entityViewTypes' defines the type of the entity view to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Concrete mixer' entity views which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"entityViewSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"entityViewTypes\": [ \"Concrete mixer\" ] } ``` ## Edge Search Query Allows to filter edge instances that are related to the provided root entity. Filters related edge instances based on the relation type and set of edge types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Factory' edge instances which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"edgeTypes\": [ \"Factory\" ] } ``` # Key Filters Key Filter allows you to define complex logical expressions over entity field, attribute or latest time-series value. The filter is defined using 'key', 'valueType' and 'predicate' objects. Single Entity Query may have zero, one or multiple predicates. If multiple filters are defined, they are evaluated using logical 'AND'. The example below checks that temperature of the entity is above 20 degrees: ```json { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } } ``` Now let's review 'key', 'valueType' and 'predicate' objects in detail. ## Filter Key Filter Key defines either entity field, attribute or telemetry. It is a JSON object that consists the key name and type. The following filter key types are supported: * 'CLIENT_ATTRIBUTE' - used for client attributes; * 'SHARED_ATTRIBUTE' - used for shared attributes; * 'SERVER_ATTRIBUTE' - used for server attributes; * 'ATTRIBUTE' - used for any of the above; * 'TIME_SERIES' - used for time-series values; * 'ENTITY_FIELD' - used for accessing entity fields like 'name', 'label', etc. The list of available fields depends on the entity type; * 'ALARM_FIELD' - similar to entity field, but is used in alarm queries only; Let's review the example: ```json { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ``` ## Value Type and Operations Provides a hint about the data type of the entity field that is defined in the filter key. The value type impacts the list of possible operations that you may use in the corresponding predicate. For example, you may use 'STARTS_WITH' or 'END_WITH', but you can't use 'GREATER_OR_EQUAL' for string values.The following filter value types and corresponding predicate operations are supported: * 'STRING' - used to filter any 'String' or 'JSON' values. Operations: EQUAL, NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, NOT_CONTAINS; * 'NUMERIC' - used for 'Long' and 'Double' values. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; * 'BOOLEAN' - used for boolean values. Operations: EQUAL, NOT_EQUAL; * 'DATE_TIME' - similar to numeric, transforms value to milliseconds since epoch. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; ## Filter Predicate Filter Predicate defines the logical expression to evaluate. The list of available operations depends on the filter value type, see above. Platform supports 4 predicate types: 'STRING', 'NUMERIC', 'BOOLEAN' and 'COMPLEX'. The last one allows to combine multiple operations over one filter key. Simple predicate example to check 'value < 100': ```json { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 100, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ``` Complex predicate example, to check 'value < 10 or value > 20': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ``` More complex predicate example, to check 'value < 10 or (value > 50 && value < 60)': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"type\": \"COMPLEX\", \"operation\": \"AND\", \"predicates\": [ { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 50, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 60, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ] } ``` You may also want to replace hardcoded values (for example, temperature > 20) with the more dynamic expression (for example, temperature > 'value of the tenant attribute with key 'temperatureThreshold'). It is possible to use 'dynamicValue' to define attribute of the tenant, customer or user that is performing the API call. See example below: ```json { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": { \"sourceType\": \"CURRENT_USER\", \"sourceAttribute\": \"temperatureThreshold\" } }, \"type\": \"NUMERIC\" } ``` Note that you may use 'CURRENT_USER', 'CURRENT_CUSTOMER' and 'CURRENT_TENANT' as a 'sourceType'. The 'defaultValue' is used when the attribute with such a name is not defined for the chosen source. Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. # noqa: E501
338
+ This method makes a synchronous HTTP request by default. To make an
339
+ asynchronous HTTP request, please pass async_req=True
340
+ >>> thread = api.find_entity_data_by_query_using_post(async_req=True)
341
+ >>> result = thread.get()
342
+
343
+ :param async_req bool
344
+ :param EntityDataQuery body:
345
+ :return: PageDataEntityData
346
+ If the method is called asynchronously,
347
+ returns the request thread.
348
+ """
349
+ kwargs['_return_http_data_only'] = True
350
+ if kwargs.get('async_req'):
351
+ return self.find_entity_data_by_query_using_post_with_http_info(**kwargs) # noqa: E501
352
+ else:
353
+ (data) = self.find_entity_data_by_query_using_post_with_http_info(**kwargs) # noqa: E501
354
+ return data
355
+
356
+ def find_entity_data_by_query_using_post_with_http_info(self, **kwargs): # noqa: E501
357
+ """Find Entity Data by Query # noqa: E501
358
+
359
+ Allows to run complex queries over platform entities (devices, assets, customers, etc) based on the combination of main entity filter and multiple key filters. Returns the paginated result of the query that contains requested entity fields and latest values of requested attributes and time-series data. # Query Definition Main **entity filter** is mandatory and defines generic search criteria. For example, \"find all devices with profile 'Moisture Sensor'\" or \"Find all devices related to asset 'Building A'\" Optional **key filters** allow to filter results of the **entity filter** by complex criteria against main entity fields (name, label, type, etc), attributes and telemetry. For example, \"temperature > 20 or temperature< 10\" or \"name starts with 'T', and attribute 'model' is 'T1000', and timeseries field 'batteryLevel' > 40\". The **entity fields** and **latest values** contains list of entity fields and latest attribute/telemetry fields to fetch for each entity. The **page link** contains information about the page to fetch and the sort ordering. Let's review the example: ```json { \"entityFilter\": { \"type\": \"entityType\", \"resolveMultiple\": true, \"entityType\": \"DEVICE\" }, \"keyFilters\": [ { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": { \"sourceType\": \"CURRENT_USER\", \"sourceAttribute\": \"temperatureThreshold\", \"inherit\": false } }, \"type\": \"NUMERIC\" } } ], \"entityFields\": [ { \"type\": \"ENTITY_FIELD\", \"key\": \"name\" }, { \"type\": \"ENTITY_FIELD\", \"key\": \"label\" }, { \"type\": \"ENTITY_FIELD\", \"key\": \"additionalInfo\" } ], \"latestValues\": [ { \"type\": \"ATTRIBUTE\", \"key\": \"model\" }, { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ], \"pageLink\": { \"page\": 0, \"pageSize\": 10, \"sortOrder\": { \"key\": { \"key\": \"name\", \"type\": \"ENTITY_FIELD\" }, \"direction\": \"ASC\" } } } ``` Example mentioned above search all devices which have attribute 'active' set to 'true'. Now let's review available entity filters and key filters syntax: # Entity Filters Entity Filter body depends on the 'type' parameter. Let's review available entity filter types. In fact, they do correspond to available dashboard aliases. ## Single Entity Allows to filter only one entity based on the id. For example, this entity filter selects certain device: ```json { \"type\": \"singleEntity\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Group Entities Filter Allows to filter multiple entities of the same type using the entity group type and id. For example, this entity filter selects all devices that belong to the group 'e52b0020-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"entityGroup\", \"groupType\": \"DEVICE\", \"entityGroup\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" } ``` ## Entity List Filter Allows to filter entities of the same type using their ids. For example, this entity filter selects two devices: ```json { \"type\": \"entityList\", \"entityType\": \"DEVICE\", \"entityList\": [ \"e6501f30-2a7a-11ec-94eb-213c95f54092\", \"e6657bf0-2a7a-11ec-94eb-213c95f54092\" ] } ``` ## Entity Name Filter Allows to filter entities of the same type using the **'starts with'** expression over entity name. For example, this entity filter selects all devices which name starts with 'Air Quality': ```json { \"type\": \"entityName\", \"entityType\": \"DEVICE\", \"entityNameFilter\": \"Air Quality\" } ``` ## Entity Type Filter Allows to filter entities based on their type (CUSTOMER, USER, DASHBOARD, ASSET, DEVICE, etc)For example, this entity filter selects all tenant customers: ```json { \"type\": \"entityType\", \"entityType\": \"CUSTOMER\" } ``` ## Group List Filter Return multiple groups of the same type using specified ids. For example, this entity filter selects 2 device groups (if they are present in the system) with ids 'e52b0020-2a7a-11ec-94eb-213c95f54092' and 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entityGroupList\", \"groupType\": \"DEVICE\", \"entityGroupList\": [\"e52b0020-2a7a-11ec-94eb-213c95f54092\", \"e52b0020-2a7a-11ec-94eb-213c95f54093\"] } ``` ## Group Name Filter Allows to filter entity groups based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all devices which name starts with 'CAT': ```json { \"type\": \"entityGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"CAT\" } ``` ## Entities by Group Name Filter Allows to filter entities that belong to group based on the entity type and the group name. Optional parameter 'ownerId' allows you to specify the owner of the group (Tenant or Customer, current user owner by default).For example, this entity filter selects all devices which belong to group 'Water Meters': ```json { \"type\": \"entitiesByGroupName\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` Other example, this entity filter selects all devices which belong to group 'Water Meters' which in turn belongs to (sub-)Customer with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"entitiesByGroupName\", \"ownerId\": \"e52b0020-2a7a-11ec-94eb-213c95f54093\", \"groupType\": \"DEVICE\", \"entityGroupNameFilter\": \"Water Meters\" } ``` ## Entity owner Filter Allows to fetch owner (Tenant or Customer) of the specified entity. For example, this entity filter selects owner of the device with id 'e52b0020-2a7a-11ec-94eb-213c95f54093': ```json { \"type\": \"stateEntityOwner\", \"singleEntity\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"DEVICE\" } } ``` ## Asset Type Filter Allows to filter assets based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'charging station' assets which name starts with 'Tesla': ```json { \"type\": \"assetType\", \"assetType\": \"charging station\", \"assetNameFilter\": \"Tesla\" } ``` ## Device Type Filter Allows to filter devices based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Temperature Sensor' devices which name starts with 'ABC': ```json { \"type\": \"deviceType\", \"deviceType\": \"Temperature Sensor\", \"deviceNameFilter\": \"ABC\" } ``` ## Edge Type Filter Allows to filter edge instances based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Factory' edge instances which name starts with 'Nevada': ```json { \"type\": \"edgeType\", \"edgeType\": \"Factory\", \"edgeNameFilter\": \"Nevada\" } ``` ## Entity View Filter Allows to filter entity views based on their type and the **'starts with'** expression over their name. For example, this entity filter selects all 'Concrete Mixer' entity views which name starts with 'CAT': ```json { \"type\": \"entityViewType\", \"entityViewType\": \"Concrete Mixer\", \"entityViewNameFilter\": \"CAT\" } ``` ## Api Usage Filter Allows to query for Api Usage based on optional customer id. If the customer id is not set, returns current tenant API usage.For example, this entity filter selects the 'Api Usage' entity for customer with id 'e6501f30-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"apiUsageState\", \"customerId\": { \"id\": \"d521edb0-2a7a-11ec-94eb-213c95f54092\", \"entityType\": \"CUSTOMER\" } } ``` ## Relations Query Filter Allows to filter entities that are related to the provided root entity. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'filter' object allows you to define the relation type and set of acceptable entity types to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only those who match the 'filters'. For example, this entity filter selects all devices and assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092': ```json { \"type\": \"relationsQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"filters\": [ { \"relationType\": \"Contains\", \"entityTypes\": [ \"DEVICE\", \"ASSET\" ] } ] } ``` ## Asset Search Query Allows to filter assets that are related to the provided root entity. Filters related assets based on the relation type and set of asset types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'assetTypes' defines the type of the asset to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only assets that match 'relationType' and 'assetTypes' conditions. For example, this entity filter selects 'charging station' assets which are related to the asset with id 'e51de0c0-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"assetSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e51de0c0-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"assetTypes\": [ \"charging station\" ] } ``` ## Device Search Query Allows to filter devices that are related to the provided root entity. Filters related devices based on the relation type and set of device types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Charging port' and 'Air Quality Sensor' devices which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"deviceTypes\": [ \"Air Quality Sensor\", \"Charging port\" ] } ``` ## Entity View Query Allows to filter entity views that are related to the provided root entity. Filters related entity views based on the relation type and set of entity view types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'entityViewTypes' defines the type of the entity view to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Concrete mixer' entity views which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"entityViewSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 1, \"fetchLastLevelOnly\": false, \"relationType\": \"Contains\", \"entityViewTypes\": [ \"Concrete mixer\" ] } ``` ## Edge Search Query Allows to filter edge instances that are related to the provided root entity. Filters related edge instances based on the relation type and set of edge types. Possible direction values are 'TO' and 'FROM'. The 'maxLevel' defines how many relation levels should the query search 'recursively'. Assuming the 'maxLevel' is > 1, the 'fetchLastLevelOnly' defines either to return all related entities or only entities that are on the last level of relations. The 'relationType' defines the type of the relation to search for. The 'deviceTypes' defines the type of the device to search for. The relation query calculates all related entities, even if they are filtered using different relation types, and then extracts only devices that match 'relationType' and 'deviceTypes' conditions. For example, this entity filter selects 'Factory' edge instances which are related to the asset with id 'e52b0020-2a7a-11ec-94eb-213c95f54092' using 'Contains' relation: ```json { \"type\": \"deviceSearchQuery\", \"rootEntity\": { \"entityType\": \"ASSET\", \"id\": \"e52b0020-2a7a-11ec-94eb-213c95f54092\" }, \"direction\": \"FROM\", \"maxLevel\": 2, \"fetchLastLevelOnly\": true, \"relationType\": \"Contains\", \"edgeTypes\": [ \"Factory\" ] } ``` # Key Filters Key Filter allows you to define complex logical expressions over entity field, attribute or latest time-series value. The filter is defined using 'key', 'valueType' and 'predicate' objects. Single Entity Query may have zero, one or multiple predicates. If multiple filters are defined, they are evaluated using logical 'AND'. The example below checks that temperature of the entity is above 20 degrees: ```json { \"key\": { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" }, \"valueType\": \"NUMERIC\", \"predicate\": { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } } ``` Now let's review 'key', 'valueType' and 'predicate' objects in detail. ## Filter Key Filter Key defines either entity field, attribute or telemetry. It is a JSON object that consists the key name and type. The following filter key types are supported: * 'CLIENT_ATTRIBUTE' - used for client attributes; * 'SHARED_ATTRIBUTE' - used for shared attributes; * 'SERVER_ATTRIBUTE' - used for server attributes; * 'ATTRIBUTE' - used for any of the above; * 'TIME_SERIES' - used for time-series values; * 'ENTITY_FIELD' - used for accessing entity fields like 'name', 'label', etc. The list of available fields depends on the entity type; * 'ALARM_FIELD' - similar to entity field, but is used in alarm queries only; Let's review the example: ```json { \"type\": \"TIME_SERIES\", \"key\": \"temperature\" } ``` ## Value Type and Operations Provides a hint about the data type of the entity field that is defined in the filter key. The value type impacts the list of possible operations that you may use in the corresponding predicate. For example, you may use 'STARTS_WITH' or 'END_WITH', but you can't use 'GREATER_OR_EQUAL' for string values.The following filter value types and corresponding predicate operations are supported: * 'STRING' - used to filter any 'String' or 'JSON' values. Operations: EQUAL, NOT_EQUAL, STARTS_WITH, ENDS_WITH, CONTAINS, NOT_CONTAINS; * 'NUMERIC' - used for 'Long' and 'Double' values. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; * 'BOOLEAN' - used for boolean values. Operations: EQUAL, NOT_EQUAL; * 'DATE_TIME' - similar to numeric, transforms value to milliseconds since epoch. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; ## Filter Predicate Filter Predicate defines the logical expression to evaluate. The list of available operations depends on the filter value type, see above. Platform supports 4 predicate types: 'STRING', 'NUMERIC', 'BOOLEAN' and 'COMPLEX'. The last one allows to combine multiple operations over one filter key. Simple predicate example to check 'value < 100': ```json { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 100, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ``` Complex predicate example, to check 'value < 10 or value > 20': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 20, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ``` More complex predicate example, to check 'value < 10 or (value > 50 && value < 60)': ```json { \"type\": \"COMPLEX\", \"operation\": \"OR\", \"predicates\": [ { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 10, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"type\": \"COMPLEX\", \"operation\": \"AND\", \"predicates\": [ { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 50, \"dynamicValue\": null }, \"type\": \"NUMERIC\" }, { \"operation\": \"LESS\", \"value\": { \"defaultValue\": 60, \"dynamicValue\": null }, \"type\": \"NUMERIC\" } ] } ] } ``` You may also want to replace hardcoded values (for example, temperature > 20) with the more dynamic expression (for example, temperature > 'value of the tenant attribute with key 'temperatureThreshold'). It is possible to use 'dynamicValue' to define attribute of the tenant, customer or user that is performing the API call. See example below: ```json { \"operation\": \"GREATER\", \"value\": { \"defaultValue\": 0, \"dynamicValue\": { \"sourceType\": \"CURRENT_USER\", \"sourceAttribute\": \"temperatureThreshold\" } }, \"type\": \"NUMERIC\" } ``` Note that you may use 'CURRENT_USER', 'CURRENT_CUSTOMER' and 'CURRENT_TENANT' as a 'sourceType'. The 'defaultValue' is used when the attribute with such a name is not defined for the chosen source. Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority. # noqa: E501
360
+ This method makes a synchronous HTTP request by default. To make an
361
+ asynchronous HTTP request, please pass async_req=True
362
+ >>> thread = api.find_entity_data_by_query_using_post_with_http_info(async_req=True)
363
+ >>> result = thread.get()
364
+
365
+ :param async_req bool
366
+ :param EntityDataQuery body:
367
+ :return: PageDataEntityData
368
+ If the method is called asynchronously,
369
+ returns the request thread.
370
+ """
371
+
372
+ all_params = ['body'] # noqa: E501
373
+ all_params.append('async_req')
374
+ all_params.append('_return_http_data_only')
375
+ all_params.append('_preload_content')
376
+ all_params.append('_request_timeout')
377
+
378
+ params = locals()
379
+ for key, val in six.iteritems(params['kwargs']):
380
+ if key not in all_params:
381
+ raise TypeError(
382
+ "Got an unexpected keyword argument '%s'"
383
+ " to method find_entity_data_by_query_using_post" % key
384
+ )
385
+ params[key] = val
386
+ del params['kwargs']
387
+
388
+ collection_formats = {}
389
+
390
+ path_params = {}
391
+
392
+ query_params = []
393
+
394
+ header_params = {}
395
+
396
+ form_params = []
397
+ local_var_files = {}
398
+
399
+ body_params = None
400
+ if 'body' in params:
401
+ body_params = params['body']
402
+ # HTTP header `Accept`
403
+ header_params['Accept'] = self.api_client.select_header_accept(
404
+ ['application/json']) # noqa: E501
405
+
406
+ # HTTP header `Content-Type`
407
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
408
+ ['application/json']) # noqa: E501
409
+
410
+ # Authentication setting
411
+ auth_settings = ['X-Authorization'] # noqa: E501
412
+
413
+ return self.api_client.call_api(
414
+ '/api/entitiesQuery/find', 'POST',
415
+ path_params,
416
+ query_params,
417
+ header_params,
418
+ body=body_params,
419
+ post_params=form_params,
420
+ files=local_var_files,
421
+ response_type='PageDataEntityData', # noqa: E501
422
+ auth_settings=auth_settings,
423
+ async_req=params.get('async_req'),
424
+ _return_http_data_only=params.get('_return_http_data_only'),
425
+ _preload_content=params.get('_preload_content', True),
426
+ _request_timeout=params.get('_request_timeout'),
427
+ collection_formats=collection_formats)
428
+
429
+ def find_entity_timeseries_and_attributes_keys_by_query_using_post(self, timeseries, attributes, **kwargs): # noqa: E501
430
+ """Find Entity Keys by Query # noqa: E501
431
+
432
+ Uses entity data query (see 'Find Entity Data by Query') to find first 100 entities. Then fetch and return all unique time-series and/or attribute keys. Used mostly for UI hints. # noqa: E501
433
+ This method makes a synchronous HTTP request by default. To make an
434
+ asynchronous HTTP request, please pass async_req=True
435
+ >>> thread = api.find_entity_timeseries_and_attributes_keys_by_query_using_post(timeseries, attributes, async_req=True)
436
+ >>> result = thread.get()
437
+
438
+ :param async_req bool
439
+ :param bool timeseries: Include all unique time-series keys to the result. (required)
440
+ :param bool attributes: Include all unique attribute keys to the result. (required)
441
+ :param EntityDataQuery body:
442
+ :param str scope: A string value representing the attributes scope. For example, 'SERVER_SCOPE'.
443
+ :return: DeferredResultResponseEntity
444
+ If the method is called asynchronously,
445
+ returns the request thread.
446
+ """
447
+ kwargs['_return_http_data_only'] = True
448
+ if kwargs.get('async_req'):
449
+ return self.find_entity_timeseries_and_attributes_keys_by_query_using_post_with_http_info(timeseries, attributes, **kwargs) # noqa: E501
450
+ else:
451
+ (data) = self.find_entity_timeseries_and_attributes_keys_by_query_using_post_with_http_info(timeseries, attributes, **kwargs) # noqa: E501
452
+ return data
453
+
454
+ def find_entity_timeseries_and_attributes_keys_by_query_using_post_with_http_info(self, timeseries, attributes, **kwargs): # noqa: E501
455
+ """Find Entity Keys by Query # noqa: E501
456
+
457
+ Uses entity data query (see 'Find Entity Data by Query') to find first 100 entities. Then fetch and return all unique time-series and/or attribute keys. Used mostly for UI hints. # noqa: E501
458
+ This method makes a synchronous HTTP request by default. To make an
459
+ asynchronous HTTP request, please pass async_req=True
460
+ >>> thread = api.find_entity_timeseries_and_attributes_keys_by_query_using_post_with_http_info(timeseries, attributes, async_req=True)
461
+ >>> result = thread.get()
462
+
463
+ :param async_req bool
464
+ :param bool timeseries: Include all unique time-series keys to the result. (required)
465
+ :param bool attributes: Include all unique attribute keys to the result. (required)
466
+ :param EntityDataQuery body:
467
+ :param str scope: A string value representing the attributes scope. For example, 'SERVER_SCOPE'.
468
+ :return: DeferredResultResponseEntity
469
+ If the method is called asynchronously,
470
+ returns the request thread.
471
+ """
472
+
473
+ all_params = ['timeseries', 'attributes', 'body', 'scope'] # noqa: E501
474
+ all_params.append('async_req')
475
+ all_params.append('_return_http_data_only')
476
+ all_params.append('_preload_content')
477
+ all_params.append('_request_timeout')
478
+
479
+ params = locals()
480
+ for key, val in six.iteritems(params['kwargs']):
481
+ if key not in all_params:
482
+ raise TypeError(
483
+ "Got an unexpected keyword argument '%s'"
484
+ " to method find_entity_timeseries_and_attributes_keys_by_query_using_post" % key
485
+ )
486
+ params[key] = val
487
+ del params['kwargs']
488
+ # verify the required parameter 'timeseries' is set
489
+ if ('timeseries' not in params or
490
+ params['timeseries'] is None):
491
+ raise ValueError("Missing the required parameter `timeseries` when calling `find_entity_timeseries_and_attributes_keys_by_query_using_post`") # noqa: E501
492
+ # verify the required parameter 'attributes' is set
493
+ if ('attributes' not in params or
494
+ params['attributes'] is None):
495
+ raise ValueError("Missing the required parameter `attributes` when calling `find_entity_timeseries_and_attributes_keys_by_query_using_post`") # noqa: E501
496
+
497
+ collection_formats = {}
498
+
499
+ path_params = {}
500
+
501
+ query_params = []
502
+ if 'timeseries' in params:
503
+ query_params.append(('timeseries', params['timeseries'])) # noqa: E501
504
+ if 'attributes' in params:
505
+ query_params.append(('attributes', params['attributes'])) # noqa: E501
506
+ if 'scope' in params:
507
+ query_params.append(('scope', params['scope'])) # noqa: E501
508
+
509
+ header_params = {}
510
+
511
+ form_params = []
512
+ local_var_files = {}
513
+
514
+ body_params = None
515
+ if 'body' in params:
516
+ body_params = params['body']
517
+ # HTTP header `Accept`
518
+ header_params['Accept'] = self.api_client.select_header_accept(
519
+ ['application/json']) # noqa: E501
520
+
521
+ # HTTP header `Content-Type`
522
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
523
+ ['application/json']) # noqa: E501
524
+
525
+ # Authentication setting
526
+ auth_settings = ['X-Authorization'] # noqa: E501
527
+
528
+ return self.api_client.call_api(
529
+ '/api/entitiesQuery/find/keys{?attributes,scope,timeseries}', 'POST',
530
+ path_params,
531
+ query_params,
532
+ header_params,
533
+ body=body_params,
534
+ post_params=form_params,
535
+ files=local_var_files,
536
+ response_type='DeferredResultResponseEntity', # noqa: E501
537
+ auth_settings=auth_settings,
538
+ async_req=params.get('async_req'),
539
+ _return_http_data_only=params.get('_return_http_data_only'),
540
+ _preload_content=params.get('_preload_content', True),
541
+ _request_timeout=params.get('_request_timeout'),
542
+ collection_formats=collection_formats)