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

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 (56) hide show
  1. package/package.json +11 -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/reporting/v1/reporting_pb.d.ts +891 -0
  30. package/src/kusinta/iot/reporting/v1/reporting_pb.js +164 -0
  31. package/src/kusinta/iot/reporting/v1/reporting_service_pb.d.ts +47 -0
  32. package/src/kusinta/iot/reporting/v1/reporting_service_pb.js +24 -0
  33. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +177 -4
  34. package/src/kusinta/iot/signaling/v1/signaling_pb.js +29 -1
  35. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +24 -1
  36. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +1 -1
  37. package/src/kusinta/iot/space/v1/space_pb.d.ts +72 -2
  38. package/src/kusinta/iot/space/v1/space_pb.js +9 -1
  39. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +162 -13
  40. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +8 -1
  41. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.d.ts +69 -0
  42. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js +19 -0
  43. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +25 -4
  44. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +28 -6
  45. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +18 -3
  46. package/src/kusinta/iot/webrtc/v1/command_pb.js +2 -1
  47. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +170 -5
  48. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +34 -6
  49. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +448 -3
  50. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +63 -3
  51. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +775 -12
  52. package/src/kusinta/iot/webrtc/v1/management_pb.js +123 -5
  53. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +34 -4
  54. package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +2 -2
  55. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.d.ts +63 -0
  56. package/src/kusinta/iot/webrtc/v1/setpoint_mode_pb.js +45 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusinta/iot-schema",
3
- "version": "0.2.0-beta.2",
3
+ "version": "0.2.0-beta.21",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "files": ["src"],
@@ -10,6 +10,7 @@
10
10
  },
11
11
  "exports": {
12
12
  "./common": "./src/kusinta/iot/common/v1/types_pb.js",
13
+ "./common/pairing": "./src/kusinta/iot/common/v1/pairing_pb.js",
13
14
  "./identity": "./src/kusinta/iot/identity/v1/identity_pb.js",
14
15
  "./device": "./src/kusinta/iot/device/v1/device_pb.js",
15
16
  "./device/descriptor": "./src/kusinta/iot/device/v1/descriptor_pb.js",
@@ -20,16 +21,25 @@
20
21
  "./device/event": "./src/kusinta/iot/device/v1/device_event_pb.js",
21
22
  "./vendor/options": "./src/kusinta/iot/vendor/v1/vendor_options_pb.js",
22
23
  "./vendor/homematic": "./src/kusinta/iot/vendor/homematic/v1/homematic_pb.js",
24
+ "./vendor/lorawan": "./src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js",
23
25
  "./space": "./src/kusinta/iot/space/v1/space_pb.js",
24
26
  "./access": "./src/kusinta/iot/access/v1/acl_pb.js",
25
27
  "./access/roles": "./src/kusinta/iot/access/v1/roles_pb.js",
28
+ "./link": "./src/kusinta/iot/link/v1/link_pb.js",
29
+ "./climate": "./src/kusinta/iot/climate/v1/climate_pb.js",
26
30
  "./connector": "./src/kusinta/iot/connector/v1/connector_pb.js",
27
31
  "./connector/service": "./src/kusinta/iot/connector/v1/connector_service_pb.js",
28
32
  "./webrtc": "./src/kusinta/iot/webrtc/v1/envelope_pb.js",
29
33
  "./webrtc/app-token": "./src/kusinta/iot/webrtc/v1/app_token_pb.js",
34
+ "./webrtc/command": "./src/kusinta/iot/webrtc/v1/command_pb.js",
35
+ "./webrtc/device-state": "./src/kusinta/iot/webrtc/v1/device_state_pb.js",
30
36
  "./webrtc/management": "./src/kusinta/iot/webrtc/v1/management_pb.js",
37
+ "./webrtc/permission-push": "./src/kusinta/iot/webrtc/v1/permission_push_pb.js",
38
+ "./webrtc/setpoint-mode": "./src/kusinta/iot/webrtc/v1/setpoint_mode_pb.js",
31
39
  "./registration": "./src/kusinta/iot/registration/v1/registration_pb.js",
32
40
  "./registration/service": "./src/kusinta/iot/registration/v1/registration_service_pb.js",
41
+ "./reporting": "./src/kusinta/iot/reporting/v1/reporting_pb.js",
42
+ "./reporting/service": "./src/kusinta/iot/reporting/v1/reporting_service_pb.js",
33
43
  "./signaling": "./src/kusinta/iot/signaling/v1/signaling_pb.js",
34
44
  "./signaling/service": "./src/kusinta/iot/signaling/v1/signaling_service_pb.js"
35
45
  },
