@kusinta/iot-schema 0.2.0-beta.34 → 0.2.0-beta.36

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.
@@ -43,29 +43,24 @@ export declare type ListGatewayMembers = Message<"kusinta.iot.webrtc.v1.ListGate
43
43
  export declare const ListGatewayMembersSchema: GenMessage<ListGatewayMembers>;
44
44
 
45
45
  /**
46
- * Gives a member ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, or takes it away. Answered with
46
+ * Takes ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN away from a member, at once. Answered with
47
47
  * ManagementAck. Only a caller holding ROLE_GATEWAY_ADMIN may; any other role named is
48
- * INVALID_REQUEST.
48
+ * INVALID_REQUEST. Granting is a request the person accepts (RequestPromotion), so held set
49
+ * to true is INVALID_REQUEST and grants nothing.
49
50
  *
50
51
  * user_id is never a residency id (INVALID_REQUEST): the member's entry would then appear
51
- * under their user id, named, and tie the residency to them. A resident becomes staff by
52
- * an act of their own — redeeming a SERVICE invite (invite.proto) — and is promoted from
53
- * the entry that gives.
52
+ * under their user id, named, and tie the residency to them.
54
53
  *
55
- * Granting a role already held, or taking away one not held, changes nothing and is
56
- * acknowledged. A caller may take a role away from themselves: the registering
57
- * administrator always remains, so the gateway cannot be left without one. Naming
58
- * ROLE_GATEWAY_ADMIN for the registering administrator, either way, is refused as
59
- * "registering_admin"; ROLE_PROPERTY_OWNER may be given to them and taken away as to
60
- * anyone.
61
- *
62
- * Granting either role clears any end to the member's access (MemberDetail.access_until):
63
- * a property owner or an administrator is not there for a job.
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.
64
58
  *
65
59
  * Taking either role away also ends the pending invites the user created while holding one,
66
60
  * unless they keep the other; invites they created as a resident of a home follow their
67
61
  * residency, as they always do. The join requests those invites made stay, since another
68
- * administrator may still answer them. The change reaches the user's open sessions at once.
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.
69
64
  *
70
65
  * @generated from message kusinta.iot.webrtc.v1.SetMemberRole
71
66
  */
@@ -81,7 +76,7 @@ export declare type SetMemberRole = Message<"kusinta.iot.webrtc.v1.SetMemberRole
81
76
  role: Role;
82
77
 
83
78
  /**
84
- * true grants the role; false takes it away.
79
+ * false takes the role away. true is INVALID_REQUEST: see RequestPromotion.
85
80
  *
86
81
  * @generated from field: bool held = 3;
87
82
  */
@@ -94,6 +89,185 @@ export declare type SetMemberRole = Message<"kusinta.iot.webrtc.v1.SetMemberRole
94
89
  */
95
90
  export declare const SetMemberRoleSchema: GenMessage<SetMemberRole>;
96
91
 
