@kusinta/iot-schema 0.2.0-beta.4 → 0.2.0-beta.41

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 +13 -1
  2. package/src/kusinta/iot/access/v1/acl_pb.d.ts +120 -2
  3. package/src/kusinta/iot/access/v1/acl_pb.js +20 -3
  4. package/src/kusinta/iot/access/v1/roles_pb.d.ts +157 -4
  5. package/src/kusinta/iot/access/v1/roles_pb.js +125 -5
  6. package/src/kusinta/iot/accountlink/v1/account_link_pb.d.ts +583 -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 +1041 -0
  9. package/src/kusinta/iot/climate/v1/climate_pb.js +206 -0
  10. package/src/kusinta/iot/commissioning/v1/commissioning_pb.d.ts +1280 -0
  11. package/src/kusinta/iot/commissioning/v1/commissioning_pb.js +275 -0
  12. package/src/kusinta/iot/common/v1/pairing_pb.d.ts +217 -0
  13. package/src/kusinta/iot/common/v1/pairing_pb.js +50 -0
  14. package/src/kusinta/iot/common/v1/types_pb.d.ts +232 -0
  15. package/src/kusinta/iot/common/v1/types_pb.js +84 -2
  16. package/src/kusinta/iot/connector/v1/connector_pb.d.ts +691 -2
  17. package/src/kusinta/iot/connector/v1/connector_pb.js +104 -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 +33 -3
  21. package/src/kusinta/iot/device/v1/descriptor_pb.js +2 -1
  22. package/src/kusinta/iot/device/v1/device_event_pb.d.ts +87 -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 +164 -11
  25. package/src/kusinta/iot/device/v1/device_pb.js +33 -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 +28 -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 +619 -0
  31. package/src/kusinta/iot/heating/v1/heating_pb.js +118 -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 +1228 -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 +936 -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 +129 -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 +19 -3
  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 +4 -4
  51. package/src/kusinta/iot/vendor/v1/vendor_options_pb.js +4 -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 +35 -6
  58. package/src/kusinta/iot/webrtc/v1/envelope_pb.d.ts +664 -3
  59. package/src/kusinta/iot/webrtc/v1/envelope_pb.js +69 -3
  60. package/src/kusinta/iot/webrtc/v1/household_pb.d.ts +490 -0
  61. package/src/kusinta/iot/webrtc/v1/household_pb.js +120 -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 +1944 -76
  65. package/src/kusinta/iot/webrtc/v1/management_pb.js +297 -5
  66. package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +578 -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 +10 -2
