@kusinta/iot-schema 0.2.0-beta.5 → 0.2.0-beta.8

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.
@@ -4,18 +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
9
  import { file_kusinta_iot_device_v1_device } from "../../device/v1/device_pb.js";
9
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";
11
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";
12
14
  import { file_kusinta_iot_webrtc_v1_command } from "../../webrtc/v1/command_pb.js";
13
15
 
14
16
  /**
15
17
  * Describes the file kusinta/iot/connector/v1/connector.proto.
16
18
  */
17
19
  export const file_kusinta_iot_connector_v1_connector = /*@__PURE__*/
18
- fileDesc("CihrdXNpbnRhL2lvdC9jb25uZWN0b3IvdjEvY29ubmVjdG9yLnByb3RvEhhrdXNpbnRhLmlvdC5jb25uZWN0b3IudjEi5QEKDUNvbm5lY3RvckluZm8SOgoMY29ubmVjdG9yX2lkGAEgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSFAoMZGlzcGxheV9uYW1lGAIgASgJEg8KB3ZlcnNpb24YAyABKAkSPAoJdHJhbnNwb3J0GAQgASgOMikua3VzaW50YS5pb3QuY29tbW9uLnYxLkNvbm5lY3RvclRyYW5zcG9ydBIQCghlbmRwb2ludBgFIAEoCRIhChlzdXBwb3J0ZWRfZGV2aWNlX3R5cGVfaWRzGAYgAygNIoEBChJDb25uZWN0b3JIYW5kc2hha2USNQoEaW5mbxgBIAEoCzInLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5Db25uZWN0b3JJbmZvEjQKDWtub3duX2RldmljZXMYAiADKAsyHS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlImgKDEhhbmRzaGFrZUFjaxIQCghhY2NlcHRlZBgBIAEoCBIOCgZyZWFzb24YAiABKAkSNgoKZ2F0ZXdheV9pZBgDIAEoCzIiLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkdhdGV3YXlJZCJVChJEZXZpY2VBbm5vdW5jZW1lbnQSLQoGZGV2aWNlGAIgASgLMh0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkRldmljZUoECAEQAlIKZGVzY3JpcHRvciJVCg1EZXZpY2VSZW1vdmFsEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEg4KBnJlYXNvbhgCIAEoCSILCglIZWFydEJlYXQiRwoPU3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkkKEVVuc3Vic2NyaWJlRGV2aWNlEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkIkEKDEdhdGV3YXlFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKcmVxdWVzdF9pZBgDIAEoCSLtAQoWQ29ubmVjdG9yQ29tbWFuZFJlc3VsdBISCgpyZXF1ZXN0X2lkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSMAoMY29tcGxldGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCgVlcnJvchgFIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db21tYW5kRXJyb3ISMwoKc2V0dGxlc19ieRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUINCgtfc2V0dGxlc19ieUoECAMQBCK7BAoOU2Vzc2lvblJlcXVlc3QSEgoKbWVzc2FnZV9pZBgBIAEoCRIrCgdzZW50X2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJBCgloYW5kc2hha2UYAyABKAsyLC5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuQ29ubmVjdG9ySGFuZHNoYWtlSAASRQoPcHJvcGVydHlfdXBkYXRlGAQgASgLMioua3VzaW50YS5pb3QuZGV2aWNlLnYxLlByb3BlcnR5VXBkYXRlQmF0Y2hIABJIChBkZXZpY2VfYW5ub3VuY2VkGAUgASgLMiwua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkRldmljZUFubm91bmNlbWVudEgAEkEKDmRldmljZV9yZW1vdmVkGAYgASgLMicua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkRldmljZVJlbW92YWxIABJKCg5jb21tYW5kX3Jlc3VsdBgHIAEoCzIwLmt1c2ludGEuaW90LmNvbm5lY3Rvci52MS5Db25uZWN0b3JDb21tYW5kUmVzdWx0SAASOAoJaGVhcnRiZWF0GAggASgLMiMua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLkhlYXJ0QmVhdEgAEkAKDWRldmljZV9ldmVudHMYCSABKAsyJy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGV2aWNlRXZlbnRCYXRjaEgAQgkKB3BheWxvYWQi8wMKD1Nlc3Npb25SZXNwb25zZRISCgptZXNzYWdlX2lkGAEgASgJEisKB3NlbnRfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEj8KDWhhbmRzaGFrZV9hY2sYAyABKAsyJi5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuSGFuZHNoYWtlQWNrSAASPgoJc3Vic2NyaWJlGAUgASgLMikua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLlN1YnNjcmliZURldmljZUgAEkIKC3Vuc3Vic2NyaWJlGAYgASgLMisua3VzaW50YS5pb3QuY29ubmVjdG9yLnYxLlVuc3Vic2NyaWJlRGV2aWNlSAASNwoFZXJyb3IYByABKAsyJi5rdXNpbnRhLmlvdC5jb25uZWN0b3IudjEuR2F0ZXdheUVycm9ySAASPwoPZXhlY3V0ZV9jb21tYW5kGAggASgLMiQua3VzaW50YS5pb3Qud2VicnRjLnYxLkRldmljZUNvbW1hbmRIABJPChdleGVjdXRlX2F0dHJpYnV0ZV93cml0ZRgJIAEoCzIsLmt1c2ludGEuaW90LndlYnJ0Yy52MS5BdHRyaWJ1dGVXcml0ZVJlcXVlc3RIAEIJCgdwYXlsb2FkSgQIBBAFQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, 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_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]);
19
21
 
20
22
  /**
21
23
  * Describes the message kusinta.iot.connector.v1.ConnectorInfo.
@@ -31,73 +33,129 @@ export const ConnectorInfoSchema = /*@__PURE__*/
31
33
  export const ConnectorHandshakeSchema = /*@__PURE__*/
32
34
  messageDesc(file_kusinta_iot_connector_v1_connector, 1);
33
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
+
34
71
  /**
35
72
  * Describes the message kusinta.iot.connector.v1.HandshakeAck.
36
73
  * Use `create(HandshakeAckSchema)` to create a new message.
37
74
  */
38
75
  export const HandshakeAckSchema = /*@__PURE__*/
39
- messageDesc(file_kusinta_iot_connector_v1_connector, 2);
76
+ messageDesc(file_kusinta_iot_connector_v1_connector, 7);
40
77
 
41
78
  /**
42
79
  * Describes the message kusinta.iot.connector.v1.DeviceAnnouncement.
43
80
  * Use `create(DeviceAnnouncementSchema)` to create a new message.
44
81
  */
45
82
  export const DeviceAnnouncementSchema = /*@__PURE__*/
46
- messageDesc(file_kusinta_iot_connector_v1_connector, 3);
83
+ messageDesc(file_kusinta_iot_connector_v1_connector, 8);
47
84
 
48
85
  /**
49
86
  * Describes the message kusinta.iot.connector.v1.DeviceRemoval.
50
87
  * Use `create(DeviceRemovalSchema)` to create a new message.
51
88
  */
52
89
  export const DeviceRemovalSchema = /*@__PURE__*/
53
- messageDesc(file_kusinta_iot_connector_v1_connector, 4);
90
+ messageDesc(file_kusinta_iot_connector_v1_connector, 9);
54
91
 
55
92
  /**
56
93
  * Describes the message kusinta.iot.connector.v1.HeartBeat.
57
94
  * Use `create(HeartBeatSchema)` to create a new message.
58
95
  */
59
96
  export const HeartBeatSchema = /*@__PURE__*/
60
- messageDesc(file_kusinta_iot_connector_v1_connector, 5);
97
+ messageDesc(file_kusinta_iot_connector_v1_connector, 10);
61
98
 
62
99
  /**
63
100
  * Describes the message kusinta.iot.connector.v1.SubscribeDevice.
64
101
  * Use `create(SubscribeDeviceSchema)` to create a new message.
65
102
  */
66
103
  export const SubscribeDeviceSchema = /*@__PURE__*/
67
- messageDesc(file_kusinta_iot_connector_v1_connector, 6);
104
+ messageDesc(file_kusinta_iot_connector_v1_connector, 11);
68
105
 
69
106
  /**
70
107
  * Describes the message kusinta.iot.connector.v1.UnsubscribeDevice.
71
108
  * Use `create(UnsubscribeDeviceSchema)` to create a new message.
72
109
  */
73
110
  export const UnsubscribeDeviceSchema = /*@__PURE__*/
74
- messageDesc(file_kusinta_iot_connector_v1_connector, 7);
111
+ messageDesc(file_kusinta_iot_connector_v1_connector, 12);
75
112
 
76
113
  /**
77
114
  * Describes the message kusinta.iot.connector.v1.GatewayError.
78
115
  * Use `create(GatewayErrorSchema)` to create a new message.
79
116
  */
80
117
  export const GatewayErrorSchema = /*@__PURE__*/
81
- messageDesc(file_kusinta_iot_connector_v1_connector, 8);
118
+ messageDesc(file_kusinta_iot_connector_v1_connector, 13);
82
119
 
83
120
  /**
84
121
  * Describes the message kusinta.iot.connector.v1.ConnectorCommandResult.
85
122
  * Use `create(ConnectorCommandResultSchema)` to create a new message.
86
123
  */
87
124
  export const ConnectorCommandResultSchema = /*@__PURE__*/
88
- messageDesc(file_kusinta_iot_connector_v1_connector, 9);
125
+ messageDesc(file_kusinta_iot_connector_v1_connector, 14);
126
+
127
+ /**
128
+ * Describes the message kusinta.iot.connector.v1.EnterPairingMode.
129
+ * Use `create(EnterPairingModeSchema)` to create a new message.
130
+ */
131
+ export const EnterPairingModeSchema = /*@__PURE__*/
132
+ messageDesc(file_kusinta_iot_connector_v1_connector, 15);
133
+
134
+ /**
135
+ * Describes the message kusinta.iot.connector.v1.PairingModeResult.
136
+ * Use `create(PairingModeResultSchema)` to create a new message.
137
+ */
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);
89
147
 