92
+ /**
93
+ * Asks a member to accept ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN. Answered with
94
+ * ManagementAck once the request is made; the role is granted only when the person asked
95
+ * accepts it (AnswerPromotion). Only a caller holding ROLE_GATEWAY_ADMIN may; any other role
96
+ * named is INVALID_REQUEST. The caller may ask themselves, as anyone.
97
+ *
98
+ * user_id is never a residency id (INVALID_REQUEST), as for SetMemberRole: a resident becomes
99
+ * staff by an act of their own — redeeming a SERVICE invite (invite.proto) — and is asked from
100
+ * the entry that gives. A user id the caller is told nothing of under it is "not_a_member".
101
+ * Naming ROLE_GATEWAY_ADMIN for a vouched administrator is refused as "vouched_admin";
102
+ * ROLE_PROPERTY_OWNER may be asked of them as of anyone.
103
+ *
104
+ * Asking for a role the member already holds, or one a pending request already asks of them,
105
+ * changes nothing and is acknowledged: one request per member and role, whoever asked.
106
+ *
107
+ * A request is pending for at most 7 days from when it was made (PromotionRequest.expires_at),
108
+ * and then lapses as if declined. It ends sooner when it is answered, when the member stops
109
+ * being a member, when they come to hold the role otherwise, and when its asker no longer holds
110
+ * ROLE_GATEWAY_ADMIN — an outgoing administrator of a transfer included
111
+ * (signaling.v1.TransferOutcome) — since no administrator then stands behind it.
112
+ *
113
+ * The app shows the person asked, before they answer, that accepting makes their name and email
114
+ * address shown to property owners and administrators (MemberDetail.name, MemberDetail.email),
115
+ * and to residents by name (PrivacyDisclosure).
116
+ *
117
+ * @generated from message kusinta.iot.webrtc.v1.RequestPromotion
118
+ */
119
+ export declare type RequestPromotion = Message<"kusinta.iot.webrtc.v1.RequestPromotion"> & {
120
+ /**
121
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 1;
122
+ */
123
+ userId?: UserId | undefined;
124
+
125
+ /**
126
+ * @generated from field: kusinta.iot.access.v1.Role role = 2;
127
+ */
128
+ role: Role;
129
+ };
130
+
131
+ /**
132
+ * Describes the message kusinta.iot.webrtc.v1.RequestPromotion.
133
+ * Use `create(RequestPromotionSchema)` to create a new message.
134
+ */
135
+ export declare const RequestPromotionSchema: GenMessage<RequestPromotion>;
136
+
137
+ /**
138
+ * Accepts or declines a promotion request. Answered with ManagementAck. Only the person asked
139
+ * may, from a session of their own; a request_id that is not pending for the caller — someone
140
+ * else's, one the caller made of another, unknown, answered or lapsed — is refused as
141
+ * NOT_ENTITLED, so that no request id can be probed.
142
+ *
143
+ * Accepting grants the role at once, and clears any end to the person's access
144
+ * (MemberDetail.access_until): a property owner or an administrator is not there for a job. The
145
+ * change reaches their open sessions at once. Declining ends the request and grants nothing; the
146
+ * asker learns only that it is no longer pending.
147
+ *
148
+ * @generated from message kusinta.iot.webrtc.v1.AnswerPromotion
149
+ */
150
+ export declare type AnswerPromotion = Message<"kusinta.iot.webrtc.v1.AnswerPromotion"> & {
151
+ /**
152
+ * As PromotionRequest.request_id.
153
+ *
154
+ * @generated from field: string request_id = 1;
155
+ */
156
+ requestId: string;
157
+
158
+ /**
159
+ * true accepts; false declines.
160
+ *
161
+ * @generated from field: bool accept = 2;
162
+ */
163
+ accept: boolean;
164
+ };
165
+
166
+ /**
167
+ * Describes the message kusinta.iot.webrtc.v1.AnswerPromotion.
168
+ * Use `create(AnswerPromotionSchema)` to create a new message.
169
+ */
170
+ export declare const AnswerPromotionSchema: GenMessage<AnswerPromotion>;
171
+
172
+ /**
173
+ * Lists the pending promotion requests the caller made or was asked to accept, answered with
174
+ * PromotionRequests. Anyone may ask; nobody is refused. A request is listed to those two people
175
+ * alone: other administrators do not see it, and nor does anyone else.
176
+ *
177
+ * @generated from message kusinta.iot.webrtc.v1.ListPromotionRequests
178
+ */
179
+ export declare type ListPromotionRequests = Message<"kusinta.iot.webrtc.v1.ListPromotionRequests"> & {
180
+ };
181
+
182
+ /**
183
+ * Describes the message kusinta.iot.webrtc.v1.ListPromotionRequests.
184
+ * Use `create(ListPromotionRequestsSchema)` to create a new message.
185
+ */
186
+ export declare const ListPromotionRequestsSchema: GenMessage<ListPromotionRequests>;
187
+
188
+ /**
189
+ * One pending promotion request, as listed to the person asked or the asker.
190
+ *
191
+ * @generated from message kusinta.iot.webrtc.v1.PromotionRequest
192
+ */
193
+ export declare type PromotionRequest = Message<"kusinta.iot.webrtc.v1.PromotionRequest"> & {
194
+ /**
195
+ * Minted by the gateway, opaque.
196
+ *
197
+ * @generated from field: string request_id = 1;
198
+ */
199
+ requestId: string;
200
+
201
+ /**
202
+ * The person asked.
203
+ *
204
+ * @generated from field: kusinta.iot.identity.v1.UserId user_id = 2;
205
+ */
206
+ userId?: UserId | undefined;
207
+
208
+ /**
209
+ * ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN.
210
+ *
211
+ * @generated from field: kusinta.iot.access.v1.Role role = 3;
212
+ */
213
+ role: Role;
214
+
215
+ /**
216
+ * Who asked, and the name they gave their account (AppTokenClaims.name) as the gateway last
217
+ * learnt it, so the person asked knows who asks; empty when none is learnt. Self-chosen, as
218
+ * MemberDetail.name is.
219
+ *
220
+ * @generated from field: kusinta.iot.identity.v1.UserId requested_by = 4;
221
+ */
222
+ requestedBy?: UserId | undefined;
223
+
224
+ /**
225
+ * @generated from field: string requested_by_name = 5;
226
+ */
227
+ requestedByName: string;
228
+
229
+ /**
230
+ * @generated from field: google.protobuf.Timestamp requested_at = 6;
231
+ */
232
+ requestedAt?: Timestamp | undefined;
233
+
234
+ /**
235
+ * When the request lapses unanswered: 7 days after requested_at.
236
+ *
237
+ * @generated from field: google.protobuf.Timestamp expires_at = 7;
238
+ */
239
+ expiresAt?: Timestamp | undefined;
240
+ };
241
+
242
+ /**
243
+ * Describes the message kusinta.iot.webrtc.v1.PromotionRequest.
244
+ * Use `create(PromotionRequestSchema)` to create a new message.
245
+ */
246
+ export declare const PromotionRequestSchema: GenMessage<PromotionRequest>;
247
+
248
+ /**
249
+ * The pending promotion requests a session's user made or was asked to accept.
250
+ *
251
+ * The answer to ListPromotionRequests, and pushed as GatewayMessage.promotion_requests to every
252
+ * session of the person asked and of the asker whenever a request they are listed changes — made,
253
+ * answered, lapsed or ended — so the person asked sees a request without reloading. A push always
254
+ * carries the whole list, as ListPromotionRequests would list it to that session.
255
+ *
256
+ * @generated from message kusinta.iot.webrtc.v1.PromotionRequests
257
+ */
258
+ export declare type PromotionRequests = Message<"kusinta.iot.webrtc.v1.PromotionRequests"> & {
259
+ /**
260
+ * @generated from field: repeated kusinta.iot.webrtc.v1.PromotionRequest requests = 1;
261
+ */
262
+ requests: PromotionRequest[];
263
+ };
264
+
265
+ /**
266
+ * Describes the message kusinta.iot.webrtc.v1.PromotionRequests.
267
+ * Use `create(PromotionRequestsSchema)` to create a new message.
268
+ */
269
+ export declare const PromotionRequestsSchema: GenMessage<PromotionRequests>;
270
+
97
271
  /**
98
272
  * Removes a member from the gateway in one step: every membership they hold, every role the
99
273
  * gateway holds for them, every pending invite they created and every join request of their
@@ -106,10 +280,10 @@ export declare const SetMemberRoleSchema: GenMessage<SetMemberRole>;
106
280
  * then stays a member, a resident of it. By a residency id, it ends that residency alone, as
107
281
  * RemoveUserFromSpace would, with the invites the holder made as its resident.
108
282
  *
109
- * A caller holding ROLE_GATEWAY_ADMIN may remove anyone but the registering administrator
110
- * ("registering_admin"). A caller holding ROLE_PROPERTY_OWNER, and not ROLE_GATEWAY_ADMIN,
283
+ * A caller holding ROLE_GATEWAY_ADMIN may remove anyone but a vouched administrator
284
+ * ("vouched_admin"). A caller holding ROLE_PROPERTY_OWNER, and not ROLE_GATEWAY_ADMIN,
111
285
  * may remove only a member who holds neither ROLE_PROPERTY_OWNER nor ROLE_GATEWAY_ADMIN;
112
- * anyone else, the registering administrator included, is refused NOT_ENTITLED. A residency
286
+ * anyone else, a vouched administrator included, is refused NOT_ENTITLED. A residency
113
287
  * id is never refused for its holder's roles, since it tells none.
114
288
  *
115
289
  * @generated from message kusinta.iot.webrtc.v1.RemoveFromGateway
@@ -163,9 +337,10 @@ export declare type SetAccessUntil = Message<"kusinta.iot.webrtc.v1.SetAccessUnt
163
337
  export declare const SetAccessUntilSchema: GenMessage<SetAccessUntil>;
164
338
 
165
339
  /**
166
- * Records the organisation that owns the property, or clears it when unset or when both
167
- * fields are empty. An organisation number without a name is INVALID_REQUEST. Answered with
168
- * ManagementAck. Only a caller holding ROLE_GATEWAY_ADMIN may.
340
+ * Superseded: the organisation that owns the property is the one that owns the gateway, and its
341
+ * name comes with the vouched set (signaling.v1.VouchedAdministrators.organisation_name). A
342
+ * gateway refuses this request as INVALID_REQUEST, whoever asks, and records nothing from it, so
343
+ * that no one believes they set the name. Kept so that an older app's request still decodes.
169
344
  *
170
345
  * @generated from message kusinta.iot.webrtc.v1.SetOwnerOrganisation
171
346
  */