@@ -2,10 +2,10 @@
2
2
  // @generated from file kusinta/iot/access/v1/acl.proto (package kusinta.iot.access.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
5
- import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
6
  import type { Message } from "@bufbuild/protobuf";
7
7
  import type { DeviceId, GatewayId, UserId } from "../../identity/v1/identity_pb.js";
8
- import type { PermissionAction, Role } from "./roles_pb.js";
8
+ import type { MembershipRelation, PermissionAction, Role } from "./roles_pb.js";
9
9
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
10
 
11
11
  /**
@@ -304,6 +304,25 @@ export declare type DeviceAcl = Message<"kusinta.iot.access.v1.DeviceAcl"> & {
304
304
  * @generated from field: repeated kusinta.iot.access.v1.EventRef allowed_event_refs = 10;
305
305
  */
306
306
  allowedEventRefs: EventRef[];
307
+
308
+ /**
309
+ * How the user stands to the home this device is filed in, where that shaped this ACL.
310
+ * See MembershipRelation in roles.proto.
311
+ *
312
+ * SERVICE: the user sees this building device in someone's home as service, whatever
313
+ * relation their membership records. They hold no action on it — allowed_actions is empty
314
+ * — and are sent no reading or event of it. The Device they are sent carries its
315
+ * description only: its endpoints with their device types and implemented lists, and no
316
+ * property value. What keeps it working comes as a webrtc.v1.ServiceStatus instead. An
317
+ * app should show its readings as withheld, not missing. RESIDENT: the user lives in the
318
+ * home the device is filed in, whether or not they also own it. UNSPECIFIED: neither
319
+ * applies — the device is not in a home, or the user reaches it only by owning it.
320
+ *
321
+ * Descriptive, like role: allowed_actions and the ref lists are what is enforced.
322
+ *
323
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 11;
324
+ */
325
+ relation: MembershipRelation;
307
326
  };
308
327
 
309
328
  /**
@@ -313,7 +332,9 @@ export declare type DeviceAcl = Message<"kusinta.iot.access.v1.DeviceAcl"> & {
313
332
  export declare const DeviceAclSchema: GenMessage<DeviceAcl>;
314
333
 
315
334
  /**
316
- * Every DeviceAcl in force for one user on one gateway, at valid_at.
335
+ * Every DeviceAcl in force for one user on one gateway, at valid_at — except that what the
336
+ * user newly sees of a home as service appears only from the next quarter hour (see
337
+ * webrtc.v1.LivePermissionUpdate).
317
338
  *
318
339
  * ADVISORY WHEN SENT TO AN APP. The gateway is the sole authority and enforces every
319
340
  * read, write, invoke and subscription against its own copy, whether or not the app has
@@ -361,3 +382,100 @@ export declare type EffectivePermissions = Message<"kusinta.iot.access.v1.Effect
361
382
  */
362
383
  export declare const EffectivePermissionsSchema: GenMessage<EffectivePermissions>;
363
384
 
