@kusinta/iot-schema 0.2.0-beta.40 → 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.
@@ -0,0 +1,490 @@
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 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 { Timestamp } from "@bufbuild/protobuf/wkt";
9
+ import type { ApartmentClimateSummary, RoomClimateList, RoomHistory } from "../../climate/v1/climate_pb.js";
10
+ import type { CommissioningProfile } from "../../commissioning/v1/commissioning_pb.js";
11
+ import type { HeatingLayout } from "../../heating/v1/heating_pb.js";
12
+
13
+ /**
14
+ * Describes the file kusinta/iot/webrtc/v1/household.proto.
15
+ */
16
+ export declare const file_kusinta_iot_webrtc_v1_household: GenFile;
17
+
18
+ /**
19
+ * Makes a household admin of a home a resident again, at once; their residency continues
20
+ * (access.v1.MembershipRelation, HOUSEHOLD ADMIN). Answered with ManagementAck.
21
+ *
22
+ * A household admin of the home only; anyone else is refused as NOT_ENTITLED. user_id is
23
+ * never a residency id (INVALID_REQUEST). A resident of the home who is not a household admin
24
+ * is acknowledged and nothing changes; anyone else is "not_a_member", as members.proto has it.
25
+ * A demotion that would leave the home with no household admin is refused as
26
+ * "last_household_admin" (LAST ADMIN). Ends, with the demotion, the promotion requests the
27
+ * demoted member made for the home and the household invites they created there, with the
28
+ * join requests those invites made.
29
+ *
30
+ * @generated from message kusinta.iot.webrtc.v1.DemoteHouseholdAdmin
31
+ */
32
+ export declare type DemoteHouseholdAdmin = Message<"kusinta.iot.webrtc.v1.DemoteHouseholdAdmin"> & {
33
+ /**
34
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 1;
35
+ */
36
+ homeId?: SpaceId | undefined;
37
+
38
+ /**
39
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 2;
40
+ */
41
+ userId?: UserId | undefined;
42
+ };
43
+
44
+ /**
45
+ * Describes the message kusinta.iot.webrtc.v1.DemoteHouseholdAdmin.
46
+ * Use `create(DemoteHouseholdAdminSchema)` to create a new message.
47
+ */
48
+ export declare const DemoteHouseholdAdminSchema: GenMessage<DemoteHouseholdAdmin>;
49
+
50
+ /**
51
+ * One staff appointment of a household admin of a home, as its residents are told it.
52
+ *
53
+ * @generated from message kusinta.iot.webrtc.v1.StaffAppointment
54
+ */
55
+ export declare type StaffAppointment = Message<"kusinta.iot.webrtc.v1.StaffAppointment"> & {
56
+ /**
57
+ * The resident appointed.
58
+ *
59
+ * @generated from field: kusinta.iot.identity.v1.UserId appointee = 1;
60
+ */
61
+ appointee?: UserId | undefined;
62
+
63
+ /**
64
+ * The staff member who appointed them, and the name they gave their account
65
+ * (AppTokenClaims.name) as the gateway last learnt it; empty when none is learnt.
66
+ * Self-chosen, as MemberDetail.name is.
67
+ *
68
+ * @generated from field: kusinta.iot.identity.v1.UserId appointed_by = 2;
69
+ */
70
+ appointedBy?: UserId | undefined;
71
+
72
+ /**
73
+ * @generated from field: string appointed_by_name = 3;
74
+ */
75
+ appointedByName: string;
76
+
77
+ /**
78
+ * When the appointment took effect: the redeem, or the acceptance.
79
+ *
80
+ * @generated from field: google.protobuf.Timestamp at = 4;
81
+ */
82
+ at?: Timestamp | undefined;
83
+
84
+ /**
85
+ * @generated from field: kusinta.iot.webrtc.v1.StaffAppointmentKind kind = 5;
86
+ */
87
+ kind: StaffAppointmentKind;
88
+ };
89
+
90
+ /**
91
+ * Describes the message kusinta.iot.webrtc.v1.StaffAppointment.
92
+ * Use `create(StaffAppointmentSchema)` to create a new message.
93
+ */
94
+ export declare const StaffAppointmentSchema: GenMessage<StaffAppointment>;
95
+
96
+ /**
97
+ * Starts the handover of one home (HANDOVER, 1), answered with the HouseholdHandover, PENDING.
98
+ * Anyone HANDOVER does not name is refused as NOT_ENTITLED. A space that is not an apartment is
99
+ * INVALID_REQUEST. Starting one while one is pending answers the pending one and starts
100
+ * nothing.
101
+ *
102
+ * @generated from message kusinta.iot.webrtc.v1.StartHouseholdHandover
103
+ */
104
+ export declare type StartHouseholdHandover = Message<"kusinta.iot.webrtc.v1.StartHouseholdHandover"> & {
105
+ /**
106
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 1;
107
+ */
108
+ homeId?: SpaceId | undefined;
109
+ };
110
+
111
+ /**
112
+ * Describes the message kusinta.iot.webrtc.v1.StartHouseholdHandover.
113
+ * Use `create(StartHouseholdHandoverSchema)` to create a new message.
114
+ */
115
+ export declare const StartHouseholdHandoverSchema: GenMessage<StartHouseholdHandover>;
116
+
117
+ /**
118
+ * Confirms a pending handover (HANDOVER, 3–4; VACANCY). Answered with ManagementAck once every
119
+ * membership of the home has ended; the wipe follows, and the handover is pushed as DONE.
120
+ * Staff confirming before staff_confirmable_from are refused as FAILED_PRECONDITION with
121
+ * metadata {"reason": "notice_running"}. A handover that is not pending, or that the caller
122
+ * may not confirm, is refused as NOT_ENTITLED, so that no handover id can be probed.
123
+ *
124
+ * @generated from message kusinta.iot.webrtc.v1.ConfirmHouseholdHandover
125
+ */
126
+ export declare type ConfirmHouseholdHandover = Message<"kusinta.iot.webrtc.v1.ConfirmHouseholdHandover"> & {
127
+ /**
128
+ * @generated from field: string handover_id = 1;
129
+ */
130
+ handoverId: string;
131
+ };
132
+
133
+ /**
134
+ * Describes the message kusinta.iot.webrtc.v1.ConfirmHouseholdHandover.
135
+ * Use `create(ConfirmHouseholdHandoverSchema)` to create a new message.
136
+ */
137
+ export declare const ConfirmHouseholdHandoverSchema: GenMessage<ConfirmHouseholdHandover>;
138
+
139
+ /**
140
+ * Cancels a pending handover (HANDOVER, 3); nothing has changed, and nothing does. Answered
141
+ * with ManagementAck, and pushed as CANCELLED. A vacated one is refused as FAILED_PRECONDITION
142
+ * with metadata {"reason": "vacated"} (VACANCY). A handover that is not pending, or that the
143
+ * caller may not cancel, is refused as NOT_ENTITLED.
144
+ *
145
+ * @generated from message kusinta.iot.webrtc.v1.CancelHouseholdHandover
146
+ */
147
+ export declare type CancelHouseholdHandover = Message<"kusinta.iot.webrtc.v1.CancelHouseholdHandover"> & {
148
+ /**
149
+ * @generated from field: string handover_id = 1;
150
+ */
151
+ handoverId: string;
152
+ };
153
+
154
+ /**
155
+ * Describes the message kusinta.iot.webrtc.v1.CancelHouseholdHandover.
156
+ * Use `create(CancelHouseholdHandoverSchema)` to create a new message.
157
+ */
158
+ export declare const CancelHouseholdHandoverSchema: GenMessage<CancelHouseholdHandover>;
159
+
160
+ /**
161
+ * Lists the pending handovers of the homes under a space the caller may be told of, answered
162
+ * with HouseholdHandovers: unset root_space_id, every one. A home's handover is told to its
163
+ * residents, and to the property owner and the gateway administrators who reach it; a
164
+ * vacated one to the departing household instead of residents (VACANCY). Anyone may
165
+ * ask; nobody is refused, and a caller told of none gets none.
166
+ *
167
+ * @generated from message kusinta.iot.webrtc.v1.ListHouseholdHandovers
168
+ */
169
+ export declare type ListHouseholdHandovers = Message<"kusinta.iot.webrtc.v1.ListHouseholdHandovers"> & {
170
+ /**
171
+ * @generated from field: kusinta.iot.identity.v1.SpaceId root_space_id = 1;
172
+ */
173
+ rootSpaceId?: SpaceId | undefined;
174
+ };
175
+
176
+ /**
177
+ * Describes the message kusinta.iot.webrtc.v1.ListHouseholdHandovers.
178
+ * Use `create(ListHouseholdHandoversSchema)` to create a new message.
179
+ */
180
+ export declare const ListHouseholdHandoversSchema: GenMessage<ListHouseholdHandovers>;
181
+
182
+ /**
183
+ * One handover of one home (HANDOVER), as told to one caller.
184
+ *
185
+ * The answer to StartHouseholdHandover, and pushed as GatewayMessage.household_handover to
186
+ * every session it is told to (ListHouseholdHandovers) whenever it is started, cancelled or
187
+ * done, or its staff_confirmable_from moves: to the household, the notice. A DONE push
188
+ * reaches the household's sessions before they lose the home.
189
+ *
190
+ * @generated from message kusinta.iot.webrtc.v1.HouseholdHandover
191
+ */
192
+ export declare type HouseholdHandover = Message<"kusinta.iot.webrtc.v1.HouseholdHandover"> & {
193
+ /**
194
+ * Minted by the gateway, opaque.
195
+ *
196
+ * @generated from field: string handover_id = 1;
197
+ */
198
+ handoverId: string;
199
+
200
+ /**
201
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 2;
202
+ */
203
+ homeId?: SpaceId | undefined;
204
+
205
+ /**
206
+ * @generated from field: kusinta.iot.webrtc.v1.HouseholdHandoverState state = 3;
207
+ */
208
+ state: HouseholdHandoverState;
209
+
210
+ /**
211
+ * Who started it, and the name they gave their account (AppTokenClaims.name) as the gateway
212
+ * last learnt it. Given to the household; to anyone else only when started_by_staff, and
213
+ * unset otherwise, since a resident's user id would say where they live. The name is
214
+ * self-chosen, as MemberDetail.name is.
215
+ *
216
+ * @generated from field: kusinta.iot.identity.v1.UserId started_by = 4;
217
+ */
218
+ startedBy?: UserId | undefined;
219
+
220
+ /**
221
+ * @generated from field: string started_by_name = 5;
222
+ */
223
+ startedByName: string;
224
+
225
+ /**
226
+ * Set when the property owner or a gateway administrator started it, rather than the
227
+ * household. Neither this nor started_by is set when it was vacated.
228
+ *
229
+ * @generated from field: bool started_by_staff = 6;
230
+ */
231
+ startedByStaff: boolean;
232
+
233
+ /**
234
+ * @generated from field: google.protobuf.Timestamp started_at = 7;
235
+ */
236
+ startedAt?: Timestamp | undefined;
237
+
238
+ /**
239
+ * From when the property owner or a gateway administrator may confirm it, and when a vacated
240
+ * one completes on its own: 7 days after started_at, and never sooner than 7 days after the
241
+ * home's last residency ended. On a handover that is not vacated, a residency that starts
242
+ * while it is pending moves it to 7 days after that, and the handover is pushed again, so
243
+ * that a household that moves in during it has its notice too; on a vacated one nobody new
244
+ * moves in (VACANCY).
245
+ *
246
+ * @generated from field: google.protobuf.Timestamp staff_confirmable_from = 8;
247
+ */
248
+ staffConfirmableFrom?: Timestamp | undefined;
249
+
250
+ /**
251
+ * When it was cancelled or done. Unset while pending.
252
+ *
253
+ * @generated from field: google.protobuf.Timestamp ended_at = 9;
254
+ */
255
+ endedAt?: Timestamp | undefined;
256
+
257
+ /**
258
+ * Set when the home's last residency ending started it, rather than a request (VACANCY).
259
+ *
260
+ * @generated from field: bool vacated = 10;
261
+ */
262
+ vacated: boolean;
263
+ };
264
+
265
+ /**
266
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdHandover.
267
+ * Use `create(HouseholdHandoverSchema)` to create a new message.
268
+ */
269
+ export declare const HouseholdHandoverSchema: GenMessage<HouseholdHandover>;
270
+
271
+ /**
272
+ * Sets the household's own name for its home (space.v1.Space.home_name). Answered with
273
+ * ManagementAck. Any resident of the home may — a name is not governance, so it is not kept to
274
+ * household admins; anyone else is refused as NOT_ENTITLED. home_id must be an apartment
275
+ * (INVALID_REQUEST otherwise). The name is trimmed; empty clears it, and one longer than 64
276
+ * characters is refused as INVALID_REQUEST with metadata {"reason": "home_name"}. It never
277
+ * changes the apartment's own name (space.v1.Space.name), and it is wiped at the home's
278
+ * handover.
279
+ *
280
+ * @generated from message kusinta.iot.webrtc.v1.SetHomeName
281
+ */
282
+ export declare type SetHomeName = Message<"kusinta.iot.webrtc.v1.SetHomeName"> & {
283
+ /**
284
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 1;
285
+ */
286
+ homeId?: SpaceId | undefined;
287
+
288
+ /**
289
+ * @generated from field: string name = 2;
290
+ */
291
+ name: string;
292
+ };
293
+
294
+ /**
295
+ * Describes the message kusinta.iot.webrtc.v1.SetHomeName.
296
+ * Use `create(SetHomeNameSchema)` to create a new message.
297
+ */
298
+ export declare const SetHomeNameSchema: GenMessage<SetHomeName>;
299
+
300
+ /**
301
+ * The answer to ListHouseholdHandovers.
302
+ *
303
+ * @generated from message kusinta.iot.webrtc.v1.HouseholdHandovers
304
+ */
305
+ export declare type HouseholdHandovers = Message<"kusinta.iot.webrtc.v1.HouseholdHandovers"> & {
306
+ /**
307
+ * @generated from field: repeated kusinta.iot.webrtc.v1.HouseholdHandover handovers = 1;
308
+ */
309
+ handovers: HouseholdHandover[];
310
+ };
311
+
312
+ /**
313
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdHandovers.
314
+ * Use `create(HouseholdHandoversSchema)` to create a new message.
315
+ */
316
+ export declare const HouseholdHandoversSchema: GenMessage<HouseholdHandovers>;
317
+
318
+ /**
319
+ * Asks for one part of a home's export (EXPORT), answered with a HouseholdExport. The first
320
+ * part is asked with no part_token, and each further one with the next_part_token of the part
321
+ * before, until one comes with none. The home's residents only, and during a vacated handover
322
+ * the departing household, holding nothing recorded after their residency ended (VACANCY);
323
+ * anyone else is refused as NOT_ENTITLED.
324
+ *
325
+ * A part_token says where the next part starts. The gateway keeps nothing for it: it checks
326
+ * the token it minted when it is used, against the caller's rights then, so an interrupted
327
+ * export resumes where it stopped, within the caller's residency. A token the gateway did not
328
+ * mint, or minted for another caller, home or residency — one that has ended included, save
329
+ * during that home's vacated handover — is refused as INVALID_REQUEST with metadata
330
+ * {"reason": "part_token"}.
331
+ *
332
+ * @generated from message kusinta.iot.webrtc.v1.ExportHouseholdData
333
+ */
334
+ export declare type ExportHouseholdData = Message<"kusinta.iot.webrtc.v1.ExportHouseholdData"> & {
335
+ /**
336
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 1;
337
+ */
338
+ homeId?: SpaceId | undefined;
339
+
340
+ /**
341
+ * @generated from field: string part_token = 2;
342
+ */
343
+ partToken: string;
344
+ };
345
+
346
+ /**
347
+ * Describes the message kusinta.iot.webrtc.v1.ExportHouseholdData.
348
+ * Use `create(ExportHouseholdDataSchema)` to create a new message.
349
+ */
350
+ export declare const ExportHouseholdDataSchema: GenMessage<ExportHouseholdData>;
351
+
352
+ /**
353
+ * One part of a home's export (EXPORT). The gateway chooses the order of the parts and how
354
+ * each is cut; together they are the whole of it, each as of when it was made. Each part is
355
+ * what the read named beside it would give the caller.
356
+ *
357
+ * @generated from message kusinta.iot.webrtc.v1.HouseholdExport
358
+ */
359
+ export declare type HouseholdExport = Message<"kusinta.iot.webrtc.v1.HouseholdExport"> & {
360
+ /**
361
+ * @generated from field: kusinta.iot.identity.v1.SpaceId home_id = 1;
362
+ */
363
+ homeId?: SpaceId | undefined;
364
+
365
+ /**
366
+ * @generated from oneof kusinta.iot.webrtc.v1.HouseholdExport.part
367
+ */
368
+ part: {
369
+ /**
370
+ * The home's rooms, their settings, and the modes on the home (ListRoomClimates).
371
+ *
372
+ * @generated from field: kusinta.iot.climate.v1.RoomClimateList room_climates = 2;
373
+ */
374
+ value: RoomClimateList;
375
+ case: "roomClimates";
376
+ } | {
377
+ /**
378
+ * One room's history over at most 7 days of buckets, as GetRoomHistory answers it. A
379
+ * room's history comes in as many parts as it takes, in order.
380
+ *
381
+ * @generated from field: kusinta.iot.climate.v1.RoomHistory room_history = 3;
382
+ */
383
+ value: RoomHistory;
384
+ case: "roomHistory";
385
+ } | {
386
+ /**
387
+ * The home's climate summary over one period length (GetApartmentClimateSummary): one
388
+ * part for each of DAY, WEEK and MONTH.
389
+ *
390
+ * @generated from field: kusinta.iot.climate.v1.ApartmentClimateSummary climate_summary = 4;
391
+ */
392
+ value: ApartmentClimateSummary;
393
+ case: "climateSummary";
394
+ } | {
395
+ /**
396
+ * The home's commissioning (ListCommissioning).
397
+ *
398
+ * @generated from field: kusinta.iot.commissioning.v1.CommissioningProfile commissioning = 5;
399
+ */
400
+ value: CommissioningProfile;
401
+ case: "commissioning";
402
+ } | {
403
+ /**
404
+ * The home's heating records (ListHeating).
405
+ *
406
+ * @generated from field: kusinta.iot.heating.v1.HeatingLayout heating = 6;
407
+ */
408
+ value: HeatingLayout;
409
+ case: "heating";
410
+ } | { case: undefined; value?: undefined };
411
+
412
+ /**
413
+ * The token to ask for the next part with; empty on the last.
414
+ *
415
+ * @generated from field: string next_part_token = 7;
416
+ */
417
+ nextPartToken: string;
418
+ };
419
+
420
+ /**
421
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdExport.
422
+ * Use `create(HouseholdExportSchema)` to create a new message.
423
+ */
424
+ export declare const HouseholdExportSchema: GenMessage<HouseholdExport>;
425
+
426
+ /**
427
+ * How a staff member appointed a household admin (STAFF APPOINTMENT).
428
+ *
429
+ * @generated from enum kusinta.iot.webrtc.v1.StaffAppointmentKind
430
+ */
431
+ export enum StaffAppointmentKind {
432
+ /**
433
+ * @generated from enum value: STAFF_APPOINTMENT_KIND_UNSPECIFIED = 0;
434
+ */
435
+ UNSPECIFIED = 0,
436
+
437
+ /**
438
+ * An appointment invite on an empty home, redeemed.
439
+ *
440
+ * @generated from enum value: STAFF_APPOINTMENT_KIND_INVITE = 1;
441
+ */
442
+ INVITE = 1,
443
+
444
+ /**
445
+ * A promotion request to a resident of an admin-less home, accepted.
446
+ *
447
+ * @generated from enum value: STAFF_APPOINTMENT_KIND_PROMOTION = 2;
448
+ */
449
+ PROMOTION = 2,
450
+ }
451
+
452
+ /**
453
+ * Describes the enum kusinta.iot.webrtc.v1.StaffAppointmentKind.
454
+ */
455
+ export declare const StaffAppointmentKindSchema: GenEnum<StaffAppointmentKind>;
456
+
457
+ /**
458
+ * @generated from enum kusinta.iot.webrtc.v1.HouseholdHandoverState
459
+ */
460
+ export enum HouseholdHandoverState {
461
+ /**
462
+ * A state this schema does not know: read as PENDING.
463
+ *
464
+ * @generated from enum value: HOUSEHOLD_HANDOVER_STATE_UNSPECIFIED = 0;
465
+ */
466
+ UNSPECIFIED = 0,
467
+
468
+ /**
469
+ * @generated from enum value: HOUSEHOLD_HANDOVER_STATE_PENDING = 1;
470
+ */
471
+ PENDING = 1,
472
+
473
+ /**
474
+ * @generated from enum value: HOUSEHOLD_HANDOVER_STATE_CANCELLED = 2;
475
+ */
476
+ CANCELLED = 2,
477
+
478
+ /**
479
+ * Confirmed, or the last residency of the home ended while it was pending.
480
+ *
481
+ * @generated from enum value: HOUSEHOLD_HANDOVER_STATE_DONE = 3;
482
+ */
483
+ DONE = 3,
484
+ }
485
+
486
+ /**
487
+ * Describes the enum kusinta.iot.webrtc.v1.HouseholdHandoverState.
488
+ */
489
+ export declare const HouseholdHandoverStateSchema: GenEnum<HouseholdHandoverState>;
490
+
@@ -0,0 +1,120 @@
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("CiVrdXNpbnRhL2lvdC93ZWJydGMvdjEvaG91c2Vob2xkLnByb3RvEhVrdXNpbnRhLmlvdC53ZWJydGMudjEiewoURGVtb3RlSG91c2Vob2xkQWRtaW4SMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSMAoHdXNlcl9pZBgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZCL7AQoQU3RhZmZBcHBvaW50bWVudBIyCglhcHBvaW50ZWUYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSNQoMYXBwb2ludGVkX2J5GAIgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEhkKEWFwcG9pbnRlZF9ieV9uYW1lGAMgASgJEiYKAmF0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI5CgRraW5kGAUgASgOMisua3VzaW50YS5pb3Qud2VicnRjLnYxLlN0YWZmQXBwb2ludG1lbnRLaW5kIksKFlN0YXJ0SG91c2Vob2xkSGFuZG92ZXISMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQiLwoYQ29uZmlybUhvdXNlaG9sZEhhbmRvdmVyEhMKC2hhbmRvdmVyX2lkGAEgASgJIi4KF0NhbmNlbEhvdXNlaG9sZEhhbmRvdmVyEhMKC2hhbmRvdmVyX2lkGAEgASgJIlEKFkxpc3RIb3VzZWhvbGRIYW5kb3ZlcnMSNwoNcm9vdF9zcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQirAMKEUhvdXNlaG9sZEhhbmRvdmVyEhMKC2hhbmRvdmVyX2lkGAEgASgJEjEKB2hvbWVfaWQYAiABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjwKBXN0YXRlGAMgASgOMi0ua3VzaW50YS5pb3Qud2VicnRjLnYxLkhvdXNlaG9sZEhhbmRvdmVyU3RhdGUSMwoKc3RhcnRlZF9ieRgEIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIXCg9zdGFydGVkX2J5X25hbWUYBSABKAkSGAoQc3RhcnRlZF9ieV9zdGFmZhgGIAEoCBIuCgpzdGFydGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI6ChZzdGFmZl9jb25maXJtYWJsZV9mcm9tGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghlbmRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDwoHdmFjYXRlZBgKIAEoCCJOCgtTZXRIb21lTmFtZRIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBIMCgRuYW1lGAIgASgJIlEKEkhvdXNlaG9sZEhhbmRvdmVycxI7CgloYW5kb3ZlcnMYASADKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuSG91c2Vob2xkSGFuZG92ZXIiXAoTRXhwb3J0SG91c2Vob2xkRGF0YRIxCgdob21lX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBISCgpwYXJ0X3Rva2VuGAIgASgJIrcDCg9Ib3VzZWhvbGRFeHBvcnQSMQoHaG9tZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSQAoNcm9vbV9jbGltYXRlcxgCIAEoCzInLmt1c2ludGEuaW90LmNsaW1hdGUudjEuUm9vbUNsaW1hdGVMaXN0SAASOwoMcm9vbV9oaXN0b3J5GAMgASgLMiMua3VzaW50YS5pb3QuY2xpbWF0ZS52MS5Sb29tSGlzdG9yeUgAEkoKD2NsaW1hdGVfc3VtbWFyeRgEIAEoCzIvLmt1c2ludGEuaW90LmNsaW1hdGUudjEuQXBhcnRtZW50Q2xpbWF0ZVN1bW1hcnlIABJLCg1jb21taXNzaW9uaW5nGAUgASgLMjIua3VzaW50YS5pb3QuY29tbWlzc2lvbmluZy52MS5Db21taXNzaW9uaW5nUHJvZmlsZUgAEjgKB2hlYXRpbmcYBiABKAsyJS5rdXNpbnRhLmlvdC5oZWF0aW5nLnYxLkhlYXRpbmdMYXlvdXRIABIXCg9uZXh0X3BhcnRfdG9rZW4YByABKAlCBgoEcGFydCqHAQoUU3RhZmZBcHBvaW50bWVudEtpbmQSJgoiU1RBRkZfQVBQT0lOVE1FTlRfS0lORF9VTlNQRUNJRklFRBAAEiEKHVNUQUZGX0FQUE9JTlRNRU5UX0tJTkRfSU5WSVRFEAESJAogU1RBRkZfQVBQT0lOVE1FTlRfS0lORF9QUk9NT1RJT04QAiqzAQoWSG91c2Vob2xkSGFuZG92ZXJTdGF0ZRIoCiRIT1VTRUhPTERfSEFORE9WRVJfU1RBVEVfVU5TUEVDSUZJRUQQABIkCiBIT1VTRUhPTERfSEFORE9WRVJfU1RBVEVfUEVORElORxABEiYKIkhPVVNFSE9MRF9IQU5ET1ZFUl9TVEFURV9DQU5DRUxMRUQQAhIhCh1IT1VTRUhPTERfSEFORE9WRVJfU1RBVEVfRE9ORRADQgJIAWIGcHJvdG8z", [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.SetHomeName.
69
+ * Use `create(SetHomeNameSchema)` to create a new message.
70
+ */
71
+ export const SetHomeNameSchema = /*@__PURE__*/
72
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 7);
73
+
74
+ /**
75
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdHandovers.
76
+ * Use `create(HouseholdHandoversSchema)` to create a new message.
77
+ */
78
+ export const HouseholdHandoversSchema = /*@__PURE__*/
79
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 8);
80
+
81
+ /**
82
+ * Describes the message kusinta.iot.webrtc.v1.ExportHouseholdData.
83
+ * Use `create(ExportHouseholdDataSchema)` to create a new message.
84
+ */
85
+ export const ExportHouseholdDataSchema = /*@__PURE__*/
86
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 9);
87
+
88
+ /**
89
+ * Describes the message kusinta.iot.webrtc.v1.HouseholdExport.
90
+ * Use `create(HouseholdExportSchema)` to create a new message.
91
+ */
92
+ export const HouseholdExportSchema = /*@__PURE__*/
93
+ messageDesc(file_kusinta_iot_webrtc_v1_household, 10);
94
+
95
+ /**
96
+ * Describes the enum kusinta.iot.webrtc.v1.StaffAppointmentKind.
97
+ */
98
+ export const StaffAppointmentKindSchema = /*@__PURE__*/
99
+ enumDesc(file_kusinta_iot_webrtc_v1_household, 0);
100
+
101
+ /**
102
+ * How a staff member appointed a household admin (STAFF APPOINTMENT).
103
+ *
104
+ * @generated from enum kusinta.iot.webrtc.v1.StaffAppointmentKind
105
+ */
106
+ export const StaffAppointmentKind = /*@__PURE__*/
107
+ tsEnum(StaffAppointmentKindSchema);
108
+
109
+ /**
110
+ * Describes the enum kusinta.iot.webrtc.v1.HouseholdHandoverState.
111
+ */
112
+ export const HouseholdHandoverStateSchema = /*@__PURE__*/
113
+ enumDesc(file_kusinta_iot_webrtc_v1_household, 1);
114
+
115
+ /**
116
+ * @generated from enum kusinta.iot.webrtc.v1.HouseholdHandoverState
117
+ */
118
+ export const HouseholdHandoverState = /*@__PURE__*/
119
+ tsEnum(HouseholdHandoverStateSchema);
120
+
@@ -16,21 +16,25 @@ export declare const file_kusinta_iot_webrtc_v1_invite: GenFile;
16
16
  /**
17
17
  * Creates an invite on a space.
18
18
  *
19
- * relation is RESIDENT or SERVICE and nothing else, and it decides the role the person
20
- * will hold: a resident for RESIDENT, a technician for SERVICE. RESIDENT is refused
21
- * anywhere but a home (access.v1.MembershipRelation). No invite ever makes anyone a
22
- * gateway administrator or a property owner: those come only by promotion of someone
23
- * already a member, and any other relation is refused as INVALID_REQUEST.
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.
24
28
  *
25
29
  * Who may create one is the gateway's decision, as for AssignUserToSpace. The gateway may
26
- * let a home's residents invite residents into their own home only, within a limit per
27
- * home. A caller over that limit is refused as FAILED_PRECONDITION with metadata
28
- * {"reason": "household_full"}.
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"}.
29
33
  *
30
34
  * Whether a RESIDENT invite with no address is a home key or a household invite (see the
31
35
  * file header) is decided by who creates it, never asked for: a home key when the caller
32
36
  * holds ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, whether or not they live in the home; a
33
- * household invite when the caller creates it as a resident of the home.
37
+ * household invite when the caller creates it as a household admin of the home.
34
38
  *
35
39
  * A gateway holds at most 5000 invites whose secrets it reports
36
40
  * (reporting.v1.ReportInviteRoutesRequest), used ones included until their secrets
@@ -154,11 +158,11 @@ export declare const MarkInviteEmailSentSchema: GenMessage<MarkInviteEmailSent>;
154
158
  /**
155
159
  * The pending invites and join requests of a space. Answered with SpaceInvites. Listed
156
160
  * only to a caller who may create invites on the space; anyone else is refused as
157
- * NOT_ENTITLED. A resident is listed only the invites a resident of their home made,
161
+ * NOT_ENTITLED. A household admin is listed only the invites a resident of their home made,
158
162
  * and the join requests those made: nothing they cannot act on.
159
163
  *
160
- * A household invite, and the join requests it made, are listed only to the residents of
161
- * that home, a property owner or an administrator included only if they live there:
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:
162
166
  * otherwise Invite.created_by and JoinRequest.invited_by would say where its maker lives.
163
167
  *
164
168
  * @generated from message kusinta.iot.webrtc.v1.ListSpaceInvites
@@ -181,8 +185,8 @@ export declare const ListSpaceInvitesSchema: GenMessage<ListSpaceInvites>;
181
185
  * that relation gives. Answered with ManagementAck.
182
186
  *
183
187
  * Who may approve is the gateway's decision, by the kind of invite the request came from
184
- * (see the file header): for a household invite, a resident of that home alone, and not a
185
- * property owner or an administrator who does not live there; for a SERVICE invite with no
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
186
190
  * address, whoever may put people on that space. Anyone else is refused as NOT_ENTITLED.
187
191
  *
188
192
  * @generated from message kusinta.iot.webrtc.v1.ApproveJoinRequest
@@ -425,7 +429,7 @@ export declare const JoinRequestSchema: GenMessage<JoinRequest>;
425
429
  * every session that may list it, so the app shows the change without reloading. A push
426
430
  * always carries the whole of both lists for its space, as ListSpaceInvites would list
427
431
  * them to that session: a household invite and its join requests reach only the sessions
428
- * of that home's residents.
432
+ * of that home's household admins.
429
433
  *
430
434
  * @generated from message kusinta.iot.webrtc.v1.SpaceInvites
431
435
  */