@@ -183,23 +358,26 @@ export declare type SetOwnerOrganisation = Message<"kusinta.iot.webrtc.v1.SetOwn
183
358
  export declare const SetOwnerOrganisationSchema: GenMessage<SetOwnerOrganisation>;
184
359
 
185
360
  /**
186
- * The organisation that owns the property. The people who act for it each hold
187
- * ROLE_PROPERTY_OWNER themselves; this only says whom they act for.
361
+ * The organisation that owns the property: the one that owns the gateway. The people who act
362
+ * for it in the building each hold ROLE_PROPERTY_OWNER themselves; this only says whom they
363
+ * act for.
188
364
  *
189
365
  * @generated from message kusinta.iot.webrtc.v1.OwnerOrganisation
190
366
  */
191
367
  export declare type OwnerOrganisation = Message<"kusinta.iot.webrtc.v1.OwnerOrganisation"> & {
192
368
  /**
369
+ * As the vouched set gives it (signaling.v1.VouchedAdministrators.organisation_name).
370
+ *
193
371
  * @generated from field: string name = 1;
194
372
  */
195
373
  name: string;
196
374
 
197
375
  /**
198
- * As the organisation's national register gives it; the gateway does not check it. For a
199
- * sole trader it can be a personal identity number, so it is shown only where
200
- * GatewayMembers is, never to residents (PrivacyDisclosure carries the name alone).
376
+ * Always empty: the api-server never gives the gateway an organisation number, and the
377
+ * gateway keeps none. Once read from SetOwnerOrganisation, which is superseded.
201
378
  *
202
- * @generated from field: string organisation_number = 2;
379
+ * @generated from field: string organisation_number = 2 [deprecated = true];
380
+ * @deprecated
203
381
  */
204
382
  organisationNumber: string;
205
383
  };