385
+ /**
386
+ * What service sees of a home, as a resident is told it in webrtc.v1.PrivacyDisclosure.
387
+ * Each names part of a webrtc.v1.ServiceStatus, of a device's description, of how the
388
+ * home is set up, or of who lives there; with the climate summary the disclosure names
389
+ * separately, nothing else of the home reaches service.
390
+ *
391
+ * @generated from enum kusinta.iot.access.v1.ServiceSignal
392
+ */
393
+ export enum ServiceSignal {
394
+ /**
395
+ * @generated from enum value: SERVICE_SIGNAL_UNSPECIFIED = 0;
396
+ */
397
+ UNSPECIFIED = 0,
398
+
399
+ /**
400
+ * Whether the device is reachable, and since which quarter hour it has not been.
401
+ *
402
+ * @generated from enum value: SERVICE_SIGNAL_REACHABILITY = 1;
403
+ */
404
+ REACHABILITY = 1,
405
+
406
+ /**
407
+ * Its remaining charge in steps of ten, and low-battery and replacement warnings.
408
+ *
409
+ * @generated from enum value: SERVICE_SIGNAL_BATTERY = 2;
410
+ */
411
+ BATTERY = 2,
412
+
413
+ /**
414
+ * How good its radio link is.
415
+ *
416
+ * @generated from enum value: SERVICE_SIGNAL_RADIO_LINK = 3;
417
+ */
418
+ RADIO_LINK = 3,
419
+
420
+ /**
421
+ * Its firmware version: DeviceDescriptor.software_version_string, sent to service.
422
+ *
423
+ * @generated from enum value: SERVICE_SIGNAL_FIRMWARE = 4;
424
+ */
425
+ FIRMWARE = 4,
426
+
427
+ /**
428
+ * Faults it reports about itself: errors and tampering. Not configuration it has yet to
429
+ * take, which would show when its residents changed a setting.
430
+ *
431
+ * @generated from enum value: SERVICE_SIGNAL_FAULT = 5;
432
+ */
433
+ FAULT = 5,
434
+
435
+ /**
436
+ * What the device is — its description, every field of device.v1.DeviceDescriptor but
437
+ * claimed_at: type, name, vendor, product, serial number, versions, ownership, lifecycle
438
+ * and connector; its endpoints and what each supports — and where it is filed. A
439
+ * bridged_by naming a device the recipient may not see, such as a bridge a resident owns,
440
+ * is unset. Always disclosed together with FIRMWARE, whose
441
+ * version it carries. Not when it was claimed: the only times service is given of a
442
+ * device are the quarter hours of its webrtc.v1.ServiceStatus, and the moment it is taken
443
+ * away from them.
444
+ *
445
+ * @generated from enum value: SERVICE_SIGNAL_FILING = 6;
446
+ */
447
+ FILING = 6,
448
+
449
+ /**
450
+ * How the home is set up: the apartment and its rooms, their names and descriptions, the
451
+ * rooms' limits, and the building's sensors in them.
452
+ *
453
+ * @generated from enum value: SERVICE_SIGNAL_ROOM_SETUP = 7;
454
+ */
455
+ ROOM_SETUP = 7,
456
+
457
+ /**
458
+ * Which of the building's devices are linked to which, for what, and whether device to
459
+ * device or through the gateway — not how a link is set or what it is doing, and no
460
+ * sooner than the quarter hour after it was made; its removal, at once.
461
+ *
462
+ * @generated from enum value: SERVICE_SIGNAL_LINKS = 8;
463
+ */
464
+ LINKS = 8,
465
+
466
+ /**
467
+ * Who is filed on the home, and how: every membership of it — residents, service, and
468
+ * those recorded with no relation — by user id. Shown to the property owner and the
469
+ * gateway administrator only, not to every party with service reach (see
470
+ * space.v1.Space.members).
471
+ *
472
+ * @generated from enum value: SERVICE_SIGNAL_RESIDENTS = 9;
473
+ */
474
+ RESIDENTS = 9,
475
+ }
476
+
477
+ /**
478
+ * Describes the enum kusinta.iot.access.v1.ServiceSignal.
479
+ */
480
+ export declare const ServiceSignalSchema: GenEnum<ServiceSignal>;
481
+
@@ -2,16 +2,16 @@
2
2
  // @generated from file kusinta/iot/access/v1/acl.proto (package kusinta.iot.access.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
- import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
8
7
  import { file_kusinta_iot_access_v1_roles } from "./roles_pb.js";
8
+ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
9
9
 
10
10
  /**
11
11
  * Describes the file kusinta/iot/access/v1/acl.proto.
12
12
  */
13
13
  export const file_kusinta_iot_access_v1_acl = /*@__PURE__*/