90
148
  /**
91
149
  * Describes the message kusinta.iot.connector.v1.SessionRequest.
92
150
  * Use `create(SessionRequestSchema)` to create a new message.
93
151
  */
94
152
  export const SessionRequestSchema = /*@__PURE__*/
95
- messageDesc(file_kusinta_iot_connector_v1_connector, 10);
153
+ messageDesc(file_kusinta_iot_connector_v1_connector, 18);
96
154
 
97
155
  /**
98
156
  * Describes the message kusinta.iot.connector.v1.SessionResponse.
99
157
  * Use `create(SessionResponseSchema)` to create a new message.
100
158
  */
101
159
  export const SessionResponseSchema = /*@__PURE__*/
102
- messageDesc(file_kusinta_iot_connector_v1_connector, 11);
160
+ messageDesc(file_kusinta_iot_connector_v1_connector, 19);
103
161
 
@@ -7,6 +7,7 @@ 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";
10
11
  import type { HomematicDeviceIdentity } from "../../vendor/homematic/v1/homematic_pb.js";
11
12
 
12
13
  /**
@@ -126,6 +127,18 @@ export declare type DeviceDescriptor = Message<"kusinta.iot.device.v1.DeviceDesc
126
127
  */
127
128
  bridgedBy?: DeviceId | undefined;