@@ -222,7 +400,7 @@ export declare type GatewayMembers = Message<"kusinta.iot.webrtc.v1.GatewayMembe
222
400
  members: MemberDetail[];
223
401
 
224
402
  /**
225
- * Unset when none is recorded.
403
+ * The owning organisation, by name. Unset while the gateway holds no vouched set.
226
404
  *
227
405
  * @generated from field: kusinta.iot.webrtc.v1.OwnerOrganisation owner_organisation = 2;
228
406
  */
@@ -262,7 +440,7 @@ export declare type MemberDetail = Message<"kusinta.iot.webrtc.v1.MemberDetail">
262
440
  name: string;
263
441
 
264
442
  /**
265
- * Every role they hold here, the registering administrator's ROLE_GATEWAY_ADMIN included,
443
+ * Every role they hold here, a vouched administrator's ROLE_GATEWAY_ADMIN included,
266
444
  * each once — save that ROLE_RESIDENT is left out of every entry but the caller's own,
267
445
  * since it would say they live in the building. None on a residency's entry.
268
446
  *
@@ -287,11 +465,11 @@ export declare type MemberDetail = Message<"kusinta.iot.webrtc.v1.MemberDetail">
287
465
  accessUntil?: Timestamp | undefined;
288
466
 
289
467
  /**
290
- * Whether they are the administrator who registered the gateway, as the gateway last saw
291
- * from a token. Grants nothing on its own; it says that their ROLE_GATEWAY_ADMIN cannot be
292
- * changed here and that RemoveFromGateway will refuse them.
468
+ * Set exactly as vouched_admin, for readers older than it; a reader that knows vouched_admin
469
+ * reads that instead. To be reserved once no reader needs it.
293
470
  *
294
- * @generated from field: bool registering_admin = 6;
471
+ * @generated from field: bool registering_admin = 6 [deprecated = true];
472
+ * @deprecated
295
473
  */
