@kusinta/iot-schema 0.2.0-beta.29 → 0.2.0-beta.30
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.
- package/package.json +1 -1
- package/src/kusinta/iot/access/v1/roles_pb.d.ts +12 -3
- package/src/kusinta/iot/access/v1/roles_pb.js +12 -3
- package/src/kusinta/iot/space/v1/space_pb.d.ts +24 -6
- package/src/kusinta/iot/space/v1/space_pb.js +2 -1
- package/src/kusinta/iot/webrtc/v1/app_token_pb.d.ts +14 -0
- package/src/kusinta/iot/webrtc/v1/app_token_pb.js +1 -1
- package/src/kusinta/iot/webrtc/v1/invite_pb.d.ts +71 -6
- package/src/kusinta/iot/webrtc/v1/invite_pb.js +18 -2
- package/src/kusinta/iot/webrtc/v1/management_pb.d.ts +1 -1
- package/src/kusinta/iot/webrtc/v1/members_pb.d.ts +35 -5
- package/src/kusinta/iot/webrtc/v1/members_pb.js +1 -1
package/package.json
CHANGED
|
@@ -38,6 +38,14 @@ export declare const file_kusinta_iot_access_v1_roles: GenFile;
|
|
|
38
38
|
* gateway-wide role alone would not grant. That widening is the gateway's to apply and is
|
|
39
39
|
* visible to the app only in the resolved DeviceAcl.
|
|
40
40
|
*
|
|
41
|
+
* STAFF. A user who holds ROLE_TECHNICIAN, ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN on a
|
|
42
|
+
* gateway is staff there: they serve the building rather than live in it. Wherever this
|
|
43
|
+
* schema says "staff" or "a staff member" it means exactly that, as the gateway holds roles,
|
|
44
|
+
* the registering administrator included; holding ROLE_RESIDENT besides changes nothing. The
|
|
45
|
+
* term carries one rule about people: staff are named to whoever may list every member; a
|
|
46
|
+
* resident is named only to the people they live with; and where anyone lives is told only
|
|
47
|
+
* to their own household.
|
|
48
|
+
*
|
|
41
49
|
* @generated from enum kusinta.iot.access.v1.Role
|
|
42
50
|
*/
|
|
43
51
|
export enum Role {
|
|
@@ -236,9 +244,10 @@ export declare const PermissionActionSchema: GenEnum<PermissionAction>;
|
|
|
236
244
|
* who service the building get the service view above and no more. It does not keep the
|
|
237
245
|
* property owner or the administrator out by force — they hold the building's filing
|
|
238
246
|
* authority and the gateway itself — but it makes their seeing in a deliberate act on the
|
|
239
|
-
* home, such as filing themselves on it, rather than something handed out by default.
|
|
240
|
-
*
|
|
241
|
-
* (webrtc.v1.ListGatewayMembers),
|
|
247
|
+
* home, such as filing themselves on it, rather than something handed out by default. They
|
|
248
|
+
* remove a resident who moves out, so they are shown each resident's homes, and since when
|
|
249
|
+
* (webrtc.v1.ListGatewayMembers), but never a resident's name; and a staff member's own
|
|
250
|
+
* residency is told only to the household they live in (see Role, STAFF).
|
|
242
251
|
*
|
|
243
252
|
* A membership recorded with no relation, made before relations existed, sees no more than
|
|
244
253
|
* either relation would where it is held: on an apartment or a room, a home as service; on a
|
|
@@ -45,6 +45,14 @@ export const RoleSchema = /*@__PURE__*/
|
|
|
45
45
|
* gateway-wide role alone would not grant. That widening is the gateway's to apply and is
|
|
46
46
|
* visible to the app only in the resolved DeviceAcl.
|
|
47
47
|
*
|
|
48
|
+
* STAFF. A user who holds ROLE_TECHNICIAN, ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN on a
|
|
49
|
+
* gateway is staff there: they serve the building rather than live in it. Wherever this
|
|
50
|
+
* schema says "staff" or "a staff member" it means exactly that, as the gateway holds roles,
|
|
51
|
+
* the registering administrator included; holding ROLE_RESIDENT besides changes nothing. The
|
|
52
|
+
* term carries one rule about people: staff are named to whoever may list every member; a
|
|
53
|
+
* resident is named only to the people they live with; and where anyone lives is told only
|
|
54
|
+
* to their own household.
|
|
55
|
+
*
|
|
48
56
|
* @generated from enum kusinta.iot.access.v1.Role
|
|
49
57
|
*/
|
|
50
58
|
export const Role = /*@__PURE__*/
|
|
@@ -140,9 +148,10 @@ export const MembershipRelationSchema = /*@__PURE__*/
|
|
|
140
148
|
* who service the building get the service view above and no more. It does not keep the
|
|
141
149
|
* property owner or the administrator out by force — they hold the building's filing
|
|
142
150
|
* authority and the gateway itself — but it makes their seeing in a deliberate act on the
|
|
143
|
-
* home, such as filing themselves on it, rather than something handed out by default.
|
|
144
|
-
*
|
|
145
|
-
* (webrtc.v1.ListGatewayMembers),
|
|
151
|
+
* home, such as filing themselves on it, rather than something handed out by default. They
|
|
152
|
+
* remove a resident who moves out, so they are shown each resident's homes, and since when
|
|
153
|
+
* (webrtc.v1.ListGatewayMembers), but never a resident's name; and a staff member's own
|
|
154
|
+
* residency is told only to the household they live in (see Role, STAFF).
|
|
146
155
|
*
|
|
147
156
|
* A membership recorded with no relation, made before relations existed, sees no more than
|
|
148
157
|
* either relation would where it is held: on an apartment or a room, a home as service; on a
|
|
@@ -7,6 +7,7 @@ import type { Message } from "@bufbuild/protobuf";
|
|
|
7
7
|
import type { DeviceId, GatewayId, SpaceId, TenantId, UserId } from "../../identity/v1/identity_pb.js";
|
|
8
8
|
import type { SpaceType } from "../../common/v1/types_pb.js";
|
|
9
9
|
import type { MembershipRelation } from "../../access/v1/roles_pb.js";
|
|
10
|
+
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Describes the file kusinta/iot/space/v1/space.proto.
|
|
@@ -103,7 +104,8 @@ export declare type Space = Message<"kusinta.iot.space.v1.Space"> & {
|
|
|
103
104
|
* Filled according to who asks, since a membership list says who lives where:
|
|
104
105
|
*
|
|
105
106
|
* * a caller holding ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN who reaches the space
|
|
106
|
-
* sees every member, in a home they see as service too, as the
|
|
107
|
+
* sees every member save as below, in a home they see as service too, as the
|
|
108
|
+
* members change;
|
|
107
109
|
* * a resident of an apartment sees every member filed on it or on its rooms — who they
|
|
108
110
|
* live with, and anyone filed on their home as service, since being filed on a home
|
|
109
111
|
* is an act on it its residents should see. Service reach from a building or floor
|
|
@@ -111,6 +113,11 @@ export declare type Space = Message<"kusinta.iot.space.v1.Space"> & {
|
|
|
111
113
|
* hold it, and who, without saying where anyone lives;
|
|
112
114
|
* * anyone else sees none, residents of a building or floor included.
|
|
113
115
|
*
|
|
116
|
+
* Whoever it is listed to, a member who is staff (access.v1.Role, STAFF) and lives in a
|
|
117
|
+
* home has that RESIDENT membership left out for every caller who does not live in that
|
|
118
|
+
* home, a property owner and an administrator included: a staff member's residency is
|
|
119
|
+
* told only to its household. Their SERVICE memberships are listed as any member's.
|
|
120
|
+
*
|
|
114
121
|
* @generated from field: repeated kusinta.iot.space.v1.SpaceMember members = 13;
|
|
115
122
|
*/
|
|
116
123
|
members: SpaceMember[];
|
|
@@ -148,17 +155,28 @@ export declare type SpaceMember = Message<"kusinta.iot.space.v1.SpaceMember"> &
|
|
|
148
155
|
|
|
149
156
|
/**
|
|
150
157
|
* The name the member gave, self-chosen and not verified, so the app shows it as the name
|
|
151
|
-
* they gave rather than as an identity. Given
|
|
158
|
+
* they gave rather than as an identity. Given to a caller who is a resident of the
|
|
152
159
|
* apartment the member is filed on, or on one of its rooms: the people they live with,
|
|
153
160
|
* and anyone filed on their home as service, whom webrtc.v1.PrivacyDisclosure already
|
|
154
|
-
* names to them.
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
161
|
+
* names to them. Given also, for a member who is staff (access.v1.Role, STAFF), to a
|
|
162
|
+
* caller holding ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN, as webrtc.v1.MemberDetail.name
|
|
163
|
+
* names them. Empty for every other caller — service, residents of any other home, and a
|
|
164
|
+
* property owner or an administrator for a member who is not staff — and for a member
|
|
165
|
+
* whose name the gateway has not learnt. A caller given names reads an empty one as not
|
|
166
|
+
* known; anyone else is given none. Residents are named only to their own home.
|
|
158
167
|
*
|
|
159
168
|
* @generated from field: string name = 3;
|
|
160
169
|
*/
|
|
161
170
|
name: string;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* As webrtc.v1.MemberSpace.since: the start of the day, in the building's time zone, on
|
|
174
|
+
* which this membership began; for a resident, the current unbroken residency. Never finer
|
|
175
|
+
* than a day. Unset where the gateway holds no record of it.
|
|
176
|
+
*
|
|
177
|
+
* @generated from field: google.protobuf.Timestamp since = 4;
|
|
178
|
+
*/
|
|
179
|
+
since?: Timestamp | undefined;
|
|
162
180
|
};
|
|
163
181
|
|
|
164
182
|
/**
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
5
5
|
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
6
|
+
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
6
7
|
import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
|
|
7
8
|
import { file_kusinta_iot_common_v1_types } from "../../common/v1/types_pb.js";
|
|
8
9
|
import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
|
|
@@ -11,7 +12,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
|
|
|
11
12
|
* Describes the file kusinta/iot/space/v1/space.proto.
|
|
12
13
|
*/
|
|
13
14
|
export const file_kusinta_iot_space_v1_space = /*@__PURE__*/
|
|
14
|
-
fileDesc("
|
|
15
|
+
fileDesc("CiBrdXNpbnRhL2lvdC9zcGFjZS92MS9zcGFjZS5wcm90bxIUa3VzaW50YS5pb3Quc3BhY2UudjEi3AQKBVNwYWNlEjIKCHNwYWNlX2lkGAEgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI0CgpzcGFjZV90eXBlGAIgASgOMiAua3VzaW50YS5pb3QuY29tbW9uLnYxLlNwYWNlVHlwZRIMCgRuYW1lGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEg0KBWZsb29yGAUgASgFEjkKD3BhcmVudF9zcGFjZV9pZBgGIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNwoNc3ViX3NwYWNlX2lkcxgHIAMoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSNQoKZGV2aWNlX2lkcxgIIAMoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLkRldmljZUlkEj0KEHJlc2lkZW50X3VzZXJfaWQYCSABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWRCAhgBEjQKCXRlbmFudF9pZBgKIAEoCzIhLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlRlbmFudElkEjYKCmdhdGV3YXlfaWQYCyABKAsyIi5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5HYXRld2F5SWQSEQoJdGltZV96b25lGAwgASgJEjIKB21lbWJlcnMYDSADKAsyIS5rdXNpbnRhLmlvdC5zcGFjZS52MS5TcGFjZU1lbWJlchIYChBtZW1iZXJzX3dpdGhoZWxkGA4gASgIIrUBCgtTcGFjZU1lbWJlchIwCgd1c2VyX2lkGAEgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjsKCHJlbGF0aW9uGAIgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbhIMCgRuYW1lGAMgASgJEikKBXNpbmNlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEICSAFiBnByb3RvMw", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles, file_kusinta_iot_common_v1_types, file_kusinta_iot_identity_v1_identity]);
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Describes the message kusinta.iot.space.v1.Space.
|
|
@@ -131,6 +131,20 @@ export declare type AppTokenClaims = Message<"kusinta.iot.webrtc.v1.AppTokenClai
|
|
|
131
131
|
* @generated from field: string name = 8;
|
|
132
132
|
*/
|
|
133
133
|
name: string;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* The verified email address of the account, or empty. The issuer sets it for a user who
|
|
137
|
+
* is staff (access.v1.Role, STAFF) on the token's gateway as the member report stands
|
|
138
|
+
* (reporting.v1.GatewayMember), the registering administrator included, when the identity
|
|
139
|
+
* provider marks their address verified. It MUST be empty for anyone else, and for an
|
|
140
|
+
* address not marked verified. The gateway MUST keep it only while the user holds a
|
|
141
|
+
* staff role, and use it only to tell staff apart to whoever may list every member
|
|
142
|
+
* (MemberDetail.email). A validator accepts a token without it. Carried in the JWT as
|
|
143
|
+
* "email".
|
|
144
|
+
*
|
|
145
|
+
* @generated from field: string email = 9;
|
|
146
|
+
*/
|
|
147
|
+
email: string;
|
|
134
148
|
};
|
|
135
149
|
|
|
136
150
|
/**
|
|
@@ -10,7 +10,7 @@ import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
|
|
|
10
10
|
* Describes the file kusinta/iot/webrtc/v1/app_token.proto.
|
|
11
11
|
*/
|
|
12
12
|
export const file_kusinta_iot_webrtc_v1_app_token = /*@__PURE__*/
|
|
13
|
-
fileDesc("
|
|
13
|
+
fileDesc("CiVrdXNpbnRhL2lvdC93ZWJydGMvdjEvYXBwX3Rva2VuLnByb3RvEhVrdXNpbnRhLmlvdC53ZWJydGMudjEihAIKDkFwcFRva2VuQ2xhaW1zEgsKA2lzcxgBIAEoCRILCgNhdWQYAiABKAkSCwoDc3ViGAMgASgJEicKA2lhdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJwoDZXhwGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIqCgVyb2xlcxgGIAMoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEjAKA2NuZhgHIAEoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Db25maXJtYXRpb24SDAoEbmFtZRgIIAEoCRINCgVlbWFpbBgJIAEoCSIgCgxDb25maXJtYXRpb24SEAoIeDV0X3MyNTYYASABKAlCAkgBYgZwcm90bzM", [file_google_protobuf_timestamp, file_kusinta_iot_access_v1_roles]);
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Describes the message kusinta.iot.webrtc.v1.AppTokenClaims.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// @generated from file kusinta/iot/webrtc/v1/invite.proto (package kusinta.iot.webrtc.v1, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
5
|
-
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
5
|
+
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
6
6
|
import type { Message } from "@bufbuild/protobuf";
|
|
7
7
|
import type { SpaceId, UserId } from "../../identity/v1/identity_pb.js";
|
|
8
8
|
import type { MembershipRelation } from "../../access/v1/roles_pb.js";
|
|
@@ -27,6 +27,11 @@ export declare const file_kusinta_iot_webrtc_v1_invite: GenFile;
|
|
|
27
27
|
* home. A caller over that limit is refused as FAILED_PRECONDITION with metadata
|
|
28
28
|
* {"reason": "household_full"}.
|
|
29
29
|
*
|
|
30
|
+
* Whether a RESIDENT invite with no address is a home key or a household invite (see the
|
|
31
|
+
* file header) is decided by who creates it, never asked for: a home key when the caller
|
|
32
|
+
* 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.
|
|
34
|
+
*
|
|
30
35
|
* A gateway holds at most 5000 invites whose secrets it reports
|
|
31
36
|
* (reporting.v1.ReportInviteRoutesRequest), used ones included until their secrets
|
|
32
37
|
* expire. Past that, CreateInvite MUST be refused as FAILED_PRECONDITION with metadata
|
|
@@ -150,6 +155,10 @@ export declare const MarkInviteEmailSentSchema: GenMessage<MarkInviteEmailSent>;
|
|
|
150
155
|
* NOT_ENTITLED. A resident is listed only the invites a resident of their home made,
|
|
151
156
|
* and the join requests those made: nothing they cannot act on.
|
|
152
157
|
*
|
|
158
|
+
* A household invite, and the join requests it made, are listed only to the residents of
|
|
159
|
+
* that home, a property owner or an administrator included only if they live there:
|
|
160
|
+
* otherwise Invite.created_by and JoinRequest.invited_by would say where its maker lives.
|
|
161
|
+
*
|
|
153
162
|
* @generated from message kusinta.iot.webrtc.v1.ListSpaceInvites
|
|
154
163
|
*/
|
|
155
164
|
export declare type ListSpaceInvites = Message<"kusinta.iot.webrtc.v1.ListSpaceInvites"> & {
|
|
@@ -169,8 +178,10 @@ export declare const ListSpaceInvitesSchema: GenMessage<ListSpaceInvites>;
|
|
|
169
178
|
* Files the person who made a join request on its space, with its relation, and the role
|
|
170
179
|
* that relation gives. Answered with ManagementAck.
|
|
171
180
|
*
|
|
172
|
-
* Who may approve is the gateway's decision
|
|
173
|
-
*
|
|
181
|
+
* Who may approve is the gateway's decision, by the kind of invite the request came from
|
|
182
|
+
* (see the file header): for a household invite, a resident of that home alone, and not a
|
|
183
|
+
* property owner or an administrator who does not live there; for a SERVICE invite with no
|
|
184
|
+
* address, whoever may put people on that space. Anyone else is refused as NOT_ENTITLED.
|
|
174
185
|
*
|
|
175
186
|
* @generated from message kusinta.iot.webrtc.v1.ApproveJoinRequest
|
|
176
187
|
*/
|
|
@@ -189,7 +200,7 @@ export declare const ApproveJoinRequestSchema: GenMessage<ApproveJoinRequest>;
|
|
|
189
200
|
|
|
190
201
|
/**
|
|
191
202
|
* Drops a join request. The person is told nothing beyond never being let in. Answered
|
|
192
|
-
* with ManagementAck.
|
|
203
|
+
* with ManagementAck. Who may deny is who may approve (ApproveJoinRequest).
|
|
193
204
|
*
|
|
194
205
|
* @generated from message kusinta.iot.webrtc.v1.DenyJoinRequest
|
|
195
206
|
*/
|
|
@@ -276,6 +287,14 @@ export declare type Invite = Message<"kusinta.iot.webrtc.v1.Invite"> & {
|
|
|
276
287
|
* @generated from field: google.protobuf.Timestamp access_until = 10;
|
|
277
288
|
*/
|
|
278
289
|
accessUntil?: Timestamp | undefined;
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* What redeeming it does, as the gateway decided when it was created. The gateway MUST
|
|
293
|
+
* set it on every invite it lists or issues.
|
|
294
|
+
*
|
|
295
|
+
* @generated from field: kusinta.iot.webrtc.v1.InviteAdmission admission = 11;
|
|
296
|
+
*/
|
|
297
|
+
admission: InviteAdmission;
|
|
279
298
|
};
|
|
280
299
|
|
|
281
300
|
/**
|
|
@@ -370,7 +389,8 @@ export declare type JoinRequest = Message<"kusinta.iot.webrtc.v1.JoinRequest"> &
|
|
|
370
389
|
|
|
371
390
|
/**
|
|
372
391
|
* The verified email address of the account asking (signaling.v1.RedeemInvite), shown to
|
|
373
|
-
* whoever may approve the request
|
|
392
|
+
* whoever may approve the request (ApproveJoinRequest): the household for a household
|
|
393
|
+
* invite, and otherwise those who may put people on the space. A display name is
|
|
374
394
|
* whatever the person chose; this is what lets an approver tell who is really asking. The
|
|
375
395
|
* app tells a person redeeming that their address will be shown so. Kept only while the
|
|
376
396
|
* request is pending.
|
|
@@ -402,7 +422,8 @@ export declare const JoinRequestSchema: GenMessage<JoinRequest>;
|
|
|
402
422
|
* either list changes — a create, resend, revoke, redeem, approval, denial or expiry — to
|
|
403
423
|
* every session that may list it, so the app shows the change without reloading. A push
|
|
404
424
|
* always carries the whole of both lists for its space, as ListSpaceInvites would list
|
|
405
|
-
* them to that session
|
|
425
|
+
* them to that session: a household invite and its join requests reach only the sessions
|
|
426
|
+
* of that home's residents.
|
|
406
427
|
*
|
|
407
428
|
* @generated from message kusinta.iot.webrtc.v1.SpaceInvites
|
|
408
429
|
*/
|
|
@@ -429,3 +450,47 @@ export declare type SpaceInvites = Message<"kusinta.iot.webrtc.v1.SpaceInvites">
|
|
|
429
450
|
*/
|
|
430
451
|
export declare const SpaceInvitesSchema: GenMessage<SpaceInvites>;
|
|
431
452
|
|
|
453
|
+
/**
|
|
454
|
+
* What redeeming an invite does, by its kind (see the file header). Decided by the gateway
|
|
455
|
+
* when the invite is created and told in Invite.admission, so the app can say what
|
|
456
|
+
* redeeming will do before the invite is shared.
|
|
457
|
+
*
|
|
458
|
+
* @generated from enum kusinta.iot.webrtc.v1.InviteAdmission
|
|
459
|
+
*/
|
|
460
|
+
export enum InviteAdmission {
|
|
461
|
+
/**
|
|
462
|
+
* Not told. The app reads it as not known, never as any value below.
|
|
463
|
+
*
|
|
464
|
+
* @generated from enum value: INVITE_ADMISSION_UNSPECIFIED = 0;
|
|
465
|
+
*/
|
|
466
|
+
UNSPECIFIED = 0,
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Bound to an address: files the person at once if the verified address of their account
|
|
470
|
+
* matches (CreateInvite.email).
|
|
471
|
+
*
|
|
472
|
+
* @generated from enum value: INVITE_ADMISSION_ON_EMAIL_MATCH = 1;
|
|
473
|
+
*/
|
|
474
|
+
ON_EMAIL_MATCH = 1,
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* A home key: files whoever redeems it on the home at once, with no join request.
|
|
478
|
+
*
|
|
479
|
+
* @generated from enum value: INVITE_ADMISSION_ON_REDEEM = 2;
|
|
480
|
+
*/
|
|
481
|
+
ON_REDEEM = 2,
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Makes a join request, and the person is filed only once it is approved
|
|
485
|
+
* (ApproveJoinRequest).
|
|
486
|
+
*
|
|
487
|
+
* @generated from enum value: INVITE_ADMISSION_ON_APPROVAL = 3;
|
|
488
|
+
*/
|
|
489
|
+
ON_APPROVAL = 3,
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* Describes the enum kusinta.iot.webrtc.v1.InviteAdmission.
|
|
494
|
+
*/
|
|
495
|
+
export declare const InviteAdmissionSchema: GenEnum<InviteAdmission>;
|
|
496
|
+
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// @generated from file kusinta/iot/webrtc/v1/invite.proto (package kusinta.iot.webrtc.v1, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
5
|
-
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
5
|
+
import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/codegenv2";
|
|
6
6
|
import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
|
|
7
7
|
import { file_kusinta_iot_access_v1_roles } from "../../access/v1/roles_pb.js";
|
|
8
8
|
import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identity_pb.js";
|
|
@@ -11,7 +11,7 @@ import { file_kusinta_iot_identity_v1_identity } from "../../identity/v1/identit
|
|
|
11
11
|
* Describes the file kusinta/iot/webrtc/v1/invite.proto.
|
|
12
12
|
*/
|
|
13
13
|
export const file_kusinta_iot_webrtc_v1_invite = /*@__PURE__*/
|
|
14
|
-
fileDesc("
|
|
14
|
+
fileDesc("CiJrdXNpbnRhL2lvdC93ZWJydGMvdjEvaW52aXRlLnByb3RvEhVrdXNpbnRhLmlvdC53ZWJydGMudjEiwAEKDENyZWF0ZUludml0ZRIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSOwoIcmVsYXRpb24YAiABKA4yKS5rdXNpbnRhLmlvdC5hY2Nlc3MudjEuTWVtYmVyc2hpcFJlbGF0aW9uEg0KBWVtYWlsGAMgASgJEjAKDGFjY2Vzc191bnRpbBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiIQoMUmVzZW5kSW52aXRlEhEKCWludml0ZV9pZBgBIAEoCSIhCgxSZXZva2VJbnZpdGUSEQoJaW52aXRlX2lkGAEgASgJIigKE01hcmtJbnZpdGVFbWFpbFNlbnQSEQoJaW52aXRlX2lkGAEgASgJIkYKEExpc3RTcGFjZUludml0ZXMSMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkIigKEkFwcHJvdmVKb2luUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJIiUKD0RlbnlKb2luUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJIosECgZJbnZpdGUSEQoJaW52aXRlX2lkGAEgASgJEjIKCHNwYWNlX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI7CghyZWxhdGlvbhgDIAEoDjIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5NZW1iZXJzaGlwUmVsYXRpb24SMwoKY3JlYXRlZF9ieRgEIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI0ChB0b2tlbl9leHBpcmVzX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCg9jb2RlX2V4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBWVtYWlsGAggASgJEjEKDWVtYWlsX3NlbnRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGFjY2Vzc191bnRpbBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOQoJYWRtaXNzaW9uGAsgASgOMiYua3VzaW50YS5pb3Qud2VicnRjLnYxLkludml0ZUFkbWlzc2lvbiJaCgxJc3N1ZWRJbnZpdGUSLQoGaW52aXRlGAEgASgLMh0ua3VzaW50YS5pb3Qud2VicnRjLnYxLkludml0ZRINCgV0b2tlbhgCIAEoCRIMCgRjb2RlGAMgASgJIrIDCgtKb2luUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJEjIKCHNwYWNlX2lkGAIgASgLMiAua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuU3BhY2VJZBI7CghyZWxhdGlvbhgDIAEoDjIpLmt1c2ludGEuaW90LmFjY2Vzcy52MS5NZW1iZXJzaGlwUmVsYXRpb24SMAoHdXNlcl9pZBgEIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIUCgxkaXNwbGF5X25hbWUYBSABKAkSMwoKaW52aXRlZF9ieRgGIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIwCgxyZXF1ZXN0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZXNfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBWVtYWlsGAkgASgJEjAKDGFjY2Vzc191bnRpbBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAirQEKDFNwYWNlSW52aXRlcxIyCghzcGFjZV9pZBgBIAEoCzIgLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlNwYWNlSWQSLgoHaW52aXRlcxgCIAMoCzIdLmt1c2ludGEuaW90LndlYnJ0Yy52MS5JbnZpdGUSOQoNam9pbl9yZXF1ZXN0cxgDIAMoCzIiLmt1c2ludGEuaW90LndlYnJ0Yy52MS5Kb2luUmVxdWVzdCqaAQoPSW52aXRlQWRtaXNzaW9uEiAKHElOVklURV9BRE1JU1NJT05fVU5TUEVDSUZJRUQQABIjCh9JTlZJVEVfQURNSVNTSU9OX09OX0VNQUlMX01BVENIEAESHgoaSU5WSVRFX0FETUlTU0lPTl9PTl9SRURFRU0QAhIgChxJTlZJVEVfQURNSVNTSU9OX09OX0FQUFJPVkFMEANCAkgBYgZwcm90bzM", [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.CreateInvite.
|
|
@@ -90,3 +90,19 @@ export const JoinRequestSchema = /*@__PURE__*/
|
|
|
90
90
|
export const SpaceInvitesSchema = /*@__PURE__*/
|
|
91
91
|
messageDesc(file_kusinta_iot_webrtc_v1_invite, 10);
|
|
92
92
|
|
|
93
|
+
/**
|
|
94
|
+
* Describes the enum kusinta.iot.webrtc.v1.InviteAdmission.
|
|
95
|
+
*/
|
|
96
|
+
export const InviteAdmissionSchema = /*@__PURE__*/
|
|
97
|
+
enumDesc(file_kusinta_iot_webrtc_v1_invite, 0);
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* What redeeming an invite does, by its kind (see the file header). Decided by the gateway
|
|
101
|
+
* when the invite is created and told in Invite.admission, so the app can say what
|
|
102
|
+
* redeeming will do before the invite is shared.
|
|
103
|
+
*
|
|
104
|
+
* @generated from enum kusinta.iot.webrtc.v1.InviteAdmission
|
|
105
|
+
*/
|
|
106
|
+
export const InviteAdmission = /*@__PURE__*/
|
|
107
|
+
tsEnum(InviteAdmissionSchema);
|
|
108
|
+
|
|
@@ -1010,7 +1010,7 @@ export declare type ServiceParty = Message<"kusinta.iot.webrtc.v1.ServiceParty">
|
|
|
1010
1010
|
|
|
1011
1011
|
/**
|
|
1012
1012
|
* Each person counted under this role, by the name they gave their account
|
|
1013
|
-
* (
|
|
1013
|
+
* (AppTokenClaims.name), once each: everyone holding ROLE_GATEWAY_ADMIN or
|
|
1014
1014
|
* ROLE_PROPERTY_OWNER, the registering administrator included once the gateway has seen
|
|
1015
1015
|
* their token, and everyone else counted here by a SERVICE membership. A person counted
|
|
1016
1016
|
* under several roles is named under each. An empty string stands for a person whose name
|
|
@@ -18,9 +18,14 @@ export declare const file_kusinta_iot_webrtc_v1_members: GenFile;
|
|
|
18
18
|
* holding ROLE_GATEWAY_ADMIN or ROLE_PROPERTY_OWNER; anyone else is refused as
|
|
19
19
|
* NOT_ENTITLED.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
* Those two roles answer for the whole property, and a resident who moves out is removed by
|
|
22
|
+
* them (RemoveFromGateway), so every member is listed to them. Each is told apart as the rule
|
|
23
|
+
* for staff allows (access.v1.Role, STAFF):
|
|
24
|
+
* * a resident by their memberships — the homes they live in, and since when
|
|
25
|
+
* (MemberSpace.since) — never by name or address;
|
|
26
|
+
* * staff by name and email address (MemberDetail.name, MemberDetail.email), and by their
|
|
27
|
+
* memberships save where they live: a staff member's residency is left out of every
|
|
28
|
+
* entry but the caller's own, since a residency is told only to its household.
|
|
24
29
|
* Seeing into a home's life — its devices, readings and history — still takes filing on it.
|
|
25
30
|
*
|
|
26
31
|
* @generated from message kusinta.iot.webrtc.v1.ListGatewayMembers
|
|
@@ -229,8 +234,10 @@ export declare type MemberDetail = Message<"kusinta.iot.webrtc.v1.MemberDetail">
|
|
|
229
234
|
/**
|
|
230
235
|
* The name they gave their account, as the gateway last learnt it: from AppTokenClaims.name
|
|
231
236
|
* when they connect, or from signaling.v1.RedeemInvite.display_name when they redeem with
|
|
232
|
-
* none learnt yet. Self-chosen, so the app shows it as such.
|
|
233
|
-
*
|
|
237
|
+
* none learnt yet. Self-chosen, so the app shows it as such. Given only for a member who is
|
|
238
|
+
* staff (access.v1.Role, STAFF), and on the caller's own entry; empty for every other
|
|
239
|
+
* resident, and when none is learnt. The gateway keeps it only while they are a member,
|
|
240
|
+
* and drops it when they stop being one.
|
|
234
241
|
*
|
|
235
242
|
* @generated from field: string name = 2;
|
|
236
243
|
*/
|
|
@@ -245,6 +252,9 @@ export declare type MemberDetail = Message<"kusinta.iot.webrtc.v1.MemberDetail">
|
|
|
245
252
|
roles: Role[];
|
|
246
253
|
|
|
247
254
|
/**
|
|
255
|
+
* Every space they are filed on, save that a staff member's RESIDENT memberships are left
|
|
256
|
+
* out of every entry but the caller's own. A member with none left is still listed.
|
|
257
|
+
*
|
|
248
258
|
* @generated from field: repeated kusinta.iot.webrtc.v1.MemberSpace memberships = 4;
|
|
249
259
|
*/
|
|
250
260
|
memberships: MemberSpace[];
|
|
@@ -264,6 +274,16 @@ export declare type MemberDetail = Message<"kusinta.iot.webrtc.v1.MemberDetail">
|
|
|
264
274
|
* @generated from field: bool registering_admin = 6;
|
|
265
275
|
*/
|
|
266
276
|
registeringAdmin: boolean;
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Their verified email address, as AppTokenClaims.email last gave it, so that staff who
|
|
280
|
+
* gave the same name can be told apart. Given only for a member who is staff; empty for a
|
|
281
|
+
* resident, and when none is learnt. The gateway keeps it only while they hold a staff
|
|
282
|
+
* role.
|
|
283
|
+
*
|
|
284
|
+
* @generated from field: string email = 7;
|
|
285
|
+
*/
|
|
286
|
+
email: string;
|
|
267
287
|
};
|
|
268
288
|
|
|
269
289
|
/**
|
|
@@ -287,6 +307,16 @@ export declare type MemberSpace = Message<"kusinta.iot.webrtc.v1.MemberSpace"> &
|
|
|
287
307
|
* @generated from field: kusinta.iot.access.v1.MembershipRelation relation = 2;
|
|
288
308
|
*/
|
|
289
309
|
relation: MembershipRelation;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* The start of the day, in the building's time zone (space.v1.Space.time_zone), on which
|
|
313
|
+
* the current membership began; for a resident, the current unbroken residency
|
|
314
|
+
* (access.v1.MembershipRelation). Never finer than a day. Unset where the gateway holds no
|
|
315
|
+
* record of it.
|
|
316
|
+
*
|
|
317
|
+
* @generated from field: google.protobuf.Timestamp since = 3;
|
|
318
|
+
*/
|
|
319
|
+
since?: Timestamp | undefined;
|
|
290
320
|
};
|
|
291
321
|
|
|
292
322
|
/**
|
|
@@ -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("
|
|
14
|
+
fileDesc("CiNrdXNpbnRhL2lvdC93ZWJydGMvdjEvbWVtYmVycy5wcm90bxIVa3VzaW50YS5pb3Qud2VicnRjLnYxIhQKEkxpc3RHYXRld2F5TWVtYmVycyJ6Cg1TZXRNZW1iZXJSb2xlEjAKB3VzZXJfaWQYASABKAsyHy5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5Vc2VySWQSKQoEcm9sZRgCIAEoDjIbLmt1c2ludGEuaW90LmFjY2Vzcy52MS5Sb2xlEgwKBGhlbGQYAyABKAgiRQoRUmVtb3ZlRnJvbUdhdGV3YXkSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZCJ0Cg5TZXRBY2Nlc3NVbnRpbBIwCgd1c2VyX2lkGAEgASgLMh8ua3VzaW50YS5pb3QuaWRlbnRpdHkudjEuVXNlcklkEjAKDGFjY2Vzc191bnRpbBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiVgoUU2V0T3duZXJPcmdhbmlzYXRpb24SPgoMb3JnYW5pc2F0aW9uGAEgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk93bmVyT3JnYW5pc2F0aW9uIj4KEU93bmVyT3JnYW5pc2F0aW9uEgwKBG5hbWUYASABKAkSGwoTb3JnYW5pc2F0aW9uX251bWJlchgCIAEoCSKMAQoOR2F0ZXdheU1lbWJlcnMSNAoHbWVtYmVycxgBIAMoCzIjLmt1c2ludGEuaW90LndlYnJ0Yy52MS5NZW1iZXJEZXRhaWwSRAoSb3duZXJfb3JnYW5pc2F0aW9uGAIgASgLMigua3VzaW50YS5pb3Qud2VicnRjLnYxLk93bmVyT3JnYW5pc2F0aW9uIo8CCgxNZW1iZXJEZXRhaWwSMAoHdXNlcl9pZBgBIAEoCzIfLmt1c2ludGEuaW90LmlkZW50aXR5LnYxLlVzZXJJZBIMCgRuYW1lGAIgASgJEioKBXJvbGVzGAMgAygOMhsua3VzaW50YS5pb3QuYWNjZXNzLnYxLlJvbGUSNwoLbWVtYmVyc2hpcHMYBCADKAsyIi5rdXNpbnRhLmlvdC53ZWJydGMudjEuTWVtYmVyU3BhY2USMAoMYWNjZXNzX3VudGlsGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZChFyZWdpc3RlcmluZ19hZG1pbhgGIAEoCBINCgVlbWFpbBgHIAEoCSKpAQoLTWVtYmVyU3BhY2USMgoIc3BhY2VfaWQYASABKAsyIC5rdXNpbnRhLmlvdC5pZGVudGl0eS52MS5TcGFjZUlkEjsKCHJlbGF0aW9uGAIgASgOMikua3VzaW50YS5pb3QuYWNjZXNzLnYxLk1lbWJlcnNoaXBSZWxhdGlvbhIpCgVzaW5jZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAkgBYgZwcm90bzM", [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.
|