@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
@@ -0,0 +1,419 @@
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
+ * What a gateway-kept link of a given function needs told to it.
18
+ *
19
+ * Only a soft link has settings at all — see LINK_MODE_HARD for why there is
20
+ * nothing in a device-to-device link for anyone to tune. And what a soft link
21
+ * needs differs entirely by function: a climate lead needs a target
22
+ * temperature, while forwarding a window's open state needs nothing whatsoever.
23
+ * Hence a oneof per function rather than a flat set of fields: the second
24
+ * function to arrive must not turn this into a bag of unrelated optionals named
25
+ * after the first.
26
+ *
27
+ * A function with no arm here has nothing to configure, and an attempt to
28
+ * configure it should be refused rather than accepted as a no-op.
29
+ *
30
+ * @generated from message kusinta.iot.link.v1.LinkSettings
31
+ */
32
+ export declare type LinkSettings = Message<"kusinta.iot.link.v1.LinkSettings"> & {
33
+ /**
34
+ * @generated from oneof kusinta.iot.link.v1.LinkSettings.per_function
35
+ */
36
+ perFunction: {
37
+ /**
38
+ * @generated from field: kusinta.iot.link.v1.ClimateLeadSettings climate_lead = 1;
39
+ */
40
+ value: ClimateLeadSettings;
41
+ case: "climateLead";
42
+ } | { case: undefined; value?: undefined };
43
+ };
44
+
45
+ /**
46
+ * Describes the message kusinta.iot.link.v1.LinkSettings.
47
+ * Use `create(LinkSettingsSchema)` to create a new message.
48
+ */
49
+ export declare const LinkSettingsSchema: GenMessage<LinkSettings>;
50
+
51
+ /**
52
+ * Settings for a gateway-kept LINK_FUNCTION_CLIMATE_LEAD.
53
+ *
54
+ * @generated from message kusinta.iot.link.v1.ClimateLeadSettings
55
+ */
56
+ export declare type ClimateLeadSettings = Message<"kusinta.iot.link.v1.ClimateLeadSettings"> & {
57
+ /**
58
+ * The temperature this link is to hold, in centidegrees — the unit and
59
+ * encoding device/v1/properties.proto declares for every temperature in this
60
+ * schema, so nothing converts between the target and the readings it is
61
+ * compared against.
62
+ *
63
+ * Deliberately not the receiver's own setpoint attribute. A gateway steering
64
+ * a radiator valve it cannot feed a measurement to has only that setpoint to
65
+ * act through, so the setpoint becomes an actuator position which moves on
66
+ * its own and settles wherever the target needs it to. It stops being a
67
+ * statement of what anybody asked for, which is why the request is kept here.
68
+ *
69
+ * Per link, and a sender may lead several receivers — a room with more than
70
+ * one radiator is the ordinary case, and each of its links carries this
71
+ * number separately. An interface offering "the temperature in here" is
72
+ * therefore setting several links at once and is responsible for keeping them
73
+ * equal; nothing on this wire enforces it. A single target per room needs a
74
+ * room to hang it on, which is a larger idea than a link.
75
+ *
76
+ * One target, not one per heating and cooling mode: this addresses a valve
77
+ * that only heats. A device that can do both would need the setpoint's mode
78
+ * named alongside, the way webrtc/v1/setpoint_mode.proto names it for a
79
+ * command, and that is a new arm rather than a reinterpretation of this one.
80
+ *
81
+ * Explicit presence, per the rule properties.proto sets out: a settings
82
+ * message present with this never set must not be indistinguishable from a
83
+ * request to hold the room at 0.00 °C.
84
+ *
85
+ * @generated from field: optional sint32 target_setpoint = 1;
86
+ */
87
+ targetSetpoint?: number | undefined;
88
+ };
89
+
90
+ /**
91
+ * Describes the message kusinta.iot.link.v1.ClimateLeadSettings.
92
+ * Use `create(ClimateLeadSettingsSchema)` to create a new message.
93
+ */
94
+ export declare const ClimateLeadSettingsSchema: GenMessage<ClimateLeadSettings>;
95
+
96
+ /**
97
+ * One device leading another.
98
+ *
99
+ * @generated from message kusinta.iot.link.v1.DeviceLink
100
+ */
101
+ export declare type DeviceLink = Message<"kusinta.iot.link.v1.DeviceLink"> & {
102
+ /**
103
+ * @generated from field: string link_id = 1;
104
+ */
105
+ linkId: string;
106
+
107
+ /**
108
+ * Which device leads. This is the control surface for the pair: for a climate
109
+ * link, the setpoint that governs both is written here.
110
+ *
111
+ * @generated from field: kusinta.iot.identity.v1.DeviceId sender = 2;
112
+ */
113
+ sender?: DeviceId | undefined;
114
+
115
+ /**
116
+ * Which device follows. One sender may lead several receivers — a room with
117
+ * more than one radiator is the ordinary case — and each is its own link.
118
+ * Several senders leading one receiver is not modelled: combining two
119
+ * measurements needs a policy, and no policy is defined.
120
+ *
121
+ * @generated from field: kusinta.iot.identity.v1.DeviceId receiver = 3;
122
+ */
123
+ receiver?: DeviceId | undefined;
124
+
125
+ /**
126
+ * @generated from field: kusinta.iot.link.v1.LinkFunction function = 4;
127
+ */
128
+ function: LinkFunction;
129
+
130
+ /**
131
+ * @generated from field: kusinta.iot.link.v1.LinkMode mode = 5;
132
+ */
133
+ mode: LinkMode;
134
+
135
+ /**
136
+ * @generated from field: kusinta.iot.link.v1.LinkState state = 6;
137
+ */
138
+ state: LinkState;
139
+
140
+ /**
141
+ * @generated from field: google.protobuf.Timestamp created_at = 7;
142
+ */
143
+ createdAt?: Timestamp | undefined;
144
+
145
+ /**
146
+ * Why the link is not carrying, when state says it is not. Free text for a
147
+ * person, never parsed.
148
+ *
149
+ * @generated from field: string state_detail = 8;
150
+ */
151
+ stateDetail: string;
152
+
153
+ /**
154
+ * How this link is configured, where its mode and function give it anything
155
+ * to configure. Unset on every hard link, and on a soft one nobody has set up
156
+ * yet — which is a link that exists and is not doing anything, not an error.
157
+ *
158
+ * Carried on the link rather than left to be asked for separately, because an
159
+ * interface showing a soft climate link has to show the room's target next to
160
+ * it, and the receiver's own setpoint is not that number.
161
+ *
162
+ * @generated from field: kusinta.iot.link.v1.LinkSettings settings = 9;
163
+ */
164
+ settings?: LinkSettings | undefined;
165
+ };
166
+
167
+ /**
168
+ * Describes the message kusinta.iot.link.v1.DeviceLink.
169
+ * Use `create(DeviceLinkSchema)` to create a new message.
170
+ */
171
+ export declare const DeviceLinkSchema: GenMessage<DeviceLink>;
172
+
173
+ /**
174
+ * What a device can be linked as, declared by the connector that models it.
175
+ *
176
+ * Without this an interface cannot offer a sensible choice: it has no way to know
177
+ * which of two devices may lead, whether a hub can broker them, or which
178
+ * attribute carries the quantity in question. Matching is mechanical — the same
179
+ * function, opposite directions, and a mode both ends support.
180
+ *
181
+ * Declared per device rather than per endpoint. Endpoint would be more precise,
182
+ * but the channels a link actually attaches to frequently carry no readings and
183
+ * so are not announced as endpoints at all; a per-endpoint declaration would have
184
+ * nowhere honest to live. The reserved range on DeviceLink is where that would go
185
+ * if a vendor ever needs it.
186
+ *
187
+ * @generated from message kusinta.iot.link.v1.LinkCapability
188
+ */
189
+ export declare type LinkCapability = Message<"kusinta.iot.link.v1.LinkCapability"> & {
190
+ /**
191
+ * @generated from field: kusinta.iot.link.v1.LinkFunction function = 1;
192
+ */
193
+ function: LinkFunction;
194
+
195
+ /**
196
+ * @generated from field: kusinta.iot.link.v1.LinkDirection direction = 2;
197
+ */
198
+ direction: LinkDirection;
199
+
200
+ /**
201
+ * Modes this device supports for this function. A hard link additionally
202
+ * requires the other end to be on the same hub, which this cannot state alone.
203
+ *
204
+ * @generated from field: repeated kusinta.iot.link.v1.LinkMode supported_modes = 3;
205
+ */
206
+ supportedModes: LinkMode[];
207
+
208
+ /**
209
+ * This device's own attribute for this function — the one it reads as a
210
+ * sender, or the one it is driven through as a receiver. Present because the
211
+ * two ends of a link need not speak the same cluster.
212
+ *
213
+ * @generated from field: kusinta.iot.access.v1.AttributeRef attribute = 4;
214
+ */
215
+ attribute?: AttributeRef | undefined;
216
+
217
+ /**
218
+ * Human-readable, from the connector, in whatever locale it was given. For
219
+ * display beside a choice; never matched on.
220
+ *
221
+ * @generated from field: string label = 5;
222
+ */
223
+ label: string;
224
+ };
225
+
226
+ /**
227
+ * Describes the message kusinta.iot.link.v1.LinkCapability.
228
+ * Use `create(LinkCapabilitySchema)` to create a new message.
229
+ */
230
+ export declare const LinkCapabilitySchema: GenMessage<LinkCapability>;
231
+
232
+ /**
233
+ * Every link a caller was shown, in reply to a listing.
234
+ *
235
+ * @generated from message kusinta.iot.link.v1.DeviceLinkList
236
+ */
237
+ export declare type DeviceLinkList = Message<"kusinta.iot.link.v1.DeviceLinkList"> & {
238
+ /**
239
+ * @generated from field: repeated kusinta.iot.link.v1.DeviceLink links = 1;
240
+ */
241
+ links: DeviceLink[];
242
+ };
243
+
244
+ /**
245
+ * Describes the message kusinta.iot.link.v1.DeviceLinkList.
246
+ * Use `create(DeviceLinkListSchema)` to create a new message.
247
+ */
248
+ export declare const DeviceLinkListSchema: GenMessage<DeviceLinkList>;
249
+
250
+ /**
251
+ * What a link makes the sender do to the receiver.
252
+ *
253
+ * A function, not a cluster id, because the two ends do not necessarily speak the
254
+ * same cluster: a wall thermostat reports its temperature as Thermostat
255
+ * LocalTemperature while a bare sensor reports the same quantity as Temperature
256
+ * Measurement MeasuredValue. Each end states its own attribute in its
257
+ * LinkCapability; the function is what says the two belong together.
258
+ *
259
+ * @generated from enum kusinta.iot.link.v1.LinkFunction
260
+ */
261
+ export enum LinkFunction {
262
+ /**
263
+ * @generated from enum value: LINK_FUNCTION_UNSPECIFIED = 0;
264
+ */
265
+ UNSPECIFIED = 0,
266
+
267
+ /**
268
+ * The sender leads the receiver's climate control.
269
+ *
270
+ * Stronger than feeding a measurement, and the difference matters to anything
271
+ * building a UI. Both the sender's measured temperature and its setpoint reach
272
+ * the receiver, and the transfer is one way: the receiver reports the sender's
273
+ * temperature as its own, and a setpoint written to the receiver is accepted
274
+ * and then reverted to the sender's. So the sender is the control surface for
275
+ * the pair, and a setpoint control offered on a linked receiver is one that
276
+ * appears to work and silently undoes itself.
277
+ *
278
+ * @generated from enum value: LINK_FUNCTION_CLIMATE_LEAD = 1;
279
+ */
280
+ CLIMATE_LEAD = 1,
281
+
282
+ /**
283
+ * The sender's open/closed state reaches the receiver, which acts on it —
284
+ * typically a contact telling a valve to stop heating an open room.
285
+ *
286
+ * Not implied by CLIMATE_LEAD: a device that leads a room's climate does not
287
+ * necessarily forward its own window state, and on at least one vendor it does
288
+ * not. Where both are wanted, both are linked.
289
+ *
290
+ * @generated from enum value: LINK_FUNCTION_WINDOW_STATE = 2;
291
+ */
292
+ WINDOW_STATE = 2,
293
+
294
+ /**
295
+ * The sender is an input the receiver acts on — a button or remote.
296
+ *
297
+ * @generated from enum value: LINK_FUNCTION_REMOTE_CONTROL = 3;
298
+ */
299
+ REMOTE_CONTROL = 3,
300
+ }
301
+
302
+ /**
303
+ * Describes the enum kusinta.iot.link.v1.LinkFunction.
304
+ */
305
+ export declare const LinkFunctionSchema: GenEnum<LinkFunction>;
306
+
307
+ /**
308
+ * Which end of a link a device can be.
309
+ *
310
+ * @generated from enum kusinta.iot.link.v1.LinkDirection
311
+ */
312
+ export enum LinkDirection {
313
+ /**
314
+ * @generated from enum value: LINK_DIRECTION_UNSPECIFIED = 0;
315
+ */
316
+ UNSPECIFIED = 0,
317
+
318
+ /**
319
+ * can lead
320
+ *
321
+ * @generated from enum value: LINK_DIRECTION_SOURCE = 1;
322
+ */
323
+ SOURCE = 1,
324
+
325
+ /**
326
+ * can follow
327
+ *
328
+ * @generated from enum value: LINK_DIRECTION_TARGET = 2;
329
+ */
330
+ TARGET = 2,
331
+ }
332
+
333
+ /**
334
+ * Describes the enum kusinta.iot.link.v1.LinkDirection.
335
+ */
336
+ export declare const LinkDirectionSchema: GenEnum<LinkDirection>;
337
+
338
+ /**
339
+ * How a link is carried.
340
+ *
341
+ * @generated from enum kusinta.iot.link.v1.LinkMode
342
+ */
343
+ export enum LinkMode {
344
+ /**
345
+ * @generated from enum value: LINK_MODE_UNSPECIFIED = 0;
346
+ */
347
+ UNSPECIFIED = 0,
348
+
349
+ /**
350
+ * Device to device, brokered by the hub and then carried without it. Survives
351
+ * a gateway outage. Requires both devices on the same hub, and the hub's own
352
+ * support for the function.
353
+ *
354
+ * @generated from enum value: LINK_MODE_HARD = 1;
355
+ */
356
+ HARD = 1,
357
+
358
+ /**
359
+ * Kept by the gateway, which reads one device and writes the other. Works
360
+ * across vendors and across hubs, and is the only option where no hub can
361
+ * broker the pair — at the cost of not surviving a gateway outage.
362
+ *
363
+ * @generated from enum value: LINK_MODE_SOFT = 2;
364
+ */
365
+ SOFT = 2,
366
+ }
367
+
368
+ /**
369
+ * Describes the enum kusinta.iot.link.v1.LinkMode.
370
+ */
371
+ export declare const LinkModeSchema: GenEnum<LinkMode>;
372
+
373
+ /**
374
+ * Whether a link is doing anything.
375
+ *
376
+ * There is deliberately no "created but not yet in effect" state. On current
377
+ * device firmware a link takes effect immediately, and on firmware old enough not
378
+ * to, it never takes effect at all without physical intervention — which is a
379
+ * refusal at creation time, not a state to wait in.
380
+ *
381
+ * Nor should ACTIVE be inferred from the hub reporting a link exists. A hub can
382
+ * report a link as present, unpending and healthy while the devices ignore it
383
+ * entirely; only behaviour distinguishes the two.
384
+ *
385
+ * @generated from enum kusinta.iot.link.v1.LinkState
386
+ */
387
+ export enum LinkState {
388
+ /**
389
+ * @generated from enum value: LINK_STATE_UNSPECIFIED = 0;
390
+ */
391
+ UNSPECIFIED = 0,
392
+
393
+ /**
394
+ * carrying
395
+ *
396
+ * @generated from enum value: LINK_STATE_ACTIVE = 1;
397
+ */
398
+ ACTIVE = 1,
399
+
400
+ /**
401
+ * the sender is unreachable, gone, or the set is incomplete
402
+ *
403
+ * @generated from enum value: LINK_STATE_BROKEN = 2;
404
+ */
405
+ BROKEN = 2,
406
+
407
+ /**
408
+ * the hub and our records disagree, or the hub cannot say
409
+ *
410
+ * @generated from enum value: LINK_STATE_UNKNOWN = 3;
411
+ */
412
+ UNKNOWN = 3,
413
+ }
414
+
415
+ /**
416
+ * Describes the enum kusinta.iot.link.v1.LinkState.
417
+ */
418
+ export declare const LinkStateSchema: GenEnum<LinkState>;
419
+
@@ -0,0 +1,121 @@
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("Ch5rdXNpbnRhL2lvdC9saW5rL3YxL2xpbmsucHJvdG8SE2t1c2ludGEuaW90LmxpbmsudjEiYAoMTGlua1NldHRpbmdzEkAKDGNsaW1hdGVfbGVhZBgBIAEoCzIoLmt1c2ludGEuaW90LmxpbmsudjEuQ2xpbWF0ZUxlYWRTZXR0aW5nc0gAQg4KDHBlcl9mdW5jdGlvbiJHChNDbGltYXRlTGVhZFNldHRpbmdzEhwKD3RhcmdldF9zZXRwb2ludBgBIAEoEUgAiAEBQhIKEF90YXJnZXRfc2V0cG9pbnQilwMKCkRldmljZUxpbmsSDwoHbGlua19pZBgBIAEoCRIxCgZzZW5kZXIYAiABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIzCghyZWNlaXZlchgDIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEjMKCGZ1bmN0aW9uGAQgASgOMiEua3VzaW50YS5pb3QubGluay52MS5MaW5rRnVuY3Rpb24SKwoEbW9kZRgFIAEoDjIdLmt1c2ludGEuaW90LmxpbmsudjEuTGlua01vZGUSLQoFc3RhdGUYBiABKA4yHi5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtTdGF0ZRIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxzdGF0ZV9kZXRhaWwYCCABKAkSMwoIc2V0dGluZ3MYCSABKAsyIS5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtTZXR0aW5nc0oECBQQHiL7AQoOTGlua0NhcGFiaWxpdHkSMwoIZnVuY3Rpb24YASABKA4yIS5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtGdW5jdGlvbhI1CglkaXJlY3Rpb24YAiABKA4yIi5rdXNpbnRhLmlvdC5saW5rLnYxLkxpbmtEaXJlY3Rpb24SNgoPc3VwcG9ydGVkX21vZGVzGAMgAygOMh0ua3VzaW50YS5pb3QubGluay52MS5MaW5rTW9kZRI2CglhdHRyaWJ1dGUYBCABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmEg0KBWxhYmVsGAUgASgJIkAKDkRldmljZUxpbmtMaXN0Ei4KBWxpbmtzGAEgAygLMh8ua3VzaW50YS5pb3QubGluay52MS5EZXZpY2VMaW5rKo8BCgxMaW5rRnVuY3Rpb24SHQoZTElOS19GVU5DVElPTl9VTlNQRUNJRklFRBAAEh4KGkxJTktfRlVOQ1RJT05fQ0xJTUFURV9MRUFEEAESHgoaTElOS19GVU5DVElPTl9XSU5ET1dfU1RBVEUQAhIgChxMSU5LX0ZVTkNUSU9OX1JFTU9URV9DT05UUk9MEAMqZQoNTGlua0RpcmVjdGlvbhIeChpMSU5LX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhkKFUxJTktfRElSRUNUSU9OX1NPVVJDRRABEhkKFUxJTktfRElSRUNUSU9OX1RBUkdFVBACKk0KCExpbmtNb2RlEhkKFUxJTktfTU9ERV9VTlNQRUNJRklFRBAAEhIKDkxJTktfTU9ERV9IQVJEEAESEgoOTElOS19NT0RFX1NPRlQQAiptCglMaW5rU3RhdGUSGgoWTElOS19TVEFURV9VTlNQRUNJRklFRBAAEhUKEUxJTktfU1RBVEVfQUNUSVZFEAESFQoRTElOS19TVEFURV9CUk9LRU4QAhIWChJMSU5LX1NUQVRFX1VOS05PV04QA0ICSAFiBnByb3RvMw", [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.LinkSettings.
18
+ * Use `create(LinkSettingsSchema)` to create a new message.
19
+ */
20
+ export const LinkSettingsSchema = /*@__PURE__*/
21
+ messageDesc(file_kusinta_iot_link_v1_link, 0);
22
+
23
+ /**
24
+ * Describes the message kusinta.iot.link.v1.ClimateLeadSettings.
25
+ * Use `create(ClimateLeadSettingsSchema)` to create a new message.
26
+ */
27
+ export const ClimateLeadSettingsSchema = /*@__PURE__*/
28
+ messageDesc(file_kusinta_iot_link_v1_link, 1);
29
+
30
+ /**
31
+ * Describes the message kusinta.iot.link.v1.DeviceLink.
32
+ * Use `create(DeviceLinkSchema)` to create a new message.
33
+ */
34
+ export const DeviceLinkSchema = /*@__PURE__*/
35
+ messageDesc(file_kusinta_iot_link_v1_link, 2);
36
+
37
+ /**
38
+ * Describes the message kusinta.iot.link.v1.LinkCapability.
39
+ * Use `create(LinkCapabilitySchema)` to create a new message.
40
+ */
41
+ export const LinkCapabilitySchema = /*@__PURE__*/
42
+ messageDesc(file_kusinta_iot_link_v1_link, 3);
43
+
44
+ /**
45
+ * Describes the message kusinta.iot.link.v1.DeviceLinkList.
46
+ * Use `create(DeviceLinkListSchema)` to create a new message.
47
+ */
48
+ export const DeviceLinkListSchema = /*@__PURE__*/
49
+ messageDesc(file_kusinta_iot_link_v1_link, 4);
50
+
51
+ /**
52
+ * Describes the enum kusinta.iot.link.v1.LinkFunction.
53
+ */
54
+ export const LinkFunctionSchema = /*@__PURE__*/
55
+ enumDesc(file_kusinta_iot_link_v1_link, 0);
56
+
57
+ /**
58
+ * What a link makes the sender do to the receiver.
59
+ *
60
+ * A function, not a cluster id, because the two ends do not necessarily speak the
61
+ * same cluster: a wall thermostat reports its temperature as Thermostat
62
+ * LocalTemperature while a bare sensor reports the same quantity as Temperature
63
+ * Measurement MeasuredValue. Each end states its own attribute in its
64
+ * LinkCapability; the function is what says the two belong together.
65
+ *
66
+ * @generated from enum kusinta.iot.link.v1.LinkFunction
67
+ */
68
+ export const LinkFunction = /*@__PURE__*/
69
+ tsEnum(LinkFunctionSchema);
70
+
71
+ /**
72
+ * Describes the enum kusinta.iot.link.v1.LinkDirection.
73
+ */
74
+ export const LinkDirectionSchema = /*@__PURE__*/
75
+ enumDesc(file_kusinta_iot_link_v1_link, 1);
76
+
77
+ /**
78
+ * Which end of a link a device can be.
79
+ *
80
+ * @generated from enum kusinta.iot.link.v1.LinkDirection
81
+ */
82
+ export const LinkDirection = /*@__PURE__*/
83
+ tsEnum(LinkDirectionSchema);
84
+
85
+ /**
86
+ * Describes the enum kusinta.iot.link.v1.LinkMode.
87
+ */
88
+ export const LinkModeSchema = /*@__PURE__*/
89
+ enumDesc(file_kusinta_iot_link_v1_link, 2);
90
+
91
+ /**
92
+ * How a link is carried.
93
+ *
94
+ * @generated from enum kusinta.iot.link.v1.LinkMode
95
+ */
96
+ export const LinkMode = /*@__PURE__*/
97
+ tsEnum(LinkModeSchema);
98
+
99
+ /**
100
+ * Describes the enum kusinta.iot.link.v1.LinkState.
101
+ */
102
+ export const LinkStateSchema = /*@__PURE__*/
103
+ enumDesc(file_kusinta_iot_link_v1_link, 3);
104
+
105
+ /**
106
+ * Whether a link is doing anything.
107
+ *
108
+ * There is deliberately no "created but not yet in effect" state. On current
109
+ * device firmware a link takes effect immediately, and on firmware old enough not
110
+ * to, it never takes effect at all without physical intervention — which is a
111
+ * refusal at creation time, not a state to wait in.
112
+ *
113
+ * Nor should ACTIVE be inferred from the hub reporting a link exists. A hub can
114
+ * report a link as present, unpending and healthy while the devices ignore it
115
+ * entirely; only behaviour distinguishes the two.
116
+ *
117
+ * @generated from enum kusinta.iot.link.v1.LinkState
118
+ */
119
+ export const LinkState = /*@__PURE__*/
120
+ tsEnum(LinkStateSchema);
121
+