@kusinta/iot-schema 0.2.0-beta.2 → 0.2.0-beta.20

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 (52) hide show
  1. package/package.json +9 -1
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +121 -3
  3. package/src/kusinta/iot/access/v1/acl_pb.js +20 -3
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +102 -0
  5. package/src/kusinta/iot/access/v1/roles_pb.js +81 -1
  6. package/src/kusinta/iot/climate/v1/climate_pb.d.ts +726 -0
  7. package/src/kusinta/iot/climate/v1/climate_pb.js +142 -0
  8. package/src/kusinta/iot/common/v1/pairing_pb.d.ts +217 -0
  9. package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
  10. package/src/kusinta/iot/common/v1/types_pb.d.ts +34 -0
  11. package/src/kusinta/iot/common/v1/types_pb.js +22 -1
  12. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +476 -7
  13. package/src/kusinta/iot/connector/v1/connector_pb.js +70 -12
  14. package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +44 -0
  15. package/src/kusinta/iot/device/v1/cluster_state_pb.js +1 -1
  16. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +22 -2
  17. package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
  18. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +87 -5
  19. package/src/kusinta/iot/device/v1/device_event_pb.js +1 -1
  20. package/src/kusinta/iot/device/v1/device_pb.d.ts +150 -6
  21. package/src/kusinta/iot/device/v1/device_pb.js +33 -2
  22. package/src/kusinta/iot/device/v1/matter_options_pb.d.ts +26 -0
  23. package/src/kusinta/iot/device/v1/matter_options_pb.js +31 -4
  24. package/src/kusinta/iot/device/v1/properties_pb.d.ts +14 -0
  25. package/src/kusinta/iot/device/v1/properties_pb.js +1 -1
  26. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +3 -2
  27. package/src/kusinta/iot/link/v1/link_pb.d.ts +438 -0
  28. package/src/kusinta/iot/link/v1/link_pb.js +121 -0
  29. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +177 -4
  30. package/src/kusinta/iot/signaling/v1/signaling_pb.js +29 -1
  31. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +24 -1
  32. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +1 -1
  33. package/src/kusinta/iot/space/v1/space_pb.d.ts +72 -2
  34. package/src/kusinta/iot/space/v1/space_pb.js +9 -1
  35. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +162 -13
  36. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +8 -1
  37. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.d.ts +69 -0
  38. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js +19 -0
  39. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +25 -4
  40. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +28 -6
  41. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +18 -3
  42. package/src/kusinta/iot/webrtc/v1/command_pb.js +2 -1
  43. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +170 -5
  44. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +34 -6
  45. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +448 -3
  46. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +63 -3
  47. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +775 -12
  48. package/src/kusinta/iot/webrtc/v1/management_pb.js +123 -5
  49. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +34 -4
  50. package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +2 -2
  51. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.d.ts +63 -0
  52. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.js +45 -0
@@ -2,18 +2,19 @@
2
2
  // @generated from file kusinta/iot/device/v1/device.proto (package kusinta.iot.device.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
5
- import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
5
+ import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
6
6
  import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
7
  import { file_kusinta_iot_device_v1_cluster_state } from "./cluster_state_pb.js";
8
8
  import { file_kusinta_iot_device_v1_descriptor } from "./descriptor_pb.js";
9
9
  import { file_kusinta_iot_device_v1_properties } from "./properties_pb.js";
10
10
  import { file_kusinta_iot_vendor_homematic_v1_homematic } from "../../vendor/homematic/v1/homematic_pb.js";
11
+ import { file_kusinta_iot_vendor_v1_vendor_options } from "../../vendor/v1/vendor_options_pb.js";
11
12
 
12
13
  /**
13
14
  * Describes the file kusinta/iot/device/v1/device.proto.
14
15
  */
15
16
  export const file_kusinta_iot_device_v1_device = /*@__PURE__*/