296
474
  registeringAdmin: boolean;
297
475
 
@@ -304,6 +482,17 @@ export declare type MemberDetail = Message<"kusinta.iot.webrtc.v1.MemberDetail">
304
482
  * @generated from field: string email = 7;
305
483
  */
306
484
  email: string;
485
+
486
+ /**
487
+ * Whether they are a vouched administrator: named in the vouched set the gateway holds
488
+ * (signaling.v1.VouchedAdministrators), whether or not the gateway has seen them connect. Grants
489
+ * nothing on its own; it says that their ROLE_GATEWAY_ADMIN cannot be changed here and that
490
+ * RemoveFromGateway will refuse them. Their name and email address are empty until the gateway
491
+ * learns them from their own token.
492
+ *
493
+ * @generated from field: bool vouched_admin = 8;
494
+ */
495
+ vouchedAdmin: boolean;
307
496
  };
308
497
 
309
498
  /**
@@ -11,7 +11,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
11
11
  * Describes the file kusinta/iot/webrtc/v1/members.proto.
12
12
  */
13
13
  export const file_kusinta_iot_webrtc_v1_members = /*@__PURE__*/
14
- fileDesc("CiNrdXNpbnRhL2lvdC93ZWJydGMvdjEvbWVtYmVycy5wcm90bxIVa3VzaW50YS5pb3Qud2VicnRjLnYxIhQKEkxpc3RHYXRld2F5TWVtYmVycyJ6Cg1TZXRNZW1iZXJSb2xlEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSKQoEcm9sZRgCIAEoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEgwKBGhlbGQYAyABKAgiRQoRUmVtb3ZlRnJvbUdhdGV3YXkSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZCJ0Cg5TZXRBY2Nlc3NVbnRpbBIwCgd1c2VyX2lkGAEgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjAKDGFjY2Vzc191bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiVgoUU2V0T3duZXJPcmdhbmlzYXRpb24SPgoMb3JnYW5pc2F0aW9uGAEgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk93bmVyT3JnYW5pc2F0aW9uIj4KEU93bmVyT3JnYW5pc2F0aW9uEgwKBG5hbWUYASABKAkSGwoTb3JnYW5pc2F0aW9uX251bWJlchgCIAEoCSKMAQoOR2F0ZXdheU1lbWJlcnMSNAoHbWVtYmVycxgBIAMoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NZW1iZXJEZXRhaWwSRAoSb3duZXJfb3JnYW5pc2F0aW9uGAIgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk93bmVyT3JnYW5pc2F0aW9uIo8CCgxNZW1iZXJEZXRhaWwSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIMCgRuYW1lGAIgASgJEioKBXJvbGVzGAMgAygOMhsua3VzaW50YS5pb3QuYWNjZXNzLnYxLlJvbGUSNwoLbWVtYmVyc2hpcHMYBCADKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWVtYmVyU3BhY2USMAoMYWNjZXNzX3VudGlsGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFyZWdpc3RlcmluZ19hZG1pbhgGIAEoCBINCgVlbWFpbBgHIAEoCSKpAQoLTWVtYmVyU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjsKCHJlbGF0aW9uGAIgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbhIpCgVzaW5jZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
14
+ fileDesc("CiNrdXNpbnRhL2lvdC93ZWJydGMvdjEvbWVtYmVycy5wcm90bxIVa3VzaW50YS5pb3Qud2VicnRjLnYxIhQKEkxpc3RHYXRld2F5TWVtYmVycyJ6Cg1TZXRNZW1iZXJSb2xlEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSKQoEcm9sZRgCIAEoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEgwKBGhlbGQYAyABKAgibwoQUmVxdWVzdFByb21vdGlvbhIwCgd1c2VyX2lkGAEgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEikKBHJvbGUYAiABKA4yGy5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuUm9sZSI1Cg9BbnN3ZXJQcm9tb3Rpb24SEgoKcmVxdWVzdF9pZBgBIAEoCRIOCgZhY2NlcHQYAiABKAgiFwoVTGlzdFByb21vdGlvblJlcXVlc3RzIrcCChBQcm9tb3Rpb25SZXF1ZXN0EhIKCnJlcXVlc3RfaWQYASABKAkSMAoHdXNlcl9pZBgCIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIpCgRyb2xlGAMgASgOMhsua3VzaW50YS5pb3QuYWNjZXNzLnYxLlJvbGUSNQoMcmVxdWVzdGVkX2J5GAQgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEhkKEXJlcXVlc3RlZF9ieV9uYW1lGAUgASgJEjAKDHJlcXVlc3RlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiTgoRUHJvbW90aW9uUmVxdWVzdHMSOQoIcmVxdWVzdHMYASADKAsyJy5rdXNpbnRhLmlvdC53ZWJydGMudjEuUHJvbW90aW9uUmVxdWVzdCJFChFSZW1vdmVGcm9tR2F0ZXdheRIwCgd1c2VyX2lkGAEgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkInQKDlNldEFjY2Vzc1VudGlsEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSMAoMYWNjZXNzX3VudGlsGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJWChRTZXRPd25lck9yZ2FuaXNhdGlvbhI+CgxvcmdhbmlzYXRpb24YASABKAsyKC5rdXNpbnRhLmlvdC53ZWJydGMudjEuT3duZXJPcmdhbmlzYXRpb24iQgoRT3duZXJPcmdhbmlzYXRpb24SDAoEbmFtZRgBIAEoCRIfChNvcmdhbmlzYXRpb25fbnVtYmVyGAIgASgJQgIYASKMAQoOR2F0ZXdheU1lbWJlcnMSNAoHbWVtYmVycxgBIAMoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NZW1iZXJEZXRhaWwSRAoSb3duZXJfb3JnYW5pc2F0aW9uGAIgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk93bmVyT3JnYW5pc2F0aW9uIqoCCgxNZW1iZXJEZXRhaWwSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIMCgRuYW1lGAIgASgJEioKBXJvbGVzGAMgAygOMhsua3VzaW50YS5pb3QuYWNjZXNzLnYxLlJvbGUSNwoLbWVtYmVyc2hpcHMYBCADKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWVtYmVyU3BhY2USMAoMYWNjZXNzX3VudGlsGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIdChFyZWdpc3RlcmluZ19hZG1pbhgGIAEoCEICGAESDQoFZW1haWwYByABKAkSFQoNdm91Y2hlZF9hZG1pbhgIIAEoCCKpAQoLTWVtYmVyU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjsKCHJlbGF0aW9uGAIgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbhIpCgVzaW5jZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_identity_v1_identity]);
15
15
 
16
16
  /**
17
17
  * Describes the message kusinta.iot.webrtc.v1.ListGatewayMembers.
@@ -27,52 +27,87 @@ export const ListGatewayMembersSchema = /*@__PURE__*/
27
27
  export const SetMemberRoleSchema = /*@__PURE__*/
28
28
  messageDesc(file_kusinta_iot_webrtc_v1_members, 1);
29
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
+
30
65
  /**
31
66
  * Describes the message kusinta.iot.webrtc.v1.RemoveFromGateway.
32
67
  * Use `create(RemoveFromGatewaySchema)` to create a new message.
33
68
  */
34
69
  export const RemoveFromGatewaySchema = /*@__PURE__*/
35
- messageDesc(file_kusinta_iot_webrtc_v1_members, 2);
70
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 7);
36
71
 
37
72
  /**
38
73
  * Describes the message kusinta.iot.webrtc.v1.SetAccessUntil.
39
74
  * Use `create(SetAccessUntilSchema)` to create a new message.
40
75
  */
41
76
  export const SetAccessUntilSchema = /*@__PURE__*/
42
- messageDesc(file_kusinta_iot_webrtc_v1_members, 3);
77
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 8);
43
78
 
