@kusinta/iot-schema 0.1.0-beta.9 → 0.2.0-beta.10

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 (53) hide show
  1. package/package.json +19 -2
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +230 -11
  3. package/src/kusinta/iot/access/v1/acl_pb.js +26 -5
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +95 -2
  5. package/src/kusinta/iot/access/v1/roles_pb.js +37 -1
  6. package/src/kusinta/iot/common/v1/pairing_pb.d.ts +201 -0
  7. package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
  8. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +481 -34
  9. package/src/kusinta/iot/connector/v1/connector_pb.js +81 -22
  10. package/src/kusinta/iot/connector/v1/connector_service_pb.d.ts +5 -5
  11. package/src/kusinta/iot/connector/v1/connector_service_pb.js +1 -1
  12. package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +263 -0
  13. package/src/kusinta/iot/device/v1/cluster_state_pb.js +54 -0
  14. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +53 -9
  15. package/src/kusinta/iot/device/v1/descriptor_pb.js +3 -1
  16. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +162 -0
  17. package/src/kusinta/iot/device/v1/device_event_pb.js +45 -0
  18. package/src/kusinta/iot/device/v1/device_pb.d.ts +185 -28
  19. package/src/kusinta/iot/device/v1/device_pb.js +10 -2
  20. package/src/kusinta/iot/device/v1/matter_options_pb.d.ts +110 -0
  21. package/src/kusinta/iot/device/v1/matter_options_pb.js +118 -0
  22. package/src/kusinta/iot/device/v1/properties_pb.d.ts +240 -205
  23. package/src/kusinta/iot/device/v1/properties_pb.js +9 -1
  24. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +197 -8
  25. package/src/kusinta/iot/device/v1/property_update_pb.js +20 -2
  26. package/src/kusinta/iot/link/v1/link_pb.d.ts +419 -0
  27. package/src/kusinta/iot/link/v1/link_pb.js +121 -0
  28. package/src/kusinta/iot/registration/v1/registration_pb.d.ts +170 -0
  29. package/src/kusinta/iot/registration/v1/registration_pb.js +61 -0
  30. package/src/kusinta/iot/registration/v1/registration_service_pb.d.ts +34 -0
  31. package/src/kusinta/iot/registration/v1/registration_service_pb.js +19 -0
  32. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +320 -0
  33. package/src/kusinta/iot/signaling/v1/signaling_pb.js +83 -0
  34. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +34 -0
  35. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +19 -0
  36. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +202 -35
  37. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +14 -6
  38. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +71 -0
  39. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +75 -0
  40. package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +152 -0
  41. package/src/kusinta/iot/webrtc/v1/app_token_pb.js +28 -0
  42. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +277 -39
  43. package/src/kusinta/iot/webrtc/v1/command_pb.js +29 -2
  44. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +76 -7
  45. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +20 -5
  46. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +603 -25
  47. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +99 -5
  48. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +627 -0
  49. package/src/kusinta/iot/webrtc/v1/management_pb.js +135 -0
  50. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +7 -1
  51. package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +2 -2
  52. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.d.ts +63 -0
  53. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.js +45 -0
@@ -4,17 +4,20 @@
4
4
 
5
5
  import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
6
6
  import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
+ import { file_kusinta_iot_common_v1_pairing } from "../../common/v1/pairing_pb.js";
7
8
  import { file_kusinta_iot_common_v1_types } from "../../common/v1/types_pb.js";
8
- import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
9
- import { file_kusinta_iot_device_v1_descriptor } from "../../device/v1/descriptor_pb.js";
9
+ import { file_kusinta_iot_device_v1_device } from "../../device/v1/device_pb.js";
10
+ import { file_kusinta_iot_device_v1_device_event } from "../../device/v1/device_event_pb.js";
10
11
  import { file_kusinta_iot_device_v1_property_update } from "../../device/v1/property_update_pb.js";
12
+ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
13
+ import { file_kusinta_iot_link_v1_link } from "../../link/v1/link_pb.js";
11
14
  import { file_kusinta_iot_webrtc_v1_command } from "../../webrtc/v1/command_pb.js";
12
15
 
13
16
  /**
14
17
  * Describes the file kusinta/iot/connector/v1/connector.proto.
15
18
  */
16
19
  export const file_kusinta_iot_connector_v1_connector = /*@__PURE__*/