16
- fileDesc("CiJrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGV2aWNlLnByb3RvEhVrdXNpbnRhLmlvdC5kZXZpY2UudjEirgkKCEVuZHBvaW50EhMKC2VuZHBvaW50X2lkGAEgASgNEh0KFW1hdHRlcl9kZXZpY2VfdHlwZV9pZBgCIAEoDRJBCgp0aGVybW9zdGF0GAMgASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRoZXJtb3N0YXRQcm9wZXJ0aWVzSAASUAoSdGVtcGVyYXR1cmVfc2Vuc29yGAQgASgLMjIua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRlbXBlcmF0dXJlU2Vuc29yUHJvcGVydGllc0gAEkoKD2h1bWlkaXR5X3NlbnNvchgFIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5IdW1pZGl0eVNlbnNvclByb3BlcnRpZXNIABJMChBvY2N1cGFuY3lfc2Vuc29yGAYgASgLMjAua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9jY3VwYW5jeVNlbnNvclByb3BlcnRpZXNIABJICg5jb250YWN0X3NlbnNvchgHIAEoCzIuLmt1c2ludGEuaW90LmRldmljZS52MS5Db250YWN0U2Vuc29yUHJvcGVydGllc0gAEkoKD3dpbmRvd19jb3ZlcmluZxgIIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5XaW5kb3dDb3ZlcmluZ1Byb3BlcnRpZXNIABI+Cglkb29yX2xvY2sYCSABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRG9vckxvY2tQcm9wZXJ0aWVzSAASQwoMb25fb2ZmX2xpZ2h0GAogASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9uT2ZmTGlnaHRQcm9wZXJ0aWVzSAASSAoOZGltbWFibGVfbGlnaHQYCyABKAsyLi5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGltbWFibGVMaWdodFByb3BlcnRpZXNIABJSChBjb2xvcl90ZW1wX2xpZ2h0GAwgASgLMjYua3VzaW50YS5pb3QuZGV2aWNlLnYxLkNvbG9yVGVtcGVyYXR1cmVMaWdodFByb3BlcnRpZXNIABJGCg1lbmVyZ3lfc2Vuc29yGA0gASgLMi0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkVuZXJneVNlbnNvclByb3BlcnRpZXNIABJKCg9wcmVzc3VyZV9zZW5zb3IYDiABKAsyLy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUHJlc3N1cmVTZW5zb3JQcm9wZXJ0aWVzSAASRAoMcG93ZXJfc291cmNlGA8gASgLMiwua3VzaW50YS5pb3QuZGV2aWNlLnYxLlBvd2VyU291cmNlUHJvcGVydGllc0gAEksKDWhtX3RoZXJtb3N0YXQYMiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtVGhlcm1vc3RhdFByb3BzSAESNQoIY2x1c3RlcnMYECADKAsyIy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuQ2x1c3RlclN0YXRlQhMKEW1hdHRlcl9wcm9wZXJ0aWVzQhMKEXZlbmRvcl9wcm9wZXJ0aWVzIrADCgZEZXZpY2USOwoKZGVzY3JpcHRvchgBIAEoCzInLmt1c2ludGEuaW90LmRldmljZS52MS5EZXZpY2VEZXNjcmlwdG9yEjIKCWVuZHBvaW50cxgOIAMoCzIfLmt1c2ludGEuaW90LmRldmljZS52MS5FbmRwb2ludBItCglsYXN0X3NlZW4YFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGxhc3RfdXBkYXRlZBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgCEA5KBAgyEDNSCnRoZXJtb3N0YXRSEnRlbXBlcmF0dXJlX3NlbnNvclIPaHVtaWRpdHlfc2Vuc29yUhBvY2N1cGFuY3lfc2Vuc29yUg5jb250YWN0X3NlbnNvclIPd2luZG93X2NvdmVyaW5nUglkb29yX2xvY2tSDG9uX29mZl9saWdodFIOZGltbWFibGVfbGlnaHRSEGNvbG9yX3RlbXBfbGlnaHRSDWVuZXJneV9zZW5zb3JSD3ByZXNzdXJlX3NlbnNvclIJaG9tZW1hdGljQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_device_v1_descriptor, file_kusinta_iot_device_v1_properties, file_kusinta_iot_vendor_homematic_v1_homematic]);
17
+ fileDesc("CiJrdXNpbnRhL2lvdC9kZXZpY2UvdjEvZGV2aWNlLnByb3RvEhVrdXNpbnRhLmlvdC5kZXZpY2UudjEi0woKCEVuZHBvaW50EhMKC2VuZHBvaW50X2lkGAEgASgNEh0KFW1hdHRlcl9kZXZpY2VfdHlwZV9pZBgCIAEoDRJBCgp0aGVybW9zdGF0GAMgASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRoZXJtb3N0YXRQcm9wZXJ0aWVzSAASUAoSdGVtcGVyYXR1cmVfc2Vuc29yGAQgASgLMjIua3VzaW50YS5pb3QuZGV2aWNlLnYxLlRlbXBlcmF0dXJlU2Vuc29yUHJvcGVydGllc0gAEkoKD2h1bWlkaXR5X3NlbnNvchgFIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5IdW1pZGl0eVNlbnNvclByb3BlcnRpZXNIABJMChBvY2N1cGFuY3lfc2Vuc29yGAYgASgLMjAua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9jY3VwYW5jeVNlbnNvclByb3BlcnRpZXNIABJICg5jb250YWN0X3NlbnNvchgHIAEoCzIuLmt1c2ludGEuaW90LmRldmljZS52MS5Db250YWN0U2Vuc29yUHJvcGVydGllc0gAEkoKD3dpbmRvd19jb3ZlcmluZxgIIAEoCzIvLmt1c2ludGEuaW90LmRldmljZS52MS5XaW5kb3dDb3ZlcmluZ1Byb3BlcnRpZXNIABI+Cglkb29yX2xvY2sYCSABKAsyKS5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRG9vckxvY2tQcm9wZXJ0aWVzSAASQwoMb25fb2ZmX2xpZ2h0GAogASgLMisua3VzaW50YS5pb3QuZGV2aWNlLnYxLk9uT2ZmTGlnaHRQcm9wZXJ0aWVzSAASSAoOZGltbWFibGVfbGlnaHQYCyABKAsyLi5rdXNpbnRhLmlvdC5kZXZpY2UudjEuRGltbWFibGVMaWdodFByb3BlcnRpZXNIABJSChBjb2xvcl90ZW1wX2xpZ2h0GAwgASgLMjYua3VzaW50YS5pb3QuZGV2aWNlLnYxLkNvbG9yVGVtcGVyYXR1cmVMaWdodFByb3BlcnRpZXNIABJGCg1lbmVyZ3lfc2Vuc29yGA0gASgLMi0ua3VzaW50YS5pb3QuZGV2aWNlLnYxLkVuZXJneVNlbnNvclByb3BlcnRpZXNIABJKCg9wcmVzc3VyZV9zZW5zb3IYDiABKAsyLy5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUHJlc3N1cmVTZW5zb3JQcm9wZXJ0aWVzSAASRAoMcG93ZXJfc291cmNlGA8gASgLMiwua3VzaW50YS5pb3QuZGV2aWNlLnYxLlBvd2VyU291cmNlUHJvcGVydGllc0gAEksKDWhtX3RoZXJtb3N0YXQYMiABKAsyMi5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtVGhlcm1vc3RhdFByb3BzSAESTQoOaG1fbWFpbnRlbmFuY2UYMyABKAsyMy5rdXNpbnRhLmlvdC52ZW5kb3IuaG9tZW1hdGljLnYxLkhtTWFpbnRlbmFuY2VQcm9wc0gBEjQKCnJhZGlvX2xpbmsYNCABKAsyIC5rdXNpbnRhLmlvdC5kZXZpY2UudjEuUmFkaW9MaW5rEjUKCGNsdXN0ZXJzGBAgAygLMiMua3VzaW50YS5pb3QuZGV2aWNlLnYxLkNsdXN0ZXJTdGF0ZRIeChZ2ZW5kb3JfYXR0cmlidXRlX25hbWVzGBEgAygJQhMKEW1hdHRlcl9wcm9wZXJ0aWVzQhMKEXZlbmRvcl9wcm9wZXJ0aWVzIrADCgZEZXZpY2USOwoKZGVzY3JpcHRvchgBIAEoCzInLmt1c2ludGEuaW90LmRldmljZS52MS5EZXZpY2VEZXNjcmlwdG9yEjIKCWVuZHBvaW50cxgOIAMoCzIfLmt1c2ludGEuaW90LmRldmljZS52MS5FbmRwb2ludBItCglsYXN0X3NlZW4YFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGxhc3RfdXBkYXRlZBgVIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBKBAgCEA5KBAgyEDNSCnRoZXJtb3N0YXRSEnRlbXBlcmF0dXJlX3NlbnNvclIPaHVtaWRpdHlfc2Vuc29yUhBvY2N1cGFuY3lfc2Vuc29yUg5jb250YWN0X3NlbnNvclIPd2luZG93X2NvdmVyaW5nUglkb29yX2xvY2tSDG9uX29mZl9saWdodFIOZGltbWFibGVfbGlnaHRSEGNvbG9yX3RlbXBfbGlnaHRSDWVuZXJneV9zZW5zb3JSD3ByZXNzdXJlX3NlbnNvclIJaG9tZW1hdGljIrcBCglSYWRpb0xpbmsSJQoHcXVhbGl0eRgBIAEoDUIPorUYB3F1YWxpdHnQtRgFSACIAQESJwoIcnNzaV9kYm0YAiABKBFCEKK1GAhyc3NpX2RibdC1GAVIAYgBARIjCgZzbnJfZGIYAyABKAJCDqK1GAZzbnJfZGLQtRgFSAKIAQE6Eaq1GA1rdXNpbnRhLnJhZGlvQgoKCF9xdWFsaXR5QgsKCV9yc3NpX2RibUIJCgdfc25yX2RiKnUKDFJhZGlvUXVhbGl0eRIdChlSQURJT19RVUFMSVRZX1VOU1BFQ0lGSUVEEAASFgoSUkFESU9fUVVBTElUWV9HT09EEAESFgoSUkFESU9fUVVBTElUWV9GQUlSEAISFgoSUkFESU9fUVVBTElUWV9QT09SEANCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_device_v1_cluster_state, file_kusinta_iot_device_v1_descriptor, file_kusinta_iot_device_v1_properties, file_kusinta_iot_vendor_homematic_v1_homematic, file_kusinta_iot_vendor_v1_vendor_options]);
17
18
 
18
19
  /**
19
20
  * Describes the message kusinta.iot.device.v1.Endpoint.
@@ -29,3 +30,33 @@ export const EndpointSchema = /*@__PURE__*/
29
30
  export const DeviceSchema = /*@__PURE__*/
30
31
  messageDesc(file_kusinta_iot_device_v1_device, 1);
31
32
 
33
+ /**
34
+ * Describes the message kusinta.iot.device.v1.RadioLink.
35
+ * Use `create(RadioLinkSchema)` to create a new message.
36
+ */
37
+ export const RadioLinkSchema = /*@__PURE__*/
38
+ messageDesc(file_kusinta_iot_device_v1_device, 2);
39
+
40
+ /**
41
+ * Describes the enum kusinta.iot.device.v1.RadioQuality.
42
+ */
43
+ export const RadioQualitySchema = /*@__PURE__*/
44
+ enumDesc(file_kusinta_iot_device_v1_device, 0);
45
+
46
+ /**
47
+ * The value set of RadioLink.quality: how well a link is doing, as the device's
48
+ * connector rates it. Not a field type — quality is a uint32 like every enum-valued
49
+ * reading, so it keeps explicit presence — but the named constants for its numbers.
50
+ * Defined here, unlike the HomeMatic enum parameters, because this vocabulary is the
51
+ * schema's own rather than an upstream system's.
52
+ *
53
+ * The rating is radio-specific and made by the connector that reaches the device, from
54
+ * whatever its technology measures; the thresholds behind it are not part of this
55
+ * contract and may differ between technologies. A consumer shows the rating, and treats
56
+ * the raw readings as detail.
57
+ *
58
+ * @generated from enum kusinta.iot.device.v1.RadioQuality
59
+ */
60
+ export const RadioQuality = /*@__PURE__*/
61
+ tsEnum(RadioQualitySchema);
62
+
@@ -46,6 +46,32 @@ export declare const matter_attribute: GenExtension<FieldOptions, string>;
46
46
  */
47
47
  export declare const matter_attribute_id: GenExtension<FieldOptions, number>;
48
48
 
49
+ /**
50
+ * What the Matter specification says this attribute supports, as a bitmask:
51
+ * READ = 1, WRITE = 2, REPORT = 4. So a read-only reportable attribute is 5, a
52
+ * writable one 7, a write-only one 2.
53
+ *
54
+ * Two things this is NOT.
55
+ *
56
+ * It is not PERMISSION. access/v1/acl.proto's PermissionAction and allowed_actions
57
+ * say what a given user may do; this says what the attribute is capable of. They are
58
+ * orthogonal — a user can hold WRITE on an attribute no device will ever accept a
59
+ * write for, and the schema would be lying if either could be read off the other.
60
+ *
61
+ * It is not the IMPLEMENTED SET either. This is uniform for every device that reports
62
+ * the attribute, because it comes from the specification. Whether one particular
63
+ * device implements it at all is a runtime fact, carried per endpoint by
64
+ * ClusterState.attribute_ids — Matter's own AttributeList. A device may implement
65
+ * less than the specification allows; it may not implement more.
66
+ *
67
+ * Bit 4 is Matter's subscribable/reportable quality. Named REPORT rather than EVENT
68
+ * because Matter spends "event" on a separate concept; the vendor branch's
69
+ * equivalent bit means the same thing under its own name.
70
+ *
71
+ * @generated from extension: uint32 matter_attribute_capabilities = 50009;
72
+ */
73
+ export declare const matter_attribute_capabilities: GenExtension<FieldOptions, number>;
74
+
49
75
  /**
50
76
  * The Matter device type IDs this properties message models, e.g. 0x0301 for
51
77
  * Thermostat. Repeated because one shape of properties can serve several device
@@ -9,7 +9,7 @@ import { file_google_protobuf_descriptor } from "@bufbuild/protobuf/wkt";
9
9
  * Describes the file kusinta/iot/device/v1/matter_options.proto.
10
10
  */
11
11
  export const file_kusinta_iot_device_v1_matter_options = /*@__PURE__*/
12
- fileDesc("CiprdXNpbnRhL2lvdC9kZXZpY2UvdjEvbWF0dGVyX29wdGlvbnMucHJvdG8SFWt1c2ludGEuaW90LmRldmljZS52MTpLChFtYXR0ZXJfY2x1c3Rlcl9pZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY0YYDIAEoDVIPbWF0dGVyQ2x1c3RlcklkOkoKEG1hdHRlcl9hdHRyaWJ1dGUSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGNKGAyABKAlSD21hdHRlckF0dHJpYnV0ZTpPChNtYXR0ZXJfYXR0cmlidXRlX2lkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjWhgMgASgNUhFtYXR0ZXJBdHRyaWJ1dGVJZDpPChJtYXR0ZXJfZGV2aWNlX3R5cGUSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY04YDIAMoDVIQbWF0dGVyRGV2aWNlVHlwZTpXChZtYXR0ZXJfY29tbWFuZF9jbHVzdGVyEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNeGAyABKA1SFG1hdHRlckNvbW1hbmRDbHVzdGVyOlAKEW1hdHRlcl9jb21tYW5kX2lkEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNiGAyABKA1SD21hdHRlckNvbW1hbmRJZIgBAUICSAFiBnByb3RvMw", [file_google_protobuf_descriptor]);
12
+ fileDesc("CiprdXNpbnRhL2lvdC9kZXZpY2UvdjEvbWF0dGVyX29wdGlvbnMucHJvdG8SFWt1c2ludGEuaW90LmRldmljZS52MTpLChFtYXR0ZXJfY2x1c3Rlcl9pZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY0YYDIAEoDVIPbWF0dGVyQ2x1c3RlcklkOkoKEG1hdHRlcl9hdHRyaWJ1dGUSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGNKGAyABKAlSD21hdHRlckF0dHJpYnV0ZTpPChNtYXR0ZXJfYXR0cmlidXRlX2lkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjWhgMgASgNUhFtYXR0ZXJBdHRyaWJ1dGVJZDpjCh1tYXR0ZXJfYXR0cmlidXRlX2NhcGFiaWxpdGllcxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY2YYDIAEoDVIbbWF0dGVyQXR0cmlidXRlQ2FwYWJpbGl0aWVzOk8KEm1hdHRlcl9kZXZpY2VfdHlwZRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjThgMgAygNUhBtYXR0ZXJEZXZpY2VUeXBlOlcKFm1hdHRlcl9jb21tYW5kX2NsdXN0ZXISHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY14YDIAEoDVIUbWF0dGVyQ29tbWFuZENsdXN0ZXI6UAoRbWF0dGVyX2NvbW1hbmRfaWQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY2IYDIAEoDVIPbWF0dGVyQ29tbWFuZElkiAEBQgJIAWIGcHJvdG8z", [file_google_protobuf_descriptor]);
13
13
 
14
14
  /**
15
15
  * The Matter cluster this attribute belongs to, e.g. 0x0201 for Thermostat.
@@ -50,6 +50,33 @@ export const matter_attribute = /*@__PURE__*/
50
50
  export const matter_attribute_id = /*@__PURE__*/
51
51
  extDesc(file_kusinta_iot_device_v1_matter_options, 2);
52
52
 
53
+ /**
54
+ * What the Matter specification says this attribute supports, as a bitmask:
55
+ * READ = 1, WRITE = 2, REPORT = 4. So a read-only reportable attribute is 5, a
56
+ * writable one 7, a write-only one 2.
57
+ *
58
+ * Two things this is NOT.
59
+ *
60
+ * It is not PERMISSION. access/v1/acl.proto's PermissionAction and allowed_actions
61
+ * say what a given user may do; this says what the attribute is capable of. They are
62
+ * orthogonal — a user can hold WRITE on an attribute no device will ever accept a
63
+ * write for, and the schema would be lying if either could be read off the other.
64
+ *
65
+ * It is not the IMPLEMENTED SET either. This is uniform for every device that reports
66
+ * the attribute, because it comes from the specification. Whether one particular
67
+ * device implements it at all is a runtime fact, carried per endpoint by
68
+ * ClusterState.attribute_ids — Matter's own AttributeList. A device may implement
69
+ * less than the specification allows; it may not implement more.
70
+ *
71
+ * Bit 4 is Matter's subscribable/reportable quality. Named REPORT rather than EVENT
72
+ * because Matter spends "event" on a separate concept; the vendor branch's
73
+ * equivalent bit means the same thing under its own name.
74
+ *
75
+ * @generated from extension: uint32 matter_attribute_capabilities = 50009;
76
+ */
77
+ export const matter_attribute_capabilities = /*@__PURE__*/
78
+ extDesc(file_kusinta_iot_device_v1_matter_options, 3);
79
+
53
80
  /**
54
81
  * The Matter device type IDs this properties message models, e.g. 0x0301 for
55
82
  * Thermostat. Repeated because one shape of properties can serve several device
@@ -62,7 +89,7 @@ export const matter_attribute_id = /*@__PURE__*/
62
89
  * @generated from extension: repeated uint32 matter_device_type = 50003;
63
90
  */
64
91
  export const matter_device_type = /*@__PURE__*/
65
- extDesc(file_kusinta_iot_device_v1_matter_options, 3);
92
+ extDesc(file_kusinta_iot_device_v1_matter_options, 4);
66
93
 
67
94
  /**
68
95
  * The Matter cluster a command-parameters message belongs to, e.g. 0x0006 for On/Off.
@@ -71,7 +98,7 @@ export const matter_device_type = /*@__PURE__*/
71
98
  * @generated from extension: uint32 matter_command_cluster = 50007;
72
99
  */
73
100
  export const matter_command_cluster = /*@__PURE__*/
74
- extDesc(file_kusinta_iot_device_v1_matter_options, 4);
101
+ extDesc(file_kusinta_iot_device_v1_matter_options, 5);
75
102
 
76
103
  /**
77
104
  * The Matter command ID this parameters message carries arguments for, e.g. 0x00 for
@@ -87,5 +114,5 @@ export const matter_command_cluster = /*@__PURE__*/
87
114
  * @generated from extension: optional uint32 matter_command_id = 50008;
88
115
  */
89
116
  export const matter_command_id = /*@__PURE__*/
90
- extDesc(file_kusinta_iot_device_v1_matter_options, 5);
117
+ extDesc(file_kusinta_iot_device_v1_matter_options, 6);
91
118
 
@@ -71,6 +71,16 @@ export declare type ThermostatProperties = Message<"kusinta.iot.device.v1.Thermo
71
71
  * @generated from field: optional uint32 thermostat_running_mode = 10;
72
72
  */
73
73
  thermostatRunningMode?: number | undefined;
74
+
75
+ /**
76
+ * Heating demanded by the control loop, 0-100 %, which is the percentage the valve is
77
+ * open. A radiator valve's own position belongs here and not in a vendor extension: the
78
+ * Matter attribute is specified as exactly this quantity. A thermostat that drives no
79
+ * valve of its own does not implement it — see ClusterState.attribute_ids.
80
+ *
81
+ * @generated from field: optional uint32 pi_heating_demand = 11;
82
+ */
83
+ piHeatingDemand?: number | undefined;
74
84
  };
75
85
 
76
86
  /**
@@ -389,6 +399,10 @@ export declare type DimmableLightProperties = Message<"kusinta.iot.device.v1.Dim
389
399
  startUpCurrentLevel?: number | undefined;
390
400
 
391
401
  /**
402
+ * READ only: the Matter data model marks RemainingTime changes-omitted, so it is
403
+ * readable but never reported — it counts down continuously and reporting it would be
404
+ * a subscription storm.
405
+ *
392
406
  * @generated from field: optional uint32 remaining_time = 7;
393
407
  */
394
408
  remainingTime?: number | undefined;
@@ -9,7 +9,7 @@ import { file_kusinta_iot_device_v1_matter_options } from "./matter_options_pb.j
9
9
  * Describes the file kusinta/iot/device/v1/properties.proto.
10
10
  */
11
11
  export const file_kusinta_iot_device_v1_properties = /*@__PURE__*/
12
- fileDesc("CiZrdXNpbnRhL2lvdC9kZXZpY2UvdjEvcHJvcGVydGllcy5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIv8HChRUaGVybW9zdGF0UHJvcGVydGllcxI9ChFsb2NhbF90ZW1wZXJhdHVyZRgBIAEoEUIdiLUYgQSStRgQTG9jYWxUZW1wZXJhdHVyZbC1GABIAIgBARJMChlvY2N1cGllZF9oZWF0aW5nX3NldHBvaW50GAIgASgRQiSItRiBBJK1GBdPY2N1cGllZEhlYXRpbmdTZXRwb2ludLC1GBJIAYgBARJMChlvY2N1cGllZF9jb29saW5nX3NldHBvaW50GAMgASgRQiSItRiBBJK1GBdPY2N1cGllZENvb2xpbmdTZXRwb2ludLC1GBFIAogBARJHChdtaW5faGVhdF9zZXRwb2ludF9saW1pdBgEIAEoEUIhiLUYgQSStRgUTWluSGVhdFNldHBvaW50TGltaXSwtRgVSAOIAQESRwoXbWF4X2hlYXRfc2V0cG9pbnRfbGltaXQYBSABKBFCIYi1GIEEkrUYFE1heEhlYXRTZXRwb2ludExpbWl0sLUYFkgEiAEBEkcKF21pbl9jb29sX3NldHBvaW50X2xpbWl0GAYgASgRQiGItRiBBJK1GBRNaW5Db29sU2V0cG9pbnRMaW1pdLC1GBdIBYgBARJHChdtYXhfY29vbF9zZXRwb2ludF9saW1pdBgHIAEoEUIhiLUYgQSStRgUTWF4Q29vbFNldHBvaW50TGltaXSwtRgYSAaIAQESUwodY29udHJvbF9zZXF1ZW5jZV9vZl9vcGVyYXRpb24YCCABKA1CJ4i1GIEEkrUYGkNvbnRyb2xTZXF1ZW5jZU9mT3BlcmF0aW9usLUYG0gHiAEBEjEKC3N5c3RlbV9tb2RlGAkgASgNQheItRiBBJK1GApTeXN0ZW1Nb2RlsLUYHEgIiAEBEkgKF3RoZXJtb3N0YXRfcnVubmluZ19tb2RlGAogASgNQiKItRiBBJK1GBVUaGVybW9zdGF0UnVubmluZ01vZGWwtRgeSAmIAQE6Bpq1GAKBBkIUChJfbG9jYWxfdGVtcGVyYXR1cmVCHAoaX29jY3VwaWVkX2hlYXRpbmdfc2V0cG9pbnRCHAoaX29jY3VwaWVkX2Nvb2xpbmdfc2V0cG9pbnRCGgoYX21pbl9oZWF0X3NldHBvaW50X2xpbWl0QhoKGF9tYXhfaGVhdF9zZXRwb2ludF9saW1pdEIaChhfbWluX2Nvb2xfc2V0cG9pbnRfbGltaXRCGgoYX21heF9jb29sX3NldHBvaW50X2xpbWl0QiAKHl9jb250cm9sX3NlcXVlbmNlX29mX29wZXJhdGlvbkIOCgxfc3lzdGVtX21vZGVCGgoYX3RoZXJtb3N0YXRfcnVubmluZ19tb2RlIt0CChtUZW1wZXJhdHVyZVNlbnNvclByb3BlcnRpZXMSNwoObWVhc3VyZWRfdmFsdWUYASABKBFCGoi1GIIIkrUYDU1lYXN1cmVkVmFsdWWwtRgASACIAQESPgoSbWluX21lYXN1cmVkX3ZhbHVlGAIgASgRQh2ItRiCCJK1GBBNaW5NZWFzdXJlZFZhbHVlsLUYAUgBiAEBEj4KEm1heF9tZWFzdXJlZF92YWx1ZRgDIAEoEUIdiLUYggiStRgQTWF4TWVhc3VyZWRWYWx1ZbC1GAJIAogBARIuCgl0b2xlcmFuY2UYBCABKA1CFoi1GIIIkrUYCVRvbGVyYW5jZbC1GANIA4gBAToGmrUYAoIGQhEKD19tZWFzdXJlZF92YWx1ZUIVChNfbWluX21lYXN1cmVkX3ZhbHVlQhUKE19tYXhfbWVhc3VyZWRfdmFsdWVCDAoKX3RvbGVyYW5jZSLaAgoYSHVtaWRpdHlTZW5zb3JQcm9wZXJ0aWVzEjcKDm1lYXN1cmVkX3ZhbHVlGAEgASgNQhqItRiFCJK1GA1NZWFzdXJlZFZhbHVlsLUYAEgAiAEBEj4KEm1pbl9tZWFzdXJlZF92YWx1ZRgCIAEoDUIdiLUYhQiStRgQTWluTWVhc3VyZWRWYWx1ZbC1GAFIAYgBARI+ChJtYXhfbWVhc3VyZWRfdmFsdWUYAyABKA1CHYi1GIUIkrUYEE1heE1lYXN1cmVkVmFsdWWwtRgCSAKIAQESLgoJdG9sZXJhbmNlGAQgASgNQhaItRiFCJK1GAlUb2xlcmFuY2WwtRgDSAOIAQE6Bpq1GAKHBkIRCg9fbWVhc3VyZWRfdmFsdWVCFQoTX21pbl9tZWFzdXJlZF92YWx1ZUIVChNfbWF4X21lYXN1cmVkX3ZhbHVlQgwKCl90b2xlcmFuY2Ui4wQKGU9jY3VwYW5jeVNlbnNvclByb3BlcnRpZXMSLgoJb2NjdXBhbmN5GAEgASgNQhaItRiGCJK1GAlPY2N1cGFuY3mwtRgASACIAQESRAoVb2NjdXBhbmN5X3NlbnNvcl90eXBlGAIgASgNQiCItRiGCJK1GBNPY2N1cGFuY3lTZW5zb3JUeXBlsLUYAUgBiAEBElEKHG9jY3VwYW5jeV9zZW5zb3JfdHlwZV9iaXRtYXAYAyABKA1CJoi1GIYIkrUYGU9jY3VwYW5jeVNlbnNvclR5cGVCaXRtYXCwtRgCSAKIAQESWAogcGlyX29jY3VwaWVkX3RvX3Vub2NjdXBpZWRfZGVsYXkYBCABKA1CKYi1GIYIkrUYHFBJUk9jY3VwaWVkVG9Vbm9jY3VwaWVkRGVsYXmwtRgQSAOIAQESWAogcGlyX3Vub2NjdXBpZWRfdG9fb2NjdXBpZWRfZGVsYXkYBSABKA1CKYi1GIYIkrUYHFBJUlVub2NjdXBpZWRUb09jY3VwaWVkRGVsYXmwtRgRSASIAQE6Bpq1GAKHAkIMCgpfb2NjdXBhbmN5QhgKFl9vY2N1cGFuY3lfc2Vuc29yX3R5cGVCHwodX29jY3VwYW5jeV9zZW5zb3JfdHlwZV9iaXRtYXBCIwohX3Bpcl9vY2N1cGllZF90b191bm9jY3VwaWVkX2RlbGF5QiMKIV9waXJfdW5vY2N1cGllZF90b19vY2N1cGllZF9kZWxheVIWcGlyX29jY190b191bm9jY19kZWxheVIWcGlyX3Vub2NjX3RvX29jY19kZWxheSJiChdDb250YWN0U2Vuc29yUHJvcGVydGllcxIwCgtzdGF0ZV92YWx1ZRgBIAEoCEIWiLUYRZK1GApTdGF0ZVZhbHVlsLUYAEgAiAEBOgWatRgBFUIOCgxfc3RhdGVfdmFsdWUi2QYKGFdpbmRvd0NvdmVyaW5nUHJvcGVydGllcxItCg1jb3ZlcmluZ190eXBlGAEgASgNQhGItRiCApK1GARUeXBlsLUYAEgAiAEBEl8KI2N1cnJlbnRfcG9zaXRpb25fbGlmdF9wZXJjZW50MTAwdGhzGAIgASgNQi2ItRiCApK1GCBDdXJyZW50UG9zaXRpb25MaWZ0UGVyY2VudDEwMHRoc7C1GA5IAYgBARJfCiNjdXJyZW50X3Bvc2l0aW9uX3RpbHRfcGVyY2VudDEwMHRocxgDIAEoDUItiLUYggKStRggQ3VycmVudFBvc2l0aW9uVGlsdFBlcmNlbnQxMDB0aHOwtRgPSAKIAQESXQoidGFyZ2V0X3Bvc2l0aW9uX2xpZnRfcGVyY2VudDEwMHRocxgEIAEoDUIsiLUYggKStRgfVGFyZ2V0UG9zaXRpb25MaWZ0UGVyY2VudDEwMHRoc7C1GAtIA4gBARJdCiJ0YXJnZXRfcG9zaXRpb25fdGlsdF9wZXJjZW50MTAwdGhzGAUgASgNQiyItRiCApK1GB9UYXJnZXRQb3NpdGlvblRpbHRQZXJjZW50MTAwdGhzsLUYDEgEiAEBEj8KEm9wZXJhdGlvbmFsX3N0YXR1cxgGIAEoDUIeiLUYggKStRgRT3BlcmF0aW9uYWxTdGF0dXOwtRgKSAWIAQESOgoQZW5kX3Byb2R1Y3RfdHlwZRgHIAEoDUIbiLUYggKStRgORW5kUHJvZHVjdFR5cGWwtRgNSAaIAQESJAoEbW9kZRgIIAEoDUIRiLUYggKStRgETW9kZbC1GBdIB4gBAToGmrUYAoIEQhAKDl9jb3ZlcmluZ190eXBlQiYKJF9jdXJyZW50X3Bvc2l0aW9uX2xpZnRfcGVyY2VudDEwMHRoc0ImCiRfY3VycmVudF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHNCJQojX3RhcmdldF9wb3NpdGlvbl9saWZ0X3BlcmNlbnQxMDB0aHNCJQojX3RhcmdldF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHNCFQoTX29wZXJhdGlvbmFsX3N0YXR1c0ITChFfZW5kX3Byb2R1Y3RfdHlwZUIHCgVfbW9kZSL2AgoSRG9vckxvY2tQcm9wZXJ0aWVzEi8KCmxvY2tfc3RhdGUYASABKA1CFoi1GIECkrUYCUxvY2tTdGF0ZbC1GABIAIgBARItCglsb2NrX3R5cGUYAiABKA1CFYi1GIECkrUYCExvY2tUeXBlsLUYAUgBiAEBEjsKEGFjdHVhdG9yX2VuYWJsZWQYAyABKAhCHIi1GIECkrUYD0FjdHVhdG9yRW5hYmxlZLC1GAJIAogBARIvCgpkb29yX3N0YXRlGAQgASgNQhaItRiBApK1GAlEb29yU3RhdGWwtRgDSAOIAQESNwoOb3BlcmF0aW5nX21vZGUYBSABKA1CGoi1GIECkrUYDU9wZXJhdGluZ01vZGWwtRglSASIAQE6BZq1GAEKQg0KC19sb2NrX3N0YXRlQgwKCl9sb2NrX3R5cGVCEwoRX2FjdHVhdG9yX2VuYWJsZWRCDQoLX2Rvb3Jfc3RhdGVCEQoPX29wZXJhdGluZ19tb2RlIv4CChRPbk9mZkxpZ2h0UHJvcGVydGllcxImCgZvbl9vZmYYASABKAhCEYi1GAaStRgFT25PZmawtRgASACIAQESQwoUZ2xvYmFsX3NjZW5lX2NvbnRyb2wYAiABKAhCIIi1GAaStRgSR2xvYmFsU2NlbmVDb250cm9ssLUYgIABSAGIAQESKgoHb25fdGltZRgDIAEoDUIUiLUYBpK1GAZPblRpbWWwtRiBgAFIAogBARI1Cg1vZmZfd2FpdF90aW1lGAQgASgNQhmItRgGkrUYC09mZldhaXRUaW1lsLUYgoABSAOIAQESOAoPc3RhcnRfdXBfb25fb2ZmGAUgASgNQhqItRgGkrUYDFN0YXJ0VXBPbk9mZrC1GIOAAUgEiAEBOgaatRgCgAJCCQoHX29uX29mZkIXChVfZ2xvYmFsX3NjZW5lX2NvbnRyb2xCCgoIX29uX3RpbWVCEAoOX29mZl93YWl0X3RpbWVCEgoQX3N0YXJ0X3VwX29uX29mZiL7AwoXRGltbWFibGVMaWdodFByb3BlcnRpZXMSJgoGb25fb2ZmGAEgASgIQhGItRgGkrUYBU9uT2ZmsLUYAEgAiAEBEjQKDWN1cnJlbnRfbGV2ZWwYAiABKA1CGIi1GAiStRgMQ3VycmVudExldmVssLUYAEgBiAEBEiwKCW1pbl9sZXZlbBgDIAEoDUIUiLUYCJK1GAhNaW5MZXZlbLC1GAJIAogBARIsCgltYXhfbGV2ZWwYBCABKA1CFIi1GAiStRgITWF4TGV2ZWywtRgDSAOIAQESKgoIb25fbGV2ZWwYBSABKA1CE4i1GAiStRgHT25MZXZlbLC1GBFIBIgBARJGChZzdGFydF91cF9jdXJyZW50X2xldmVsGAYgASgNQiGItRgIkrUYE1N0YXJ0VXBDdXJyZW50TGV2ZWywtRiAgAFIBYgBARI2Cg5yZW1haW5pbmdfdGltZRgHIAEoDUIZiLUYCJK1GA1SZW1haW5pbmdUaW1lsLUYAUgGiAEBOgaatRgCgQJCCQoHX29uX29mZkIQCg5fY3VycmVudF9sZXZlbEIMCgpfbWluX2xldmVsQgwKCl9tYXhfbGV2ZWxCCwoJX29uX2xldmVsQhkKF19zdGFydF91cF9jdXJyZW50X2xldmVsQhEKD19yZW1haW5pbmdfdGltZSLFBQofQ29sb3JUZW1wZXJhdHVyZUxpZ2h0UHJvcGVydGllcxImCgZvbl9vZmYYASABKAhCEYi1GAaStRgFT25PZmawtRgASACIAQESNAoNY3VycmVudF9sZXZlbBgCIAEoDUIYiLUYCJK1GAxDdXJyZW50TGV2ZWywtRgASAGIAQESSgoYY29sb3JfdGVtcGVyYXR1cmVfbWlyZWRzGAMgASgNQiOItRiABpK1GBZDb2xvclRlbXBlcmF0dXJlTWlyZWRzsLUYB0gCiAEBElYKHmNvbG9yX3RlbXBfcGh5c2ljYWxfbWluX21pcmVkcxgEIAEoDUIpiLUYgAaStRgaQ29sb3JUZW1wUGh5c2ljYWxNaW5NaXJlZHOwtRiLgAFIA4gBARJWCh5jb2xvcl90ZW1wX3BoeXNpY2FsX21heF9taXJlZHMYBSABKA1CKYi1GIAGkrUYGkNvbG9yVGVtcFBoeXNpY2FsTWF4TWlyZWRzsLUYjIABSASIAQESWwogc3RhcnR1cF9jb2xvcl90ZW1wZXJhdHVyZV9taXJlZHMYBiABKA1CLIi1GIAGkrUYHVN0YXJ0VXBDb2xvclRlbXBlcmF0dXJlTWlyZWRzsLUYkIABSAWIAQESLwoKY29sb3JfbW9kZRgHIAEoDUIWiLUYgAaStRgJQ29sb3JNb2RlsLUYCEgGiAEBOgaatRgCjAJCCQoHX29uX29mZkIQCg5fY3VycmVudF9sZXZlbEIbChlfY29sb3JfdGVtcGVyYXR1cmVfbWlyZWRzQiEKH19jb2xvcl90ZW1wX3BoeXNpY2FsX21pbl9taXJlZHNCIQofX2NvbG9yX3RlbXBfcGh5c2ljYWxfbWF4X21pcmVkc0IjCiFfc3RhcnR1cF9jb2xvcl90ZW1wZXJhdHVyZV9taXJlZHNCDQoLX2NvbG9yX21vZGUi6AIKFkVuZXJneVNlbnNvclByb3BlcnRpZXMSMwoMYWN0aXZlX3Bvd2VyGAUgASgSQhiItRiQAZK1GAtBY3RpdmVQb3dlcrC1GAhIAIgBARIqCgd2b2x0YWdlGAYgASgSQhSItRiQAZK1GAdWb2x0YWdlsLUYBEgBiAEBEjcKDmFjdGl2ZV9jdXJyZW50GAcgASgSQhqItRiQAZK1GA1BY3RpdmVDdXJyZW50sLUYBUgCiAEBEi4KCWZyZXF1ZW5jeRgIIAEoEkIWiLUYkAGStRgJRnJlcXVlbmN5sLUYDkgDiAEBOgaatRgCkApCDwoNX2FjdGl2ZV9wb3dlckIKCghfdm9sdGFnZUIRCg9fYWN0aXZlX2N1cnJlbnRCDAoKX2ZyZXF1ZW5jeUoECAEQAkoECAIQA0oECAMQBEoECAQQBVILcm1zX3ZvbHRhZ2VSC3Jtc19jdXJyZW50UgxhY19mcmVxdWVuY3ki2gIKGFByZXNzdXJlU2Vuc29yUHJvcGVydGllcxI3Cg5tZWFzdXJlZF92YWx1ZRgBIAEoEUIaiLUYgwiStRgNTWVhc3VyZWRWYWx1ZbC1GABIAIgBARI+ChJtaW5fbWVhc3VyZWRfdmFsdWUYAiABKBFCHYi1GIMIkrUYEE1pbk1lYXN1cmVkVmFsdWWwtRgBSAGIAQESPgoSbWF4X21lYXN1cmVkX3ZhbHVlGAMgASgRQh2ItRiDCJK1GBBNYXhNZWFzdXJlZFZhbHVlsLUYAkgCiAEBEi4KCXRvbGVyYW5jZRgEIAEoDUIWiLUYgwiStRgJVG9sZXJhbmNlsLUYA0gDiAEBOgaatRgChQZCEQoPX21lYXN1cmVkX3ZhbHVlQhUKE19taW5fbWVhc3VyZWRfdmFsdWVCFQoTX21heF9tZWFzdXJlZF92YWx1ZUIMCgpfdG9sZXJhbmNlIqUDChVQb3dlclNvdXJjZVByb3BlcnRpZXMSQwoVYmF0X3BlcmNlbnRfcmVtYWluaW5nGAEgASgNQh+ItRgvkrUYE0JhdFBlcmNlbnRSZW1haW5pbmewtRgMSACIAQESOQoQYmF0X2NoYXJnZV9sZXZlbBgCIAEoDUIaiLUYL5K1GA5CYXRDaGFyZ2VMZXZlbLC1GA5IAYgBARJFChZiYXRfcmVwbGFjZW1lbnRfbmVlZGVkGAMgASgIQiCItRgvkrUYFEJhdFJlcGxhY2VtZW50TmVlZGVksLUYD0gCiAEBEjAKC2JhdF92b2x0YWdlGAQgASgNQhaItRgvkrUYCkJhdFZvbHRhZ2WwtRgLSAOIAQESJwoGc3RhdHVzGAUgASgNQhKItRgvkrUYBlN0YXR1c7C1GABIBIgBAToFmrUYARFCGAoWX2JhdF9wZXJjZW50X3JlbWFpbmluZ0ITChFfYmF0X2NoYXJnZV9sZXZlbEIZChdfYmF0X3JlcGxhY2VtZW50X25lZWRlZEIOCgxfYmF0X3ZvbHRhZ2VCCQoHX3N0YXR1c0ICSAFiBnByb3RvMw", [file_kusinta_iot_device_v1_matter_options]);
12
+ fileDesc("CiZrdXNpbnRhL2lvdC9kZXZpY2UvdjEvcHJvcGVydGllcy5wcm90bxIVa3VzaW50YS5pb3QuZGV2aWNlLnYxIv8IChRUaGVybW9zdGF0UHJvcGVydGllcxJBChFsb2NhbF90ZW1wZXJhdHVyZRgBIAEoEUIhiLUYgQSStRgQTG9jYWxUZW1wZXJhdHVyZbC1GADItRgFSACIAQESUAoZb2NjdXBpZWRfaGVhdGluZ19zZXRwb2ludBgCIAEoEUIoiLUYgQSStRgXT2NjdXBpZWRIZWF0aW5nU2V0cG9pbnSwtRgSyLUYB0gBiAEBElAKGW9jY3VwaWVkX2Nvb2xpbmdfc2V0cG9pbnQYAyABKBFCKIi1GIEEkrUYF09jY3VwaWVkQ29vbGluZ1NldHBvaW50sLUYEci1GAdIAogBARJLChdtaW5faGVhdF9zZXRwb2ludF9saW1pdBgEIAEoEUIliLUYgQSStRgUTWluSGVhdFNldHBvaW50TGltaXSwtRgVyLUYB0gDiAEBEksKF21heF9oZWF0X3NldHBvaW50X2xpbWl0GAUgASgRQiWItRiBBJK1GBRNYXhIZWF0U2V0cG9pbnRMaW1pdLC1GBbItRgHSASIAQESSwoXbWluX2Nvb2xfc2V0cG9pbnRfbGltaXQYBiABKBFCJYi1GIEEkrUYFE1pbkNvb2xTZXRwb2ludExpbWl0sLUYF8i1GAdIBYgBARJLChdtYXhfY29vbF9zZXRwb2ludF9saW1pdBgHIAEoEUIliLUYgQSStRgUTWF4Q29vbFNldHBvaW50TGltaXSwtRgYyLUYB0gGiAEBElcKHWNvbnRyb2xfc2VxdWVuY2Vfb2Zfb3BlcmF0aW9uGAggASgNQiuItRiBBJK1GBpDb250cm9sU2VxdWVuY2VPZk9wZXJhdGlvbrC1GBvItRgHSAeIAQESNQoLc3lzdGVtX21vZGUYCSABKA1CG4i1GIEEkrUYClN5c3RlbU1vZGWwtRgcyLUYB0gIiAEBEkwKF3RoZXJtb3N0YXRfcnVubmluZ19tb2RlGAogASgNQiaItRiBBJK1GBVUaGVybW9zdGF0UnVubmluZ01vZGWwtRgeyLUYBUgJiAEBEkAKEXBpX2hlYXRpbmdfZGVtYW5kGAsgASgNQiCItRiBBJK1GA9QSUhlYXRpbmdEZW1hbmSwtRgIyLUYBUgKiAEBOgaatRgCgQZCFAoSX2xvY2FsX3RlbXBlcmF0dXJlQhwKGl9vY2N1cGllZF9oZWF0aW5nX3NldHBvaW50QhwKGl9vY2N1cGllZF9jb29saW5nX3NldHBvaW50QhoKGF9taW5faGVhdF9zZXRwb2ludF9saW1pdEIaChhfbWF4X2hlYXRfc2V0cG9pbnRfbGltaXRCGgoYX21pbl9jb29sX3NldHBvaW50X2xpbWl0QhoKGF9tYXhfY29vbF9zZXRwb2ludF9saW1pdEIgCh5fY29udHJvbF9zZXF1ZW5jZV9vZl9vcGVyYXRpb25CDgoMX3N5c3RlbV9tb2RlQhoKGF90aGVybW9zdGF0X3J1bm5pbmdfbW9kZUIUChJfcGlfaGVhdGluZ19kZW1hbmQi7QIKG1RlbXBlcmF0dXJlU2Vuc29yUHJvcGVydGllcxI7Cg5tZWFzdXJlZF92YWx1ZRgBIAEoEUIeiLUYggiStRgNTWVhc3VyZWRWYWx1ZbC1GADItRgFSACIAQESQgoSbWluX21lYXN1cmVkX3ZhbHVlGAIgASgRQiGItRiCCJK1GBBNaW5NZWFzdXJlZFZhbHVlsLUYAci1GAVIAYgBARJCChJtYXhfbWVhc3VyZWRfdmFsdWUYAyABKBFCIYi1GIIIkrUYEE1heE1lYXN1cmVkVmFsdWWwtRgCyLUYBUgCiAEBEjIKCXRvbGVyYW5jZRgEIAEoDUIaiLUYggiStRgJVG9sZXJhbmNlsLUYA8i1GAVIA4gBAToGmrUYAoIGQhEKD19tZWFzdXJlZF92YWx1ZUIVChNfbWluX21lYXN1cmVkX3ZhbHVlQhUKE19tYXhfbWVhc3VyZWRfdmFsdWVCDAoKX3RvbGVyYW5jZSLqAgoYSHVtaWRpdHlTZW5zb3JQcm9wZXJ0aWVzEjsKDm1lYXN1cmVkX3ZhbHVlGAEgASgNQh6ItRiFCJK1GA1NZWFzdXJlZFZhbHVlsLUYAMi1GAVIAIgBARJCChJtaW5fbWVhc3VyZWRfdmFsdWUYAiABKA1CIYi1GIUIkrUYEE1pbk1lYXN1cmVkVmFsdWWwtRgByLUYBUgBiAEBEkIKEm1heF9tZWFzdXJlZF92YWx1ZRgDIAEoDUIhiLUYhQiStRgQTWF4TWVhc3VyZWRWYWx1ZbC1GALItRgFSAKIAQESMgoJdG9sZXJhbmNlGAQgASgNQhqItRiFCJK1GAlUb2xlcmFuY2WwtRgDyLUYBUgDiAEBOgaatRgChwZCEQoPX21lYXN1cmVkX3ZhbHVlQhUKE19taW5fbWVhc3VyZWRfdmFsdWVCFQoTX21heF9tZWFzdXJlZF92YWx1ZUIMCgpfdG9sZXJhbmNlIvcEChlPY2N1cGFuY3lTZW5zb3JQcm9wZXJ0aWVzEjIKCW9jY3VwYW5jeRgBIAEoDUIaiLUYhgiStRgJT2NjdXBhbmN5sLUYAMi1GAVIAIgBARJIChVvY2N1cGFuY3lfc2Vuc29yX3R5cGUYAiABKA1CJIi1GIYIkrUYE09jY3VwYW5jeVNlbnNvclR5cGWwtRgByLUYBUgBiAEBElUKHG9jY3VwYW5jeV9zZW5zb3JfdHlwZV9iaXRtYXAYAyABKA1CKoi1GIYIkrUYGU9jY3VwYW5jeVNlbnNvclR5cGVCaXRtYXCwtRgCyLUYBUgCiAEBElwKIHBpcl9vY2N1cGllZF90b191bm9jY3VwaWVkX2RlbGF5GAQgASgNQi2ItRiGCJK1GBxQSVJPY2N1cGllZFRvVW5vY2N1cGllZERlbGF5sLUYEMi1GAdIA4gBARJcCiBwaXJfdW5vY2N1cGllZF90b19vY2N1cGllZF9kZWxheRgFIAEoDUItiLUYhgiStRgcUElSVW5vY2N1cGllZFRvT2NjdXBpZWREZWxhebC1GBHItRgHSASIAQE6Bpq1GAKHAkIMCgpfb2NjdXBhbmN5QhgKFl9vY2N1cGFuY3lfc2Vuc29yX3R5cGVCHwodX29jY3VwYW5jeV9zZW5zb3JfdHlwZV9iaXRtYXBCIwohX3Bpcl9vY2N1cGllZF90b191bm9jY3VwaWVkX2RlbGF5QiMKIV9waXJfdW5vY2N1cGllZF90b19vY2N1cGllZF9kZWxheVIWcGlyX29jY190b191bm9jY19kZWxheVIWcGlyX3Vub2NjX3RvX29jY19kZWxheSJmChdDb250YWN0U2Vuc29yUHJvcGVydGllcxI0CgtzdGF0ZV92YWx1ZRgBIAEoCEIaiLUYRZK1GApTdGF0ZVZhbHVlsLUYAMi1GAVIAIgBAToFmrUYARVCDgoMX3N0YXRlX3ZhbHVlIvkGChhXaW5kb3dDb3ZlcmluZ1Byb3BlcnRpZXMSMQoNY292ZXJpbmdfdHlwZRgBIAEoDUIViLUYggKStRgEVHlwZbC1GADItRgFSACIAQESYwojY3VycmVudF9wb3NpdGlvbl9saWZ0X3BlcmNlbnQxMDB0aHMYAiABKA1CMYi1GIICkrUYIEN1cnJlbnRQb3NpdGlvbkxpZnRQZXJjZW50MTAwdGhzsLUYDsi1GAVIAYgBARJjCiNjdXJyZW50X3Bvc2l0aW9uX3RpbHRfcGVyY2VudDEwMHRocxgDIAEoDUIxiLUYggKStRggQ3VycmVudFBvc2l0aW9uVGlsdFBlcmNlbnQxMDB0aHOwtRgPyLUYBUgCiAEBEmEKInRhcmdldF9wb3NpdGlvbl9saWZ0X3BlcmNlbnQxMDB0aHMYBCABKA1CMIi1GIICkrUYH1RhcmdldFBvc2l0aW9uTGlmdFBlcmNlbnQxMDB0aHOwtRgLyLUYBUgDiAEBEmEKInRhcmdldF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHMYBSABKA1CMIi1GIICkrUYH1RhcmdldFBvc2l0aW9uVGlsdFBlcmNlbnQxMDB0aHOwtRgMyLUYBUgEiAEBEkMKEm9wZXJhdGlvbmFsX3N0YXR1cxgGIAEoDUIiiLUYggKStRgRT3BlcmF0aW9uYWxTdGF0dXOwtRgKyLUYBUgFiAEBEj4KEGVuZF9wcm9kdWN0X3R5cGUYByABKA1CH4i1GIICkrUYDkVuZFByb2R1Y3RUeXBlsLUYDci1GAVIBogBARIoCgRtb2RlGAggASgNQhWItRiCApK1GARNb2RlsLUYF8i1GAdIB4gBAToGmrUYAoIEQhAKDl9jb3ZlcmluZ190eXBlQiYKJF9jdXJyZW50X3Bvc2l0aW9uX2xpZnRfcGVyY2VudDEwMHRoc0ImCiRfY3VycmVudF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHNCJQojX3RhcmdldF9wb3NpdGlvbl9saWZ0X3BlcmNlbnQxMDB0aHNCJQojX3RhcmdldF9wb3NpdGlvbl90aWx0X3BlcmNlbnQxMDB0aHNCFQoTX29wZXJhdGlvbmFsX3N0YXR1c0ITChFfZW5kX3Byb2R1Y3RfdHlwZUIHCgVfbW9kZSKKAwoSRG9vckxvY2tQcm9wZXJ0aWVzEjMKCmxvY2tfc3RhdGUYASABKA1CGoi1GIECkrUYCUxvY2tTdGF0ZbC1GADItRgFSACIAQESMQoJbG9ja190eXBlGAIgASgNQhmItRiBApK1GAhMb2NrVHlwZbC1GAHItRgFSAGIAQESPwoQYWN0dWF0b3JfZW5hYmxlZBgDIAEoCEIgiLUYgQKStRgPQWN0dWF0b3JFbmFibGVksLUYAsi1GAVIAogBARIzCgpkb29yX3N0YXRlGAQgASgNQhqItRiBApK1GAlEb29yU3RhdGWwtRgDyLUYBUgDiAEBEjsKDm9wZXJhdGluZ19tb2RlGAUgASgNQh6ItRiBApK1GA1PcGVyYXRpbmdNb2RlsLUYJci1GAdIBIgBAToFmrUYAQpCDQoLX2xvY2tfc3RhdGVCDAoKX2xvY2tfdHlwZUITChFfYWN0dWF0b3JfZW5hYmxlZEINCgtfZG9vcl9zdGF0ZUIRCg9fb3BlcmF0aW5nX21vZGUikgMKFE9uT2ZmTGlnaHRQcm9wZXJ0aWVzEioKBm9uX29mZhgBIAEoCEIViLUYBpK1GAVPbk9mZrC1GADItRgFSACIAQESRwoUZ2xvYmFsX3NjZW5lX2NvbnRyb2wYAiABKAhCJIi1GAaStRgSR2xvYmFsU2NlbmVDb250cm9ssLUYgIAByLUYBUgBiAEBEi4KB29uX3RpbWUYAyABKA1CGIi1GAaStRgGT25UaW1lsLUYgYAByLUYB0gCiAEBEjkKDW9mZl93YWl0X3RpbWUYBCABKA1CHYi1GAaStRgLT2ZmV2FpdFRpbWWwtRiCgAHItRgHSAOIAQESPAoPc3RhcnRfdXBfb25fb2ZmGAUgASgNQh6ItRgGkrUYDFN0YXJ0VXBPbk9mZrC1GIOAAci1GAdIBIgBAToGmrUYAoACQgkKB19vbl9vZmZCFwoVX2dsb2JhbF9zY2VuZV9jb250cm9sQgoKCF9vbl90aW1lQhAKDl9vZmZfd2FpdF90aW1lQhIKEF9zdGFydF91cF9vbl9vZmYilwQKF0RpbW1hYmxlTGlnaHRQcm9wZXJ0aWVzEioKBm9uX29mZhgBIAEoCEIViLUYBpK1GAVPbk9mZrC1GADItRgFSACIAQESOAoNY3VycmVudF9sZXZlbBgCIAEoDUIciLUYCJK1GAxDdXJyZW50TGV2ZWywtRgAyLUYBUgBiAEBEjAKCW1pbl9sZXZlbBgDIAEoDUIYiLUYCJK1GAhNaW5MZXZlbLC1GALItRgFSAKIAQESMAoJbWF4X2xldmVsGAQgASgNQhiItRgIkrUYCE1heExldmVssLUYA8i1GAVIA4gBARIuCghvbl9sZXZlbBgFIAEoDUIXiLUYCJK1GAdPbkxldmVssLUYEci1GAdIBIgBARJKChZzdGFydF91cF9jdXJyZW50X2xldmVsGAYgASgNQiWItRgIkrUYE1N0YXJ0VXBDdXJyZW50TGV2ZWywtRiAgAHItRgHSAWIAQESOgoOcmVtYWluaW5nX3RpbWUYByABKA1CHYi1GAiStRgNUmVtYWluaW5nVGltZbC1GAHItRgBSAaIAQE6Bpq1GAKBAkIJCgdfb25fb2ZmQhAKDl9jdXJyZW50X2xldmVsQgwKCl9taW5fbGV2ZWxCDAoKX21heF9sZXZlbEILCglfb25fbGV2ZWxCGQoXX3N0YXJ0X3VwX2N1cnJlbnRfbGV2ZWxCEQoPX3JlbWFpbmluZ190aW1lIuEFCh9Db2xvclRlbXBlcmF0dXJlTGlnaHRQcm9wZXJ0aWVzEioKBm9uX29mZhgBIAEoCEIViLUYBpK1GAVPbk9mZrC1GADItRgFSACIAQESOAoNY3VycmVudF9sZXZlbBgCIAEoDUIciLUYCJK1GAxDdXJyZW50TGV2ZWywtRgAyLUYBUgBiAEBEk4KGGNvbG9yX3RlbXBlcmF0dXJlX21pcmVkcxgDIAEoDUIniLUYgAaStRgWQ29sb3JUZW1wZXJhdHVyZU1pcmVkc7C1GAfItRgFSAKIAQESWgoeY29sb3JfdGVtcF9waHlzaWNhbF9taW5fbWlyZWRzGAQgASgNQi2ItRiABpK1GBpDb2xvclRlbXBQaHlzaWNhbE1pbk1pcmVkc7C1GIuAAci1GAVIA4gBARJaCh5jb2xvcl90ZW1wX3BoeXNpY2FsX21heF9taXJlZHMYBSABKA1CLYi1GIAGkrUYGkNvbG9yVGVtcFBoeXNpY2FsTWF4TWlyZWRzsLUYjIAByLUYBUgEiAEBEl8KIHN0YXJ0dXBfY29sb3JfdGVtcGVyYXR1cmVfbWlyZWRzGAYgASgNQjCItRiABpK1GB1TdGFydFVwQ29sb3JUZW1wZXJhdHVyZU1pcmVkc7C1GJCAAci1GAdIBYgBARIzCgpjb2xvcl9tb2RlGAcgASgNQhqItRiABpK1GAlDb2xvck1vZGWwtRgIyLUYBUgGiAEBOgaatRgCjAJCCQoHX29uX29mZkIQCg5fY3VycmVudF9sZXZlbEIbChlfY29sb3JfdGVtcGVyYXR1cmVfbWlyZWRzQiEKH19jb2xvcl90ZW1wX3BoeXNpY2FsX21pbl9taXJlZHNCIQofX2NvbG9yX3RlbXBfcGh5c2ljYWxfbWF4X21pcmVkc0IjCiFfc3RhcnR1cF9jb2xvcl90ZW1wZXJhdHVyZV9taXJlZHNCDQoLX2NvbG9yX21vZGUi+AIKFkVuZXJneVNlbnNvclByb3BlcnRpZXMSNwoMYWN0aXZlX3Bvd2VyGAUgASgSQhyItRiQAZK1GAtBY3RpdmVQb3dlcrC1GAjItRgFSACIAQESLgoHdm9sdGFnZRgGIAEoEkIYiLUYkAGStRgHVm9sdGFnZbC1GATItRgFSAGIAQESOwoOYWN0aXZlX2N1cnJlbnQYByABKBJCHoi1GJABkrUYDUFjdGl2ZUN1cnJlbnSwtRgFyLUYBUgCiAEBEjIKCWZyZXF1ZW5jeRgIIAEoEkIaiLUYkAGStRgJRnJlcXVlbmN5sLUYDsi1GAVIA4gBAToGmrUYApAKQg8KDV9hY3RpdmVfcG93ZXJCCgoIX3ZvbHRhZ2VCEQoPX2FjdGl2ZV9jdXJyZW50QgwKCl9mcmVxdWVuY3lKBAgBEAJKBAgCEANKBAgDEARKBAgEEAVSC3Jtc192b2x0YWdlUgtybXNfY3VycmVudFIMYWNfZnJlcXVlbmN5IuoCChhQcmVzc3VyZVNlbnNvclByb3BlcnRpZXMSOwoObWVhc3VyZWRfdmFsdWUYASABKBFCHoi1GIMIkrUYDU1lYXN1cmVkVmFsdWWwtRgAyLUYBUgAiAEBEkIKEm1pbl9tZWFzdXJlZF92YWx1ZRgCIAEoEUIhiLUYgwiStRgQTWluTWVhc3VyZWRWYWx1ZbC1GAHItRgFSAGIAQESQgoSbWF4X21lYXN1cmVkX3ZhbHVlGAMgASgRQiGItRiDCJK1GBBNYXhNZWFzdXJlZFZhbHVlsLUYAsi1GAVIAogBARIyCgl0b2xlcmFuY2UYBCABKA1CGoi1GIMIkrUYCVRvbGVyYW5jZbC1GAPItRgFSAOIAQE6Bpq1GAKFBkIRCg9fbWVhc3VyZWRfdmFsdWVCFQoTX21pbl9tZWFzdXJlZF92YWx1ZUIVChNfbWF4X21lYXN1cmVkX3ZhbHVlQgwKCl90b2xlcmFuY2UiuQMKFVBvd2VyU291cmNlUHJvcGVydGllcxJHChViYXRfcGVyY2VudF9yZW1haW5pbmcYASABKA1CI4i1GC+StRgTQmF0UGVyY2VudFJlbWFpbmluZ7C1GAzItRgFSACIAQESPQoQYmF0X2NoYXJnZV9sZXZlbBgCIAEoDUIeiLUYL5K1GA5CYXRDaGFyZ2VMZXZlbLC1GA7ItRgFSAGIAQESSQoWYmF0X3JlcGxhY2VtZW50X25lZWRlZBgDIAEoCEIkiLUYL5K1GBRCYXRSZXBsYWNlbWVudE5lZWRlZLC1GA/ItRgFSAKIAQESNAoLYmF0X3ZvbHRhZ2UYBCABKA1CGoi1GC+StRgKQmF0Vm9sdGFnZbC1GAvItRgFSAOIAQESKwoGc3RhdHVzGAUgASgNQhaItRgvkrUYBlN0YXR1c7C1GADItRgFSASIAQE6BZq1GAERQhgKFl9iYXRfcGVyY2VudF9yZW1haW5pbmdCEwoRX2JhdF9jaGFyZ2VfbGV2ZWxCGQoXX2JhdF9yZXBsYWNlbWVudF9uZWVkZWRCDgoMX2JhdF92b2x0YWdlQgkKB19zdGF0dXNCAkgBYgZwcm90bzM", [file_kusinta_iot_device_v1_matter_options]);
13
13
 
14
14
  /**
15
15
  * Describes the message kusinta.iot.device.v1.ThermostatProperties.
@@ -26,8 +26,9 @@ export declare const file_kusinta_iot_device_v1_property_update: GenFile;
26
26
  * 2. Pick the message. Two branches, chosen by whether vendor_extension is set:
27
27
  * - absent (Matter): the Endpoint.matter_properties case whose message type declares
28
28
  * (matter_device_type) == Endpoint.matter_device_type_id.
29
- * - present (vendor): the Endpoint.vendor_properties case whose message type declares
30
- * (vendor_extension) == the update's vendor_extension.
29
+ * - present (vendor): the Endpoint field whose message type declares
30
+ * (vendor_extension) == the update's vendor_extension — a vendor_properties case,
31
+ * or radio_link ("kusinta.radio"), which sits outside that oneof.
31
32
  * 3. Pick the field:
32
33
  * - Matter branch: the one field whose (matter_cluster_id) equals cluster_id AND
33
34
  * whose (matter_attribute_id) equals attribute_id.