128
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
+
129
142
  /**
130
143
  * @generated from oneof kusinta.iot.device.v1.DeviceDescriptor.vendor_identity
131
144
  */
@@ -6,13 +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";
9
10
  import { file_kusinta_iot_vendor_homematic_v1_homematic } from "../../vendor/homematic/v1/homematic_pb.js";
10
11
 
11
12
  /**
12
13
  * Describes the file kusinta/iot/device/v1/descriptor.proto.
13
14
  */
14
15
  export const file_kusinta_iot_device_v1_descriptor = /*@__PURE__*/
15
- fileDesc("CiZrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGVzY3JpcHRvci5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIrkGChBEZXZpY2VEZXNjcmlwdG9yEjQKCWRldmljZV9pZBgBIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEhMKC3ZlbmRvcl9uYW1lGAMgASgJEhQKDHByb2R1Y3RfbmFtZRgEIAEoCRIVCg1zZXJpYWxfbnVtYmVyGAUgASgJEhIKCm5vZGVfbGFiZWwYBiABKAkSEQoJdmVuZG9yX2lkGAcgASgNEhIKCnByb2R1Y3RfaWQYCCABKA0SHwoXaGFyZHdhcmVfdmVyc2lvbl9zdHJpbmcYCSABKAkSHwoXc29mdHdhcmVfdmVyc2lvbl9zdHJpbmcYCiABKAkSOgoMY29ubmVjdG9yX2lkGAsgASgLMiQua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuQ29ubmVjdG9ySWQSMgoIc3BhY2VfaWQYDCABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEj0KCW93bmVyc2hpcBgNIAEoDjIqLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VPd25lcnNoaXBUeXBlEj4KCWxpZmVjeWNsZRgOIAEoDjIrLmt1c2ludGEuaW90LmNvbW1vbi52MS5EZXZpY2VMaWZlY3ljbGVTdGF0ZRI2Cg1vd25lcl91c2VyX2lkGA8gASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEi4KCmNsYWltZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjoKCmJyaWRnZWRfYnkYEyABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZEgBiAEBEk0KCWhvbWVtYXRpYxgSIAEoCzI4Lmt1c2ludGEuaW90LnZlbmRvci5ob21lbWF0aWMudjEuSG9tZW1hdGljRGV2aWNlSWRlbnRpdHlIAEIRCg92ZW5kb3JfaWRlbnRpdHlCDQoLX2JyaWRnZWRfYnlKBAgCEANKBAgREBJSFW1hdHRlcl9kZXZpY2VfdHlwZV9pZFIJZW5kcG9pbnRzQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_vendor_homematic_v1_homematic]);
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]);
16
17
 