44
79
  /**
45
80
  * Describes the message kusinta.iot.webrtc.v1.SetOwnerOrganisation.
46
81
  * Use `create(SetOwnerOrganisationSchema)` to create a new message.
47
82
  */
48
83
  export const SetOwnerOrganisationSchema = /*@__PURE__*/
49
- messageDesc(file_kusinta_iot_webrtc_v1_members, 4);
84
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 9);
50
85
 
51
86
  /**
52
87
  * Describes the message kusinta.iot.webrtc.v1.OwnerOrganisation.
53
88
  * Use `create(OwnerOrganisationSchema)` to create a new message.
54
89
  */
55
90
  export const OwnerOrganisationSchema = /*@__PURE__*/
56
- messageDesc(file_kusinta_iot_webrtc_v1_members, 5);
91
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 10);
57
92
 
58
93
  /**
59
94
  * Describes the message kusinta.iot.webrtc.v1.GatewayMembers.
60
95
  * Use `create(GatewayMembersSchema)` to create a new message.
61
96
  */
62
97
  export const GatewayMembersSchema = /*@__PURE__*/
63
- messageDesc(file_kusinta_iot_webrtc_v1_members, 6);
98
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 11);
64
99
 
65
100
  /**
66
101
  * Describes the message kusinta.iot.webrtc.v1.MemberDetail.
67
102
  * Use `create(MemberDetailSchema)` to create a new message.
68
103
  */
69
104
  export const MemberDetailSchema = /*@__PURE__*/
70
- messageDesc(file_kusinta_iot_webrtc_v1_members, 7);
105
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 12);
71
106
 
72
107
  /**
73
108
  * Describes the message kusinta.iot.webrtc.v1.MemberSpace.
74
109
  * Use `create(MemberSpaceSchema)` to create a new message.
75
110
  */
76
111
  export const MemberSpaceSchema = /*@__PURE__*/
77
- messageDesc(file_kusinta_iot_webrtc_v1_members, 8);
112
+ messageDesc(file_kusinta_iot_webrtc_v1_members, 13);
78
113