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

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 (69) hide show
  1. package/package.json +42 -28
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +138 -2
  3. package/src/kusinta/iot/access/v1/acl_pb.js +19 -2
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +160 -4
  5. package/src/kusinta/iot/access/v1/roles_pb.js +128 -5
  6. package/src/kusinta/iot/accountlink/v1/account_link_pb.d.ts +591 -0
  7. package/src/kusinta/iot/accountlink/v1/account_link_pb.js +160 -0
  8. package/src/kusinta/iot/climate/v1/climate_pb.d.ts +1495 -0
  9. package/src/kusinta/iot/climate/v1/climate_pb.js +278 -0
  10. package/src/kusinta/iot/commissioning/v1/commissioning_pb.d.ts +1359 -0
  11. package/src/kusinta/iot/commissioning/v1/commissioning_pb.js +282 -0
  12. package/src/kusinta/iot/common/v1/pairing_pb.d.ts +219 -0
  13. package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
  14. package/src/kusinta/iot/common/v1/types_pb.d.ts +235 -0
  15. package/src/kusinta/iot/common/v1/types_pb.js +84 -2
  16. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +874 -3
  17. package/src/kusinta/iot/connector/v1/connector_pb.js +126 -13
  18. package/src/kusinta/iot/device/v1/cluster_state_pb.d.ts +213 -1
  19. package/src/kusinta/iot/device/v1/cluster_state_pb.js +37 -2
  20. package/src/kusinta/iot/device/v1/descriptor_pb.d.ts +32 -4
  21. package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
  22. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +89 -5
  23. package/src/kusinta/iot/device/v1/device_event_pb.js +1 -1
  24. package/src/kusinta/iot/device/v1/device_pb.d.ts +426 -11
  25. package/src/kusinta/iot/device/v1/device_pb.js +74 -2
  26. package/src/kusinta/iot/device/v1/properties_pb.d.ts +26 -5
  27. package/src/kusinta/iot/device/v1/properties_pb.js +1 -1
  28. package/src/kusinta/iot/device/v1/property_update_pb.d.ts +42 -2
  29. package/src/kusinta/iot/device/v1/property_update_pb.js +2 -1
  30. package/src/kusinta/iot/heating/v1/heating_pb.d.ts +656 -0
  31. package/src/kusinta/iot/heating/v1/heating_pb.js +119 -0
  32. package/src/kusinta/iot/link/v1/link_pb.d.ts +438 -0
  33. package/src/kusinta/iot/link/v1/link_pb.js +121 -0
  34. package/src/kusinta/iot/registration/v1/registration_pb.d.ts +18 -0
  35. package/src/kusinta/iot/registration/v1/registration_pb.js +1 -1
  36. package/src/kusinta/iot/reporting/v1/reporting_pb.d.ts +1251 -0
  37. package/src/kusinta/iot/reporting/v1/reporting_pb.js +238 -0
  38. package/src/kusinta/iot/reporting/v1/reporting_service_pb.d.ts +63 -0
  39. package/src/kusinta/iot/reporting/v1/reporting_service_pb.js +24 -0
  40. package/src/kusinta/iot/signaling/v1/signaling_pb.d.ts +939 -7
  41. package/src/kusinta/iot/signaling/v1/signaling_pb.js +163 -4
  42. package/src/kusinta/iot/signaling/v1/signaling_service_pb.d.ts +24 -1
  43. package/src/kusinta/iot/signaling/v1/signaling_service_pb.js +1 -1
  44. package/src/kusinta/iot/space/v1/space_pb.d.ts +146 -2
  45. package/src/kusinta/iot/space/v1/space_pb.js +10 -1
  46. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.d.ts +15 -0
  47. package/src/kusinta/iot/vendor/homematic/v1/homematic_pb.js +1 -1
  48. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.d.ts +69 -0
  49. package/src/kusinta/iot/vendor/lorawan/v1/lorawan_pb.js +19 -0
  50. package/src/kusinta/iot/vendor/v1/vendor_options_pb.d.ts +5 -4
  51. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +5 -4
  52. package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +48 -5
  53. package/src/kusinta/iot/webrtc/v1/app_token_pb.js +1 -1
  54. package/src/kusinta/iot/webrtc/v1/command_pb.d.ts +56 -0
  55. package/src/kusinta/iot/webrtc/v1/command_pb.js +1 -1
  56. package/src/kusinta/iot/webrtc/v1/device_state_pb.d.ts +179 -5
  57. package/src/kusinta/iot/webrtc/v1/device_state_pb.js +34 -5
  58. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +732 -3
  59. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +84 -4
  60. package/src/kusinta/iot/webrtc/v1/household_pb.d.ts +612 -0
  61. package/src/kusinta/iot/webrtc/v1/household_pb.js +134 -0
  62. package/src/kusinta/iot/webrtc/v1/invite_pb.d.ts +502 -0
  63. package/src/kusinta/iot/webrtc/v1/invite_pb.js +108 -0
  64. package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +2183 -76
  65. package/src/kusinta/iot/webrtc/v1/management_pb.js +311 -5
  66. package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +582 -0
  67. package/src/kusinta/iot/webrtc/v1/members_pb.js +113 -0
  68. package/src/kusinta/iot/webrtc/v1/permission_push_pb.d.ts +66 -4
  69. package/src/kusinta/iot/webrtc/v1/permission_push_pb.js +9 -1