17
18
  /**
18
19
  * Describes the message kusinta.iot.device.v1.DeviceDescriptor.
@@ -253,8 +253,11 @@ export declare type Device = Message<"kusinta.iot.device.v1.Device"> & {
253
253
  endpoints: Endpoint[];
254
254
 
255
255
  /**
256
- * When the gateway last had evidence this device exists and is reachable — the
257
- * most recent PropertyUpdate, announcement, or command result concerning it.
256
+ * When the gateway last had evidence this device itself — the
257
+ * most recent PropertyUpdate (wheter or not the property changed) or command
258
+ * result concerning it. Should not be advanced on a device announcement: a
259
+ * connector typically re-announces from its own device list, so a device with a
260
+ * flat battery would otherwise keep looking freshly seen.
258
261
  * Gateway-observed, not connector-reported: no message on either leg carries a
259
262
  * per-device liveness timestamp, so this is as precise as the device's own report
260
263
  * interval. A device that reports every 15 minutes looks stale for 15 minutes.
@@ -0,0 +1,326 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/link/v1/link.proto (package kusinta.iot.link.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import type { Message } from "@bufbuild/protobuf";
7
+ import type { DeviceId } from "../../identity/v1/identity_pb.js";
8
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
9
+ import type { AttributeRef } from "../../access/v1/acl_pb.js";
10
+
11
+ /**
12
+ * Describes the file kusinta/iot/link/v1/link.proto.
13
+ */
14
+ export declare const file_kusinta_iot_link_v1_link: GenFile;
15
+
16
+ /**
17
+ * One device leading another.
18
+ *
19
+ * @generated from message kusinta.iot.link.v1.DeviceLink
20
+ */
21
+ export declare type DeviceLink = Message<"kusinta.iot.link.v1.DeviceLink"> & {
22
+ /**
23
+ * @generated from field: string link_id = 1;
24
+ */
25
+ linkId: string;
26
+
27
+ /**
28
+ * Which device leads. This is the control surface for the pair: for a climate
29
+ * link, the setpoint that governs both is written here.
30
+ *
31
+ * @generated from field: kusinta.iot.identity.v1.DeviceId sender = 2;
32
+ */
33
+ sender?: DeviceId | undefined;
34
+
35
+ /**
36
+ * Which device follows. One sender may lead several receivers — a room with
37
+ * more than one radiator is the ordinary case — and each is its own link.
38
+ * Several senders leading one receiver is not modelled: combining two
39
+ * measurements needs a policy, and no policy is defined.
40
+ *
41
+ * @generated from field: kusinta.iot.identity.v1.DeviceId receiver = 3;
42
+ */
43
+ receiver?: DeviceId | undefined;
44
+
45
+ /**
46
+ * @generated from field: kusinta.iot.link.v1.LinkFunction function = 4;
47
+ */
48
+ function: LinkFunction;
49
+
50
+ /**
51
+ * @generated from field: kusinta.iot.link.v1.LinkMode mode = 5;
52
+ */
53
+ mode: LinkMode;
54
+
55
+ /**
56
+ * @generated from field: kusinta.iot.link.v1.LinkState state = 6;
57
+ */
58
+ state: LinkState;
59
+
60
+ /**
61
+ * @generated from field: google.protobuf.Timestamp created_at = 7;
62
+ */
63
+ createdAt?: Timestamp | undefined;
64
+
65
+ /**
66
+ * Why the link is not carrying, when state says it is not. Free text for a
67
+ * person, never parsed.
68
+ *
69
+ * @generated from field: string state_detail = 8;
70
+ */
71
+ stateDetail: string;
72
+ };
73
+
74
+ /**
75
+ * Describes the message kusinta.iot.link.v1.DeviceLink.
76
+ * Use `create(DeviceLinkSchema)` to create a new message.
77
+ */
78
+ export declare const DeviceLinkSchema: GenMessage<DeviceLink>;
79
+
80
+ /**
81
+ * What a device can be linked as, declared by the connector that models it.
82
+ *
83
+ * Without this an interface cannot offer a sensible choice: it has no way to know
84
+ * which of two devices may lead, whether a hub can broker them, or which
85
+ * attribute carries the quantity in question. Matching is mechanical — the same
86
+ * function, opposite directions, and a mode both ends support.
87
+ *
88
+ * Declared per device rather than per endpoint. Endpoint would be more precise,
89
+ * but the channels a link actually attaches to frequently carry no readings and
90
+ * so are not announced as endpoints at all; a per-endpoint declaration would have
91
+ * nowhere honest to live. The reserved range on DeviceLink is where that would go
92
+ * if a vendor ever needs it.
93
+ *
94
+ * @generated from message kusinta.iot.link.v1.LinkCapability
95
+ */
96
+ export declare type LinkCapability = Message<"kusinta.iot.link.v1.LinkCapability"> & {
97
+ /**
98
+ * @generated from field: kusinta.iot.link.v1.LinkFunction function = 1;
99
+ */
100
+ function: LinkFunction;
101
+
102
+ /**
103
+ * @generated from field: kusinta.iot.link.v1.LinkDirection direction = 2;
104
+ */
105
+ direction: LinkDirection;
106
+
107
+ /**
108
+ * Modes this device supports for this function. A hard link additionally
109
+ * requires the other end to be on the same hub, which this cannot state alone.
110
+ *
111
+ * @generated from field: repeated kusinta.iot.link.v1.LinkMode supported_modes = 3;
112
+ */
113
+ supportedModes: LinkMode[];
114
+
115
+ /**
116
+ * This device's own attribute for this function — the one it reads as a
117
+ * sender, or the one it is driven through as a receiver. Present because the
118
+ * two ends of a link need not speak the same cluster.
119
+ *
120
+ * @generated from field: kusinta.iot.access.v1.AttributeRef attribute = 4;
121
+ */
122
+ attribute?: AttributeRef | undefined;
123
+
124
+ /**
125
+ * Human-readable, from the connector, in whatever locale it was given. For
126
+ * display beside a choice; never matched on.
127
+ *
128
+ * @generated from field: string label = 5;
129
+ */
130
+ label: string;
131
+ };
132
+
133
+ /**
134
+ * Describes the message kusinta.iot.link.v1.LinkCapability.
135
+ * Use `create(LinkCapabilitySchema)` to create a new message.
136
+ */
137
+ export declare const LinkCapabilitySchema: GenMessage<LinkCapability>;
138
+
139
+ /**
140
+ * Every link a caller was shown, in reply to a listing.
141
+ *
142
+ * @generated from message kusinta.iot.link.v1.DeviceLinkList
143
+ */
144
+ export declare type DeviceLinkList = Message<"kusinta.iot.link.v1.DeviceLinkList"> & {
145
+ /**
146
+ * @generated from field: repeated kusinta.iot.link.v1.DeviceLink links = 1;
147
+ */
148
+ links: DeviceLink[];
149
+ };
150
+
151
+ /**
152
+ * Describes the message kusinta.iot.link.v1.DeviceLinkList.
153
+ * Use `create(DeviceLinkListSchema)` to create a new message.
154
+ */
155
+ export declare const DeviceLinkListSchema: GenMessage<DeviceLinkList>;
156
+
157
+ /**
158
+ * What a link makes the sender do to the receiver.
159
+ *
160
+ * A function, not a cluster id, because the two ends do not necessarily speak the
161
+ * same cluster: a wall thermostat reports its temperature as Thermostat
162
+ * LocalTemperature while a bare sensor reports the same quantity as Temperature
163
+ * Measurement MeasuredValue. Each end states its own attribute in its
164
+ * LinkCapability; the function is what says the two belong together.
165
+ *
166
+ * @generated from enum kusinta.iot.link.v1.LinkFunction
167
+ */
168
+ export enum LinkFunction {
169
+ /**
170
+ * @generated from enum value: LINK_FUNCTION_UNSPECIFIED = 0;
171
+ */
172
+ UNSPECIFIED = 0,
173
+
174
+ /**
175
+ * The sender leads the receiver's climate control.
176
+ *
177
+ * Stronger than feeding a measurement, and the difference matters to anything
178
+ * building a UI. Both the sender's measured temperature and its setpoint reach
179
+ * the receiver, and the transfer is one way: the receiver reports the sender's
180
+ * temperature as its own, and a setpoint written to the receiver is accepted
181
+ * and then reverted to the sender's. So the sender is the control surface for
182
+ * the pair, and a setpoint control offered on a linked receiver is one that
183
+ * appears to work and silently undoes itself.
184
+ *
185
+ * @generated from enum value: LINK_FUNCTION_CLIMATE_LEAD = 1;
186
+ */
187
+ CLIMATE_LEAD = 1,
188
+
189
+ /**
190
+ * The sender's open/closed state reaches the receiver, which acts on it —
191
+ * typically a contact telling a valve to stop heating an open room.
192
+ *
193
+ * Not implied by CLIMATE_LEAD: a device that leads a room's climate does not
194
+ * necessarily forward its own window state, and on at least one vendor it does
195
+ * not. Where both are wanted, both are linked.
196
+ *
197
+ * @generated from enum value: LINK_FUNCTION_WINDOW_STATE = 2;
198
+ */
199
+ WINDOW_STATE = 2,
200
+
201
+ /**
202
+ * The sender is an input the receiver acts on — a button or remote.
203
+ *
204
+ * @generated from enum value: LINK_FUNCTION_REMOTE_CONTROL = 3;
205
+ */
206
+ REMOTE_CONTROL = 3,
207
+ }
208
+
209
+ /**
210
+ * Describes the enum kusinta.iot.link.v1.LinkFunction.
211
+ */
212
+ export declare const LinkFunctionSchema: GenEnum<LinkFunction>;
213
+
214
+ /**
215
+ * Which end of a link a device can be.
216
+ *
217
+ * @generated from enum kusinta.iot.link.v1.LinkDirection
218
+ */
219
+ export enum LinkDirection {
220
+ /**
221
+ * @generated from enum value: LINK_DIRECTION_UNSPECIFIED = 0;
222
+ */
223
+ UNSPECIFIED = 0,
224
+
225
+ /**
226
+ * can lead
227
+ *
228
+ * @generated from enum value: LINK_DIRECTION_SOURCE = 1;
229
+ */
230
+ SOURCE = 1,
231
+
232
+ /**
233
+ * can follow
234
+ *
235
+ * @generated from enum value: LINK_DIRECTION_TARGET = 2;
236
+ */
237
+ TARGET = 2,
238
+ }
239
+
240
+ /**
241
+ * Describes the enum kusinta.iot.link.v1.LinkDirection.
242
+ */
243
+ export declare const LinkDirectionSchema: GenEnum<LinkDirection>;
244
+
245
+ /**
246
+ * How a link is carried.
247
+ *
248
+ * @generated from enum kusinta.iot.link.v1.LinkMode
249
+ */
250
+ export enum LinkMode {
251
+ /**
252
+ * @generated from enum value: LINK_MODE_UNSPECIFIED = 0;
253
+ */
254
+ UNSPECIFIED = 0,
255
+
256
+ /**
257
+ * Device to device, brokered by the hub and then carried without it. Survives
258
+ * a gateway outage. Requires both devices on the same hub, and the hub's own
259
+ * support for the function.
260
+ *
261
+ * @generated from enum value: LINK_MODE_HARD = 1;
262
+ */
263
+ HARD = 1,
264
+
265
+ /**
266
+ * Kept by the gateway, which reads one device and writes the other. Works
267
+ * across vendors and across hubs, and is the only option where no hub can
268
+ * broker the pair — at the cost of not surviving a gateway outage.
269
+ *
270
+ * @generated from enum value: LINK_MODE_SOFT = 2;
271
+ */
272
+ SOFT = 2,
273
+ }
274
+
275
+ /**
276
+ * Describes the enum kusinta.iot.link.v1.LinkMode.
277
+ */
278
+ export declare const LinkModeSchema: GenEnum<LinkMode>;
279
+
280
+ /**
281
+ * Whether a link is doing anything.
282
+ *
283
+ * There is deliberately no "created but not yet in effect" state. On current
284
+ * device firmware a link takes effect immediately, and on firmware old enough not
285
+ * to, it never takes effect at all without physical intervention — which is a
286
+ * refusal at creation time, not a state to wait in.
287
+ *
288
+ * Nor should ACTIVE be inferred from the hub reporting a link exists. A hub can
289
+ * report a link as present, unpending and healthy while the devices ignore it
290
+ * entirely; only behaviour distinguishes the two.
291
+ *
292
+ * @generated from enum kusinta.iot.link.v1.LinkState
293
+ */
294
+ export enum LinkState {
295
+ /**
296
+ * @generated from enum value: LINK_STATE_UNSPECIFIED = 0;
297
+ */
298
+ UNSPECIFIED = 0,
299
+
300
+ /**
301
+ * carrying
302
+ *
303
+ * @generated from enum value: LINK_STATE_ACTIVE = 1;
304
+ */
305
+ ACTIVE = 1,
306
+
307
+ /**
308
+ * the sender is unreachable, gone, or the set is incomplete
309
+ *
310
+ * @generated from enum value: LINK_STATE_BROKEN = 2;
311
+ */
312
+ BROKEN = 2,
313
+
314
+ /**
315
+ * the hub and our records disagree, or the hub cannot say
316
+ *
317
+ * @generated from enum value: LINK_STATE_UNKNOWN = 3;
318
+ */
319
+ UNKNOWN = 3,
320
+ }
321
+
322
+ /**
323
+ * Describes the enum kusinta.iot.link.v1.LinkState.
324
+ */
325
+ export declare const LinkStateSchema: GenEnum<LinkState>;
326
+
@@ -0,0 +1,107 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/link/v1/link.proto (package kusinta.iot.link.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
6
+ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
+ import { file_kusinta_iot_access_v1_acl } from "../../access/v1/acl_pb.js";
8
+ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
9
+
10
+ /**
11
+ * Describes the file kusinta/iot/link/v1/link.proto.
12
+ */
13
+ export const file_kusinta_iot_link_v1_link = /*@__PURE__*/
14
+ fileDesc("Ch5rdXNpbnRhL2lvdC9saW5rL3YxL2xpbmsucHJvdG8SE2t1c2ludGEuaW90LmxpbmsudjEi4gIKCkRldmljZUxpbmsSDwoHbGlua19pZBgBIAEoCRIxCgZzZW5kZXIYAiABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCghyZWNlaXZlchgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjMKCGZ1bmN0aW9uGAQgASgOMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rRnVuY3Rpb24SKwoEbW9kZRgFIAEoDjIdLmt1c2ludGEuaW90LmxpbmsudjEuTGlua01vZGUSLQoFc3RhdGUYBiABKA4yHi5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtTdGF0ZRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxzdGF0ZV9kZXRhaWwYCCABKAlKBAgUEB4i+wEKDkxpbmtDYXBhYmlsaXR5EjMKCGZ1bmN0aW9uGAEgASgOMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rRnVuY3Rpb24SNQoJZGlyZWN0aW9uGAIgASgOMiIua3VzaW50YS5pb3QubGluay52MS5MaW5rRGlyZWN0aW9uEjYKD3N1cHBvcnRlZF9tb2RlcxgDIAMoDjIdLmt1c2ludGEuaW90LmxpbmsudjEuTGlua01vZGUSNgoJYXR0cmlidXRlGAQgASgLMiMua3VzaW50YS5pb3QuYWNjZXNzLnYxLkF0dHJpYnV0ZVJlZhINCgVsYWJlbBgFIAEoCSJACg5EZXZpY2VMaW5rTGlzdBIuCgVsaW5rcxgBIAMoCzIfLmt1c2ludGEuaW90LmxpbmsudjEuRGV2aWNlTGluayqPAQoMTGlua0Z1bmN0aW9uEh0KGUxJTktfRlVOQ1RJT05fVU5TUEVDSUZJRUQQABIeChpMSU5LX0ZVTkNUSU9OX0NMSU1BVEVfTEVBRBABEh4KGkxJTktfRlVOQ1RJT05fV0lORE9XX1NUQVRFEAISIAocTElOS19GVU5DVElPTl9SRU1PVEVfQ09OVFJPTBADKmUKDUxpbmtEaXJlY3Rpb24SHgoaTElOS19ESVJFQ1RJT05fVU5TUEVDSUZJRUQQABIZChVMSU5LX0RJUkVDVElPTl9TT1VSQ0UQARIZChVMSU5LX0RJUkVDVElPTl9UQVJHRVQQAipNCghMaW5rTW9kZRIZChVMSU5LX01PREVfVU5TUEVDSUZJRUQQABISCg5MSU5LX01PREVfSEFSRBABEhIKDkxJTktfTU9ERV9TT0ZUEAIqbQoJTGlua1N0YXRlEhoKFkxJTktfU1RBVEVfVU5TUEVDSUZJRUQQABIVChFMSU5LX1NUQVRFX0FDVElWRRABEhUKEUxJTktfU1RBVEVfQlJPS0VOEAISFgoSTElOS19TVEFURV9VTktOT1dOEANCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_acl, file_kusinta_iot_identity_v1_identity]);
15
+
16
+ /**
17
+ * Describes the message kusinta.iot.link.v1.DeviceLink.
18
+ * Use `create(DeviceLinkSchema)` to create a new message.
19
+ */
20
+ export const DeviceLinkSchema = /*@__PURE__*/
21
+ messageDesc(file_kusinta_iot_link_v1_link, 0);
22
+
23
+ /**
24
+ * Describes the message kusinta.iot.link.v1.LinkCapability.
25
+ * Use `create(LinkCapabilitySchema)` to create a new message.
26
+ */
27
+ export const LinkCapabilitySchema = /*@__PURE__*/
28
+ messageDesc(file_kusinta_iot_link_v1_link, 1);
29
+
30
+ /**
31
+ * Describes the message kusinta.iot.link.v1.DeviceLinkList.
32
+ * Use `create(DeviceLinkListSchema)` to create a new message.
33
+ */
34
+ export const DeviceLinkListSchema = /*@__PURE__*/
35
+ messageDesc(file_kusinta_iot_link_v1_link, 2);
36
+
37
+ /**
38
+ * Describes the enum kusinta.iot.link.v1.LinkFunction.
39
+ */
40
+ export const LinkFunctionSchema = /*@__PURE__*/
41
+ enumDesc(file_kusinta_iot_link_v1_link, 0);
42
+
43
+ /**
44
+ * What a link makes the sender do to the receiver.
45
+ *
46
+ * A function, not a cluster id, because the two ends do not necessarily speak the
47
+ * same cluster: a wall thermostat reports its temperature as Thermostat
48
+ * LocalTemperature while a bare sensor reports the same quantity as Temperature
49
+ * Measurement MeasuredValue. Each end states its own attribute in its
50
+ * LinkCapability; the function is what says the two belong together.
51
+ *
52
+ * @generated from enum kusinta.iot.link.v1.LinkFunction
53
+ */
54
+ export const LinkFunction = /*@__PURE__*/
55
+ tsEnum(LinkFunctionSchema);
56
+
57
+ /**
58
+ * Describes the enum kusinta.iot.link.v1.LinkDirection.
59
+ */
60
+ export const LinkDirectionSchema = /*@__PURE__*/
61
+ enumDesc(file_kusinta_iot_link_v1_link, 1);
62
+
63
+ /**
64
+ * Which end of a link a device can be.
65
+ *
66
+ * @generated from enum kusinta.iot.link.v1.LinkDirection
67
+ */
68
+ export const LinkDirection = /*@__PURE__*/
69
+ tsEnum(LinkDirectionSchema);
70
+
71
+ /**
72
+ * Describes the enum kusinta.iot.link.v1.LinkMode.
73
+ */
74
+ export const LinkModeSchema = /*@__PURE__*/
75
+ enumDesc(file_kusinta_iot_link_v1_link, 2);
76
+
77
+ /**
78
+ * How a link is carried.
79
+ *
80
+ * @generated from enum kusinta.iot.link.v1.LinkMode
81
+ */
82
+ export const LinkMode = /*@__PURE__*/
83
+ tsEnum(LinkModeSchema);
84
+
85
+ /**
86
+ * Describes the enum kusinta.iot.link.v1.LinkState.
87
+ */
88
+ export const LinkStateSchema = /*@__PURE__*/
89
+ enumDesc(file_kusinta_iot_link_v1_link, 3);
90
+
91
+ /**
92
+ * Whether a link is doing anything.
93
+ *
94
+ * There is deliberately no "created but not yet in effect" state. On current
95
+ * device firmware a link takes effect immediately, and on firmware old enough not
96
+ * to, it never takes effect at all without physical intervention — which is a
97
+ * refusal at creation time, not a state to wait in.
98
+ *
99
+ * Nor should ACTIVE be inferred from the hub reporting a link exists. A hub can
100
+ * report a link as present, unpending and healthy while the devices ignore it
101
+ * entirely; only behaviour distinguishes the two.
102
+ *
103
+ * @generated from enum kusinta.iot.link.v1.LinkState
104
+ */
105
+ export const LinkState = /*@__PURE__*/
106
+ tsEnum(LinkStateSchema);
107
+