@@ -0,0 +1,578 @@
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/members.proto (package kusinta.iot.webrtc.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { 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, Role } from "../../access/v1/roles_pb.js";
9
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
+
11
+ /**
12
+ * Describes the file kusinta/iot/webrtc/v1/members.proto.
13
+ */
14
+ export declare const file_kusinta_iot_webrtc_v1_members: GenFile;
15
+
16
+ /**
17
+ * Lists every member of the gateway. Answered with GatewayMembers. Listed to a caller
18
+ * holding ROLE_GATEWAY_ADMIN or ROLE_PROPERTY_OWNER; anyone else is refused as
19
+ * NOT_ENTITLED.
20
+ *
21
+ * Those two roles answer for the whole property, and a resident who moves out is removed by
22
+ * them (RemoveUserFromSpace or RemoveFromGateway), so every member is listed to them, as the
23
+ * rule for staff allows (access.v1.Role, STAFF):
24
+ * * every residency as an entry of its own, under its residency id: the one RESIDENT
25
+ * membership and since when (MemberSpace.since), with no name, no email and no roles;
26
+ * * every user under their user id, while they hold a role or a membership other than a
27
+ * residency: their roles save ROLE_RESIDENT, and those other memberships. Staff are
28
+ * given by name and email address (MemberDetail.name, MemberDetail.email); anyone else
29
+ * by neither;
30
+ * * the caller themselves as one entry under their user id, with everything they hold.
31
+ * So becoming staff, or stopping, changes a user's entry and never a residency's.
32
+ * Seeing into a home's life — its devices, readings and history — still takes filing on it.
33
+ *
34
+ * @generated from message kusinta.iot.webrtc.v1.ListGatewayMembers
35
+ */
36
+ export declare type ListGatewayMembers = Message<"kusinta.iot.webrtc.v1.ListGatewayMembers"> & {
37
+ };
38
+
39
+ /**
40
+ * Describes the message kusinta.iot.webrtc.v1.ListGatewayMembers.
41
+ * Use `create(ListGatewayMembersSchema)` to create a new message.
42
+ */
43
+ export declare const ListGatewayMembersSchema: GenMessage<ListGatewayMembers>;
44
+
45
+ /**
46
+ * Takes ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN away from a member, at once. Answered with
47
+ * ManagementAck. Only a caller holding ROLE_GATEWAY_ADMIN may; any other role named is
48
+ * INVALID_REQUEST. Granting is a request the person accepts (RequestPromotion), so held set
49
+ * to true is INVALID_REQUEST and grants nothing.
50
+ *
51
+ * user_id is never a residency id (INVALID_REQUEST): the member's entry would then appear
52
+ * under their user id, named, and tie the residency to them.
53
+ *
54
+ * Taking away a role not held changes nothing and is acknowledged. A caller may take a role
55
+ * away from themselves: the vouched administrators always remain, so the gateway cannot be
56
+ * left without an administrator. Naming ROLE_GATEWAY_ADMIN for a vouched administrator is
57
+ * refused as "vouched_admin"; ROLE_PROPERTY_OWNER is taken away from them as from anyone.
58
+ *
59
+ * Taking either role away also ends the pending invites the user created while holding one,
60
+ * unless they keep the other; invites they created as a resident of a home follow their
61
+ * residency, as they always do. The join requests those invites made stay, since another
62
+ * administrator may still answer them. Taking away ROLE_GATEWAY_ADMIN ends the promotion
63
+ * requests the user made. The change reaches the user's open sessions at once.
64
+ *
65
+ * @generated from message kusinta.iot.webrtc.v1.SetMemberRole
66
+ */
67
+ export declare type SetMemberRole = Message<"kusinta.iot.webrtc.v1.SetMemberRole"> & {
68
+ /**
69
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 1;
70
+ */
71
+ userId?: UserId | undefined;
72
+
73
+ /**
74
+ * @generated from field: kusinta.iot.access.v1.Role role = 2;
75
+ */
76
+ role: Role;
77
+
78
+ /**
79
+ * false takes the role away. true is INVALID_REQUEST: see RequestPromotion.
80
+ *
81
+ * @generated from field: bool held = 3;
82
+ */
83
+ held: boolean;
84
+ };
85
+
86
+ /**
87
+ * Describes the message kusinta.iot.webrtc.v1.SetMemberRole.
88
+ * Use `create(SetMemberRoleSchema)` to create a new message.
89
+ */
90
+ export declare const SetMemberRoleSchema: GenMessage<SetMemberRole>;
91
+
92
+ /**
93
+ * Asks a member to accept ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, or, with home_id, to
94
+ * become a household admin of a home (HOUSEHOLD PROMOTION, below). Answered with
95
+ * ManagementAck once the request is made; the role is granted only when the person asked
96
+ * accepts it (AnswerPromotion). Only a caller holding ROLE_GATEWAY_ADMIN may ask for a role;
97
+ * any other role named is INVALID_REQUEST. The caller may ask themselves, as anyone.
98
+ *
99
+ * For a role, user_id is never a residency id (INVALID_REQUEST), as for SetMemberRole: a resident becomes
100
+ * staff by an act of their own — redeeming a SERVICE invite (invite.proto) — and is asked from
101
+ * the entry that gives. A user id the caller is told nothing of under it is "not_a_member".
102
+ * Naming ROLE_GATEWAY_ADMIN for a vouched administrator is refused as "vouched_admin";
103
+ * ROLE_PROPERTY_OWNER may be asked of them as of anyone.
104
+ *
105
+ * Asking for a role the member already holds, or one a pending request already asks of them,
106
+ * changes nothing and is acknowledged: one request per member and role, whoever asked.
107
+ *
108
+ * A request is pending for at most 7 days from when it was made (PromotionRequest.expires_at),
109
+ * and then lapses as if declined. It ends sooner when it is answered, when the member stops
110
+ * being a member, when they come to hold the role otherwise, and when its asker no longer holds
111
+ * ROLE_GATEWAY_ADMIN — an outgoing administrator of a transfer included
112
+ * (signaling.v1.TransferOutcome) — since no administrator then stands behind it.
113
+ *
114
+ * The app shows the person asked for a role, before they answer, that accepting makes their name
115
+ * and email address shown to property owners and administrators (MemberDetail.name,
116
+ * MemberDetail.email), and to residents by name (PrivacyDisclosure).
117
+ *
118
+ * HOUSEHOLD PROMOTION. With home_id set it asks a resident of that home to become its household
119
+ * admin (access.v1.MEMBERSHIP_RELATION_HOUSEHOLD_ADMIN; household.proto) rather than for a
120
+ * role: role is then UNSPECIFIED, and anything else is INVALID_REQUEST, as is a home_id that is
121
+ * not an apartment. It is asked by:
122
+ * * a household admin of the home, of a resident of it named by user id (household.proto,
123
+ * PROMOTION);
124
+ * * the property owner or a gateway administrator who reaches the home, while it is
125
+ * admin-less, of one of its residents, named by residency id unless the caller lives there
126
+ * (household.proto, STAFF APPOINTMENT). This is the one request here a residency id may
127
+ * stand in; that section's refusals apply. From a caller who does not live there, a
128
+ * user_id that is not a residency id is INVALID_REQUEST, refused before it is looked up,
129
+ * so that the answer never says whether that user lives in the home.
130
+ * Anyone else is refused as NOT_ENTITLED. Someone who is not a resident of the home is
131
+ * "not_a_member"; asking a household admin of it changes nothing and is acknowledged. One
132
+ * request per resident and home, whoever asked. Besides the ends above, it ends when the person
133
+ * asked stops being a resident of the home, when the asker stops being a household admin of
134
+ * it — or, having asked as staff, stops holding both ROLE_PROPERTY_OWNER and
135
+ * ROLE_GATEWAY_ADMIN — and when the home comes to have a household admin otherwise.
136
+ *
137
+ * @generated from message kusinta.iot.webrtc.v1.RequestPromotion
138
+ */
139
+ export declare type RequestPromotion = Message<"kusinta.iot.webrtc.v1.RequestPromotion"> & {
140
+ /**
141
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 1;
142
+ */
143
+ userId?: UserId | undefined;
144
+
145
+ /**
146
+ * @generated from field: kusinta.iot.access.v1.Role role = 2;
147
+ */
148
+ role: Role;
149
+
150
+ /**
151
+ * Set for a household promotion: the apartment of the home. Unset for a role.
152
+ *
153
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 3;
154
+ */
155
+ homeId?: SpaceId | undefined;
156
+ };
157
+
158
+ /**
159
+ * Describes the message kusinta.iot.webrtc.v1.RequestPromotion.
160
+ * Use `create(RequestPromotionSchema)` to create a new message.
161
+ */
162
+ export declare const RequestPromotionSchema: GenMessage<RequestPromotion>;
163
+
164
+ /**
165
+ * Accepts or declines a promotion request. Answered with ManagementAck. Only the person asked
166
+ * may, from a session of their own; a request_id that is not pending for the caller — someone
167
+ * else's, one the caller made of another, unknown, answered or lapsed — is refused as
168
+ * NOT_ENTITLED, so that no request id can be probed.
169
+ *
170
+ * Accepting grants the role at once, and clears any end to the person's access
171
+ * (MemberDetail.access_until): a property owner or an administrator is not there for a job. The
172
+ * change reaches their open sessions at once. Accepting a household promotion makes them a
173
+ * household admin of the home at once and changes nothing else — save that one staff asked is
174
+ * refused to a person holding a staff role, as "staff_appointee" (household.proto, STAFF
175
+ * APPOINTMENT), and ends. Declining ends the request and grants nothing; the
176
+ * asker learns only that it is no longer pending.
177
+ *
178
+ * @generated from message kusinta.iot.webrtc.v1.AnswerPromotion
179
+ */
180
+ export declare type AnswerPromotion = Message<"kusinta.iot.webrtc.v1.AnswerPromotion"> & {
181
+ /**
182
+ * As PromotionRequest.request_id.
183
+ *
184
+ * @generated from field: string request_id = 1;
185
+ */
186
+ requestId: string;
187
+
188
+ /**
189
+ * true accepts; false declines.
190
+ *
191
+ * @generated from field: bool accept = 2;
192
+ */
193
+ accept: boolean;
194
+ };
195
+
196
+ /**
197
+ * Describes the message kusinta.iot.webrtc.v1.AnswerPromotion.
198
+ * Use `create(AnswerPromotionSchema)` to create a new message.
199
+ */
200
+ export declare const AnswerPromotionSchema: GenMessage<AnswerPromotion>;
201
+
202
+ /**
203
+ * Lists the pending promotion requests the caller made or was asked to accept, answered with
204
+ * PromotionRequests. Anyone may ask; nobody is refused. A request is listed to those two people
205
+ * alone: other administrators do not see it, and nor does anyone else.
206
+ *
207
+ * @generated from message kusinta.iot.webrtc.v1.ListPromotionRequests
208
+ */
209
+ export declare type ListPromotionRequests = Message<"kusinta.iot.webrtc.v1.ListPromotionRequests"> & {
210
+ };
211
+
212
+ /**
213
+ * Describes the message kusinta.iot.webrtc.v1.ListPromotionRequests.
214
+ * Use `create(ListPromotionRequestsSchema)` to create a new message.
215
+ */
216
+ export declare const ListPromotionRequestsSchema: GenMessage<ListPromotionRequests>;
217
+
218
+ /**
219
+ * One pending promotion request, as listed to the person asked or the asker.
220
+ *
221
+ * @generated from message kusinta.iot.webrtc.v1.PromotionRequest
222
+ */
223
+ export declare type PromotionRequest = Message<"kusinta.iot.webrtc.v1.PromotionRequest"> & {
224
+ /**
225
+ * Minted by the gateway, opaque.
226
+ *
227
+ * @generated from field: string request_id = 1;
228
+ */
229
+ requestId: string;
230
+
231
+ /**
232
+ * The person asked: to an asker who does not live in the home of a household promotion,
233
+ * the residency id they named.
234
+ *
235
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 2;
236
+ */
237
+ userId?: UserId | undefined;
238
+
239
+ /**
240
+ * ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN; UNSPECIFIED for a household promotion.
241
+ *
242
+ * @generated from field: kusinta.iot.access.v1.Role role = 3;
243
+ */
244
+ role: Role;
245
+
246
+ /**
247
+ * Who asked, and the name they gave their account (AppTokenClaims.name) as the gateway last
248
+ * learnt it, so the person asked knows who asks; empty when none is learnt. Self-chosen, as
249
+ * MemberDetail.name is.
250
+ *
251
+ * @generated from field: kusinta.iot.identity.v1.UserId requested_by = 4;
252
+ */
253
+ requestedBy?: UserId | undefined;
254
+
255
+ /**
256
+ * @generated from field: string requested_by_name = 5;
257
+ */
258
+ requestedByName: string;
259
+
260
+ /**
261
+ * @generated from field: google.protobuf.Timestamp requested_at = 6;
262
+ */
263
+ requestedAt?: Timestamp | undefined;
264
+
265
+ /**
266
+ * When the request lapses unanswered: 7 days after requested_at.
267
+ *
268
+ * @generated from field: google.protobuf.Timestamp expires_at = 7;
269
+ */
270
+ expiresAt?: Timestamp | undefined;
271
+
272
+ /**
273
+ * Set for a household promotion: the home whose household admin the person is asked to
274
+ * become (RequestPromotion.home_id).
275
+ *
276
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 8;
277
+ */
278
+ homeId?: SpaceId | undefined;
279
+ };
280
+
281
+ /**
282
+ * Describes the message kusinta.iot.webrtc.v1.PromotionRequest.
283
+ * Use `create(PromotionRequestSchema)` to create a new message.
284
+ */
285
+ export declare const PromotionRequestSchema: GenMessage<PromotionRequest>;
286
+
287
+ /**
288
+ * The pending promotion requests a session's user made or was asked to accept.
289
+ *
290
+ * The answer to ListPromotionRequests, and pushed as GatewayMessage.promotion_requests to every
291
+ * session of the person asked and of the asker whenever a request they are listed changes — made,
292
+ * answered, lapsed or ended — so the person asked sees a request without reloading. A push always
293
+ * carries the whole list, as ListPromotionRequests would list it to that session.
294
+ *
295
+ * @generated from message kusinta.iot.webrtc.v1.PromotionRequests
296
+ */
297
+ export declare type PromotionRequests = Message<"kusinta.iot.webrtc.v1.PromotionRequests"> & {
298
+ /**
299
+ * @generated from field: repeated kusinta.iot.webrtc.v1.PromotionRequest requests = 1;
300
+ */
301
+ requests: PromotionRequest[];
302
+ };
303
+
304
+ /**
305
+ * Describes the message kusinta.iot.webrtc.v1.PromotionRequests.
306
+ * Use `create(PromotionRequestsSchema)` to create a new message.
307
+ */
308
+ export declare const PromotionRequestsSchema: GenMessage<PromotionRequests>;
309
+
310
+ /**
311
+ * Removes a member from the gateway in one step: every membership they hold, every role the
312
+ * gateway holds for them, every pending invite they created and every join request of their
313
+ * own. Answered with ManagementAck. Their open sessions end, and the api-server drops them
314
+ * from the gateway. Join requests made through their invites end where those were invites
315
+ * a resident made, as when a residency ends, and stay otherwise.
316
+ *
317
+ * What a caller is not told of under the id given stays: by a user id, a caller who does not
318
+ * live in a home they hold leaves that residency in place, and ends only the rest; the user
319
+ * then stays a member, a resident of it. By a residency id, it ends that residency alone, as
320
+ * RemoveUserFromSpace would, with the invites the holder made as its resident.
321
+ *
322
+ * A removal of themselves that would leave a home with residents but no household admin is
323
+ * refused as "last_household_admin" (household.proto, LAST ADMIN), and nothing is removed.
324
+ *
325
+ * A caller holding ROLE_GATEWAY_ADMIN may remove anyone but a vouched administrator
326
+ * ("vouched_admin"). A caller holding ROLE_PROPERTY_OWNER, and not ROLE_GATEWAY_ADMIN,
327
+ * may remove only a member who holds neither ROLE_PROPERTY_OWNER nor ROLE_GATEWAY_ADMIN;
328
+ * anyone else, a vouched administrator included, is refused NOT_ENTITLED. A residency
329
+ * id is never refused for its holder's roles, since it tells none.
330
+ *
331
+ * @generated from message kusinta.iot.webrtc.v1.RemoveFromGateway
332
+ */
333
+ export declare type RemoveFromGateway = Message<"kusinta.iot.webrtc.v1.RemoveFromGateway"> & {
334
+ /**
335
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 1;
336
+ */
337
+ userId?: UserId | undefined;
338
+ };
339
+
340
+ /**
341
+ * Describes the message kusinta.iot.webrtc.v1.RemoveFromGateway.
342
+ * Use `create(RemoveFromGatewaySchema)` to create a new message.
343
+ */
344
+ export declare const RemoveFromGatewaySchema: GenMessage<RemoveFromGateway>;
345
+
346
+ /**
347
+ * Sets, moves or clears when a technician's access ends. Answered with ManagementAck. A
348
+ * caller holding ROLE_GATEWAY_ADMIN or ROLE_PROPERTY_OWNER may. Only for a member holding
349
+ * ROLE_TECHNICIAN and no other role but ROLE_RESIDENT ("not_a_technician" otherwise, and for a
350
+ * residency id, which names no technician): an end date never reaches a property owner or
351
+ * an administrator.
352
+ *
353
+ * access_until is the instant the access ends; a time not after now is INVALID_REQUEST. The
354
+ * app chooses it, typically the end of a chosen day where the building is. Within a quarter
355
+ * of an hour after it, the gateway takes away the member's ROLE_TECHNICIAN and every SERVICE
356
+ * membership they hold, as an administrator would, and nothing else: a home they live in
357
+ * stays theirs, and their ROLE_TECHNICIAN goes all the same.
358
+ *
359
+ * @generated from message kusinta.iot.webrtc.v1.SetAccessUntil
360
+ */
361
+ export declare type SetAccessUntil = Message<"kusinta.iot.webrtc.v1.SetAccessUntil"> & {
362
+ /**
363
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 1;
364
+ */
365
+ userId?: UserId | undefined;
366
+
367
+ /**
368
+ * Unset clears it: the access lasts until someone takes it away.
369
+ *
370
+ * @generated from field: google.protobuf.Timestamp access_until = 2;
371
+ */
372
+ accessUntil?: Timestamp | undefined;
373
+ };
374
+
375
+ /**
376
+ * Describes the message kusinta.iot.webrtc.v1.SetAccessUntil.
377
+ * Use `create(SetAccessUntilSchema)` to create a new message.
378
+ */
379
+ export declare const SetAccessUntilSchema: GenMessage<SetAccessUntil>;
380
+
381
+ /**
382
+ * Superseded: the organisation that owns the property is the one that owns the gateway, and its
383
+ * name comes with the vouched set (signaling.v1.VouchedAdministrators.organisation_name). A
384
+ * gateway refuses this request as INVALID_REQUEST, whoever asks, and records nothing from it, so
385
+ * that no one believes they set the name. Kept so that an older app's request still decodes.
386
+ *
387
+ * @generated from message kusinta.iot.webrtc.v1.SetOwnerOrganisation
388
+ */
389
+ export declare type SetOwnerOrganisation = Message<"kusinta.iot.webrtc.v1.SetOwnerOrganisation"> & {
390
+ /**
391
+ * @generated from field: kusinta.iot.webrtc.v1.OwnerOrganisation organisation = 1;
392
+ */
393
+ organisation?: OwnerOrganisation | undefined;
394
+ };
395
+
396
+ /**
397
+ * Describes the message kusinta.iot.webrtc.v1.SetOwnerOrganisation.
398
+ * Use `create(SetOwnerOrganisationSchema)` to create a new message.
399
+ */
400
+ export declare const SetOwnerOrganisationSchema: GenMessage<SetOwnerOrganisation>;
401
+
402
+ /**
403
+ * The organisation that owns the property: the one that owns the gateway. The people who act
404
+ * for it in the building each hold ROLE_PROPERTY_OWNER themselves; this only says whom they
405
+ * act for.
406
+ *
407
+ * @generated from message kusinta.iot.webrtc.v1.OwnerOrganisation
408
+ */
409
+ export declare type OwnerOrganisation = Message<"kusinta.iot.webrtc.v1.OwnerOrganisation"> & {
410
+ /**
411
+ * As the vouched set gives it (signaling.v1.VouchedAdministrators.organisation_name).
412
+ *
413
+ * @generated from field: string name = 1;
414
+ */
415
+ name: string;
416
+
417
+ /**
418
+ * Always empty: the api-server never gives the gateway an organisation number, and the
419
+ * gateway keeps none. Once read from SetOwnerOrganisation, which is superseded.
420
+ *
421
+ * @generated from field: string organisation_number = 2 [deprecated = true];
422
+ * @deprecated
423
+ */
424
+ organisationNumber: string;
425
+ };
426
+
427
+ /**
428
+ * Describes the message kusinta.iot.webrtc.v1.OwnerOrganisation.
429
+ * Use `create(OwnerOrganisationSchema)` to create a new message.
430
+ */
431
+ export declare const OwnerOrganisationSchema: GenMessage<OwnerOrganisation>;
432
+
433
+ /**
434
+ * Every member of the gateway, in answer to ListGatewayMembers.
435
+ *
436
+ * @generated from message kusinta.iot.webrtc.v1.GatewayMembers
437
+ */
438
+ export declare type GatewayMembers = Message<"kusinta.iot.webrtc.v1.GatewayMembers"> & {
439
+ /**
440
+ * @generated from field: repeated kusinta.iot.webrtc.v1.MemberDetail members = 1;
441
+ */
442
+ members: MemberDetail[];
443
+
444
+ /**
445
+ * The owning organisation, by name. Unset while the gateway holds no vouched set.
446
+ *
447
+ * @generated from field: kusinta.iot.webrtc.v1.OwnerOrganisation owner_organisation = 2;
448
+ */
449
+ ownerOrganisation?: OwnerOrganisation | undefined;
450
+ };
451
+
452
+ /**
453
+ * Describes the message kusinta.iot.webrtc.v1.GatewayMembers.
454
+ * Use `create(GatewayMembersSchema)` to create a new message.
455
+ */
456
+ export declare const GatewayMembersSchema: GenMessage<GatewayMembers>;
457
+
458
+ /**
459
+ * One member, as an administrator or a property owner sees them: a user, or a residency
460
+ * (ListGatewayMembers).
461
+ *
462
+ * @generated from message kusinta.iot.webrtc.v1.MemberDetail
463
+ */
464
+ export declare type MemberDetail = Message<"kusinta.iot.webrtc.v1.MemberDetail"> & {
465
+ /**
466
+ * The user's id, or on a residency's entry its residency id.
467
+ *
468
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 1;
469
+ */
470
+ userId?: UserId | undefined;
471
+
472
+ /**
473
+ * The name they gave their account, as the gateway last learnt it: from AppTokenClaims.name
474
+ * when they connect, or from signaling.v1.RedeemInvite.display_name when they redeem with
475
+ * none learnt yet. Self-chosen, so the app shows it as such. Given only for a member who is
476
+ * staff (access.v1.Role, STAFF), and on the caller's own entry; empty for anyone else, on
477
+ * every residency's entry, and when none is learnt. The gateway keeps it only while they are a member,
478
+ * and drops it when they stop being one.
479
+ *
480
+ * @generated from field: string name = 2;
481
+ */
482
+ name: string;
483
+
484
+ /**
485
+ * Every role they hold here, a vouched administrator's ROLE_GATEWAY_ADMIN included,
486
+ * each once — save that ROLE_RESIDENT is left out of every entry but the caller's own,
487
+ * since it would say they live in the building. None on a residency's entry.
488
+ *
489
+ * @generated from field: repeated kusinta.iot.access.v1.Role roles = 3;
490
+ */
491
+ roles: Role[];
492
+
493
+ /**
494
+ * Every space they are filed on but where they live, which is listed under each
495
+ * residency's id; on the caller's own entry, every one. On a residency's entry, that
496
+ * residency alone.
497
+ *
498
+ * @generated from field: repeated kusinta.iot.webrtc.v1.MemberSpace memberships = 4;
499
+ */
500
+ memberships: MemberSpace[];
501
+
502
+ /**
503
+ * When a technician's access ends (SetAccessUntil). Unset for no end.
504
+ *
505
+ * @generated from field: google.protobuf.Timestamp access_until = 5;
506
+ */
507
+ accessUntil?: Timestamp | undefined;
508
+
509
+ /**
510
+ * Set exactly as vouched_admin, for readers older than it; a reader that knows vouched_admin
511
+ * reads that instead. To be reserved once no reader needs it.
512
+ *
513
+ * @generated from field: bool registering_admin = 6 [deprecated = true];
514
+ * @deprecated
515
+ */
516
+ registeringAdmin: boolean;
517
+
518
+ /**
519
+ * Their verified email address, as AppTokenClaims.email last gave it, so that staff who
520
+ * gave the same name can be told apart. Given only for a member who is staff; empty for
521
+ * anyone else, on every residency's entry, and when none is learnt. The gateway keeps it only while they hold a staff
522
+ * role.
523
+ *
524
+ * @generated from field: string email = 7;
525
+ */
526
+ email: string;
527
+
528
+ /**
529
+ * Whether they are a vouched administrator: named in the vouched set the gateway holds
530
+ * (signaling.v1.VouchedAdministrators), whether or not the gateway has seen them connect. Grants
531
+ * nothing on its own; it says that their ROLE_GATEWAY_ADMIN cannot be changed here and that
532
+ * RemoveFromGateway will refuse them. Their name and email address are empty until the gateway
533
+ * learns them from their own token.
534
+ *
535
+ * @generated from field: bool vouched_admin = 8;
536
+ */
537
+ vouchedAdmin: boolean;
538
+ };
539
+
540
+ /**
541
+ * Describes the message kusinta.iot.webrtc.v1.MemberDetail.
542
+ * Use `create(MemberDetailSchema)` to create a new message.
543
+ */
544
+ export declare const MemberDetailSchema: GenMessage<MemberDetail>;
545
+
546
+ /**
547
+ * One space a member is filed on, and how they stand to it.
548
+ *
549
+ * @generated from message kusinta.iot.webrtc.v1.MemberSpace
550
+ */
551
+ export declare type MemberSpace = Message<"kusinta.iot.webrtc.v1.MemberSpace"> & {
552
+ /**
553
+ * @generated from field: kusinta.iot.identity.v1.SpaceId space_id = 1;
554
+ */
555
+ spaceId?: SpaceId | undefined;
556
+
557
+ /**
558
+ * @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 2;
559
+ */
560
+ relation: MembershipRelation;
561
+
562
+ /**
563
+ * The start of the day, in the building's time zone (space.v1.Space.time_zone), on which
564
+ * the current membership began; for a resident, the current unbroken residency
565
+ * (access.v1.MembershipRelation). Never finer than a day. Unset where the gateway holds no
566
+ * record of it.
567
+ *
568
+ * @generated from field: google.protobuf.Timestamp since = 3;
569
+ */
570
+ since?: Timestamp | undefined;
571
+ };
572
+
573
+ /**
574
+ * Describes the message kusinta.iot.webrtc.v1.MemberSpace.
575
+ * Use `create(MemberSpaceSchema)` to create a new message.
576
+ */
577
+ export declare const MemberSpaceSchema: GenMessage<MemberSpace>;
578
+
@@ -0,0 +1,113 @@
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/members.proto (package kusinta.iot.webrtc.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
6
+ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
7
+ import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
8
+ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
9
+
10
+ /**
11
+ * Describes the file kusinta/iot/webrtc/v1/members.proto.
12
+ */
13
+ export const file_kusinta_iot_webrtc_v1_members = /*@__PURE__*/
14
+ fileDesc("CiNrdXNpbnRhL2lvdC93ZWJydGMvdjEvbWVtYmVycy5wcm90bxIVa3VzaW50YS5pb3Qud2VicnRjLnYxIhQKEkxpc3RHYXRld2F5TWVtYmVycyJ6Cg1TZXRNZW1iZXJSb2xlEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSKQoEcm9sZRgCIAEoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEgwKBGhlbGQYAyABKAgiogEKEFJlcXVlc3RQcm9tb3Rpb24SMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIpCgRyb2xlGAIgASgOMhsua3VzaW50YS5pb3QuYWNjZXNzLnYxLlJvbGUSMQoHaG9tZV9pZBgDIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQiNQoPQW5zd2VyUHJvbW90aW9uEhIKCnJlcXVlc3RfaWQYASABKAkSDgoGYWNjZXB0GAIgASgIIhcKFUxpc3RQcm9tb3Rpb25SZXF1ZXN0cyLqAgoQUHJvbW90aW9uUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJEjAKB3VzZXJfaWQYAiABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSKQoEcm9sZRgDIAEoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEjUKDHJlcXVlc3RlZF9ieRgEIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIZChFyZXF1ZXN0ZWRfYnlfbmFtZRgFIAEoCRIwCgxyZXF1ZXN0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKB2hvbWVfaWQYCCABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIk4KEVByb21vdGlvblJlcXVlc3RzEjkKCHJlcXVlc3RzGAEgAygLMicua3VzaW50YS5pb3Qud2VicnRjLnYxLlByb21vdGlvblJlcXVlc3QiRQoRUmVtb3ZlRnJvbUdhdGV3YXkSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZCJ0Cg5TZXRBY2Nlc3NVbnRpbBIwCgd1c2VyX2lkGAEgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjAKDGFjY2Vzc191bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiVgoUU2V0T3duZXJPcmdhbmlzYXRpb24SPgoMb3JnYW5pc2F0aW9uGAEgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk93bmVyT3JnYW5pc2F0aW9uIkIKEU93bmVyT3JnYW5pc2F0aW9uEgwKBG5hbWUYASABKAkSHwoTb3JnYW5pc2F0aW9uX251bWJlchgCIAEoCUICGAEijAEKDkdhdGV3YXlNZW1iZXJzEjQKB21lbWJlcnMYASADKAsyIy5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWVtYmVyRGV0YWlsEkQKEm93bmVyX29yZ2FuaXNhdGlvbhgCIAEoCzIoLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Pd25lck9yZ2FuaXNhdGlvbiKqAgoMTWVtYmVyRGV0YWlsEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSDAoEbmFtZRgCIAEoCRIqCgVyb2xlcxgDIAMoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEjcKC21lbWJlcnNoaXBzGAQgAygLMiIua3VzaW50YS5pb3Qud2VicnRjLnYxLk1lbWJlclNwYWNlEjAKDGFjY2Vzc191bnRpbBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASHQoRcmVnaXN0ZXJpbmdfYWRtaW4YBiABKAhCAhgBEg0KBWVtYWlsGAcgASgJEhUKDXZvdWNoZWRfYWRtaW4YCCABKAgiqQEKC01lbWJlclNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI7CghyZWxhdGlvbhgCIAEoDjIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5NZW1iZXJzaGlwUmVsYXRpb24SKQoFc2luY2UYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgJIAWIGcHJvdG8z", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
15
+
16
+ /**
17
+ * Describes the message kusinta.iot.webrtc.v1.ListGatewayMembers.
18
+ * Use `create(ListGatewayMembersSchema)` to create a new message.
19
+ */
20
+ export const ListGatewayMembersSchema = /*@__PURE__*/
21
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 0);
22
+
23
+ /**
24
+ * Describes the message kusinta.iot.webrtc.v1.SetMemberRole.
25
+ * Use `create(SetMemberRoleSchema)` to create a new message.
26
+ */
27
+ export const SetMemberRoleSchema = /*@__PURE__*/
28
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 1);
29
+
30
+ /**
31
+ * Describes the message kusinta.iot.webrtc.v1.RequestPromotion.
32
+ * Use `create(RequestPromotionSchema)` to create a new message.
33
+ */
34
+ export const RequestPromotionSchema = /*@__PURE__*/
35
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 2);
36
+
37
+ /**
38
+ * Describes the message kusinta.iot.webrtc.v1.AnswerPromotion.
39
+ * Use `create(AnswerPromotionSchema)` to create a new message.
40
+ */
41
+ export const AnswerPromotionSchema = /*@__PURE__*/
42
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 3);
43
+
44
+ /**
45
+ * Describes the message kusinta.iot.webrtc.v1.ListPromotionRequests.
46
+ * Use `create(ListPromotionRequestsSchema)` to create a new message.
47
+ */
48
+ export const ListPromotionRequestsSchema = /*@__PURE__*/
49
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 4);
50
+
51
+ /**
52
+ * Describes the message kusinta.iot.webrtc.v1.PromotionRequest.
53
+ * Use `create(PromotionRequestSchema)` to create a new message.
54
+ */
55
+ export const PromotionRequestSchema = /*@__PURE__*/
56
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 5);
57
+
58
+ /**
59
+ * Describes the message kusinta.iot.webrtc.v1.PromotionRequests.
60
+ * Use `create(PromotionRequestsSchema)` to create a new message.
61
+ */
62
+ export const PromotionRequestsSchema = /*@__PURE__*/
63
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 6);
64
+
65
+ /**
66
+ * Describes the message kusinta.iot.webrtc.v1.RemoveFromGateway.
67
+ * Use `create(RemoveFromGatewaySchema)` to create a new message.
68
+ */
69
+ export const RemoveFromGatewaySchema = /*@__PURE__*/
70
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 7);
71
+
72
+ /**
73
+ * Describes the message kusinta.iot.webrtc.v1.SetAccessUntil.
74
+ * Use `create(SetAccessUntilSchema)` to create a new message.
75
+ */
76
+ export const SetAccessUntilSchema = /*@__PURE__*/
77
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 8);
78
+
79
+ /**
80
+ * Describes the message kusinta.iot.webrtc.v1.SetOwnerOrganisation.
81
+ * Use `create(SetOwnerOrganisationSchema)` to create a new message.
82
+ */
83
+ export const SetOwnerOrganisationSchema = /*@__PURE__*/
84
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 9);
85
+
86
+ /**
87
+ * Describes the message kusinta.iot.webrtc.v1.OwnerOrganisation.
88
+ * Use `create(OwnerOrganisationSchema)` to create a new message.
89
+ */
90
+ export const OwnerOrganisationSchema = /*@__PURE__*/
91
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 10);
92
+
93
+ /**
94
+ * Describes the message kusinta.iot.webrtc.v1.GatewayMembers.
95
+ * Use `create(GatewayMembersSchema)` to create a new message.
96
+ */
97
+ export const GatewayMembersSchema = /*@__PURE__*/
98
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 11);
99
+
100
+ /**
101
+ * Describes the message kusinta.iot.webrtc.v1.MemberDetail.
102
+ * Use `create(MemberDetailSchema)` to create a new message.
103
+ */
104
+ export const MemberDetailSchema = /*@__PURE__*/
105
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 12);
106
+
107
+ /**
108
+ * Describes the message kusinta.iot.webrtc.v1.MemberSpace.
109
+ * Use `create(MemberSpaceSchema)` to create a new message.
110
+ */
111
+ export const MemberSpaceSchema = /*@__PURE__*/
112
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 13);
113
+