17
- fileDesc("CihrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yLnByb3RvEhhrdXNpbnRhLmlvdC5jb25uZWN0b3IudjEi5QEKDUNvbm5lY3RvckluZm8SOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSPAoJdHJhbnNwb3J0GAQgASgOMikua3VzaW50YS5pb3QuY29tbW9uLnYxLkNvbm5lY3RvclRyYW5zcG9ydBIQCghlbmRwb2ludBgFIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAYgAygNIosBChJDb25uZWN0b3JIYW5kc2hha2USNQoEaW5mbxgBIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5Db25uZWN0b3JJbmZvEj4KDWtub3duX2RldmljZXMYAiADKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRGVzY3JpcHRvciJoCgxIYW5kc2hha2VBY2sSEAoIYWNjZXB0ZWQYASABKAgSDgoGcmVhc29uGAIgASgJEjYKCmdhdGV3YXlfaWQYAyABKAsyIi5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5HYXRld2F5SWQiUQoSRGV2aWNlQW5ub3VuY2VtZW50EjsKCmRlc2NyaXB0b3IYASABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRGVzY3JpcHRvciJVCg1EZXZpY2VSZW1vdmFsEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEg4KBnJlYXNvbhgCIAEoCSILCglIZWFydEJlYXQiRwoPU3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkkKEVVuc3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkEKDEdhdGV3YXlFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKY29tbWFuZF9pZBgDIAEoCSKdAQoNQ29tbWFuZFJlc3VsdBISCgpjb21tYW5kX2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSNQoFZXJyb3IYAyABKAsyJi5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuR2F0ZXdheUVycm9yEjAKDGNvbXBsZXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi8AMKDkNvbm5lY3RSZXF1ZXN0EhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASQQoJaGFuZHNoYWtlGAMgASgLMiwua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkNvbm5lY3RvckhhbmRzaGFrZUgAEkUKD3Byb3BlcnR5X3VwZGF0ZRgEIAEoCzIqLmt1c2ludGEuaW90LmRldmljZS52MS5Qcm9wZXJ0eVVwZGF0ZUJhdGNoSAASSAoQZGV2aWNlX2Fubm91bmNlZBgFIAEoCzIsLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5EZXZpY2VBbm5vdW5jZW1lbnRIABJBCg5kZXZpY2VfcmVtb3ZlZBgGIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5EZXZpY2VSZW1vdmFsSAASQQoOY29tbWFuZF9yZXN1bHQYByABKAsyJy5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuQ29tbWFuZFJlc3VsdEgAEjgKCWhlYXJ0YmVhdBgIIAEoCzIjLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5IZWFydEJlYXRIAEIJCgdwYXlsb2FkIqIDCg9Db25uZWN0UmVzcG9uc2USEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI/Cg1oYW5kc2hha2VfYWNrGAMgASgLMiYua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkhhbmRzaGFrZUFja0gAEj4KCXN1YnNjcmliZRgFIAEoCzIpLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5TdWJzY3JpYmVEZXZpY2VIABJCCgt1bnN1YnNjcmliZRgGIAEoCzIrLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5VbnN1YnNjcmliZURldmljZUgAEjcKBWVycm9yGAcgASgLMiYua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkdhdGV3YXlFcnJvckgAEj8KD2V4ZWN1dGVfY29tbWFuZBgIIAEoCzIkLmt1c2ludGEuaW90LndlYnJ0Yy52MS5EZXZpY2VDb21tYW5kSABCCQoHcGF5bG9hZEoECAQQBUICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_device_v1_descriptor, file_kusinta_iot_device_v1_property_update, file_kusinta_iot_webrtc_v1_command]);
20
+ fileDesc("CihrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yLnByb3RvEhhrdXNpbnRhLmlvdC5jb25uZWN0b3IudjEi5QEKDUNvbm5lY3RvckluZm8SOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSPAoJdHJhbnNwb3J0GAQgASgOMikua3VzaW50YS5pb3QuY29tbW9uLnYxLkNvbm5lY3RvclRyYW5zcG9ydBIQCghlbmRwb2ludBgFIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAYgAygNIrcBChJDb25uZWN0b3JIYW5kc2hha2USNQoEaW5mbxgBIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5Db25uZWN0b3JJbmZvEjQKDWtub3duX2RldmljZXMYAiADKAsyHS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlEjQKC2tub3duX2xpbmtzGAMgAygLMh8ua3VzaW50YS5pb3QubGluay52MS5EZXZpY2VMaW5rIroBCgpDcmVhdGVMaW5rEg8KB2xpbmtfaWQYASABKAkSMQoGc2VuZGVyGAIgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSMwoIcmVjZWl2ZXIYAyABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCghmdW5jdGlvbhgEIAEoDjIhLmt1c2ludGEuaW90LmxpbmsudjEuTGlua0Z1bmN0aW9uIroBCgpSZW1vdmVMaW5rEg8KB2xpbmtfaWQYASABKAkSMQoGc2VuZGVyGAIgASgLMiEua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuRGV2aWNlSWQSMwoIcmVjZWl2ZXIYAyABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCghmdW5jdGlvbhgEIAEoDjIhLmt1c2ludGEuaW90LmxpbmsudjEuTGlua0Z1bmN0aW9uIkEKCUxpc3RMaW5rcxI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJtCgpMaW5rUmVzdWx0Eg8KB2xpbmtfaWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBItCgVzdGF0ZRgDIAEoDjIeLmt1c2ludGEuaW90LmxpbmsudjEuTGlua1N0YXRlEg4KBmRldGFpbBgEIAEoCSI/Cg1MaW5rc1JlcG9ydGVkEi4KBWxpbmtzGAEgAygLMh8ua3VzaW50YS5pb3QubGluay52MS5EZXZpY2VMaW5rImgKDEhhbmRzaGFrZUFjaxIQCghhY2NlcHRlZBgBIAEoCBIOCgZyZWFzb24YAiABKAkSNgoKZ2F0ZXdheV9pZBgDIAEoCzIiLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkdhdGV3YXlJZCJxChJEZXZpY2VBbm5vdW5jZW1lbnQSLQoGZGV2aWNlGAIgASgLMh0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkRldmljZRIaChJwYWlyaW5nX3JlcXVlc3RfaWQYAyABKAlKBAgBEAJSCmRlc2NyaXB0b3IiVQoNRGV2aWNlUmVtb3ZhbBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIOCgZyZWFzb24YAiABKAkiCwoJSGVhcnRCZWF0IkcKD1N1YnNjcmliZURldmljZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJJChFVbnN1YnNjcmliZURldmljZRI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZCJBCgxHYXRld2F5RXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEhIKCnJlcXVlc3RfaWQYAyABKAki7QEKFkNvbm5lY3RvckNvbW1hbmRSZXN1bHQSEgoKcmVxdWVzdF9pZBgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEjAKDGNvbXBsZXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoFZXJyb3IYBSABKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuQ29tbWFuZEVycm9yEjMKCnNldHRsZXNfYnkYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX3NldHRsZXNfYnlKBAgDEAQiXAoQRW50ZXJQYWlyaW5nTW9kZRISCgpyZXF1ZXN0X2lkGAEgASgJEjQKBndpbmRvdxgCIAEoCzIkLmt1c2ludGEuaW90LmNvbW1vbi52MS5QYWlyaW5nV2luZG93IqMBChFQYWlyaW5nTW9kZVJlc3VsdBISCgpyZXF1ZXN0X2lkGAEgASgJEhAKCGFjY2VwdGVkGAIgASgIEjgKBWVycm9yGAMgASgLMikua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvckRldGFpbBIuCgpleHBpcmVzX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJ8ChBQYWlyaW5nTW9kZUVuZGVkEhIKCnJlcXVlc3RfaWQYASABKAkSGgoSZGV2aWNlc19hdHRyaWJ1dGVkGAIgASgNEjgKBWVycm9yGAMgASgLMikua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvckRldGFpbCLRBgoOU2Vzc2lvblJlcXVlc3QSEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJBCgloYW5kc2hha2UYAyABKAsyLC5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuQ29ubmVjdG9ySGFuZHNoYWtlSAASRQoPcHJvcGVydHlfdXBkYXRlGAQgASgLMioua3VzaW50YS5pb3QuZGV2aWNlLnYxLlByb3BlcnR5VXBkYXRlQmF0Y2hIABJIChBkZXZpY2VfYW5ub3VuY2VkGAUgASgLMiwua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkRldmljZUFubm91bmNlbWVudEgAEkEKDmRldmljZV9yZW1vdmVkGAYgASgLMicua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkRldmljZVJlbW92YWxIABJKCg5jb21tYW5kX3Jlc3VsdBgHIAEoCzIwLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5Db25uZWN0b3JDb21tYW5kUmVzdWx0SAASOAoJaGVhcnRiZWF0GAggASgLMiMua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkhlYXJ0QmVhdEgAEkAKDWRldmljZV9ldmVudHMYCSABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRXZlbnRCYXRjaEgAEkoKE3BhaXJpbmdfbW9kZV9yZXN1bHQYCiABKAsyKy5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuUGFpcmluZ01vZGVSZXN1bHRIABJIChJwYWlyaW5nX21vZGVfZW5kZWQYCyABKAsyKi5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuUGFpcmluZ01vZGVFbmRlZEgAEjsKC2xpbmtfcmVzdWx0GAwgASgLMiQua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkxpbmtSZXN1bHRIABJBCg5saW5rc19yZXBvcnRlZBgNIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5MaW5rc1JlcG9ydGVkSABCCQoHcGF5bG9hZCLyBQoPU2Vzc2lvblJlc3BvbnNlEhIKCm1lc3NhZ2VfaWQYASABKAkSKwoHc2VudF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPwoNaGFuZHNoYWtlX2FjaxgDIAEoCzImLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5IYW5kc2hha2VBY2tIABI+CglzdWJzY3JpYmUYBSABKAsyKS5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuU3Vic2NyaWJlRGV2aWNlSAASQgoLdW5zdWJzY3JpYmUYBiABKAsyKy5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuVW5zdWJzY3JpYmVEZXZpY2VIABI3CgVlcnJvchgHIAEoCzImLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5HYXRld2F5RXJyb3JIABI/Cg9leGVjdXRlX2NvbW1hbmQYCCABKAsyJC5rdXNpbnRhLmlvdC53ZWJydGMudjEuRGV2aWNlQ29tbWFuZEgAEk8KF2V4ZWN1dGVfYXR0cmlidXRlX3dyaXRlGAkgASgLMiwua3VzaW50YS5pb3Qud2VicnRjLnYxLkF0dHJpYnV0ZVdyaXRlUmVxdWVzdEgAEkgKEmVudGVyX3BhaXJpbmdfbW9kZRgKIAEoCzIqLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5FbnRlclBhaXJpbmdNb2RlSAASOwoLY3JlYXRlX2xpbmsYCyABKAsyJC5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuQ3JlYXRlTGlua0gAEjsKC3JlbW92ZV9saW5rGAwgASgLMiQua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLlJlbW92ZUxpbmtIABI5CgpsaXN0X2xpbmtzGA0gASgLMiMua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkxpc3RMaW5rc0gAQgkKB3BheWxvYWRKBAgEEAVCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_common_v1_pairing, file_kusinta_iot_common_v1_types, file_kusinta_iot_device_v1_device, file_kusinta_iot_device_v1_device_event, file_kusinta_iot_device_v1_property_update, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_webrtc_v1_command]);
18
21
 
19
22
  /**
20
23
  * Describes the message kusinta.iot.connector.v1.ConnectorInfo.
@@ -30,73 +33,129 @@ export const ConnectorInfoSchema = /*@__PURE__*/
30
33
  export const ConnectorHandshakeSchema = /*@__PURE__*/
31
34
  messageDesc(file_kusinta_iot_connector_v1_connector, 1);
32
35
 
36
+ /**
37
+ * Describes the message kusinta.iot.connector.v1.CreateLink.
38
+ * Use `create(CreateLinkSchema)` to create a new message.
39
+ */
40
+ export const CreateLinkSchema = /*@__PURE__*/
41
+ messageDesc(file_kusinta_iot_connector_v1_connector, 2);
42
+
43
+ /**
44
+ * Describes the message kusinta.iot.connector.v1.RemoveLink.
45
+ * Use `create(RemoveLinkSchema)` to create a new message.
46
+ */
47
+ export const RemoveLinkSchema = /*@__PURE__*/
48
+ messageDesc(file_kusinta_iot_connector_v1_connector, 3);
49
+
50
+ /**
51
+ * Describes the message kusinta.iot.connector.v1.ListLinks.
52
+ * Use `create(ListLinksSchema)` to create a new message.
53
+ */
54
+ export const ListLinksSchema = /*@__PURE__*/
55
+ messageDesc(file_kusinta_iot_connector_v1_connector, 4);
56
+
57
+ /**
58
+ * Describes the message kusinta.iot.connector.v1.LinkResult.
59
+ * Use `create(LinkResultSchema)` to create a new message.
60
+ */
61
+ export const LinkResultSchema = /*@__PURE__*/
62
+ messageDesc(file_kusinta_iot_connector_v1_connector, 5);
63
+
64
+ /**
65
+ * Describes the message kusinta.iot.connector.v1.LinksReported.
66
+ * Use `create(LinksReportedSchema)` to create a new message.
67
+ */
68
+ export const LinksReportedSchema = /*@__PURE__*/
69
+ messageDesc(file_kusinta_iot_connector_v1_connector, 6);
70
+
33
71
  /**
34
72
  * Describes the message kusinta.iot.connector.v1.HandshakeAck.
35
73
  * Use `create(HandshakeAckSchema)` to create a new message.
36
74
  */
37
75
  export const HandshakeAckSchema = /*@__PURE__*/
38
- messageDesc(file_kusinta_iot_connector_v1_connector, 2);
76
+ messageDesc(file_kusinta_iot_connector_v1_connector, 7);
39
77
 
40
78
  /**
41
79
  * Describes the message kusinta.iot.connector.v1.DeviceAnnouncement.
42
80
  * Use `create(DeviceAnnouncementSchema)` to create a new message.
43
81
  */
44
82
  export const DeviceAnnouncementSchema = /*@__PURE__*/
45
- messageDesc(file_kusinta_iot_connector_v1_connector, 3);
83
+ messageDesc(file_kusinta_iot_connector_v1_connector, 8);
46
84
 
47
85
  /**
48
86
  * Describes the message kusinta.iot.connector.v1.DeviceRemoval.
49
87
  * Use `create(DeviceRemovalSchema)` to create a new message.
50
88
  */
51
89
  export const DeviceRemovalSchema = /*@__PURE__*/
52
- messageDesc(file_kusinta_iot_connector_v1_connector, 4);
90
+ messageDesc(file_kusinta_iot_connector_v1_connector, 9);
53
91
 
54
92
  /**
55
93
  * Describes the message kusinta.iot.connector.v1.HeartBeat.
56
94
  * Use `create(HeartBeatSchema)` to create a new message.
57
95
  */
58
96
  export const HeartBeatSchema = /*@__PURE__*/
59
- messageDesc(file_kusinta_iot_connector_v1_connector, 5);
97
+ messageDesc(file_kusinta_iot_connector_v1_connector, 10);
60
98
 
61
99
  /**
62
100
  * Describes the message kusinta.iot.connector.v1.SubscribeDevice.
63
101
  * Use `create(SubscribeDeviceSchema)` to create a new message.
64
102
  */
65
103
  export const SubscribeDeviceSchema = /*@__PURE__*/
66
- messageDesc(file_kusinta_iot_connector_v1_connector, 6);
104
+ messageDesc(file_kusinta_iot_connector_v1_connector, 11);
67
105
 
68
106
  /**
69
107
  * Describes the message kusinta.iot.connector.v1.UnsubscribeDevice.
70
108
  * Use `create(UnsubscribeDeviceSchema)` to create a new message.
71
109
  */
72
110
  export const UnsubscribeDeviceSchema = /*@__PURE__*/
73
- messageDesc(file_kusinta_iot_connector_v1_connector, 7);
111
+ messageDesc(file_kusinta_iot_connector_v1_connector, 12);
74
112
 
75
113
  /**
76
114
  * Describes the message kusinta.iot.connector.v1.GatewayError.
77
115
  * Use `create(GatewayErrorSchema)` to create a new message.
78
116
  */
79
117
  export const GatewayErrorSchema = /*@__PURE__*/
80
- messageDesc(file_kusinta_iot_connector_v1_connector, 8);
118
+ messageDesc(file_kusinta_iot_connector_v1_connector, 13);
81
119
 
82
120
  /**
83
- * Describes the message kusinta.iot.connector.v1.CommandResult.
84
- * Use `create(CommandResultSchema)` to create a new message.
121
+ * Describes the message kusinta.iot.connector.v1.ConnectorCommandResult.
122
+ * Use `create(ConnectorCommandResultSchema)` to create a new message.
85
123
  */
86
- export const CommandResultSchema = /*@__PURE__*/
87
- messageDesc(file_kusinta_iot_connector_v1_connector, 9);
124
+ export const ConnectorCommandResultSchema = /*@__PURE__*/
125
+ messageDesc(file_kusinta_iot_connector_v1_connector, 14);
88
126
 
89
127
  /**
90
- * Describes the message kusinta.iot.connector.v1.ConnectRequest.
91
- * Use `create(ConnectRequestSchema)` to create a new message.
128
+ * Describes the message kusinta.iot.connector.v1.EnterPairingMode.
129
+ * Use `create(EnterPairingModeSchema)` to create a new message.
92
130
  */
93
- export const ConnectRequestSchema = /*@__PURE__*/
94
- messageDesc(file_kusinta_iot_connector_v1_connector, 10);
131
+ export const EnterPairingModeSchema = /*@__PURE__*/
132
+ messageDesc(file_kusinta_iot_connector_v1_connector, 15);
95
133
 
96
134
  /**
97
- * Describes the message kusinta.iot.connector.v1.ConnectResponse.
98
- * Use `create(ConnectResponseSchema)` to create a new message.
135
+ * Describes the message kusinta.iot.connector.v1.PairingModeResult.
136
+ * Use `create(PairingModeResultSchema)` to create a new message.
99
137
  */
100
- export const ConnectResponseSchema = /*@__PURE__*/
101
- messageDesc(file_kusinta_iot_connector_v1_connector, 11);
138
+ export const PairingModeResultSchema = /*@__PURE__*/
139
+ messageDesc(file_kusinta_iot_connector_v1_connector, 16);
140
+
141
+ /**
142
+ * Describes the message kusinta.iot.connector.v1.PairingModeEnded.
143
+ * Use `create(PairingModeEndedSchema)` to create a new message.
144
+ */
145
+ export const PairingModeEndedSchema = /*@__PURE__*/
146
+ messageDesc(file_kusinta_iot_connector_v1_connector, 17);
147
+
148
+ /**
149
+ * Describes the message kusinta.iot.connector.v1.SessionRequest.
150
+ * Use `create(SessionRequestSchema)` to create a new message.
151
+ */
152
+ export const SessionRequestSchema = /*@__PURE__*/
153
+ messageDesc(file_kusinta_iot_connector_v1_connector, 18);
154
+
155
+ /**
156
+ * Describes the message kusinta.iot.connector.v1.SessionResponse.
157
+ * Use `create(SessionResponseSchema)` to create a new message.
158
+ */
159
+ export const SessionResponseSchema = /*@__PURE__*/
160
+ messageDesc(file_kusinta_iot_connector_v1_connector, 19);
102
161
 
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
 
5
5
  import type { GenFile, GenService } from "@bufbuild/protobuf/codegenv2";
6
- import type { ConnectRequestSchema, ConnectResponseSchema } from "./connector_pb.js";
6
+ import type { SessionRequestSchema, SessionResponseSchema } from "./connector_pb.js";
7
7
 
8
8
  /**
9
9
  * Describes the file kusinta/iot/connector/v1/connector_service.proto.
@@ -18,12 +18,12 @@ export declare const file_kusinta_iot_connector_v1_connector_service: GenFile;
18
18
  */
19
19
  export declare const ConnectorGatewayService: GenService<{
20
20
  /**
21
- * @generated from rpc kusinta.iot.connector.v1.ConnectorGatewayService.Connect
21
+ * @generated from rpc kusinta.iot.connector.v1.ConnectorGatewayService.Session
22
22
  */
23
- connect: {
23
+ session: {
24
24
  methodKind: "bidi_streaming";
25
- input: typeof ConnectRequestSchema;
26
- output: typeof ConnectResponseSchema;
25
+ input: typeof SessionRequestSchema;
26
+ output: typeof SessionResponseSchema;
27
27
  },
28
28
  }>;
29
29
 
@@ -9,7 +9,7 @@ import { file_kusinta_iot_connector_v1_connector } from "./connector_pb.js";
9
9
  * Describes the file kusinta/iot/connector/v1/connector_service.proto.
10
10
  */
11
11
  export const file_kusinta_iot_connector_v1_connector_service = /*@__PURE__*/
12
- fileDesc("CjBrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yX3NlcnZpY2UucHJvdG8SGGt1c2ludGEuaW90LmNvbm5lY3Rvci52MTJ9ChdDb25uZWN0b3JHYXRld2F5U2VydmljZRJiCgdDb25uZWN0Eigua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkNvbm5lY3RSZXF1ZXN0Gikua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkNvbm5lY3RSZXNwb25zZSgBMAFCAkgBYgZwcm90bzM", [file_kusinta_iot_connector_v1_connector]);
12
+ fileDesc("CjBrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yX3NlcnZpY2UucHJvdG8SGGt1c2ludGEuaW90LmNvbm5lY3Rvci52MTJ9ChdDb25uZWN0b3JHYXRld2F5U2VydmljZRJiCgdTZXNzaW9uEigua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLlNlc3Npb25SZXF1ZXN0Gikua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLlNlc3Npb25SZXNwb25zZSgBMAFCAkgBYgZwcm90bzM", [file_kusinta_iot_connector_v1_connector]);
13
13
 
14
14
  /**
15
15
  * ConnectorGatewayService: connector dials the gateway on startup.
@@ -0,0 +1,263 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/device/v1/cluster_state.proto (package kusinta.iot.device.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import type { Message } from "@bufbuild/protobuf";
7
+
8
+ /**
9
+ * Describes the file kusinta/iot/device/v1/cluster_state.proto.
10
+ */
11
+ export declare const file_kusinta_iot_device_v1_cluster_state: GenFile;
12
+
13
+ /**
14
+ * Matter null. Distinct from a field being absent: Matter types many attributes as
15
+ * nullable, where null is a reported value meaning "not currently known" — a thermostat
16
+ * that cannot read its local temperature reports null, which is not the same as never
17
+ * having reported at all.
18
+ *
19
+ * @generated from message kusinta.iot.device.v1.NullValue
20
+ */
21
+ export declare type NullValue = Message<"kusinta.iot.device.v1.NullValue"> & {
22
+ };
23
+
24
+ /**
25
+ * Describes the message kusinta.iot.device.v1.NullValue.
26
+ * Use `create(NullValueSchema)` to create a new message.
27
+ */
28
+ export declare const NullValueSchema: GenMessage<NullValue>;
29
+
30
+ /**
31
+ * A Matter attribute value of any shape, including the ones a scalar cannot carry.
32
+ *
33
+ * Self-describing rather than Matter's own TLV as opaque bytes: an app that cannot decode
34
+ * a value cannot show it, and TLV would make the generic path useful only to the gateway.
35
+ * The cost is a recursive message; the benefit is that an attribute this schema has never
36
+ * heard of is still renderable.
37
+ *
38
+ * Widths are deliberately wider than most attributes need — sint64 covers every signed
39
+ * Matter integer type and uint64 every unsigned one, so a generic carrier never has to
40
+ * know an attribute's declared width to carry its value.
41
+ *
42
+ * @generated from message kusinta.iot.device.v1.AttributeValue
43
+ */
44
+ export declare type AttributeValue = Message<"kusinta.iot.device.v1.AttributeValue"> & {
45
+ /**
46
+ * @generated from oneof kusinta.iot.device.v1.AttributeValue.value
47
+ */
48
+ value: {
49
+ /**
50
+ * @generated from field: bool bool_value = 1;
51
+ */
52
+ value: boolean;
53
+ case: "boolValue";
54
+ } | {
55
+ /**
56
+ * @generated from field: sint64 int_value = 2;
57
+ */
58
+ value: bigint;
59
+ case: "intValue";
60
+ } | {
61
+ /**
62
+ * @generated from field: uint64 uint_value = 3;
63
+ */
64
+ value: bigint;
65
+ case: "uintValue";
66
+ } | {
67
+ /**
68
+ * @generated from field: double double_value = 4;
69
+ */
70
+ value: number;
71
+ case: "doubleValue";
72
+ } | {
73
+ /**
74
+ * @generated from field: string string_value = 5;
75
+ */
76
+ value: string;
77
+ case: "stringValue";
78
+ } | {
79
+ /**
80
+ * @generated from field: bytes bytes_value = 6;
81
+ */
82
+ value: Uint8Array;
83
+ case: "bytesValue";
84
+ } | {
85
+ /**
86
+ * @generated from field: kusinta.iot.device.v1.AttributeValueList list_value = 7;
87
+ */
88
+ value: AttributeValueList;
89
+ case: "listValue";
90
+ } | {
91
+ /**
92
+ * @generated from field: kusinta.iot.device.v1.AttributeValueStruct struct_value = 8;
93
+ */
94
+ value: AttributeValueStruct;
95
+ case: "structValue";
96
+ } | {
97
+ /**
98
+ * @generated from field: kusinta.iot.device.v1.NullValue null_value = 9;
99
+ */
100
+ value: NullValue;
101
+ case: "nullValue";
102
+ } | { case: undefined; value?: undefined };
103
+ };
104
+
105
+ /**
106
+ * Describes the message kusinta.iot.device.v1.AttributeValue.
107
+ * Use `create(AttributeValueSchema)` to create a new message.
108
+ */
109
+ export declare const AttributeValueSchema: GenMessage<AttributeValue>;
110
+
111
+ /**
112
+ * @generated from message kusinta.iot.device.v1.AttributeValueList
113
+ */
114
+ export declare type AttributeValueList = Message<"kusinta.iot.device.v1.AttributeValueList"> & {
115
+ /**
116
+ * @generated from field: repeated kusinta.iot.device.v1.AttributeValue values = 1;
117
+ */
118
+ values: AttributeValue[];
119
+ };
120
+
121
+ /**
122
+ * Describes the message kusinta.iot.device.v1.AttributeValueList.
123
+ * Use `create(AttributeValueListSchema)` to create a new message.
124
+ */
125
+ export declare const AttributeValueListSchema: GenMessage<AttributeValueList>;
126
+
127
+ /**
128
+ * Matter struct fields are addressed by numeric context tag, not by name, so the map is
129
+ * keyed by tag. A consumer that knows the struct's definition reads the tags it wants; one
130
+ * that does not can still carry and re-emit the whole thing.
131
+ *
132
+ * @generated from message kusinta.iot.device.v1.AttributeValueStruct
133
+ */
134
+ export declare type AttributeValueStruct = Message<"kusinta.iot.device.v1.AttributeValueStruct"> & {
135
+ /**
136
+ * @generated from field: map<uint32, kusinta.iot.device.v1.AttributeValue> fields = 1;
137
+ */
138
+ fields: { [key: number]: AttributeValue };
139
+ };
140
+
141
+ /**
142
+ * Describes the message kusinta.iot.device.v1.AttributeValueStruct.
143
+ * Use `create(AttributeValueStructSchema)` to create a new message.
144
+ */
145
+ export declare const AttributeValueStructSchema: GenMessage<AttributeValueStruct>;
146
+
147
+ /**
148
+ * @generated from message kusinta.iot.device.v1.AttributeState
149
+ */
150
+ export declare type AttributeState = Message<"kusinta.iot.device.v1.AttributeState"> & {
151
+ /**
152
+ * @generated from field: uint32 attribute_id = 1;
153
+ */
154
+ attributeId: number;
155
+
156
+ /**
157
+ * @generated from field: kusinta.iot.device.v1.AttributeValue value = 2;
158
+ */
159
+ value?: AttributeValue | undefined;
160
+ };
161
+
162
+ /**
163
+ * Describes the message kusinta.iot.device.v1.AttributeState.
164
+ * Use `create(AttributeStateSchema)` to create a new message.
165
+ */
166
+ export declare const AttributeStateSchema: GenMessage<AttributeState>;
167
+
168
+ /**
169
+ * One cluster hosted by an endpoint: what it is, what it supports, and any attribute value
170
+ * that has no typed home.
171
+ *
172
+ * An entry exists for EVERY cluster the endpoint hosts, including clusters this schema
173
+ * models with a typed properties message. That is not a contradiction of the
174
+ * one-value-one-place rule below — cluster_revision, feature_map and
175
+ * accepted_command_ids describe the cluster itself and have nowhere else to live.
176
+ *
177
+ * attributes is where the rule applies: it holds ONLY the attribute values that no typed
178
+ * field covers. An attribute the schema models is carried in its typed field and MUST NOT
179
+ * be repeated here — a value that exists in two places is a value that can disagree with
180
+ * itself.
181
+ *
182
+ * This is what lets an endpoint report something useful when its device type is not
183
+ * modelled, or when it carries a cluster beyond its device type's set, which the Matter
184
+ * specification explicitly permits.
185
+ *
186
+ * @generated from message kusinta.iot.device.v1.ClusterState
187
+ */
188
+ export declare type ClusterState = Message<"kusinta.iot.device.v1.ClusterState"> & {
189
+ /**
190
+ * @generated from field: uint32 cluster_id = 1;
191
+ */
192
+ clusterId: number;
193
+
194
+ /**
195
+ * Matter's ClusterRevision. Which revision of the cluster definition the device
196
+ * implements.
197
+ *
198
+ * @generated from field: optional uint32 cluster_revision = 2;
199
+ */
200
+ clusterRevision?: number | undefined;
201
+
202
+ /**
203
+ * Matter's FeatureMap: a bitmap of the optional features this cluster supports on this
204
+ * endpoint.
205
+ *
206
+ * Worth carrying even for fully-modelled clusters, because it resolves an ambiguity the
207
+ * presence rule cannot. properties.proto says an absent field means "never reported" —
208
+ * but without a FeatureMap, absent is also what an attribute the device does not
209
+ * implement looks like. With it, a consumer can tell "not supported" from "not yet
210
+ * seen".
211
+ *
212
+ * @generated from field: optional uint32 feature_map = 3;
213
+ */
214
+ featureMap?: number | undefined;
215
+
216
+ /**
217
+ * Attribute values with no typed field. See the message comment.
218
+ *
219
+ * @generated from field: repeated kusinta.iot.device.v1.AttributeState attributes = 4;
220
+ */
221
+ attributes: AttributeState[];
222
+
223
+ /**
224
+ * Matter's AcceptedCommandList: which commands this cluster accepts on this endpoint.
225
+ * Without it a consumer must infer a device's capabilities from its device type and
226
+ * discover the truth by sending a command and watching it fail.
227
+ *
228
+ * @generated from field: repeated uint32 accepted_command_ids = 5;
229
+ */
230
+ acceptedCommandIds: number[];
231
+
232
+ /**
233
+ * Matter's AttributeList (0xFFFB): which attributes this cluster instance actually
234
+ * implements HERE, on this endpoint of this device.
235
+ *
236
+ * It answers the question presence cannot. A typed field that is absent means "never
237
+ * reported" — and a device that will never report it, because it does not have the
238
+ * hardware, looks exactly the same. A wall thermostat drives no valve, so it has no
239
+ * PIHeatingDemand; a radiator valve has one it has not sent yet. Listed here with no
240
+ * value in the properties message = implemented, not yet reported. Absent from this
241
+ * list = the device does not have it.
242
+ *
243
+ * Distinct from feature_map, which is per-feature rather than per-attribute, and from
244
+ * (matter_attribute_capabilities), which says what the attribute IS — readable,
245
+ * writable, reportable — uniformly for every device, at compile time. Neither
246
+ * substitutes for the other: an app needs both to decide whether to draw a control,
247
+ * draw a value, or draw nothing.
248
+ *
249
+ * An empty list is "not stated", not "implements nothing". A producer that does not
250
+ * know its device's attribute list leaves it empty; one that does SHOULD fill it at
251
+ * announcement, where it costs nothing per update.
252
+ *
253
+ * @generated from field: repeated uint32 attribute_ids = 6;
254
+ */
255
+ attributeIds: number[];
256
+ };
257
+
258
+ /**
259
+ * Describes the message kusinta.iot.device.v1.ClusterState.
260
+ * Use `create(ClusterStateSchema)` to create a new message.
261
+ */
262
+ export declare const ClusterStateSchema: GenMessage<ClusterState>;
263
+
@@ -0,0 +1,54 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/device/v1/cluster_state.proto (package kusinta.iot.device.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
6
+
7
+ /**
8
+ * Describes the file kusinta/iot/device/v1/cluster_state.proto.
9
+ */
10
+ export const file_kusinta_iot_device_v1_cluster_state = /*@__PURE__*/
11
+ fileDesc("CilrdXNpbnRhL2lvdC9kZXZpY2UvdjEvY2x1c3Rlcl9zdGF0ZS5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIgsKCU51bGxWYWx1ZSLfAgoOQXR0cmlidXRlVmFsdWUSFAoKYm9vbF92YWx1ZRgBIAEoCEgAEhMKCWludF92YWx1ZRgCIAEoEkgAEhQKCnVpbnRfdmFsdWUYAyABKARIABIWCgxkb3VibGVfdmFsdWUYBCABKAFIABIWCgxzdHJpbmdfdmFsdWUYBSABKAlIABIVCgtieXRlc192YWx1ZRgGIAEoDEgAEj8KCmxpc3RfdmFsdWUYByABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlVmFsdWVMaXN0SAASQwoMc3RydWN0X3ZhbHVlGAggASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlU3RydWN0SAASNgoKbnVsbF92YWx1ZRgJIAEoCzIgLmt1c2ludGEuaW90LmRldmljZS52MS5OdWxsVmFsdWVIAEIHCgV2YWx1ZSJLChJBdHRyaWJ1dGVWYWx1ZUxpc3QSNQoGdmFsdWVzGAEgAygLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlIrUBChRBdHRyaWJ1dGVWYWx1ZVN0cnVjdBJHCgZmaWVsZHMYASADKAsyNy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlVmFsdWVTdHJ1Y3QuRmllbGRzRW50cnkaVAoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgNEjQKBXZhbHVlGAIgASgLMiUua3VzaW50YS5pb3QuZGV2aWNlLnYxLkF0dHJpYnV0ZVZhbHVlOgI4ASJcCg5BdHRyaWJ1dGVTdGF0ZRIUCgxhdHRyaWJ1dGVfaWQYASABKA0SNAoFdmFsdWUYAiABKAsyJS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlVmFsdWUi8AEKDENsdXN0ZXJTdGF0ZRISCgpjbHVzdGVyX2lkGAEgASgNEh0KEGNsdXN0ZXJfcmV2aXNpb24YAiABKA1IAIgBARIYCgtmZWF0dXJlX21hcBgDIAEoDUgBiAEBEjkKCmF0dHJpYnV0ZXMYBCADKAsyJS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQXR0cmlidXRlU3RhdGUSHAoUYWNjZXB0ZWRfY29tbWFuZF9pZHMYBSADKA0SFQoNYXR0cmlidXRlX2lkcxgGIAMoDUITChFfY2x1c3Rlcl9yZXZpc2lvbkIOCgxfZmVhdHVyZV9tYXBCAkgBYgZwcm90bzM");
12
+
13
+ /**
14
+ * Describes the message kusinta.iot.device.v1.NullValue.
15
+ * Use `create(NullValueSchema)` to create a new message.
16
+ */
17
+ export const NullValueSchema = /*@__PURE__*/
18
+ messageDesc(file_kusinta_iot_device_v1_cluster_state, 0);
19
+
20
+ /**
21
+ * Describes the message kusinta.iot.device.v1.AttributeValue.
22
+ * Use `create(AttributeValueSchema)` to create a new message.
23
+ */
24
+ export const AttributeValueSchema = /*@__PURE__*/
25
+ messageDesc(file_kusinta_iot_device_v1_cluster_state, 1);
26
+
27
+ /**
28
+ * Describes the message kusinta.iot.device.v1.AttributeValueList.
29
+ * Use `create(AttributeValueListSchema)` to create a new message.
30
+ */
31
+ export const AttributeValueListSchema = /*@__PURE__*/
32
+ messageDesc(file_kusinta_iot_device_v1_cluster_state, 2);
33
+
34
+ /**
35
+ * Describes the message kusinta.iot.device.v1.AttributeValueStruct.
36
+ * Use `create(AttributeValueStructSchema)` to create a new message.
37
+ */
38
+ export const AttributeValueStructSchema = /*@__PURE__*/
39
+ messageDesc(file_kusinta_iot_device_v1_cluster_state, 3);
40
+
41
+ /**
42
+ * Describes the message kusinta.iot.device.v1.AttributeState.
43
+ * Use `create(AttributeStateSchema)` to create a new message.
44
+ */
45
+ export const AttributeStateSchema = /*@__PURE__*/
46
+ messageDesc(file_kusinta_iot_device_v1_cluster_state, 4);
47
+
48
+ /**
49
+ * Describes the message kusinta.iot.device.v1.ClusterState.
50
+ * Use `create(ClusterStateSchema)` to create a new message.
51
+ */
52
+ export const ClusterStateSchema = /*@__PURE__*/
53
+ messageDesc(file_kusinta_iot_device_v1_cluster_state, 5);
54
+
@@ -7,6 +7,8 @@ import type { Message } from "@bufbuild/protobuf";
7
7
  import type { ConnectorId, DeviceId, SpaceId, UserId } from "../../identity/v1/identity_pb.js";
8
8
  import type { DeviceLifecycleState, DeviceOwnershipType } from "../../common/v1/types_pb.js";
9
9
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
+ import type { LinkCapability } from "../../link/v1/link_pb.js";
11
+ import type { HomematicDeviceIdentity } from "../../vendor/homematic/v1/homematic_pb.js";
10
12
 
11
13
  /**
12
14
  * Describes the file kusinta/iot/device/v1/descriptor.proto.
@@ -14,8 +16,13 @@ import type { Timestamp } from "@bufbuild/protobuf/wkt";
14
16
  export declare const file_kusinta_iot_device_v1_descriptor: GenFile;
15
17
 
16
18
  /**
17
- * DeviceDescriptor holds identity and Matter BasicInformation cluster fields.
18
- * Fields 1-19 are stable Matter-aligned fields. Fields 20+ are ownership/lifecycle.
19
+ * DeviceDescriptor holds identity and Matter BasicInformation cluster fields — what the
20
+ * device IS, not what it reports. The device types it presents are one per endpoint, in
21
+ * Device.endpoints.
22
+ *
23
+ * Field bands: 1-2 identity, 3-10 Matter BasicInformation, 11-12 placement,
24
+ * 13-16 ownership and lifecycle, 18-19 vendor identity and bridging.
25
+ * 2 and 17 are burned; the next free number is 20.
19
26
  *
20
27
  * @generated from message kusinta.iot.device.v1.DeviceDescriptor
21
28
  */
@@ -25,13 +32,6 @@ export declare type DeviceDescriptor = Message<"kusinta.iot.device.v1.DeviceDesc
25
32
  */
26
33
  deviceId?: DeviceId | undefined;
27
34
 
28
- /**
29
- * Matter 1.5.1 device type ID (e.g. 0x0301 = Thermostat, 0x0302 = TemperatureSensor)
30
- *
31
- * @generated from field: uint32 matter_device_type_id = 2;
32
- */
33
- matterDeviceTypeId: number;
34
-
35
35
  /**
36
36
  * Matter BasicInformation cluster attributes
37
37
  *
@@ -105,6 +105,50 @@ export declare type DeviceDescriptor = Message<"kusinta.iot.device.v1.DeviceDesc
105
105
  * @generated from field: google.protobuf.Timestamp claimed_at = 16;
106
106
  */
107
107
  claimedAt?: Timestamp | undefined;
108
+
109
+ /**
110
+ * Who the device is in its vendor's own terms — an address and a model string that
111
+ * identify the PHYSICAL device, not one of its endpoints. It belongs here rather than
112
+ * beside the per-endpoint vendor readings, which would duplicate it onto every
113
+ * endpoint with no rule saying whether a producer should.
114
+ *
115
+ * Absent for a device with no vendor extension, which is most of them.
116
+ * Set when this device sits behind a Matter bridge, naming the bridge's own Device.
117
+ *
118
+ * A bridge is one Matter node exposing many devices, and each gets its own DeviceId here
119
+ * rather than becoming an endpoint of the bridge: a user perceives twelve bridged bulbs
120
+ * as twelve things, and one row that cannot be placed in twelve rooms is not usable.
121
+ *
122
+ * So a Device is a Matter node OR one device behind one — the equivalence is deliberately
123
+ * not exact, and this field is how a consumer tells which. Absent means the device is
124
+ * reached directly.
125
+ *
126
+ * @generated from field: optional kusinta.iot.identity.v1.DeviceId bridged_by = 19;
127
+ */
128
+ bridgedBy?: DeviceId | undefined;
129
+
130
+ /**
131
+ * What this device can be linked as, if anything — see link.v1.LinkCapability.
132
+ *
133
+ * Declared by the connector that models the device, because only it knows
134
+ * which of a device's connections can lead, which can follow, and what a hub
135
+ * will actually broker. Empty means "states nothing", never "cannot be
136
+ * linked": a connector that does not model linking says nothing here.
137
+ *
138
+ * @generated from field: repeated kusinta.iot.link.v1.LinkCapability link_capabilities = 20;
139
+ */
140
+ linkCapabilities: LinkCapability[];
141
+
142
+ /**
143
+ * @generated from oneof kusinta.iot.device.v1.DeviceDescriptor.vendor_identity
144
+ */
145
+ vendorIdentity: {
146
+ /**
147
+ * @generated from field: kusinta.iot.vendor.homematic.v1.HomematicDeviceIdentity homematic = 18;
148
+ */
149
+ value: HomematicDeviceIdentity;
150
+ case: "homematic";
151
+ } | { case: undefined; value?: undefined };
108
152
  };
109
153
 
110
154
  /**
@@ -6,12 +6,14 @@ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
6
6
  import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
7
  import { file_kusinta_iot_common_v1_types } from "../../common/v1/types_pb.js";
8
8
  import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
9
+ import { file_kusinta_iot_link_v1_link } from "../../link/v1/link_pb.js";
10
+ import { file_kusinta_iot_vendor_homematic_v1_homematic } from "../../vendor/homematic/v1/homematic_pb.js";
9
11
 
10
12
  /**
11
13
  * Describes the file kusinta/iot/device/v1/descriptor.proto.
12
14
  */
13
15
  export const file_kusinta_iot_device_v1_descriptor = /*@__PURE__*/
14
- fileDesc("CiZrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGVzY3JpcHRvci5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIv0EChBEZXZpY2VEZXNjcmlwdG9yEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEh0KFW1hdHRlcl9kZXZpY2VfdHlwZV9pZBgCIAEoDRITCgt2ZW5kb3JfbmFtZRgDIAEoCRIUCgxwcm9kdWN0X25hbWUYBCABKAkSFQoNc2VyaWFsX251bWJlchgFIAEoCRISCgpub2RlX2xhYmVsGAYgASgJEhEKCXZlbmRvcl9pZBgHIAEoDRISCgpwcm9kdWN0X2lkGAggASgNEh8KF2hhcmR3YXJlX3ZlcnNpb25fc3RyaW5nGAkgASgJEh8KF3NvZnR3YXJlX3ZlcnNpb25fc3RyaW5nGAogASgJEjoKDGNvbm5lY3Rvcl9pZBgLIAEoCzIkLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkNvbm5lY3RvcklkEjIKCHNwYWNlX2lkGAwgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI9Cglvd25lcnNoaXAYDSABKA4yKi5rdXNpbnRhLmlvdC5jb21tb24udjEuRGV2aWNlT3duZXJzaGlwVHlwZRI+CglsaWZlY3ljbGUYDiABKA4yKy5rdXNpbnRhLmlvdC5jb21tb24udjEuRGV2aWNlTGlmZWN5Y2xlU3RhdGUSNgoNb3duZXJfdXNlcl9pZBgPIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIuCgpjbGFpbWVkX2F0GBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity]);
16
+ fileDesc("CiZrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGVzY3JpcHRvci5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIvkGChBEZXZpY2VEZXNjcmlwdG9yEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEhMKC3ZlbmRvcl9uYW1lGAMgASgJEhQKDHByb2R1Y3RfbmFtZRgEIAEoCRIVCg1zZXJpYWxfbnVtYmVyGAUgASgJEhIKCm5vZGVfbGFiZWwYBiABKAkSEQoJdmVuZG9yX2lkGAcgASgNEhIKCnByb2R1Y3RfaWQYCCABKA0SHwoXaGFyZHdhcmVfdmVyc2lvbl9zdHJpbmcYCSABKAkSHwoXc29mdHdhcmVfdmVyc2lvbl9zdHJpbmcYCiABKAkSOgoMY29ubmVjdG9yX2lkGAsgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSMgoIc3BhY2VfaWQYDCABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEj0KCW93bmVyc2hpcBgNIAEoDjIqLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VPd25lcnNoaXBUeXBlEj4KCWxpZmVjeWNsZRgOIAEoDjIrLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VMaWZlY3ljbGVTdGF0ZRI2Cg1vd25lcl91c2VyX2lkGA8gASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEi4KCmNsYWltZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKCmJyaWRnZWRfYnkYEyABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZEgBiAEBEj4KEWxpbmtfY2FwYWJpbGl0aWVzGBQgAygLMiMua3VzaW50YS5pb3QubGluay52MS5MaW5rQ2FwYWJpbGl0eRJNCglob21lbWF0aWMYEiABKAsyOC5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhvbWVtYXRpY0RldmljZUlkZW50aXR5SABCEQoPdmVuZG9yX2lkZW50aXR5Qg0KC19icmlkZ2VkX2J5SgQIAhADSgQIERASUhVtYXR0ZXJfZGV2aWNlX3R5cGVfaWRSCWVuZHBvaW50c0ICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_link_v1_link, file_kusinta_iot_vendor_homematic_v1_homematic]);
15
17
 
16
18
  /**
17
19
  * Describes the message kusinta.iot.device.v1.DeviceDescriptor.