@@ -0,0 +1,134 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/webrtc/v1/household.proto (package kusinta.iot.webrtc.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_climate_v1_climate } from "../../climate/v1/climate_pb.js";
8
+ import { file_kusinta_iot_commissioning_v1_commissioning } from "../../commissioning/v1/commissioning_pb.js";
9
+ import { file_kusinta_iot_heating_v1_heating } from "../../heating/v1/heating_pb.js";
10
+ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
11
+
12
+ /**
13
+ * Describes the file kusinta/iot/webrtc/v1/household.proto.
14
+ */
15
+ export const file_kusinta_iot_webrtc_v1_household = /*@__PURE__*/
16
+ fileDesc("CiVrdXNpbnRhL2lvdC93ZWJydGMvdjEvaG91c2Vob2xkLnByb3RvEhVrdXNpbnRhLmlvdC53ZWJydGMudjEiewoURGVtb3RlSG91c2Vob2xkQWRtaW4SMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSMAoHdXNlcl9pZBgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZCL7AQoQU3RhZmZBcHBvaW50bWVudBIyCglhcHBvaW50ZWUYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSNQoMYXBwb2ludGVkX2J5GAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEhkKEWFwcG9pbnRlZF9ieV9uYW1lGAMgASgJEiYKAmF0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI5CgRraW5kGAUgASgOMisua3VzaW50YS5pb3Qud2VicnRjLnYxLlN0YWZmQXBwb2ludG1lbnRLaW5kIksKFlN0YXJ0SG91c2Vob2xkSGFuZG92ZXISMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQiLwoYQ29uZmlybUhvdXNlaG9sZEhhbmRvdmVyEhMKC2hhbmRvdmVyX2lkGAEgASgJIi4KF0NhbmNlbEhvdXNlaG9sZEhhbmRvdmVyEhMKC2hhbmRvdmVyX2lkGAEgASgJIlEKFkxpc3RIb3VzZWhvbGRIYW5kb3ZlcnMSNwoNcm9vdF9zcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQipQQKEUhvdXNlaG9sZEhhbmRvdmVyEhMKC2hhbmRvdmVyX2lkGAEgASgJEjEKB2hvbWVfaWQYAiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjwKBXN0YXRlGAMgASgOMi0ua3VzaW50YS5pb3Qud2VicnRjLnYxLkhvdXNlaG9sZEhhbmRvdmVyU3RhdGUSMwoKc3RhcnRlZF9ieRgEIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIXCg9zdGFydGVkX2J5X25hbWUYBSABKAkSGAoQc3RhcnRlZF9ieV9zdGFmZhgGIAEoCBIuCgpzdGFydGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZzdGFmZl9jb25maXJtYWJsZV9mcm9tGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdmFjYXRlZBgKIAEoCBIeChZyZWNpcGllbnRfaW5faG91c2Vob2xkGAsgASgIEiEKGXJlY2lwaWVudF9ob3VzZWhvbGRfYWRtaW4YDCABKAgSGgoSbWF5X2VuZF9vbl9tb3ZlX2luGA0gASgIEhgKEGVuZGVkX2J5X21vdmVfaW4YDiABKAgiSAoTQ2xlYXJDbGltYXRlSGlzdG9yeRIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZCJ6ChVDbGltYXRlSGlzdG9yeUNsZWFyZWQSMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSLgoKY2xlYXJlZF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiTgoLU2V0SG9tZU5hbWUSMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSDAoEbmFtZRgCIAEoCSJRChJIb3VzZWhvbGRIYW5kb3ZlcnMSOwoJaGFuZG92ZXJzGAEgAygLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLkhvdXNlaG9sZEhhbmRvdmVyIlwKE0V4cG9ydEhvdXNlaG9sZERhdGESMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSEgoKcGFydF90b2tlbhgCIAEoCSK3AwoPSG91c2Vob2xkRXhwb3J0EjEKB2hvbWVfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEkAKDXJvb21fY2xpbWF0ZXMYAiABKAsyJy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLlJvb21DbGltYXRlTGlzdEgAEjsKDHJvb21faGlzdG9yeRgDIAEoCzIjLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUhpc3RvcnlIABJKCg9jbGltYXRlX3N1bW1hcnkYBCABKAsyLy5rdXNpbnRhLmlvdC5jbGltYXRlLnYxLkFwYXJ0bWVudENsaW1hdGVTdW1tYXJ5SAASSwoNY29tbWlzc2lvbmluZxgFIAEoCzIyLmt1c2ludGEuaW90LmNvbW1pc3Npb25pbmcudjEuQ29tbWlzc2lvbmluZ1Byb2ZpbGVIABI4CgdoZWF0aW5nGAYgASgLMiUua3VzaW50YS5pb3QuaGVhdGluZy52MS5IZWF0aW5nTGF5b3V0SAASFwoPbmV4dF9wYXJ0X3Rva2VuGAcgASgJQgYKBHBhcnQqhwEKFFN0YWZmQXBwb2ludG1lbnRLaW5kEiYKIlNUQUZGX0FQUE9JTlRNRU5UX0tJTkRfVU5TUEVDSUZJRUQQABIhCh1TVEFGRl9BUFBPSU5UTUVOVF9LSU5EX0lOVklURRABEiQKIFNUQUZGX0FQUE9JTlRNRU5UX0tJTkRfUFJPTU9USU9OEAIqswEKFkhvdXNlaG9sZEhhbmRvdmVyU3RhdGUSKAokSE9VU0VIT0xEX0hBTkRPVkVSX1NUQVRFX1VOU1BFQ0lGSUVEEAASJAogSE9VU0VIT0xEX0hBTkRPVkVSX1NUQVRFX1BFTkRJTkcQARImCiJIT1VTRUhPTERfSEFORE9WRVJfU1RBVEVfQ0FOQ0VMTEVEEAISIQodSE9VU0VIT0xEX0hBTkRPVkVSX1NUQVRFX0RPTkUQA0ICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_climate_v1_climate, file_kusinta_iot_commissioning_v1_commissioning, file_kusinta_iot_heating_v1_heating, file_kusinta_iot_identity_v1_identity]);
17
+
18
+ /**
19
+ * Describes the message kusinta.iot.webrtc.v1.DemoteHouseholdAdmin.
20
+ * Use `create(DemoteHouseholdAdminSchema)` to create a new message.
21
+ */
22
+ export const DemoteHouseholdAdminSchema = /*@__PURE__*/
23
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 0);
24
+
25
+ /**
26
+ * Describes the message kusinta.iot.webrtc.v1.StaffAppointment.
27
+ * Use `create(StaffAppointmentSchema)` to create a new message.
28
+ */
29
+ export const StaffAppointmentSchema = /*@__PURE__*/
30
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 1);
31
+
32
+ /**
33
+ * Describes the message kusinta.iot.webrtc.v1.StartHouseholdHandover.
34
+ * Use `create(StartHouseholdHandoverSchema)` to create a new message.
35
+ */
36
+ export const StartHouseholdHandoverSchema = /*@__PURE__*/
37
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 2);
38
+
39
+ /**
40
+ * Describes the message kusinta.iot.webrtc.v1.ConfirmHouseholdHandover.
41
+ * Use `create(ConfirmHouseholdHandoverSchema)` to create a new message.
42
+ */
43
+ export const ConfirmHouseholdHandoverSchema = /*@__PURE__*/
44
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 3);
45
+
46
+ /**
47
+ * Describes the message kusinta.iot.webrtc.v1.CancelHouseholdHandover.
48
+ * Use `create(CancelHouseholdHandoverSchema)` to create a new message.
49
+ */
50
+ export const CancelHouseholdHandoverSchema = /*@__PURE__*/
51
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 4);
52
+
53
+ /**
54
+ * Describes the message kusinta.iot.webrtc.v1.ListHouseholdHandovers.
55
+ * Use `create(ListHouseholdHandoversSchema)` to create a new message.
56
+ */
57
+ export const ListHouseholdHandoversSchema = /*@__PURE__*/
58
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 5);
59
+
60
+ /**
61
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdHandover.
62
+ * Use `create(HouseholdHandoverSchema)` to create a new message.
63
+ */
64
+ export const HouseholdHandoverSchema = /*@__PURE__*/
65
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 6);
66
+
67
+ /**
68
+ * Describes the message kusinta.iot.webrtc.v1.ClearClimateHistory.
69
+ * Use `create(ClearClimateHistorySchema)` to create a new message.
70
+ */
71
+ export const ClearClimateHistorySchema = /*@__PURE__*/
72
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 7);
73
+
74
+ /**
75
+ * Describes the message kusinta.iot.webrtc.v1.ClimateHistoryCleared.
76
+ * Use `create(ClimateHistoryClearedSchema)` to create a new message.
77
+ */
78
+ export const ClimateHistoryClearedSchema = /*@__PURE__*/
79
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 8);
80
+
81
+ /**
82
+ * Describes the message kusinta.iot.webrtc.v1.SetHomeName.
83
+ * Use `create(SetHomeNameSchema)` to create a new message.
84
+ */
85
+ export const SetHomeNameSchema = /*@__PURE__*/
86
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 9);
87
+
88
+ /**
89
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdHandovers.
90
+ * Use `create(HouseholdHandoversSchema)` to create a new message.
91
+ */
92
+ export const HouseholdHandoversSchema = /*@__PURE__*/
93
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 10);
94
+
95
+ /**
96
+ * Describes the message kusinta.iot.webrtc.v1.ExportHouseholdData.
97
+ * Use `create(ExportHouseholdDataSchema)` to create a new message.
98
+ */
99
+ export const ExportHouseholdDataSchema = /*@__PURE__*/
100
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 11);
101
+
102
+ /**
103
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdExport.
104
+ * Use `create(HouseholdExportSchema)` to create a new message.
105
+ */
106
+ export const HouseholdExportSchema = /*@__PURE__*/
107
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 12);
108
+
109
+ /**
110
+ * Describes the enum kusinta.iot.webrtc.v1.StaffAppointmentKind.
111
+ */
112
+ export const StaffAppointmentKindSchema = /*@__PURE__*/
113
+ enumDesc(file_kusinta_iot_webrtc_v1_household, 0);
114
+
115
+ /**
116
+ * How a staff member appointed a household admin (STAFF APPOINTMENT).
117
+ *
118
+ * @generated from enum kusinta.iot.webrtc.v1.StaffAppointmentKind
119
+ */
120
+ export const StaffAppointmentKind = /*@__PURE__*/
121
+ tsEnum(StaffAppointmentKindSchema);
122
+
123
+ /**
124
+ * Describes the enum kusinta.iot.webrtc.v1.HouseholdHandoverState.
125
+ */
126
+ export const HouseholdHandoverStateSchema = /*@__PURE__*/
127
+ enumDesc(file_kusinta_iot_webrtc_v1_household, 1);
128
+
129
+ /**
130
+ * @generated from enum kusinta.iot.webrtc.v1.HouseholdHandoverState
131
+ */
132
+ export const HouseholdHandoverState = /*@__PURE__*/
133
+ tsEnum(HouseholdHandoverStateSchema);
134
+
@@ -0,0 +1,502 @@
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=js+dts,import_extension=js"
2
+ // @generated from file kusinta/iot/webrtc/v1/invite.proto (package kusinta.iot.webrtc.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 { SpaceId, UserId } from "../../identity/v1/identity_pb.js";
8
+ import type { MembershipRelation } from "../../access/v1/roles_pb.js";
9
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
+
11
+ /**
12
+ * Describes the file kusinta/iot/webrtc/v1/invite.proto.
13
+ */
14
+ export declare const file_kusinta_iot_webrtc_v1_invite: GenFile;
15
+
16
+ /**
17
+ * Creates an invite on a space.
18
+ *
19
+ * relation is RESIDENT, SERVICE or HOUSEHOLD_ADMIN and nothing else, and it decides the role
20
+ * the person will hold: a resident for RESIDENT and HOUSEHOLD_ADMIN, a technician for SERVICE.
21
+ * RESIDENT is refused anywhere but a home (access.v1.MembershipRelation). HOUSEHOLD_ADMIN is
22
+ * a staff appointment, from a caller holding ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, on an
23
+ * empty home only, and refused as household.proto (STAFF APPOINTMENT) says; it never takes
24
+ * access_until. It must be bound to an address: one with no email is refused as
25
+ * INVALID_REQUEST with metadata {"reason": "email_required"}, and is never made a home key. No invite ever makes anyone a gateway administrator or a property owner:
26
+ * those come only by promotion of someone already a member, and any other relation is refused
27
+ * as INVALID_REQUEST.
28
+ *
29
+ * Who may create one is the gateway's decision, as for AssignUserToSpace. The gateway may
30
+ * let a home's household admins invite residents into their own home only, within a limit per
31
+ * home; a resident who is not a household admin may not (household.proto). A caller over that
32
+ * limit is refused as FAILED_PRECONDITION with metadata {"reason": "household_full"}.
33
+ *
34
+ * Whether a RESIDENT invite with no address is a home key or a household invite (see the
35
+ * file header) is decided by who creates it, never asked for: a home key when the caller
36
+ * holds ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, whether or not they live in the home; a
37
+ * household invite when the caller creates it as a household admin of the home.
38
+ *
39
+ * A gateway holds at most 5000 invites whose secrets it reports
40
+ * (reporting.v1.ReportInviteRoutesRequest), used ones included until their secrets
41
+ * expire. Past that, CreateInvite MUST be refused as FAILED_PRECONDITION with metadata
42
+ * {"reason": "too_many_invites"}, so no invite exists that the api-server cannot route.
43
+ *
44
+ * Answered with IssuedInvite.
45
+ *
46
+ * @generated from message kusinta.iot.webrtc.v1.CreateInvite
47
+ */
48
+ export declare type CreateInvite = Message<"kusinta.iot.webrtc.v1.CreateInvite"> & {
49
+ /**
50
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
51
+ */
52
+ spaceId?: SpaceId | undefined;
53
+
54
+ /**
55
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 2;
56
+ */
57
+ relation: MembershipRelation;
58
+
59
+ /**
60
+ * When set, the invite is bound to this address: only an account whose verified email
61
+ * is this address can redeem it (see RedeemInvite). Compared trimmed and
62
+ * case-insensitively over the whole address, with no other folding.
63
+ *
64
+ * One pending invite per space and address: a second for the same address on the same
65
+ * space is refused as FAILED_PRECONDITION with metadata {"reason": "already_invited",
66
+ * "invite_id": <the pending one>}, so the app can offer to resend that one instead. A
67
+ * household invite and one made by a property owner or an administrator are counted
68
+ * apart, so the refusal never names an invite the caller is not shown (ListSpaceInvites).
69
+ *
70
+ * The gateway keeps the address only while the invite is pending, and drops it once the
71
+ * invite is redeemed, revoked or expired.
72
+ *
73
+ * @generated from field: string email = 3;
74
+ */
75
+ email: string;
76
+
77
+ /**
78
+ * When the technician's access ends, as SetAccessUntil describes it. SERVICE only: set
79
+ * on a RESIDENT invite it is INVALID_REQUEST, as is a time not after now. Unset for no
80
+ * end. Both secrets expire no later than it.
81
+ *
82
+ * It reaches only someone the redeem, or the approval of the join request it makes, makes
83
+ * a technician: a user who held no role but ROLE_RESIDENT before and is not a vouched
84
+ * administrator. For anyone else it is ignored, so an invite can neither
85
+ * shorten nor lengthen a member's access, nor put an end on a property owner or an
86
+ * administrator. A join request the invite makes expires no later than it.
87
+ *
88
+ * @generated from field: google.protobuf.Timestamp access_until = 4;
89
+ */
90
+ accessUntil?: Timestamp | undefined;
91
+ };
92
+
93
+ /**
94
+ * Describes the message kusinta.iot.webrtc.v1.CreateInvite.
95
+ * Use `create(CreateInviteSchema)` to create a new message.
96
+ */
97
+ export declare const CreateInviteSchema: GenMessage<CreateInvite>;
98
+
99
+ /**
100
+ * Gives a pending invite new secrets. The old token and code stop working at once, so
101
+ * only the newest link, code or email does. Both expiries restart from now. Answered
102
+ * with IssuedInvite. An invite's bound address cannot be changed: revoke it and create
103
+ * another.
104
+ *
105
+ * @generated from message kusinta.iot.webrtc.v1.ResendInvite
106
+ */
107
+ export declare type ResendInvite = Message<"kusinta.iot.webrtc.v1.ResendInvite"> & {
108
+ /**
109
+ * @generated from field: string invite_id = 1;
110
+ */
111
+ inviteId: string;
112
+ };
113
+
114
+ /**
115
+ * Describes the message kusinta.iot.webrtc.v1.ResendInvite.
116
+ * Use `create(ResendInviteSchema)` to create a new message.
117
+ */
118
+ export declare const ResendInviteSchema: GenMessage<ResendInvite>;
119
+
120
+ /**
121
+ * Ends a pending invite: neither secret works from now on. Answered with ManagementAck.
122
+ *
123
+ * @generated from message kusinta.iot.webrtc.v1.RevokeInvite
124
+ */
125
+ export declare type RevokeInvite = Message<"kusinta.iot.webrtc.v1.RevokeInvite"> & {
126
+ /**
127
+ * @generated from field: string invite_id = 1;
128
+ */
129
+ inviteId: string;
130
+ };
131
+
132
+ /**
133
+ * Describes the message kusinta.iot.webrtc.v1.RevokeInvite.
134
+ * Use `create(RevokeInviteSchema)` to create a new message.
135
+ */
136
+ export declare const RevokeInviteSchema: GenMessage<RevokeInvite>;
137
+
138
+ /**
139
+ * Records that the email carrying this invite's newest secrets was sent, so the list can
140
+ * say whether it ever left. Sent by the app after the api-server has accepted the email,
141
+ * and again after each resend. Only the time is kept. Answered with ManagementAck.
142
+ *
143
+ * @generated from message kusinta.iot.webrtc.v1.MarkInviteEmailSent
144
+ */
145
+ export declare type MarkInviteEmailSent = Message<"kusinta.iot.webrtc.v1.MarkInviteEmailSent"> & {
146
+ /**
147
+ * @generated from field: string invite_id = 1;
148
+ */
149
+ inviteId: string;
150
+ };
151
+
152
+ /**
153
+ * Describes the message kusinta.iot.webrtc.v1.MarkInviteEmailSent.
154
+ * Use `create(MarkInviteEmailSentSchema)` to create a new message.
155
+ */
156
+ export declare const MarkInviteEmailSentSchema: GenMessage<MarkInviteEmailSent>;
157
+
158
+ /**
159
+ * The pending invites and join requests of a space. Answered with SpaceInvites. Listed
160
+ * only to a caller who may create invites on the space; anyone else is refused as
161
+ * NOT_ENTITLED. A household admin is listed only the invites a resident of their home made,
162
+ * and the join requests those made: nothing they cannot act on.
163
+ *
164
+ * A household invite, and the join requests it made, are listed only to the household admins
165
+ * of that home, a property owner or an administrator included only if they live there:
166
+ * otherwise Invite.created_by and JoinRequest.invited_by would say where its maker lives.
167
+ *
168
+ * @generated from message kusinta.iot.webrtc.v1.ListSpaceInvites
169
+ */
170
+ export declare type ListSpaceInvites = Message<"kusinta.iot.webrtc.v1.ListSpaceInvites"> & {
171
+ /**
172
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
173
+ */
174
+ spaceId?: SpaceId | undefined;
175
+ };
176
+
177
+ /**
178
+ * Describes the message kusinta.iot.webrtc.v1.ListSpaceInvites.
179
+ * Use `create(ListSpaceInvitesSchema)` to create a new message.
180
+ */
181
+ export declare const ListSpaceInvitesSchema: GenMessage<ListSpaceInvites>;
182
+
183
+ /**
184
+ * Files the person who made a join request on its space, with its relation, and the role
185
+ * that relation gives. Answered with ManagementAck.
186
+ *
187
+ * Who may approve is the gateway's decision, by the kind of invite the request came from
188
+ * (see the file header): for a household invite, a household admin of that home alone, and
189
+ * not a property owner or an administrator who does not live there; for a SERVICE invite with no
190
+ * address, whoever may put people on that space. Anyone else is refused as NOT_ENTITLED.
191
+ *
192
+ * @generated from message kusinta.iot.webrtc.v1.ApproveJoinRequest
193
+ */
194
+ export declare type ApproveJoinRequest = Message<"kusinta.iot.webrtc.v1.ApproveJoinRequest"> & {
195
+ /**
196
+ * @generated from field: string request_id = 1;
197
+ */
198
+ requestId: string;
199
+ };
200
+
201
+ /**
202
+ * Describes the message kusinta.iot.webrtc.v1.ApproveJoinRequest.
203
+ * Use `create(ApproveJoinRequestSchema)` to create a new message.
204
+ */
205
+ export declare const ApproveJoinRequestSchema: GenMessage<ApproveJoinRequest>;
206
+
207
+ /**
208
+ * Drops a join request. The person is told nothing beyond never being let in. Answered
209
+ * with ManagementAck. Who may deny is who may approve (ApproveJoinRequest).
210
+ *
211
+ * @generated from message kusinta.iot.webrtc.v1.DenyJoinRequest
212
+ */
213
+ export declare type DenyJoinRequest = Message<"kusinta.iot.webrtc.v1.DenyJoinRequest"> & {
214
+ /**
215
+ * @generated from field: string request_id = 1;
216
+ */
217
+ requestId: string;
218
+ };
219
+
220
+ /**
221
+ * Describes the message kusinta.iot.webrtc.v1.DenyJoinRequest.
222
+ * Use `create(DenyJoinRequestSchema)` to create a new message.
223
+ */
224
+ export declare const DenyJoinRequestSchema: GenMessage<DenyJoinRequest>;
225
+
226
+ /**
227
+ * A pending invite, as listed. Never carries a secret: the gateway does not keep them.
228
+ *
229
+ * @generated from message kusinta.iot.webrtc.v1.Invite
230
+ */
231
+ export declare type Invite = Message<"kusinta.iot.webrtc.v1.Invite"> & {
232
+ /**
233
+ * Minted by the gateway, opaque.
234
+ *
235
+ * @generated from field: string invite_id = 1;
236
+ */
237
+ inviteId: string;
238
+
239
+ /**
240
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 2;
241
+ */
242
+ spaceId?: SpaceId | undefined;
243
+
244
+ /**
245
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 3;
246
+ */
247
+ relation: MembershipRelation;
248
+
249
+ /**
250
+ * Who created it, and when. A resend changes neither.
251
+ *
252
+ * @generated from field: kusinta.iot.identity.v1.UserId created_by = 4;
253
+ */
254
+ createdBy?: UserId | undefined;
255
+
256
+ /**
257
+ * @generated from field: google.protobuf.Timestamp created_at = 5;
258
+ */
259
+ createdAt?: Timestamp | undefined;
260
+
261
+ /**
262
+ * Until when each secret can be redeemed. The app shows them in local time and never
263
+ * works them out itself. Once both have passed the invite is gone: it is not listed, and
264
+ * the gateway drops it with its address.
265
+ *
266
+ * @generated from field: google.protobuf.Timestamp token_expires_at = 6;
267
+ */
268
+ tokenExpiresAt?: Timestamp | undefined;
269
+
270
+ /**
271
+ * @generated from field: google.protobuf.Timestamp code_expires_at = 7;
272
+ */
273
+ codeExpiresAt?: Timestamp | undefined;
274
+
275
+ /**
276
+ * The address it is bound to; empty when it is bound to none.
277
+ *
278
+ * @generated from field: string email = 8;
279
+ */
280
+ email: string;
281
+
282
+ /**
283
+ * When the email with the newest secrets was sent (MarkInviteEmailSent). Unset when no
284
+ * email was sent since the last resend.
285
+ *
286
+ * @generated from field: google.protobuf.Timestamp email_sent_at = 9;
287
+ */
288
+ emailSentAt?: Timestamp | undefined;
289
+
290
+ /**
291
+ * As CreateInvite.access_until.
292
+ *
293
+ * @generated from field: google.protobuf.Timestamp access_until = 10;
294
+ */
295
+ accessUntil?: Timestamp | undefined;
296
+
297
+ /**
298
+ * What redeeming it does, as the gateway decided when it was created. The gateway MUST
299
+ * set it on every invite it lists or issues.
300
+ *
301
+ * @generated from field: kusinta.iot.webrtc.v1.InviteAdmission admission = 11;
302
+ */
303
+ admission: InviteAdmission;
304
+ };
305
+
306
+ /**
307
+ * Describes the message kusinta.iot.webrtc.v1.Invite.
308
+ * Use `create(InviteSchema)` to create a new message.
309
+ */
310
+ export declare const InviteSchema: GenMessage<Invite>;
311
+
312
+ /**
313
+ * A new invite or a resent one, with its secrets. This is the only time they are told:
314
+ * the gateway keeps only their hashes, and the app does not keep them beyond handing them
315
+ * over.
316
+ *
317
+ * @generated from message kusinta.iot.webrtc.v1.IssuedInvite
318
+ */
319
+ export declare type IssuedInvite = Message<"kusinta.iot.webrtc.v1.IssuedInvite"> & {
320
+ /**
321
+ * @generated from field: kusinta.iot.webrtc.v1.Invite invite = 1;
322
+ */
323
+ invite?: Invite | undefined;
324
+
325
+ /**
326
+ * @generated from field: string token = 2;
327
+ */
328
+ token: string;
329
+
330
+ /**
331
+ * @generated from field: string code = 3;
332
+ */
333
+ code: string;
334
+ };
335
+
336
+ /**
337
+ * Describes the message kusinta.iot.webrtc.v1.IssuedInvite.
338
+ * Use `create(IssuedInviteSchema)` to create a new message.
339
+ */
340
+ export declare const IssuedInviteSchema: GenMessage<IssuedInvite>;
341
+
342
+ /**
343
+ * A person who redeemed an invite that needs approval, waiting for it.
344
+ *
345
+ * @generated from message kusinta.iot.webrtc.v1.JoinRequest
346
+ */
347
+ export declare type JoinRequest = Message<"kusinta.iot.webrtc.v1.JoinRequest"> & {
348
+ /**
349
+ * Minted by the gateway, opaque.
350
+ *
351
+ * @generated from field: string request_id = 1;
352
+ */
353
+ requestId: string;
354
+
355
+ /**
356
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 2;
357
+ */
358
+ spaceId?: SpaceId | undefined;
359
+
360
+ /**
361
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 3;
362
+ */
363
+ relation: MembershipRelation;
364
+
365
+ /**
366
+ * Who is asking to join, and the display name their account gave when they redeemed.
367
+ *
368
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 4;
369
+ */
370
+ userId?: UserId | undefined;
371
+
372
+ /**
373
+ * @generated from field: string display_name = 5;
374
+ */
375
+ displayName: string;
376
+
377
+ /**
378
+ * Who created the invite that was redeemed.
379
+ *
380
+ * @generated from field: kusinta.iot.identity.v1.UserId invited_by = 6;
381
+ */
382
+ invitedBy?: UserId | undefined;
383
+
384
+ /**
385
+ * @generated from field: google.protobuf.Timestamp requested_at = 7;
386
+ */
387
+ requestedAt?: Timestamp | undefined;
388
+
389
+ /**
390
+ * When the request lapses unanswered, and the gateway drops it as if denied.
391
+ *
392
+ * @generated from field: google.protobuf.Timestamp expires_at = 8;
393
+ */
394
+ expiresAt?: Timestamp | undefined;
395
+
396
+ /**
397
+ * The verified email address of the account asking (signaling.v1.RedeemInvite), shown to
398
+ * whoever may approve the request (ApproveJoinRequest): the household for a household
399
+ * invite, and otherwise those who may put people on the space. A display name is
400
+ * whatever the person chose; this is what lets an approver tell who is really asking. The
401
+ * app tells a person redeeming that their address will be shown so. Kept only while the
402
+ * request is pending.
403
+ *
404
+ * @generated from field: string email = 9;
405
+ */
406
+ email: string;
407
+
408
+ /**
409
+ * The end of access the request asks for: CreateInvite.access_until of the invite that
410
+ * was redeemed, which the approval gives as that field says. Unset for none. The request
411
+ * expires no later than it, so it is never approved once the end has passed.
412
+ *
413
+ * @generated from field: google.protobuf.Timestamp access_until = 10;
414
+ */
415
+ accessUntil?: Timestamp | undefined;
416
+ };
417
+
418
+ /**
419
+ * Describes the message kusinta.iot.webrtc.v1.JoinRequest.
420
+ * Use `create(JoinRequestSchema)` to create a new message.
421
+ */
422
+ export declare const JoinRequestSchema: GenMessage<JoinRequest>;
423
+
424
+ /**
425
+ * What a space is waiting on: its pending invites and its join requests.
426
+ *
427
+ * The answer to ListSpaceInvites, and pushed as GatewayMessage.space_invites whenever
428
+ * either list changes — a create, resend, revoke, redeem, approval, denial or expiry — to
429
+ * every session that may list it, so the app shows the change without reloading. A push
430
+ * always carries the whole of both lists for its space, as ListSpaceInvites would list
431
+ * them to that session: a household invite and its join requests reach only the sessions
432
+ * of that home's household admins.
433
+ *
434
+ * @generated from message kusinta.iot.webrtc.v1.SpaceInvites
435
+ */
436
+ export declare type SpaceInvites = Message<"kusinta.iot.webrtc.v1.SpaceInvites"> & {
437
+ /**
438
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
439
+ */
440
+ spaceId?: SpaceId | undefined;
441
+
442
+ /**
443
+ * @generated from field: repeated kusinta.iot.webrtc.v1.Invite invites = 2;
444
+ */
445
+ invites: Invite[];
446
+
447
+ /**
448
+ * @generated from field: repeated kusinta.iot.webrtc.v1.JoinRequest join_requests = 3;
449
+ */
450
+ joinRequests: JoinRequest[];
451
+ };
452
+
453
+ /**
454
+ * Describes the message kusinta.iot.webrtc.v1.SpaceInvites.
455
+ * Use `create(SpaceInvitesSchema)` to create a new message.
456
+ */
457
+ export declare const SpaceInvitesSchema: GenMessage<SpaceInvites>;
458
+
459
+ /**
460
+ * What redeeming an invite does, by its kind (see the file header). Decided by the gateway
461
+ * when the invite is created and told in Invite.admission, so the app can say what
462
+ * redeeming will do before the invite is shared.
463
+ *
464
+ * @generated from enum kusinta.iot.webrtc.v1.InviteAdmission
465
+ */
466
+ export enum InviteAdmission {
467
+ /**
468
+ * Not told. The app reads it as not known, never as any value below.
469
+ *
470
+ * @generated from enum value: INVITE_ADMISSION_UNSPECIFIED = 0;
471
+ */
472
+ UNSPECIFIED = 0,
473
+
474
+ /**
475
+ * Bound to an address: files the person at once if the verified address of their account
476
+ * matches (CreateInvite.email).
477
+ *
478
+ * @generated from enum value: INVITE_ADMISSION_ON_EMAIL_MATCH = 1;
479
+ */
480
+ ON_EMAIL_MATCH = 1,
481
+
482
+ /**
483
+ * A home key: files whoever redeems it on the home at once, with no join request.
484
+ *
485
+ * @generated from enum value: INVITE_ADMISSION_ON_REDEEM = 2;
486
+ */
487
+ ON_REDEEM = 2,
488
+
489
+ /**
490
+ * Makes a join request, and the person is filed only once it is approved
491
+ * (ApproveJoinRequest).
492
+ *
493
+ * @generated from enum value: INVITE_ADMISSION_ON_APPROVAL = 3;
494
+ */
495
+ ON_APPROVAL = 3,
496
+ }
497
+
498
+ /**
499
+ * Describes the enum kusinta.iot.webrtc.v1.InviteAdmission.
500
+ */
501
+ export declare const InviteAdmissionSchema: GenEnum<InviteAdmission>;
502
+