14
- fileDesc("Ch9rdXNpbnRhL2lvdC9hY2Nlc3MvdjEvYWNsLnByb3RvEhVrdXNpbnRhLmlvdC5hY2Nlc3MudjEirgEKDEF0dHJpYnV0ZVJlZhIWCg5hdHRyaWJ1dGVfbmFtZRgBIAEoCRISCgpjbHVzdGVyX2lkGAIgASgNEhQKDGF0dHJpYnV0ZV9pZBgEIAEoDRIYCgtlbmRwb2ludF9pZBgDIAEoDUgAiAEBEh0KEHZlbmRvcl9leHRlbnNpb24YBSABKAlIAYgBAUIOCgxfZW5kcG9pbnRfaWRCEwoRX3ZlbmRvcl9leHRlbnNpb24iZQoKQ29tbWFuZFJlZhISCgpjbHVzdGVyX2lkGAEgASgNEhkKEW1hdHRlcl9jb21tYW5kX2lkGAIgASgNEhgKC2VuZHBvaW50X2lkGAMgASgNSACIAQFCDgoMX2VuZHBvaW50X2lkIloKCEV2ZW50UmVmEhIKCmNsdXN0ZXJfaWQYASABKA0SEAoIZXZlbnRfaWQYAiABKA0SGAoLZW5kcG9pbnRfaWQYAyABKA1IAIgBAUIOCgxfZW5kcG9pbnRfaWQi5wEKElByb3BlcnR5Q29uc3RyYWludBI2CglhdHRyaWJ1dGUYCCABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmEhEKB2ludF9tYXgYAiABKBFIABIRCgdpbnRfbWluGAMgASgRSAASEgoIdWludF9tYXgYBCABKA1IABISCgh1aW50X21pbhgFIAEoDUgAQgwKCmNvbnN0cmFpbnRKBAgBEAJKBAgGEAdKBAgHEAhSDmF0dHJpYnV0ZV9uYW1lUg5jbHVzdGVyX2lkX2hleFILZW5kcG9pbnRfaWQihgQKCURldmljZUFjbBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEikKBHJvbGUYAyABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZRJACg9hbGxvd2VkX2FjdGlvbnMYBCADKA4yJy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUGVybWlzc2lvbkFjdGlvbhJDChZhbGxvd2VkX2F0dHJpYnV0ZV9yZWZzGAcgAygLMiMua3VzaW50YS5pb3QuYWNjZXNzLnYxLkF0dHJpYnV0ZVJlZhJHChRwcm9wZXJ0eV9jb25zdHJhaW50cxgGIAMoCzIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Qcm9wZXJ0eUNvbnN0cmFpbnQSPwoUYWxsb3dlZF9jb21tYW5kX3JlZnMYCSADKAsyIS5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQ29tbWFuZFJlZhI7ChJhbGxvd2VkX2V2ZW50X3JlZnMYCiADKAsyHy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuRXZlbnRSZWZKBAgFEAZSEmFsbG93ZWRfYXR0cmlidXRlcyLlAQoURWZmZWN0aXZlUGVybWlzc2lvbnMSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBI2CgpnYXRld2F5X2lkGAIgASgLMiIua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuR2F0ZXdheUlkEjUKC2RldmljZV9hY2xzGAMgAygLMiAua3VzaW50YS5pb3QuYWNjZXNzLnYxLkRldmljZUFjbBIsCgh2YWxpZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_identity_v1_identity, file_kusinta_iot_access_v1_roles]);
14
+ fileDesc("Ch9rdXNpbnRhL2lvdC9hY2Nlc3MvdjEvYWNsLnByb3RvEhVrdXNpbnRhLmlvdC5hY2Nlc3MudjEirgEKDEF0dHJpYnV0ZVJlZhIWCg5hdHRyaWJ1dGVfbmFtZRgBIAEoCRISCgpjbHVzdGVyX2lkGAIgASgNEhQKDGF0dHJpYnV0ZV9pZBgEIAEoDRIYCgtlbmRwb2ludF9pZBgDIAEoDUgAiAEBEh0KEHZlbmRvcl9leHRlbnNpb24YBSABKAlIAYgBAUIOCgxfZW5kcG9pbnRfaWRCEwoRX3ZlbmRvcl9leHRlbnNpb24iZQoKQ29tbWFuZFJlZhISCgpjbHVzdGVyX2lkGAEgASgNEhkKEW1hdHRlcl9jb21tYW5kX2lkGAIgASgNEhgKC2VuZHBvaW50X2lkGAMgASgNSACIAQFCDgoMX2VuZHBvaW50X2lkIloKCEV2ZW50UmVmEhIKCmNsdXN0ZXJfaWQYASABKA0SEAoIZXZlbnRfaWQYAiABKA0SGAoLZW5kcG9pbnRfaWQYAyABKA1IAIgBAUIOCgxfZW5kcG9pbnRfaWQi5wEKElByb3BlcnR5Q29uc3RyYWludBI2CglhdHRyaWJ1dGUYCCABKAsyIy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQXR0cmlidXRlUmVmEhEKB2ludF9tYXgYAiABKBFIABIRCgdpbnRfbWluGAMgASgRSAASEgoIdWludF9tYXgYBCABKA1IABISCgh1aW50X21pbhgFIAEoDUgAQgwKCmNvbnN0cmFpbnRKBAgBEAJKBAgGEAdKBAgHEAhSDmF0dHJpYnV0ZV9uYW1lUg5jbHVzdGVyX2lkX2hleFILZW5kcG9pbnRfaWQiwwQKCURldmljZUFjbBI0CglkZXZpY2VfaWQYASABKAsyIS5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5EZXZpY2VJZBIwCgd1c2VyX2lkGAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEikKBHJvbGUYAyABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZRJACg9hbGxvd2VkX2FjdGlvbnMYBCADKA4yJy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUGVybWlzc2lvbkFjdGlvbhJDChZhbGxvd2VkX2F0dHJpYnV0ZV9yZWZzGAcgAygLMiMua3VzaW50YS5pb3QuYWNjZXNzLnYxLkF0dHJpYnV0ZVJlZhJHChRwcm9wZXJ0eV9jb25zdHJhaW50cxgGIAMoCzIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Qcm9wZXJ0eUNvbnN0cmFpbnQSPwoUYWxsb3dlZF9jb21tYW5kX3JlZnMYCSADKAsyIS5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuQ29tbWFuZFJlZhI7ChJhbGxvd2VkX2V2ZW50X3JlZnMYCiADKAsyHy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuRXZlbnRSZWYSOwoIcmVsYXRpb24YCyABKA4yKS5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuTWVtYmVyc2hpcFJlbGF0aW9uSgQIBRAGUhJhbGxvd2VkX2F0dHJpYnV0ZXMi5QEKFEVmZmVjdGl2ZVBlcm1pc3Npb25zEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSNgoKZ2F0ZXdheV9pZBgCIAEoCzIiLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkdhdGV3YXlJZBI1CgtkZXZpY2VfYWNscxgDIAMoCzIgLmt1c2ludGEuaW90LmFjY2Vzcy52MS5EZXZpY2VBY2wSLAoIdmFsaWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKrQCCg1TZXJ2aWNlU2lnbmFsEh4KGlNFUlZJQ0VfU0lHTkFMX1VOU1BFQ0lGSUVEEAASHwobU0VSVklDRV9TSUdOQUxfUkVBQ0hBQklMSVRZEAESGgoWU0VSVklDRV9TSUdOQUxfQkFUVEVSWRACEh0KGVNFUlZJQ0VfU0lHTkFMX1JBRElPX0xJTksQAxIbChdTRVJWSUNFX1NJR05BTF9GSVJNV0FSRRAEEhgKFFNFUlZJQ0VfU0lHTkFMX0ZBVUxUEAUSGQoVU0VSVklDRV9TSUdOQUxfRklMSU5HEAYSHQoZU0VSVklDRV9TSUdOQUxfUk9PTV9TRVRVUBAHEhgKFFNFUlZJQ0VfU0lHTkFMX0xJTktTEAgSHAoYU0VSVklDRV9TSUdOQUxfUkVTSURFTlRTEAlCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
15
15
 
16
16
  /**
17
17
  * Describes the message kusinta.iot.access.v1.AttributeRef.
@@ -55,3 +55,20 @@ export const DeviceAclSchema = /*@__PURE__*/
55
55
  export const EffectivePermissionsSchema = /*@__PURE__*/
56
56
  messageDesc(file_kusinta_iot_access_v1_acl, 5);
57
57
 
58
+ /**
59
+ * Describes the enum kusinta.iot.access.v1.ServiceSignal.
60
+ */
61
+ export const ServiceSignalSchema = /*@__PURE__*/
62
+ enumDesc(file_kusinta_iot_access_v1_acl, 0);
63
+
64
+ /**
65
+ * What service sees of a home, as a resident is told it in webrtc.v1.PrivacyDisclosure.
66
+ * Each names part of a webrtc.v1.ServiceStatus, of a device's description, of how the
67
+ * home is set up, or of who lives there; with the climate summary the disclosure names
68
+ * separately, nothing else of the home reaches service.
69
+ *
70
+ * @generated from enum kusinta.iot.access.v1.ServiceSignal
71
+ */
72
+ export const ServiceSignal = /*@__PURE__*/
73
+ tsEnum(ServiceSignalSchema);
74
+
@@ -172,3 +172,105 @@ export enum PermissionAction {
172
172
  */
173
173
  export declare const PermissionActionSchema: GenEnum<PermissionAction>;
174
174
 
175
+ /**
176
+ * How a member stands to a space they are filed in. Held per membership — set by
177
+ * webrtc.v1.AssignUserToSpace — unlike Role, which is gateway-wide. The two are independent:
178
+ * a technician who lives in an apartment is filed on it as RESIDENT, and a resident who
179
+ * looks after a building's plant room is filed there as SERVICE. RESIDENT is refused on a
180
+ * room: a home's residents live in all of it.
181
+ *
182
+ * A HOME is an apartment and the rooms in it. What a user learns of a home depends on how
183
+ * they reach it; where several apply, the first wins:
184
+ *
185
+ * * As its resident — RESIDENT on the apartment. They see and operate everything filed
186
+ * in it, and its history from the start of their current residency, never before: a new
187
+ * tenant does not read the previous one's, nor learn when or by whom anything was
188
+ * changed before they moved in: every time from before that a home's rooms and devices
189
+ * carry — a reading's timestamp included — is unset for them, save a
190
+ * webrtc.v1.ServiceStatus, which always carries its times and so gives none before the first
191
+ * quarter hour of their residency, from that quarter hour on.
192
+ * * As service — SERVICE on the apartment, a room in it, or a building or floor above it,
193
+ * or as the gateway's administrator. Of the building's own devices in what they reach of
194
+ * the home — any
195
+ * device no person owns — they see what each is and a webrtc.v1.ServiceStatus,
196
+ * evaluated each quarter hour, and no reading, event or time of the device itself; they
197
+ * operate none of them. Of what they reach of the home — from the room they are filed
198
+ * on, or all of it — they see how its rooms are set up, with
199
+ * RoomClimate.state_withheld marking what is not shown, and its links with
200
+ * DeviceLink.details_withheld; modes on a home are not sent to them at all. Service
201
+ * that reaches the apartment itself also gets its climate summary over the disclosed
202
+ * period. What they newly see of the home reaches them at quarter hours; what they
203
+ * lose, at once.
204
+ * * Not at all — RESIDENT on a building or floor above it. Living in a building is not
205
+ * living in every apartment in it.
206
+ *
207
+ * What was recorded while a room or device was in a home stays with the home after it
208
+ * leaves: its history, and the times and people it carries from then, are never given to
209
+ * whoever reaches it later.
210
+ *
211
+ * A residency starts when a user is assigned RESIDENT on an apartment while not already its
212
+ * resident — a membership recorded with no relation included, so its holder starts afresh —
213
+ * and ends with any other change to that membership. Assigning RESIDENT to a resident
214
+ * changes nothing. A space becoming an apartment starts the residency of each RESIDENT
215
+ * member on it, and ceasing to be one ends it — though it releases no device: what is no
216
+ * longer a home holds nobody's devices for a next tenant. A device in a space becoming an
217
+ * apartment, owned by someone who is not to be its resident, is taken out of that space.
218
+ *
219
+ * A device filed in a home counts as in the home wherever else it is also filed, a device a
220
+ * resident owns included: reaching it through another space shows it to nobody. A link
221
+ * never joins a device in a home to one outside it. Outside homes the relation changes
222
+ * nothing: what is filed there is visible to whoever reaches it. A device owned as RESIDENT
223
+ * is the exception everywhere, whoever owns it: it is visible to its owner and the RESIDENT
224
+ * members filed on the space it is filed in — for a device in a home, the home's residents
225
+ * alone, wherever else it is filed; never those who merely reach a space from above — and
226
+ * to nobody else. An owner who stops living in the home it is filed in gives it up: it is
227
+ * released, with no owner, and stays filed in the home alone, as one of the building's own
228
+ * devices there. A device given up so, or released, then appears to service as any device
229
+ * newly in the home does, at a quarter hour; that much a release shows.
230
+ *
231
+ * Who may change a home's members, move its spaces or file devices into and out of it is
232
+ * restricted by the gateway, and a refused caller gets NOT_ENTITLED. This keeps a home's
233
+ * life — its readings, history and modes — from anyone but its residents by default; those
234
+ * who service the building get the service view above and no more. It does not keep the
235
+ * property owner or the administrator out by force — they hold the building's filing
236
+ * authority and the gateway itself — but it makes their seeing in a deliberate act on the
237
+ * home, such as filing themselves on it, rather than something handed out by default.
238
+ *
239
+ * A membership recorded with no relation, made before relations existed, sees no more than
240
+ * either relation would where it is held: on an apartment or a room, a home as service; on a
241
+ * building or floor, no home at all. It is listed with UNSPECIFIED so that it can be found
242
+ * and assigned again.
243
+ *
244
+ * @generated from enum kusinta.iot.access.v1.MembershipRelation
245
+ */
246
+ export enum MembershipRelation {
247
+ /**
248
+ * Names no relation. Invalid on a request, and refused rather than defaulted: which of
249
+ * the two a member is decides what they see of someone's home, and that must never be
250
+ * decided by an omission.
251
+ *
252
+ * @generated from enum value: MEMBERSHIP_RELATION_UNSPECIFIED = 0;
253
+ */
254
+ UNSPECIFIED = 0,
255
+
256
+ /**
257
+ * Lives there.
258
+ *
259
+ * @generated from enum value: MEMBERSHIP_RELATION_RESIDENT = 1;
260
+ */
261
+ RESIDENT = 1,
262
+
263
+ /**
264
+ * Is there for the building rather than to live in it: its owner's people, a technician,
265
+ * the gateway's administrator.
266
+ *
267
+ * @generated from enum value: MEMBERSHIP_RELATION_SERVICE = 2;
268
+ */
269
+ SERVICE = 2,
270
+ }
271
+
272
+ /**
273
+ * Describes the enum kusinta.iot.access.v1.MembershipRelation.
274
+ */
275
+ export declare const MembershipRelationSchema: GenEnum<MembershipRelation>;
276
+
@@ -8,7 +8,7 @@ import { enumDesc, fileDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
8
8
  * Describes the file kusinta/iot/access/v1/roles.proto.
9
9
  */
10
10
  export const file_kusinta_iot_access_v1_roles = /*@__PURE__*/
11
- fileDesc("CiFrdXNpbnRhL2lvdC9hY2Nlc3MvdjEvcm9sZXMucHJvdG8SFWt1c2ludGEuaW90LmFjY2Vzcy52MSp1CgRSb2xlEhQKEFJPTEVfVU5TUEVDSUZJRUQQABIRCg1ST0xFX1JFU0lERU5UEAESFwoTUk9MRV9QUk9QRVJUWV9PV05FUhACEhMKD1JPTEVfVEVDSE5JQ0lBThADEhYKElJPTEVfR0FURVdBWV9BRE1JThAEKq0BChBQZXJtaXNzaW9uQWN0aW9uEiEKHVBFUk1JU1NJT05fQUNUSU9OX1VOU1BFQ0lGSUVEEAASGgoWUEVSTUlTU0lPTl9BQ1RJT05fUkVBRBABEhsKF1BFUk1JU1NJT05fQUNUSU9OX1dSSVRFEAISHwobUEVSTUlTU0lPTl9BQ1RJT05fU1VCU0NSSUJFEAMSHAoYUEVSTUlTU0lPTl9BQ1RJT05fSU5WT0tFEARCAkgBYgZwcm90bzM");
11
+ fileDesc("CiFrdXNpbnRhL2lvdC9hY2Nlc3MvdjEvcm9sZXMucHJvdG8SFWt1c2ludGEuaW90LmFjY2Vzcy52MSp1CgRSb2xlEhQKEFJPTEVfVU5TUEVDSUZJRUQQABIRCg1ST0xFX1JFU0lERU5UEAESFwoTUk9MRV9QUk9QRVJUWV9PV05FUhACEhMKD1JPTEVfVEVDSE5JQ0lBThADEhYKElJPTEVfR0FURVdBWV9BRE1JThAEKq0BChBQZXJtaXNzaW9uQWN0aW9uEiEKHVBFUk1JU1NJT05fQUNUSU9OX1VOU1BFQ0lGSUVEEAASGgoWUEVSTUlTU0lPTl9BQ1RJT05fUkVBRBABEhsKF1BFUk1JU1NJT05fQUNUSU9OX1dSSVRFEAISHwobUEVSTUlTU0lPTl9BQ1RJT05fU1VCU0NSSUJFEAMSHAoYUEVSTUlTU0lPTl9BQ1RJT05fSU5WT0tFEAQqfAoSTWVtYmVyc2hpcFJlbGF0aW9uEiMKH01FTUJFUlNISVBfUkVMQVRJT05fVU5TUEVDSUZJRUQQABIgChxNRU1CRVJTSElQX1JFTEFUSU9OX1JFU0lERU5UEAESHwobTUVNQkVSU0hJUF9SRUxBVElPTl9TRVJWSUNFEAJCAkgBYgZwcm90bzM");
12
12
 
13
13
  /**
14
14
  * Describes the enum kusinta.iot.access.v1.Role.
@@ -70,3 +70,83 @@ export const PermissionActionSchema = /*@__PURE__*/
70
70
  export const PermissionAction = /*@__PURE__*/
71
71
  tsEnum(PermissionActionSchema);
72
72
 
73
+ /**
74
+ * Describes the enum kusinta.iot.access.v1.MembershipRelation.
75
+ */
76
+ export const MembershipRelationSchema = /*@__PURE__*/
77
+ enumDesc(file_kusinta_iot_access_v1_roles, 2);
78
+
79
+ /**
80
+ * How a member stands to a space they are filed in. Held per membership — set by
81
+ * webrtc.v1.AssignUserToSpace — unlike Role, which is gateway-wide. The two are independent:
82
+ * a technician who lives in an apartment is filed on it as RESIDENT, and a resident who
83
+ * looks after a building's plant room is filed there as SERVICE. RESIDENT is refused on a
84
+ * room: a home's residents live in all of it.
85
+ *
86
+ * A HOME is an apartment and the rooms in it. What a user learns of a home depends on how
87
+ * they reach it; where several apply, the first wins:
88
+ *
89
+ * * As its resident — RESIDENT on the apartment. They see and operate everything filed
90
+ * in it, and its history from the start of their current residency, never before: a new
91
+ * tenant does not read the previous one's, nor learn when or by whom anything was
92
+ * changed before they moved in: every time from before that a home's rooms and devices
93
+ * carry — a reading's timestamp included — is unset for them, save a
94
+ * webrtc.v1.ServiceStatus, which always carries its times and so gives none before the first
95
+ * quarter hour of their residency, from that quarter hour on.
96
+ * * As service — SERVICE on the apartment, a room in it, or a building or floor above it,
97
+ * or as the gateway's administrator. Of the building's own devices in what they reach of
98
+ * the home — any
99
+ * device no person owns — they see what each is and a webrtc.v1.ServiceStatus,
100
+ * evaluated each quarter hour, and no reading, event or time of the device itself; they
101
+ * operate none of them. Of what they reach of the home — from the room they are filed
102
+ * on, or all of it — they see how its rooms are set up, with
103
+ * RoomClimate.state_withheld marking what is not shown, and its links with
104
+ * DeviceLink.details_withheld; modes on a home are not sent to them at all. Service
105
+ * that reaches the apartment itself also gets its climate summary over the disclosed
106
+ * period. What they newly see of the home reaches them at quarter hours; what they
107
+ * lose, at once.
108
+ * * Not at all — RESIDENT on a building or floor above it. Living in a building is not
109
+ * living in every apartment in it.
110
+ *
111
+ * What was recorded while a room or device was in a home stays with the home after it
112
+ * leaves: its history, and the times and people it carries from then, are never given to
113
+ * whoever reaches it later.
114
+ *
115
+ * A residency starts when a user is assigned RESIDENT on an apartment while not already its
116
+ * resident — a membership recorded with no relation included, so its holder starts afresh —
117
+ * and ends with any other change to that membership. Assigning RESIDENT to a resident
118
+ * changes nothing. A space becoming an apartment starts the residency of each RESIDENT
119
+ * member on it, and ceasing to be one ends it — though it releases no device: what is no
120
+ * longer a home holds nobody's devices for a next tenant. A device in a space becoming an
121
+ * apartment, owned by someone who is not to be its resident, is taken out of that space.
122
+ *
123
+ * A device filed in a home counts as in the home wherever else it is also filed, a device a
124
+ * resident owns included: reaching it through another space shows it to nobody. A link
125
+ * never joins a device in a home to one outside it. Outside homes the relation changes
126
+ * nothing: what is filed there is visible to whoever reaches it. A device owned as RESIDENT
127
+ * is the exception everywhere, whoever owns it: it is visible to its owner and the RESIDENT
128
+ * members filed on the space it is filed in — for a device in a home, the home's residents
129
+ * alone, wherever else it is filed; never those who merely reach a space from above — and
130
+ * to nobody else. An owner who stops living in the home it is filed in gives it up: it is
131
+ * released, with no owner, and stays filed in the home alone, as one of the building's own
132
+ * devices there. A device given up so, or released, then appears to service as any device
133
+ * newly in the home does, at a quarter hour; that much a release shows.
134
+ *
135
+ * Who may change a home's members, move its spaces or file devices into and out of it is
136
+ * restricted by the gateway, and a refused caller gets NOT_ENTITLED. This keeps a home's
137
+ * life — its readings, history and modes — from anyone but its residents by default; those
138
+ * who service the building get the service view above and no more. It does not keep the
139
+ * property owner or the administrator out by force — they hold the building's filing
140
+ * authority and the gateway itself — but it makes their seeing in a deliberate act on the
141
+ * home, such as filing themselves on it, rather than something handed out by default.
142
+ *
143
+ * A membership recorded with no relation, made before relations existed, sees no more than
144
+ * either relation would where it is held: on an apartment or a room, a home as service; on a
145
+ * building or floor, no home at all. It is listed with UNSPECIFIED so that it can be found
146
+ * and assigned again.
147
+ *
148
+ * @generated from enum kusinta.iot.access.v1.MembershipRelation
149
+ */
150
+ export const MembershipRelation = /*@__PURE__*/
151
+ tsEnum(MembershipRelationSchema);
152
+