@fivenet-app/gen 2026.8.0 → 2026.10.2
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/LICENSE +201 -0
- package/clients.ts +12 -0
- package/codegen/perms/perms.ts +331 -2
- package/google/protobuf/any.ts +47 -103
- package/google/protobuf/descriptor.ts +28 -29
- package/google/protobuf/struct.ts +33 -22
- package/google/protobuf/timestamp.ts +3 -3
- package/package.json +2 -2
- package/perms.ts +58 -17
- package/resources/calendar/calendar.ts +11 -0
- package/resources/calendar/entries/entries.ts +23 -0
- package/resources/centrum/dispatches/dispatches.ts +214 -21
- package/resources/centrum/units/units.ts +212 -5
- package/resources/citizens/labels/access.ts +10 -6
- package/resources/cron/cron.ts +44 -3
- package/resources/dbsync/state.ts +192 -0
- package/resources/documents/stamps/access.ts +25 -0
- package/resources/documents/stamps/stamp.ts +0 -21
- package/resources/documents/templates/templates.ts +63 -61
- package/resources/documents/workflow/workflow.ts +61 -1
- package/resources/file/file.ts +3 -3
- package/resources/file/filestore.ts +26 -10
- package/resources/jobs/colleagues/activity/activity.ts +50 -8
- package/resources/jobs/colleagues/colleagues.ts +14 -1
- package/resources/jobs/groups/access/access.ts +29 -0
- package/resources/jobs/groups/activity.ts +332 -0
- package/resources/jobs/groups/group.ts +1666 -0
- package/resources/jobs/groups/short/group_member_short.ts +129 -0
- package/resources/jobs/job_asset.ts +116 -0
- package/resources/jobs/user_selector.ts +170 -0
- package/resources/notifications/clientview/clientview.ts +5 -1
- package/resources/notifications/events/events.ts +35 -1
- package/resources/notifications/notifications.ts +322 -2
- package/resources/permissions/attributes/attributes.ts +164 -2
- package/resources/permissions/authorization/authorization.ts +86 -0
- package/resources/permissions/permissions/permissions.ts +16 -1
- package/resources/properties/properties.ts +1648 -0
- package/resources/qualifications/activity/activity.ts +328 -0
- package/resources/qualifications/exam/exam.ts +108 -4
- package/resources/qualifications/qualifications.ts +36 -2
- package/resources/settings/config.ts +3 -3
- package/resources/settings/status.ts +197 -105
- package/resources/sync/activity/activity.ts +4 -4
- package/resources/sync/data/data.ts +16 -4
- package/resources/users/activity/activity.ts +220 -3
- package/resources/users/props/props.ts +13 -1
- package/resources/users/user.ts +13 -1
- package/resources/vehicles/activity/activity.ts +222 -3
- package/resources/vehicles/props/props.ts +13 -1
- package/resources/vehicles/vehicles.ts +13 -1
- package/services/auth/auth.ts +61 -67
- package/services/calendar/calendar.ts +1 -1
- package/services/calendar/entries.ts +3 -3
- package/services/centrum/centrum.ts +103 -1
- package/services/centrum/dispatches.ts +25 -1
- package/services/centrum/units.ts +28 -4
- package/services/citizens/citizens.client.ts +49 -0
- package/services/citizens/citizens.ts +384 -7
- package/services/completor/completor.ts +2 -2
- package/services/documents/approval.ts +2 -2
- package/services/documents/documents.ts +10 -9
- package/services/documents/templates.ts +24 -13
- package/services/jobs/colleagues.client.ts +34 -8
- package/services/jobs/colleagues.ts +289 -75
- package/services/jobs/conduct.ts +12 -19
- package/services/jobs/groups.client.ts +311 -0
- package/services/jobs/groups.ts +3654 -1
- package/services/jobs/timeclock.ts +30 -27
- package/services/notifications/notifications.client.ts +40 -1
- package/services/notifications/notifications.ts +483 -3
- package/services/qualifications/qualifications.client.ts +20 -7
- package/services/qualifications/qualifications.ts +291 -8
- package/services/settings/job_assets.client.ts +105 -0
- package/services/settings/job_assets.ts +373 -0
- package/services/settings/properties.client.ts +194 -0
- package/services/settings/properties.ts +1555 -0
- package/services/settings/settings.ts +1 -1
- package/services/settings/system.ts +29 -9
- package/services/sync/sync.client.ts +69 -33
- package/services/sync/sync.ts +557 -18
- package/services/vehicles/vehicles.client.ts +52 -0
- package/services/vehicles/vehicles.ts +386 -8
- package/svcs.ts +87 -1
|
@@ -14,6 +14,56 @@ import { MessageType } from "@protobuf-ts/runtime";
|
|
|
14
14
|
import { UserShort } from "../users/short/user";
|
|
15
15
|
import { I18NItem } from "../common/i18n";
|
|
16
16
|
import { Timestamp } from "../timestamp/timestamp";
|
|
17
|
+
/**
|
|
18
|
+
* A per-user override for notification delivery. An unspecified category and
|
|
19
|
+
* kind form the global default; a category with an unspecified kind is a
|
|
20
|
+
* category default; and both set is a kind-specific override. Optional fields
|
|
21
|
+
* intentionally inherit from the less specific scope when absent.
|
|
22
|
+
*
|
|
23
|
+
* @generated from protobuf message resources.notifications.NotificationPreference
|
|
24
|
+
*/
|
|
25
|
+
export interface NotificationPreference {
|
|
26
|
+
/**
|
|
27
|
+
* @generated from protobuf field: resources.notifications.NotificationCategory category = 1
|
|
28
|
+
*/
|
|
29
|
+
category: NotificationCategory;
|
|
30
|
+
/**
|
|
31
|
+
* @generated from protobuf field: resources.notifications.NotificationKind kind = 2
|
|
32
|
+
*/
|
|
33
|
+
kind: NotificationKind;
|
|
34
|
+
/**
|
|
35
|
+
* @generated from protobuf field: optional bool inbox_enabled = 3
|
|
36
|
+
*/
|
|
37
|
+
inboxEnabled?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* @generated from protobuf field: optional bool toast_enabled = 4
|
|
40
|
+
*/
|
|
41
|
+
toastEnabled?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* @generated from protobuf field: optional bool sound_enabled = 5
|
|
44
|
+
*/
|
|
45
|
+
soundEnabled?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Delivery instructions are resolved server-side and are only attached to a
|
|
49
|
+
* live notification event. They are never persisted with the notification.
|
|
50
|
+
*
|
|
51
|
+
* @generated from protobuf message resources.notifications.NotificationDelivery
|
|
52
|
+
*/
|
|
53
|
+
export interface NotificationDelivery {
|
|
54
|
+
/**
|
|
55
|
+
* @generated from protobuf field: bool inbox_enabled = 1
|
|
56
|
+
*/
|
|
57
|
+
inboxEnabled: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* @generated from protobuf field: bool toast_enabled = 2
|
|
60
|
+
*/
|
|
61
|
+
toastEnabled: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* @generated from protobuf field: bool sound_enabled = 3
|
|
64
|
+
*/
|
|
65
|
+
soundEnabled: boolean;
|
|
66
|
+
}
|
|
17
67
|
/**
|
|
18
68
|
* @generated from protobuf message resources.notifications.Notification
|
|
19
69
|
*/
|
|
@@ -58,6 +108,30 @@ export interface Notification {
|
|
|
58
108
|
* @generated from protobuf field: optional bool starred = 10
|
|
59
109
|
*/
|
|
60
110
|
starred?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* @generated from protobuf field: resources.notifications.NotificationKind kind = 11
|
|
113
|
+
*/
|
|
114
|
+
kind: NotificationKind;
|
|
115
|
+
/**
|
|
116
|
+
* @generated from protobuf field: optional int32 actor_user_id = 12
|
|
117
|
+
*/
|
|
118
|
+
actorUserId?: number;
|
|
119
|
+
/**
|
|
120
|
+
* @generated from protobuf field: optional string entity_type = 13
|
|
121
|
+
*/
|
|
122
|
+
entityType?: string;
|
|
123
|
+
/**
|
|
124
|
+
* @generated from protobuf field: optional int64 entity_id = 14
|
|
125
|
+
*/
|
|
126
|
+
entityId?: number;
|
|
127
|
+
/**
|
|
128
|
+
* @generated from protobuf field: resources.timestamp.Timestamp archived_at = 15
|
|
129
|
+
*/
|
|
130
|
+
archivedAt?: Timestamp;
|
|
131
|
+
/**
|
|
132
|
+
* @generated from protobuf field: optional resources.notifications.NotificationDelivery delivery = 16
|
|
133
|
+
*/
|
|
134
|
+
delivery?: NotificationDelivery;
|
|
61
135
|
}
|
|
62
136
|
/**
|
|
63
137
|
* @generated from protobuf message resources.notifications.Data
|
|
@@ -150,8 +224,211 @@ export enum NotificationCategory {
|
|
|
150
224
|
/**
|
|
151
225
|
* @generated from protobuf enum value: NOTIFICATION_CATEGORY_CALENDAR = 3;
|
|
152
226
|
*/
|
|
153
|
-
CALENDAR = 3
|
|
227
|
+
CALENDAR = 3,
|
|
228
|
+
/**
|
|
229
|
+
* @generated from protobuf enum value: NOTIFICATION_CATEGORY_JOBS = 4;
|
|
230
|
+
*/
|
|
231
|
+
JOBS = 4,
|
|
232
|
+
/**
|
|
233
|
+
* @generated from protobuf enum value: NOTIFICATION_CATEGORY_QUALIFICATIONS = 5;
|
|
234
|
+
*/
|
|
235
|
+
QUALIFICATIONS = 5,
|
|
236
|
+
/**
|
|
237
|
+
* @generated from protobuf enum value: NOTIFICATION_CATEGORY_MAILER = 6;
|
|
238
|
+
*/
|
|
239
|
+
MAILER = 6,
|
|
240
|
+
/**
|
|
241
|
+
* @generated from protobuf enum value: NOTIFICATION_CATEGORY_DISPATCH = 7;
|
|
242
|
+
*/
|
|
243
|
+
DISPATCH = 7,
|
|
244
|
+
/**
|
|
245
|
+
* @generated from protobuf enum value: NOTIFICATION_CATEGORY_SYSTEM = 8;
|
|
246
|
+
*/
|
|
247
|
+
SYSTEM = 8
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* A precise, typed event within a notification category. Categories remain
|
|
251
|
+
* intentionally broad so clients can provide consistent filtering and UI.
|
|
252
|
+
*
|
|
253
|
+
* @generated from protobuf enum resources.notifications.NotificationKind
|
|
254
|
+
*/
|
|
255
|
+
export enum NotificationKind {
|
|
256
|
+
/**
|
|
257
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_UNSPECIFIED = 0;
|
|
258
|
+
*/
|
|
259
|
+
UNSPECIFIED = 0,
|
|
260
|
+
/**
|
|
261
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_JOBS_GROUP_LEADERSHIP_ADDED = 1;
|
|
262
|
+
*/
|
|
263
|
+
JOBS_GROUP_LEADERSHIP_ADDED = 1,
|
|
264
|
+
/**
|
|
265
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_JOBS_GROUP_LEADERSHIP_REMOVED = 2;
|
|
266
|
+
*/
|
|
267
|
+
JOBS_GROUP_LEADERSHIP_REMOVED = 2,
|
|
268
|
+
/**
|
|
269
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_JOBS_GROUP_MEMBER_ADDED = 3;
|
|
270
|
+
*/
|
|
271
|
+
JOBS_GROUP_MEMBER_ADDED = 3,
|
|
272
|
+
/**
|
|
273
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_JOBS_GROUP_MEMBER_REMOVED = 4;
|
|
274
|
+
*/
|
|
275
|
+
JOBS_GROUP_MEMBER_REMOVED = 4,
|
|
276
|
+
/**
|
|
277
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_DOCUMENT_APPROVAL_ASSIGNED = 5;
|
|
278
|
+
*/
|
|
279
|
+
DOCUMENT_APPROVAL_ASSIGNED = 5,
|
|
280
|
+
/**
|
|
281
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_DOCUMENT_REQUEST_CREATED = 6;
|
|
282
|
+
*/
|
|
283
|
+
DOCUMENT_REQUEST_CREATED = 6,
|
|
284
|
+
/**
|
|
285
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_DOCUMENT_REQUEST_DECIDED = 7;
|
|
286
|
+
*/
|
|
287
|
+
DOCUMENT_REQUEST_DECIDED = 7,
|
|
288
|
+
/**
|
|
289
|
+
* @generated from protobuf enum value: NOTIFICATION_KIND_DOCUMENT_REQUEST_CANCELLED = 8;
|
|
290
|
+
*/
|
|
291
|
+
DOCUMENT_REQUEST_CANCELLED = 8
|
|
292
|
+
}
|
|
293
|
+
// @generated message type with reflection information, may provide speed optimized methods
|
|
294
|
+
class NotificationPreference$Type extends MessageType<NotificationPreference> {
|
|
295
|
+
constructor() {
|
|
296
|
+
super("resources.notifications.NotificationPreference", [
|
|
297
|
+
{ no: 1, name: "category", kind: "enum", T: () => ["resources.notifications.NotificationCategory", NotificationCategory, "NOTIFICATION_CATEGORY_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
|
|
298
|
+
{ no: 2, name: "kind", kind: "enum", T: () => ["resources.notifications.NotificationKind", NotificationKind, "NOTIFICATION_KIND_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
|
|
299
|
+
{ no: 3, name: "inbox_enabled", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
|
|
300
|
+
{ no: 4, name: "toast_enabled", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
|
|
301
|
+
{ no: 5, name: "sound_enabled", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
|
|
302
|
+
]);
|
|
303
|
+
}
|
|
304
|
+
create(value?: PartialMessage<NotificationPreference>): NotificationPreference {
|
|
305
|
+
const message = globalThis.Object.create((this.messagePrototype!));
|
|
306
|
+
message.category = 0;
|
|
307
|
+
message.kind = 0;
|
|
308
|
+
if (value !== undefined)
|
|
309
|
+
reflectionMergePartial<NotificationPreference>(this, message, value);
|
|
310
|
+
return message;
|
|
311
|
+
}
|
|
312
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationPreference): NotificationPreference {
|
|
313
|
+
let message = target ?? this.create(), end = reader.pos + length;
|
|
314
|
+
while (reader.pos < end) {
|
|
315
|
+
let [fieldNo, wireType] = reader.tag();
|
|
316
|
+
switch (fieldNo) {
|
|
317
|
+
case /* resources.notifications.NotificationCategory category */ 1:
|
|
318
|
+
message.category = reader.int32();
|
|
319
|
+
break;
|
|
320
|
+
case /* resources.notifications.NotificationKind kind */ 2:
|
|
321
|
+
message.kind = reader.int32();
|
|
322
|
+
break;
|
|
323
|
+
case /* optional bool inbox_enabled */ 3:
|
|
324
|
+
message.inboxEnabled = reader.bool();
|
|
325
|
+
break;
|
|
326
|
+
case /* optional bool toast_enabled */ 4:
|
|
327
|
+
message.toastEnabled = reader.bool();
|
|
328
|
+
break;
|
|
329
|
+
case /* optional bool sound_enabled */ 5:
|
|
330
|
+
message.soundEnabled = reader.bool();
|
|
331
|
+
break;
|
|
332
|
+
default:
|
|
333
|
+
let u = options.readUnknownField;
|
|
334
|
+
if (u === "throw")
|
|
335
|
+
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
336
|
+
let d = reader.skip(wireType);
|
|
337
|
+
if (u !== false)
|
|
338
|
+
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return message;
|
|
342
|
+
}
|
|
343
|
+
internalBinaryWrite(message: NotificationPreference, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
344
|
+
/* resources.notifications.NotificationCategory category = 1; */
|
|
345
|
+
if (message.category !== 0)
|
|
346
|
+
writer.tag(1, WireType.Varint).int32(message.category);
|
|
347
|
+
/* resources.notifications.NotificationKind kind = 2; */
|
|
348
|
+
if (message.kind !== 0)
|
|
349
|
+
writer.tag(2, WireType.Varint).int32(message.kind);
|
|
350
|
+
/* optional bool inbox_enabled = 3; */
|
|
351
|
+
if (message.inboxEnabled !== undefined)
|
|
352
|
+
writer.tag(3, WireType.Varint).bool(message.inboxEnabled);
|
|
353
|
+
/* optional bool toast_enabled = 4; */
|
|
354
|
+
if (message.toastEnabled !== undefined)
|
|
355
|
+
writer.tag(4, WireType.Varint).bool(message.toastEnabled);
|
|
356
|
+
/* optional bool sound_enabled = 5; */
|
|
357
|
+
if (message.soundEnabled !== undefined)
|
|
358
|
+
writer.tag(5, WireType.Varint).bool(message.soundEnabled);
|
|
359
|
+
let u = options.writeUnknownFields;
|
|
360
|
+
if (u !== false)
|
|
361
|
+
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
362
|
+
return writer;
|
|
363
|
+
}
|
|
154
364
|
}
|
|
365
|
+
/**
|
|
366
|
+
* @generated MessageType for protobuf message resources.notifications.NotificationPreference
|
|
367
|
+
*/
|
|
368
|
+
export const NotificationPreference = new NotificationPreference$Type();
|
|
369
|
+
// @generated message type with reflection information, may provide speed optimized methods
|
|
370
|
+
class NotificationDelivery$Type extends MessageType<NotificationDelivery> {
|
|
371
|
+
constructor() {
|
|
372
|
+
super("resources.notifications.NotificationDelivery", [
|
|
373
|
+
{ no: 1, name: "inbox_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
|
374
|
+
{ no: 2, name: "toast_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
|
375
|
+
{ no: 3, name: "sound_enabled", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
|
|
376
|
+
]);
|
|
377
|
+
}
|
|
378
|
+
create(value?: PartialMessage<NotificationDelivery>): NotificationDelivery {
|
|
379
|
+
const message = globalThis.Object.create((this.messagePrototype!));
|
|
380
|
+
message.inboxEnabled = false;
|
|
381
|
+
message.toastEnabled = false;
|
|
382
|
+
message.soundEnabled = false;
|
|
383
|
+
if (value !== undefined)
|
|
384
|
+
reflectionMergePartial<NotificationDelivery>(this, message, value);
|
|
385
|
+
return message;
|
|
386
|
+
}
|
|
387
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: NotificationDelivery): NotificationDelivery {
|
|
388
|
+
let message = target ?? this.create(), end = reader.pos + length;
|
|
389
|
+
while (reader.pos < end) {
|
|
390
|
+
let [fieldNo, wireType] = reader.tag();
|
|
391
|
+
switch (fieldNo) {
|
|
392
|
+
case /* bool inbox_enabled */ 1:
|
|
393
|
+
message.inboxEnabled = reader.bool();
|
|
394
|
+
break;
|
|
395
|
+
case /* bool toast_enabled */ 2:
|
|
396
|
+
message.toastEnabled = reader.bool();
|
|
397
|
+
break;
|
|
398
|
+
case /* bool sound_enabled */ 3:
|
|
399
|
+
message.soundEnabled = reader.bool();
|
|
400
|
+
break;
|
|
401
|
+
default:
|
|
402
|
+
let u = options.readUnknownField;
|
|
403
|
+
if (u === "throw")
|
|
404
|
+
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
405
|
+
let d = reader.skip(wireType);
|
|
406
|
+
if (u !== false)
|
|
407
|
+
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return message;
|
|
411
|
+
}
|
|
412
|
+
internalBinaryWrite(message: NotificationDelivery, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
413
|
+
/* bool inbox_enabled = 1; */
|
|
414
|
+
if (message.inboxEnabled !== false)
|
|
415
|
+
writer.tag(1, WireType.Varint).bool(message.inboxEnabled);
|
|
416
|
+
/* bool toast_enabled = 2; */
|
|
417
|
+
if (message.toastEnabled !== false)
|
|
418
|
+
writer.tag(2, WireType.Varint).bool(message.toastEnabled);
|
|
419
|
+
/* bool sound_enabled = 3; */
|
|
420
|
+
if (message.soundEnabled !== false)
|
|
421
|
+
writer.tag(3, WireType.Varint).bool(message.soundEnabled);
|
|
422
|
+
let u = options.writeUnknownFields;
|
|
423
|
+
if (u !== false)
|
|
424
|
+
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
425
|
+
return writer;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* @generated MessageType for protobuf message resources.notifications.NotificationDelivery
|
|
430
|
+
*/
|
|
431
|
+
export const NotificationDelivery = new NotificationDelivery$Type();
|
|
155
432
|
// @generated message type with reflection information, may provide speed optimized methods
|
|
156
433
|
class Notification$Type extends MessageType<Notification> {
|
|
157
434
|
constructor() {
|
|
@@ -165,7 +442,13 @@ class Notification$Type extends MessageType<Notification> {
|
|
|
165
442
|
{ no: 7, name: "content", kind: "message", T: () => I18NItem, options: { "codegen.sanitizer.sanitizer": { enabled: true } } },
|
|
166
443
|
{ no: 8, name: "category", kind: "enum", T: () => ["resources.notifications.NotificationCategory", NotificationCategory, "NOTIFICATION_CATEGORY_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
|
|
167
444
|
{ no: 9, name: "data", kind: "message", T: () => Data },
|
|
168
|
-
{ no: 10, name: "starred", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
|
|
445
|
+
{ no: 10, name: "starred", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
|
|
446
|
+
{ no: 11, name: "kind", kind: "enum", T: () => ["resources.notifications.NotificationKind", NotificationKind, "NOTIFICATION_KIND_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
|
|
447
|
+
{ no: 12, name: "actor_user_id", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gte: 0 } } } },
|
|
448
|
+
{ no: 13, name: "entity_type", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "64" } } } },
|
|
449
|
+
{ no: 14, name: "entity_id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gte: "0" } } } },
|
|
450
|
+
{ no: 15, name: "archived_at", kind: "message", T: () => Timestamp },
|
|
451
|
+
{ no: 16, name: "delivery", kind: "message", T: () => NotificationDelivery }
|
|
169
452
|
]);
|
|
170
453
|
}
|
|
171
454
|
create(value?: PartialMessage<Notification>): Notification {
|
|
@@ -174,6 +457,7 @@ class Notification$Type extends MessageType<Notification> {
|
|
|
174
457
|
message.userId = 0;
|
|
175
458
|
message.type = 0;
|
|
176
459
|
message.category = 0;
|
|
460
|
+
message.kind = 0;
|
|
177
461
|
if (value !== undefined)
|
|
178
462
|
reflectionMergePartial<Notification>(this, message, value);
|
|
179
463
|
return message;
|
|
@@ -213,6 +497,24 @@ class Notification$Type extends MessageType<Notification> {
|
|
|
213
497
|
case /* optional bool starred */ 10:
|
|
214
498
|
message.starred = reader.bool();
|
|
215
499
|
break;
|
|
500
|
+
case /* resources.notifications.NotificationKind kind */ 11:
|
|
501
|
+
message.kind = reader.int32();
|
|
502
|
+
break;
|
|
503
|
+
case /* optional int32 actor_user_id */ 12:
|
|
504
|
+
message.actorUserId = reader.int32();
|
|
505
|
+
break;
|
|
506
|
+
case /* optional string entity_type */ 13:
|
|
507
|
+
message.entityType = reader.string();
|
|
508
|
+
break;
|
|
509
|
+
case /* optional int64 entity_id */ 14:
|
|
510
|
+
message.entityId = reader.int64().toNumber();
|
|
511
|
+
break;
|
|
512
|
+
case /* resources.timestamp.Timestamp archived_at */ 15:
|
|
513
|
+
message.archivedAt = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.archivedAt);
|
|
514
|
+
break;
|
|
515
|
+
case /* optional resources.notifications.NotificationDelivery delivery */ 16:
|
|
516
|
+
message.delivery = NotificationDelivery.internalBinaryRead(reader, reader.uint32(), options, message.delivery);
|
|
517
|
+
break;
|
|
216
518
|
default:
|
|
217
519
|
let u = options.readUnknownField;
|
|
218
520
|
if (u === "throw")
|
|
@@ -255,6 +557,24 @@ class Notification$Type extends MessageType<Notification> {
|
|
|
255
557
|
/* optional bool starred = 10; */
|
|
256
558
|
if (message.starred !== undefined)
|
|
257
559
|
writer.tag(10, WireType.Varint).bool(message.starred);
|
|
560
|
+
/* resources.notifications.NotificationKind kind = 11; */
|
|
561
|
+
if (message.kind !== 0)
|
|
562
|
+
writer.tag(11, WireType.Varint).int32(message.kind);
|
|
563
|
+
/* optional int32 actor_user_id = 12; */
|
|
564
|
+
if (message.actorUserId !== undefined)
|
|
565
|
+
writer.tag(12, WireType.Varint).int32(message.actorUserId);
|
|
566
|
+
/* optional string entity_type = 13; */
|
|
567
|
+
if (message.entityType !== undefined)
|
|
568
|
+
writer.tag(13, WireType.LengthDelimited).string(message.entityType);
|
|
569
|
+
/* optional int64 entity_id = 14; */
|
|
570
|
+
if (message.entityId !== undefined)
|
|
571
|
+
writer.tag(14, WireType.Varint).int64(message.entityId);
|
|
572
|
+
/* resources.timestamp.Timestamp archived_at = 15; */
|
|
573
|
+
if (message.archivedAt)
|
|
574
|
+
Timestamp.internalBinaryWrite(message.archivedAt, writer.tag(15, WireType.LengthDelimited).fork(), options).join();
|
|
575
|
+
/* optional resources.notifications.NotificationDelivery delivery = 16; */
|
|
576
|
+
if (message.delivery)
|
|
577
|
+
NotificationDelivery.internalBinaryWrite(message.delivery, writer.tag(16, WireType.LengthDelimited).fork(), options).join();
|
|
258
578
|
let u = options.writeUnknownFields;
|
|
259
579
|
if (u !== false)
|
|
260
580
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -90,6 +90,12 @@ export interface AttributeValues {
|
|
|
90
90
|
* @generated from protobuf field: resources.permissions.attributes.JobGradeList job_grade_list = 3
|
|
91
91
|
*/
|
|
92
92
|
jobGradeList: JobGradeList;
|
|
93
|
+
} | {
|
|
94
|
+
oneofKind: "propertyList";
|
|
95
|
+
/**
|
|
96
|
+
* @generated from protobuf field: resources.permissions.attributes.PropertyList property_list = 4
|
|
97
|
+
*/
|
|
98
|
+
propertyList: PropertyList;
|
|
93
99
|
} | {
|
|
94
100
|
oneofKind: undefined;
|
|
95
101
|
};
|
|
@@ -103,6 +109,35 @@ export interface StringList {
|
|
|
103
109
|
*/
|
|
104
110
|
strings: string[];
|
|
105
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* @generated from protobuf message resources.permissions.attributes.PropertyList
|
|
114
|
+
*/
|
|
115
|
+
export interface PropertyList {
|
|
116
|
+
/**
|
|
117
|
+
* @generated from protobuf field: repeated string keys = 1
|
|
118
|
+
*/
|
|
119
|
+
keys: string[];
|
|
120
|
+
/**
|
|
121
|
+
* Display metadata for the keys above. This is response metadata only; role
|
|
122
|
+
* attribute values continue to persist and authorize by key.
|
|
123
|
+
*
|
|
124
|
+
* @generated from protobuf field: repeated resources.permissions.attributes.PropertyListEntry properties = 2
|
|
125
|
+
*/
|
|
126
|
+
properties: PropertyListEntry[];
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* @generated from protobuf message resources.permissions.attributes.PropertyListEntry
|
|
130
|
+
*/
|
|
131
|
+
export interface PropertyListEntry {
|
|
132
|
+
/**
|
|
133
|
+
* @generated from protobuf field: string key = 1
|
|
134
|
+
*/
|
|
135
|
+
key: string;
|
|
136
|
+
/**
|
|
137
|
+
* @generated from protobuf field: string label = 2
|
|
138
|
+
*/
|
|
139
|
+
label: string;
|
|
140
|
+
}
|
|
106
141
|
/**
|
|
107
142
|
* @generated from protobuf message resources.permissions.attributes.JobGradeList
|
|
108
143
|
*/
|
|
@@ -152,7 +187,14 @@ export enum AttributeType {
|
|
|
152
187
|
/**
|
|
153
188
|
* @generated from protobuf enum value: ATTRIBUTE_TYPE_JOB_GRADE_LIST = 3;
|
|
154
189
|
*/
|
|
155
|
-
JOB_GRADE_LIST = 3
|
|
190
|
+
JOB_GRADE_LIST = 3,
|
|
191
|
+
/**
|
|
192
|
+
* Property lists select runtime-defined property keys. The RPC permission
|
|
193
|
+
* controls the operation; this attribute only controls which properties.
|
|
194
|
+
*
|
|
195
|
+
* @generated from protobuf enum value: ATTRIBUTE_TYPE_PROPERTY_LIST = 4;
|
|
196
|
+
*/
|
|
197
|
+
PROPERTY_LIST = 4
|
|
156
198
|
}
|
|
157
199
|
// @generated message type with reflection information, may provide speed optimized methods
|
|
158
200
|
class RoleAttribute$Type extends MessageType<RoleAttribute> {
|
|
@@ -291,7 +333,8 @@ class AttributeValues$Type extends MessageType<AttributeValues> {
|
|
|
291
333
|
super("resources.permissions.attributes.AttributeValues", [
|
|
292
334
|
{ no: 1, name: "string_list", kind: "message", oneof: "validValues", T: () => StringList },
|
|
293
335
|
{ no: 2, name: "job_list", kind: "message", oneof: "validValues", T: () => StringList },
|
|
294
|
-
{ no: 3, name: "job_grade_list", kind: "message", oneof: "validValues", T: () => JobGradeList }
|
|
336
|
+
{ no: 3, name: "job_grade_list", kind: "message", oneof: "validValues", T: () => JobGradeList },
|
|
337
|
+
{ no: 4, name: "property_list", kind: "message", oneof: "validValues", T: () => PropertyList }
|
|
295
338
|
], { "codegen.dbscanner.dbscanner": { enabled: true } });
|
|
296
339
|
}
|
|
297
340
|
create(value?: PartialMessage<AttributeValues>): AttributeValues {
|
|
@@ -324,6 +367,12 @@ class AttributeValues$Type extends MessageType<AttributeValues> {
|
|
|
324
367
|
jobGradeList: JobGradeList.internalBinaryRead(reader, reader.uint32(), options, (message.validValues as any).jobGradeList)
|
|
325
368
|
};
|
|
326
369
|
break;
|
|
370
|
+
case /* resources.permissions.attributes.PropertyList property_list */ 4:
|
|
371
|
+
message.validValues = {
|
|
372
|
+
oneofKind: "propertyList",
|
|
373
|
+
propertyList: PropertyList.internalBinaryRead(reader, reader.uint32(), options, (message.validValues as any).propertyList)
|
|
374
|
+
};
|
|
375
|
+
break;
|
|
327
376
|
default:
|
|
328
377
|
let u = options.readUnknownField;
|
|
329
378
|
if (u === "throw")
|
|
@@ -345,6 +394,9 @@ class AttributeValues$Type extends MessageType<AttributeValues> {
|
|
|
345
394
|
/* resources.permissions.attributes.JobGradeList job_grade_list = 3; */
|
|
346
395
|
if (message.validValues.oneofKind === "jobGradeList")
|
|
347
396
|
JobGradeList.internalBinaryWrite(message.validValues.jobGradeList, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
|
|
397
|
+
/* resources.permissions.attributes.PropertyList property_list = 4; */
|
|
398
|
+
if (message.validValues.oneofKind === "propertyList")
|
|
399
|
+
PropertyList.internalBinaryWrite(message.validValues.propertyList, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
|
|
348
400
|
let u = options.writeUnknownFields;
|
|
349
401
|
if (u !== false)
|
|
350
402
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -403,6 +455,116 @@ class StringList$Type extends MessageType<StringList> {
|
|
|
403
455
|
*/
|
|
404
456
|
export const StringList = new StringList$Type();
|
|
405
457
|
// @generated message type with reflection information, may provide speed optimized methods
|
|
458
|
+
class PropertyList$Type extends MessageType<PropertyList> {
|
|
459
|
+
constructor() {
|
|
460
|
+
super("resources.permissions.attributes.PropertyList", [
|
|
461
|
+
{ no: 1, name: "keys", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { items: { string: { minLen: "1", maxLen: "64", pattern: "^[a-z][a-z0-9_.-]*$" } } } } } },
|
|
462
|
+
{ no: 2, name: "properties", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PropertyListEntry }
|
|
463
|
+
]);
|
|
464
|
+
}
|
|
465
|
+
create(value?: PartialMessage<PropertyList>): PropertyList {
|
|
466
|
+
const message = globalThis.Object.create((this.messagePrototype!));
|
|
467
|
+
message.keys = [];
|
|
468
|
+
message.properties = [];
|
|
469
|
+
if (value !== undefined)
|
|
470
|
+
reflectionMergePartial<PropertyList>(this, message, value);
|
|
471
|
+
return message;
|
|
472
|
+
}
|
|
473
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PropertyList): PropertyList {
|
|
474
|
+
let message = target ?? this.create(), end = reader.pos + length;
|
|
475
|
+
while (reader.pos < end) {
|
|
476
|
+
let [fieldNo, wireType] = reader.tag();
|
|
477
|
+
switch (fieldNo) {
|
|
478
|
+
case /* repeated string keys */ 1:
|
|
479
|
+
message.keys.push(reader.string());
|
|
480
|
+
break;
|
|
481
|
+
case /* repeated resources.permissions.attributes.PropertyListEntry properties */ 2:
|
|
482
|
+
message.properties.push(PropertyListEntry.internalBinaryRead(reader, reader.uint32(), options));
|
|
483
|
+
break;
|
|
484
|
+
default:
|
|
485
|
+
let u = options.readUnknownField;
|
|
486
|
+
if (u === "throw")
|
|
487
|
+
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
488
|
+
let d = reader.skip(wireType);
|
|
489
|
+
if (u !== false)
|
|
490
|
+
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
return message;
|
|
494
|
+
}
|
|
495
|
+
internalBinaryWrite(message: PropertyList, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
496
|
+
/* repeated string keys = 1; */
|
|
497
|
+
for (let i = 0; i < message.keys.length; i++)
|
|
498
|
+
writer.tag(1, WireType.LengthDelimited).string(message.keys[i]);
|
|
499
|
+
/* repeated resources.permissions.attributes.PropertyListEntry properties = 2; */
|
|
500
|
+
for (let i = 0; i < message.properties.length; i++)
|
|
501
|
+
PropertyListEntry.internalBinaryWrite(message.properties[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
|
|
502
|
+
let u = options.writeUnknownFields;
|
|
503
|
+
if (u !== false)
|
|
504
|
+
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
505
|
+
return writer;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* @generated MessageType for protobuf message resources.permissions.attributes.PropertyList
|
|
510
|
+
*/
|
|
511
|
+
export const PropertyList = new PropertyList$Type();
|
|
512
|
+
// @generated message type with reflection information, may provide speed optimized methods
|
|
513
|
+
class PropertyListEntry$Type extends MessageType<PropertyListEntry> {
|
|
514
|
+
constructor() {
|
|
515
|
+
super("resources.permissions.attributes.PropertyListEntry", [
|
|
516
|
+
{ no: 1, name: "key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
517
|
+
{ no: 2, name: "label", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
|
518
|
+
]);
|
|
519
|
+
}
|
|
520
|
+
create(value?: PartialMessage<PropertyListEntry>): PropertyListEntry {
|
|
521
|
+
const message = globalThis.Object.create((this.messagePrototype!));
|
|
522
|
+
message.key = "";
|
|
523
|
+
message.label = "";
|
|
524
|
+
if (value !== undefined)
|
|
525
|
+
reflectionMergePartial<PropertyListEntry>(this, message, value);
|
|
526
|
+
return message;
|
|
527
|
+
}
|
|
528
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PropertyListEntry): PropertyListEntry {
|
|
529
|
+
let message = target ?? this.create(), end = reader.pos + length;
|
|
530
|
+
while (reader.pos < end) {
|
|
531
|
+
let [fieldNo, wireType] = reader.tag();
|
|
532
|
+
switch (fieldNo) {
|
|
533
|
+
case /* string key */ 1:
|
|
534
|
+
message.key = reader.string();
|
|
535
|
+
break;
|
|
536
|
+
case /* string label */ 2:
|
|
537
|
+
message.label = reader.string();
|
|
538
|
+
break;
|
|
539
|
+
default:
|
|
540
|
+
let u = options.readUnknownField;
|
|
541
|
+
if (u === "throw")
|
|
542
|
+
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
543
|
+
let d = reader.skip(wireType);
|
|
544
|
+
if (u !== false)
|
|
545
|
+
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
return message;
|
|
549
|
+
}
|
|
550
|
+
internalBinaryWrite(message: PropertyListEntry, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
551
|
+
/* string key = 1; */
|
|
552
|
+
if (message.key !== "")
|
|
553
|
+
writer.tag(1, WireType.LengthDelimited).string(message.key);
|
|
554
|
+
/* string label = 2; */
|
|
555
|
+
if (message.label !== "")
|
|
556
|
+
writer.tag(2, WireType.LengthDelimited).string(message.label);
|
|
557
|
+
let u = options.writeUnknownFields;
|
|
558
|
+
if (u !== false)
|
|
559
|
+
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
560
|
+
return writer;
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* @generated MessageType for protobuf message resources.permissions.attributes.PropertyListEntry
|
|
565
|
+
*/
|
|
566
|
+
export const PropertyListEntry = new PropertyListEntry$Type();
|
|
567
|
+
// @generated message type with reflection information, may provide speed optimized methods
|
|
406
568
|
class JobGradeList$Type extends MessageType<JobGradeList> {
|
|
407
569
|
constructor() {
|
|
408
570
|
super("resources.permissions.attributes.JobGradeList", [
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// @generated by protobuf-ts 2.11.1 with parameter force_server_none,long_type_number,optimize_speed,ts_nocheck
|
|
2
|
+
// @generated from protobuf file "resources/permissions/authorization/authorization.proto" (package "resources.permissions.authorization", syntax proto3)
|
|
3
|
+
// tslint:disable
|
|
4
|
+
// @ts-nocheck
|
|
5
|
+
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
|
|
6
|
+
import type { IBinaryWriter } from "@protobuf-ts/runtime";
|
|
7
|
+
import { WireType } from "@protobuf-ts/runtime";
|
|
8
|
+
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
|
|
9
|
+
import type { IBinaryReader } from "@protobuf-ts/runtime";
|
|
10
|
+
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
|
|
11
|
+
import type { PartialMessage } from "@protobuf-ts/runtime";
|
|
12
|
+
import { reflectionMergePartial } from "@protobuf-ts/runtime";
|
|
13
|
+
import { MessageType } from "@protobuf-ts/runtime";
|
|
14
|
+
import { RoleAttribute } from "../attributes/attributes";
|
|
15
|
+
import { Permission } from "../permissions/permissions";
|
|
16
|
+
/**
|
|
17
|
+
* AuthorizationState is the effective authorization of the currently selected
|
|
18
|
+
* character. It is a complete replacement snapshot, not a delta.
|
|
19
|
+
*
|
|
20
|
+
* @generated from protobuf message resources.permissions.authorization.AuthorizationState
|
|
21
|
+
*/
|
|
22
|
+
export interface AuthorizationState {
|
|
23
|
+
/**
|
|
24
|
+
* @generated from protobuf field: repeated resources.permissions.permissions.Permission permissions = 1
|
|
25
|
+
*/
|
|
26
|
+
permissions: Permission[];
|
|
27
|
+
/**
|
|
28
|
+
* @generated from protobuf field: repeated resources.permissions.attributes.RoleAttribute attributes = 2
|
|
29
|
+
*/
|
|
30
|
+
attributes: RoleAttribute[];
|
|
31
|
+
}
|
|
32
|
+
// @generated message type with reflection information, may provide speed optimized methods
|
|
33
|
+
class AuthorizationState$Type extends MessageType<AuthorizationState> {
|
|
34
|
+
constructor() {
|
|
35
|
+
super("resources.permissions.authorization.AuthorizationState", [
|
|
36
|
+
{ no: 1, name: "permissions", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Permission },
|
|
37
|
+
{ no: 2, name: "attributes", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => RoleAttribute }
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
create(value?: PartialMessage<AuthorizationState>): AuthorizationState {
|
|
41
|
+
const message = globalThis.Object.create((this.messagePrototype!));
|
|
42
|
+
message.permissions = [];
|
|
43
|
+
message.attributes = [];
|
|
44
|
+
if (value !== undefined)
|
|
45
|
+
reflectionMergePartial<AuthorizationState>(this, message, value);
|
|
46
|
+
return message;
|
|
47
|
+
}
|
|
48
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AuthorizationState): AuthorizationState {
|
|
49
|
+
let message = target ?? this.create(), end = reader.pos + length;
|
|
50
|
+
while (reader.pos < end) {
|
|
51
|
+
let [fieldNo, wireType] = reader.tag();
|
|
52
|
+
switch (fieldNo) {
|
|
53
|
+
case /* repeated resources.permissions.permissions.Permission permissions */ 1:
|
|
54
|
+
message.permissions.push(Permission.internalBinaryRead(reader, reader.uint32(), options));
|
|
55
|
+
break;
|
|
56
|
+
case /* repeated resources.permissions.attributes.RoleAttribute attributes */ 2:
|
|
57
|
+
message.attributes.push(RoleAttribute.internalBinaryRead(reader, reader.uint32(), options));
|
|
58
|
+
break;
|
|
59
|
+
default:
|
|
60
|
+
let u = options.readUnknownField;
|
|
61
|
+
if (u === "throw")
|
|
62
|
+
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
63
|
+
let d = reader.skip(wireType);
|
|
64
|
+
if (u !== false)
|
|
65
|
+
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return message;
|
|
69
|
+
}
|
|
70
|
+
internalBinaryWrite(message: AuthorizationState, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
71
|
+
/* repeated resources.permissions.permissions.Permission permissions = 1; */
|
|
72
|
+
for (let i = 0; i < message.permissions.length; i++)
|
|
73
|
+
Permission.internalBinaryWrite(message.permissions[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
|
|
74
|
+
/* repeated resources.permissions.attributes.RoleAttribute attributes = 2; */
|
|
75
|
+
for (let i = 0; i < message.attributes.length; i++)
|
|
76
|
+
RoleAttribute.internalBinaryWrite(message.attributes[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
|
|
77
|
+
let u = options.writeUnknownFields;
|
|
78
|
+
if (u !== false)
|
|
79
|
+
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
80
|
+
return writer;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @generated MessageType for protobuf message resources.permissions.authorization.AuthorizationState
|
|
85
|
+
*/
|
|
86
|
+
export const AuthorizationState = new AuthorizationState$Type();
|