@fivenet-app/gen 2026.5.1 → 2026.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/clients.ts +6 -0
  2. package/codegen/perms/perms.ts +14 -2
  3. package/codegen/sanitizer/sanitizer.ts +6 -0
  4. package/google/protobuf/descriptor.ts +11 -3
  5. package/google/protobuf/timestamp.ts +7 -6
  6. package/package.json +1 -1
  7. package/perms.ts +343 -3
  8. package/resources/access/access.ts +481 -0
  9. package/resources/calendar/access/access.ts +0 -330
  10. package/resources/calendar/calendar.ts +307 -25
  11. package/resources/calendar/entries/entries.ts +204 -11
  12. package/resources/centrum/units/access/access.ts +0 -373
  13. package/resources/centrum/units/units.ts +20 -8
  14. package/resources/citizens/labels/access.ts +0 -191
  15. package/resources/citizens/labels/labels.ts +20 -8
  16. package/resources/common/content/diff_activity.ts +1 -1
  17. package/resources/cron/cron.ts +1 -1
  18. package/resources/documents/access/access.ts +0 -329
  19. package/resources/documents/activity/activity.ts +49 -45
  20. package/resources/documents/documents.ts +1 -1
  21. package/resources/documents/requests/requests.ts +1 -1
  22. package/resources/documents/stamps/stamp.ts +40 -210
  23. package/resources/documents/templates/templates.ts +158 -318
  24. package/resources/jobs/colleagues/activity/activity.ts +1 -1
  25. package/resources/jobs/conduct/conduct.ts +2 -2
  26. package/resources/jobs/jobs.ts +22 -0
  27. package/resources/jobs/labels/labels.ts +9 -9
  28. package/resources/laws/laws.ts +24 -0
  29. package/resources/livemap/markers/marker_marker.ts +311 -4
  30. package/resources/mailer/access/access.ts +0 -457
  31. package/resources/mailer/emails/email.ts +4 -4
  32. package/resources/notifications/events/events.ts +18 -1
  33. package/resources/qualifications/access/access.ts +0 -248
  34. package/resources/qualifications/qualifications.ts +9 -9
  35. package/resources/settings/config.ts +53 -5
  36. package/resources/settings/data.ts +1 -1
  37. package/resources/stats/stats.ts +32 -20
  38. package/resources/sync/data/data.ts +13 -1
  39. package/resources/userinfo/userinfo.ts +202 -51
  40. package/resources/users/activity/activity.ts +1 -1
  41. package/resources/wiki/access/access.ts +0 -330
  42. package/resources/wiki/activity/activity.ts +45 -45
  43. package/resources/wiki/page.ts +9 -9
  44. package/services/calendar/calendar.ts +1 -1
  45. package/services/calendar/entries.ts +12 -1
  46. package/services/centrum/dispatches.ts +27 -7
  47. package/services/centrum/units.client.ts +15 -2
  48. package/services/centrum/units.ts +231 -123
  49. package/services/citizens/citizens.ts +1 -1
  50. package/services/citizens/labels.client.ts +7 -20
  51. package/services/citizens/labels.ts +35 -183
  52. package/services/documents/approval.ts +15 -4
  53. package/services/documents/collab.ts +1 -1
  54. package/services/documents/documents.ts +38 -38
  55. package/services/documents/stats.ts +14 -2
  56. package/services/filestore/filestore.ts +4 -4
  57. package/services/jobs/colleagues.ts +3 -3
  58. package/services/jobs/conduct.ts +2 -2
  59. package/services/jobs/groups.client.ts +22 -0
  60. package/services/jobs/groups.ts +9 -0
  61. package/services/jobs/timeclock.ts +2 -2
  62. package/services/mailer/thread.ts +2 -2
  63. package/services/qualifications/qualifications.ts +52 -34
  64. package/services/settings/accounts.ts +5 -5
  65. package/services/settings/config.ts +2 -2
  66. package/services/settings/cron.ts +2 -2
  67. package/services/settings/laws.client.ts +28 -2
  68. package/services/settings/laws.ts +229 -1
  69. package/services/settings/system.ts +6 -6
  70. package/services/sync/sync.client.ts +42 -14
  71. package/services/sync/sync.ts +162 -13
  72. package/services/wiki/wiki.client.ts +15 -2
  73. package/services/wiki/wiki.ts +122 -0
  74. package/svcs.ts +18 -2
@@ -91,48 +91,18 @@ export interface DeleteLabelRequest {
91
91
  export interface DeleteLabelResponse {
92
92
  }
93
93
  /**
94
- * @generated from protobuf message services.citizens.AddCitizenLabelsRequest
94
+ * @generated from protobuf message services.citizens.ReorderLabelsRequest
95
95
  */
96
- export interface AddCitizenLabelsRequest {
96
+ export interface ReorderLabelsRequest {
97
97
  /**
98
- * @generated from protobuf field: int32 user_id = 1
98
+ * @generated from protobuf field: repeated int64 label_ids = 1
99
99
  */
100
- userId: number;
101
- /**
102
- * @generated from protobuf field: repeated resources.citizens.labels.Label labels = 2
103
- */
104
- labels: Label[];
105
- /**
106
- * @generated from protobuf field: string reason = 3
107
- */
108
- reason: string;
109
- }
110
- /**
111
- * @generated from protobuf message services.citizens.AddCitizenLabelsResponse
112
- */
113
- export interface AddCitizenLabelsResponse {
114
- }
115
- /**
116
- * @generated from protobuf message services.citizens.RemoveCitizenLabelsRequest
117
- */
118
- export interface RemoveCitizenLabelsRequest {
119
- /**
120
- * @generated from protobuf field: int32 user_id = 1
121
- */
122
- userId: number;
123
- /**
124
- * @generated from protobuf field: repeated int64 ids = 2
125
- */
126
- ids: number[];
127
- /**
128
- * @generated from protobuf field: string reason = 3
129
- */
130
- reason: string;
100
+ labelIds: number[];
131
101
  }
132
102
  /**
133
- * @generated from protobuf message services.citizens.RemoveCitizenLabelsResponse
103
+ * @generated from protobuf message services.citizens.ReorderLabelsResponse
134
104
  */
135
- export interface RemoveCitizenLabelsResponse {
105
+ export interface ReorderLabelsResponse {
136
106
  }
137
107
  // @generated message type with reflection information, may provide speed optimized methods
138
108
  class ListLabelsRequest$Type extends MessageType<ListLabelsRequest> {
@@ -512,141 +482,30 @@ class DeleteLabelResponse$Type extends MessageType<DeleteLabelResponse> {
512
482
  */
513
483
  export const DeleteLabelResponse = new DeleteLabelResponse$Type();
514
484
  // @generated message type with reflection information, may provide speed optimized methods
515
- class AddCitizenLabelsRequest$Type extends MessageType<AddCitizenLabelsRequest> {
516
- constructor() {
517
- super("services.citizens.AddCitizenLabelsRequest", [
518
- { no: 1, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
519
- { no: 2, name: "labels", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Label },
520
- { no: 3, name: "reason", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } } } }
521
- ]);
522
- }
523
- create(value?: PartialMessage<AddCitizenLabelsRequest>): AddCitizenLabelsRequest {
524
- const message = globalThis.Object.create((this.messagePrototype!));
525
- message.userId = 0;
526
- message.labels = [];
527
- message.reason = "";
528
- if (value !== undefined)
529
- reflectionMergePartial<AddCitizenLabelsRequest>(this, message, value);
530
- return message;
531
- }
532
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AddCitizenLabelsRequest): AddCitizenLabelsRequest {
533
- let message = target ?? this.create(), end = reader.pos + length;
534
- while (reader.pos < end) {
535
- let [fieldNo, wireType] = reader.tag();
536
- switch (fieldNo) {
537
- case /* int32 user_id */ 1:
538
- message.userId = reader.int32();
539
- break;
540
- case /* repeated resources.citizens.labels.Label labels */ 2:
541
- message.labels.push(Label.internalBinaryRead(reader, reader.uint32(), options));
542
- break;
543
- case /* string reason */ 3:
544
- message.reason = reader.string();
545
- break;
546
- default:
547
- let u = options.readUnknownField;
548
- if (u === "throw")
549
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
550
- let d = reader.skip(wireType);
551
- if (u !== false)
552
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
553
- }
554
- }
555
- return message;
556
- }
557
- internalBinaryWrite(message: AddCitizenLabelsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
558
- /* int32 user_id = 1; */
559
- if (message.userId !== 0)
560
- writer.tag(1, WireType.Varint).int32(message.userId);
561
- /* repeated resources.citizens.labels.Label labels = 2; */
562
- for (let i = 0; i < message.labels.length; i++)
563
- Label.internalBinaryWrite(message.labels[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
564
- /* string reason = 3; */
565
- if (message.reason !== "")
566
- writer.tag(3, WireType.LengthDelimited).string(message.reason);
567
- let u = options.writeUnknownFields;
568
- if (u !== false)
569
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
570
- return writer;
571
- }
572
- }
573
- /**
574
- * @generated MessageType for protobuf message services.citizens.AddCitizenLabelsRequest
575
- */
576
- export const AddCitizenLabelsRequest = new AddCitizenLabelsRequest$Type();
577
- // @generated message type with reflection information, may provide speed optimized methods
578
- class AddCitizenLabelsResponse$Type extends MessageType<AddCitizenLabelsResponse> {
485
+ class ReorderLabelsRequest$Type extends MessageType<ReorderLabelsRequest> {
579
486
  constructor() {
580
- super("services.citizens.AddCitizenLabelsResponse", []);
581
- }
582
- create(value?: PartialMessage<AddCitizenLabelsResponse>): AddCitizenLabelsResponse {
583
- const message = globalThis.Object.create((this.messagePrototype!));
584
- if (value !== undefined)
585
- reflectionMergePartial<AddCitizenLabelsResponse>(this, message, value);
586
- return message;
587
- }
588
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AddCitizenLabelsResponse): AddCitizenLabelsResponse {
589
- let message = target ?? this.create(), end = reader.pos + length;
590
- while (reader.pos < end) {
591
- let [fieldNo, wireType] = reader.tag();
592
- switch (fieldNo) {
593
- default:
594
- let u = options.readUnknownField;
595
- if (u === "throw")
596
- throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
597
- let d = reader.skip(wireType);
598
- if (u !== false)
599
- (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
600
- }
601
- }
602
- return message;
603
- }
604
- internalBinaryWrite(message: AddCitizenLabelsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
605
- let u = options.writeUnknownFields;
606
- if (u !== false)
607
- (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
608
- return writer;
609
- }
610
- }
611
- /**
612
- * @generated MessageType for protobuf message services.citizens.AddCitizenLabelsResponse
613
- */
614
- export const AddCitizenLabelsResponse = new AddCitizenLabelsResponse$Type();
615
- // @generated message type with reflection information, may provide speed optimized methods
616
- class RemoveCitizenLabelsRequest$Type extends MessageType<RemoveCitizenLabelsRequest> {
617
- constructor() {
618
- super("services.citizens.RemoveCitizenLabelsRequest", [
619
- { no: 1, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
620
- { no: 2, name: "ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
621
- { no: 3, name: "reason", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } } } }
487
+ super("services.citizens.ReorderLabelsRequest", [
488
+ { no: 1, name: "label_ids", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { repeated: { minItems: "1", maxItems: "50", items: { int64: { gt: "0" } } } } } }
622
489
  ]);
623
490
  }
624
- create(value?: PartialMessage<RemoveCitizenLabelsRequest>): RemoveCitizenLabelsRequest {
491
+ create(value?: PartialMessage<ReorderLabelsRequest>): ReorderLabelsRequest {
625
492
  const message = globalThis.Object.create((this.messagePrototype!));
626
- message.userId = 0;
627
- message.ids = [];
628
- message.reason = "";
493
+ message.labelIds = [];
629
494
  if (value !== undefined)
630
- reflectionMergePartial<RemoveCitizenLabelsRequest>(this, message, value);
495
+ reflectionMergePartial<ReorderLabelsRequest>(this, message, value);
631
496
  return message;
632
497
  }
633
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RemoveCitizenLabelsRequest): RemoveCitizenLabelsRequest {
498
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ReorderLabelsRequest): ReorderLabelsRequest {
634
499
  let message = target ?? this.create(), end = reader.pos + length;
635
500
  while (reader.pos < end) {
636
501
  let [fieldNo, wireType] = reader.tag();
637
502
  switch (fieldNo) {
638
- case /* int32 user_id */ 1:
639
- message.userId = reader.int32();
640
- break;
641
- case /* repeated int64 ids */ 2:
503
+ case /* repeated int64 label_ids */ 1:
642
504
  if (wireType === WireType.LengthDelimited)
643
505
  for (let e = reader.int32() + reader.pos; reader.pos < e;)
644
- message.ids.push(reader.int64().toNumber());
506
+ message.labelIds.push(reader.int64().toNumber());
645
507
  else
646
- message.ids.push(reader.int64().toNumber());
647
- break;
648
- case /* string reason */ 3:
649
- message.reason = reader.string();
508
+ message.labelIds.push(reader.int64().toNumber());
650
509
  break;
651
510
  default:
652
511
  let u = options.readUnknownField;
@@ -659,20 +518,14 @@ class RemoveCitizenLabelsRequest$Type extends MessageType<RemoveCitizenLabelsReq
659
518
  }
660
519
  return message;
661
520
  }
662
- internalBinaryWrite(message: RemoveCitizenLabelsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
663
- /* int32 user_id = 1; */
664
- if (message.userId !== 0)
665
- writer.tag(1, WireType.Varint).int32(message.userId);
666
- /* repeated int64 ids = 2; */
667
- if (message.ids.length) {
668
- writer.tag(2, WireType.LengthDelimited).fork();
669
- for (let i = 0; i < message.ids.length; i++)
670
- writer.int64(message.ids[i]);
521
+ internalBinaryWrite(message: ReorderLabelsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
522
+ /* repeated int64 label_ids = 1; */
523
+ if (message.labelIds.length) {
524
+ writer.tag(1, WireType.LengthDelimited).fork();
525
+ for (let i = 0; i < message.labelIds.length; i++)
526
+ writer.int64(message.labelIds[i]);
671
527
  writer.join();
672
528
  }
673
- /* string reason = 3; */
674
- if (message.reason !== "")
675
- writer.tag(3, WireType.LengthDelimited).string(message.reason);
676
529
  let u = options.writeUnknownFields;
677
530
  if (u !== false)
678
531
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -680,21 +533,21 @@ class RemoveCitizenLabelsRequest$Type extends MessageType<RemoveCitizenLabelsReq
680
533
  }
681
534
  }
682
535
  /**
683
- * @generated MessageType for protobuf message services.citizens.RemoveCitizenLabelsRequest
536
+ * @generated MessageType for protobuf message services.citizens.ReorderLabelsRequest
684
537
  */
685
- export const RemoveCitizenLabelsRequest = new RemoveCitizenLabelsRequest$Type();
538
+ export const ReorderLabelsRequest = new ReorderLabelsRequest$Type();
686
539
  // @generated message type with reflection information, may provide speed optimized methods
687
- class RemoveCitizenLabelsResponse$Type extends MessageType<RemoveCitizenLabelsResponse> {
540
+ class ReorderLabelsResponse$Type extends MessageType<ReorderLabelsResponse> {
688
541
  constructor() {
689
- super("services.citizens.RemoveCitizenLabelsResponse", []);
542
+ super("services.citizens.ReorderLabelsResponse", []);
690
543
  }
691
- create(value?: PartialMessage<RemoveCitizenLabelsResponse>): RemoveCitizenLabelsResponse {
544
+ create(value?: PartialMessage<ReorderLabelsResponse>): ReorderLabelsResponse {
692
545
  const message = globalThis.Object.create((this.messagePrototype!));
693
546
  if (value !== undefined)
694
- reflectionMergePartial<RemoveCitizenLabelsResponse>(this, message, value);
547
+ reflectionMergePartial<ReorderLabelsResponse>(this, message, value);
695
548
  return message;
696
549
  }
697
- internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RemoveCitizenLabelsResponse): RemoveCitizenLabelsResponse {
550
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ReorderLabelsResponse): ReorderLabelsResponse {
698
551
  let message = target ?? this.create(), end = reader.pos + length;
699
552
  while (reader.pos < end) {
700
553
  let [fieldNo, wireType] = reader.tag();
@@ -710,7 +563,7 @@ class RemoveCitizenLabelsResponse$Type extends MessageType<RemoveCitizenLabelsRe
710
563
  }
711
564
  return message;
712
565
  }
713
- internalBinaryWrite(message: RemoveCitizenLabelsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
566
+ internalBinaryWrite(message: ReorderLabelsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
714
567
  let u = options.writeUnknownFields;
715
568
  if (u !== false)
716
569
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -718,17 +571,16 @@ class RemoveCitizenLabelsResponse$Type extends MessageType<RemoveCitizenLabelsRe
718
571
  }
719
572
  }
720
573
  /**
721
- * @generated MessageType for protobuf message services.citizens.RemoveCitizenLabelsResponse
574
+ * @generated MessageType for protobuf message services.citizens.ReorderLabelsResponse
722
575
  */
723
- export const RemoveCitizenLabelsResponse = new RemoveCitizenLabelsResponse$Type();
576
+ export const ReorderLabelsResponse = new ReorderLabelsResponse$Type();
724
577
  /**
725
578
  * @generated ServiceType for protobuf service services.citizens.LabelsService
726
579
  */
727
580
  export const LabelsService = new ServiceType("services.citizens.LabelsService", [
728
- { name: "ListLabels", options: { "codegen.perms.perms": { enabled: true } }, I: ListLabelsRequest, O: ListLabelsResponse },
729
- { name: "GetLabel", options: { "codegen.perms.perms": { enabled: true, name: "ListLabels" } }, I: GetLabelRequest, O: GetLabelResponse },
581
+ { name: "ListLabels", options: { "codegen.perms.perms": { enabled: true, service: "CitizensService", name: "GetUser" } }, I: ListLabelsRequest, O: ListLabelsResponse },
582
+ { name: "GetLabel", options: { "codegen.perms.perms": { enabled: true, service: "CitizensService", name: "GetUser" } }, I: GetLabelRequest, O: GetLabelResponse },
730
583
  { name: "CreateOrUpdateLabel", options: { "codegen.perms.perms": { enabled: true } }, I: CreateOrUpdateLabelRequest, O: CreateOrUpdateLabelResponse },
731
584
  { name: "DeleteLabel", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteLabelRequest, O: DeleteLabelResponse },
732
- { name: "AddCitizenLabels", options: { "codegen.perms.perms": { enabled: true, name: "SetUserProps" } }, I: AddCitizenLabelsRequest, O: AddCitizenLabelsResponse },
733
- { name: "RemoveCitizenLabels", options: { "codegen.perms.perms": { enabled: true, name: "SetUserProps" } }, I: RemoveCitizenLabelsRequest, O: RemoveCitizenLabelsResponse }
585
+ { name: "ReorderLabels", options: { "codegen.perms.perms": { enabled: true, name: "CreateOrUpdateLabel" } }, I: ReorderLabelsRequest, O: ReorderLabelsResponse }
734
586
  ], { "codegen.perms.perms_svc": { order: 32, icon: "i-mdi-label-multiple" } });
@@ -314,6 +314,10 @@ export interface RevokeApprovalResponse {
314
314
  * @generated from protobuf field: resources.documents.approval.Approval approval = 1
315
315
  */
316
316
  approval?: Approval;
317
+ /**
318
+ * @generated from protobuf field: resources.documents.DocumentMeta doc_meta = 2
319
+ */
320
+ docMeta?: DocumentMeta;
317
321
  }
318
322
  /**
319
323
  * @generated from protobuf message services.documents.DecideApprovalRequest
@@ -416,7 +420,7 @@ class ListApprovalTasksInboxRequest$Type extends MessageType<ListApprovalTasksIn
416
420
  constructor() {
417
421
  super("services.documents.ListApprovalTasksInboxRequest", [
418
422
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
419
- { no: 2, name: "statuses", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.approval.ApprovalTaskStatus", ApprovalTaskStatus, "APPROVAL_TASK_STATUS_"], options: { "buf.validate.field": { repeated: { maxItems: "4" } } } },
423
+ { no: 2, name: "statuses", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.approval.ApprovalTaskStatus", ApprovalTaskStatus, "APPROVAL_TASK_STATUS_"], options: { "buf.validate.field": { repeated: { maxItems: "4", items: { enum: { definedOnly: true } } } } } },
420
424
  { no: 3, name: "only_drafts", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
421
425
  { no: 4, name: "not_already_acted", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
422
426
  ]);
@@ -745,7 +749,7 @@ class ListApprovalTasksRequest$Type extends MessageType<ListApprovalTasksRequest
745
749
  constructor() {
746
750
  super("services.documents.ListApprovalTasksRequest", [
747
751
  { no: 1, name: "document_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gt: "0" } } } },
748
- { no: 2, name: "statuses", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.approval.ApprovalTaskStatus", ApprovalTaskStatus, "APPROVAL_TASK_STATUS_"], options: { "buf.validate.field": { repeated: { maxItems: "4" } } } }
752
+ { no: 2, name: "statuses", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.approval.ApprovalTaskStatus", ApprovalTaskStatus, "APPROVAL_TASK_STATUS_"], options: { "buf.validate.field": { repeated: { maxItems: "4", items: { enum: { definedOnly: true } } } } } }
749
753
  ]);
750
754
  }
751
755
  create(value?: PartialMessage<ListApprovalTasksRequest>): ListApprovalTasksRequest {
@@ -1190,7 +1194,7 @@ class ListApprovalsRequest$Type extends MessageType<ListApprovalsRequest> {
1190
1194
  { no: 1, name: "document_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gt: "0" } } } },
1191
1195
  { no: 2, name: "task_id", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gt: "0" } } } },
1192
1196
  { no: 3, name: "snapshot_date", kind: "message", T: () => Timestamp },
1193
- { no: 4, name: "status", kind: "enum", opt: true, T: () => ["resources.documents.approval.ApprovalStatus", ApprovalStatus, "APPROVAL_STATUS_"] },
1197
+ { no: 4, name: "status", kind: "enum", opt: true, T: () => ["resources.documents.approval.ApprovalStatus", ApprovalStatus, "APPROVAL_STATUS_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
1194
1198
  { no: 5, name: "user_id", kind: "scalar", opt: true, T: 5 /*ScalarType.INT32*/ }
1195
1199
  ]);
1196
1200
  }
@@ -1364,7 +1368,8 @@ export const RevokeApprovalRequest = new RevokeApprovalRequest$Type();
1364
1368
  class RevokeApprovalResponse$Type extends MessageType<RevokeApprovalResponse> {
1365
1369
  constructor() {
1366
1370
  super("services.documents.RevokeApprovalResponse", [
1367
- { no: 1, name: "approval", kind: "message", T: () => Approval }
1371
+ { no: 1, name: "approval", kind: "message", T: () => Approval },
1372
+ { no: 2, name: "doc_meta", kind: "message", T: () => DocumentMeta }
1368
1373
  ]);
1369
1374
  }
1370
1375
  create(value?: PartialMessage<RevokeApprovalResponse>): RevokeApprovalResponse {
@@ -1381,6 +1386,9 @@ class RevokeApprovalResponse$Type extends MessageType<RevokeApprovalResponse> {
1381
1386
  case /* resources.documents.approval.Approval approval */ 1:
1382
1387
  message.approval = Approval.internalBinaryRead(reader, reader.uint32(), options, message.approval);
1383
1388
  break;
1389
+ case /* resources.documents.DocumentMeta doc_meta */ 2:
1390
+ message.docMeta = DocumentMeta.internalBinaryRead(reader, reader.uint32(), options, message.docMeta);
1391
+ break;
1384
1392
  default:
1385
1393
  let u = options.readUnknownField;
1386
1394
  if (u === "throw")
@@ -1396,6 +1404,9 @@ class RevokeApprovalResponse$Type extends MessageType<RevokeApprovalResponse> {
1396
1404
  /* resources.documents.approval.Approval approval = 1; */
1397
1405
  if (message.approval)
1398
1406
  Approval.internalBinaryWrite(message.approval, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
1407
+ /* resources.documents.DocumentMeta doc_meta = 2; */
1408
+ if (message.docMeta)
1409
+ DocumentMeta.internalBinaryWrite(message.docMeta, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
1399
1410
  let u = options.writeUnknownFields;
1400
1411
  if (u !== false)
1401
1412
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -9,5 +9,5 @@ import { ServiceType } from "@protobuf-ts/runtime-rpc";
9
9
  * @generated ServiceType for protobuf service services.documents.CollabService
10
10
  */
11
11
  export const CollabService = new ServiceType("services.documents.CollabService", [
12
- { name: "JoinRoom", serverStreaming: true, clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, namespace: "documents", service: "DocumentsService", name: "UpdateDocument" } }, I: ClientPacket, O: ServerPacket }
12
+ { name: "JoinRoom", serverStreaming: true, clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, namespace: "documents", service: "DocumentsService", names: ["UpdateDocument", "ListDocuments"], internal: true } }, I: ClientPacket, O: ServerPacket }
13
13
  ]);
@@ -28,7 +28,7 @@ import { TemplateData } from "../../resources/documents/templates/templates";
28
28
  import { ContentType } from "../../resources/common/content/content";
29
29
  import { DocumentRelation } from "../../resources/documents/relations/relations";
30
30
  import { DocumentReference } from "../../resources/documents/references/references";
31
- import { DocumentAccess } from "../../resources/documents/access/access";
31
+ import { Access } from "../../resources/access/access";
32
32
  import { Document } from "../../resources/documents/documents";
33
33
  import { DocumentShort } from "../../resources/documents/documents";
34
34
  import { PaginationResponse } from "../../resources/common/database/database";
@@ -124,9 +124,9 @@ export interface GetDocumentResponse {
124
124
  */
125
125
  document?: Document;
126
126
  /**
127
- * @generated from protobuf field: resources.documents.access.DocumentAccess access = 2
127
+ * @generated from protobuf field: resources.access.Access access = 2
128
128
  */
129
- access?: DocumentAccess;
129
+ access?: Access;
130
130
  }
131
131
  /**
132
132
  * @generated from protobuf message services.documents.GetDocumentReferencesRequest
@@ -350,9 +350,9 @@ export interface UpdateDocumentRequest {
350
350
  */
351
351
  meta?: DocumentMeta;
352
352
  /**
353
- * @generated from protobuf field: optional resources.documents.access.DocumentAccess access = 11
353
+ * @generated from protobuf field: optional resources.access.Access access = 11
354
354
  */
355
- access?: DocumentAccess;
355
+ access?: Access;
356
356
  /**
357
357
  * @generated from protobuf field: repeated resources.file.File files = 12
358
358
  */
@@ -512,9 +512,9 @@ export interface GetDocumentAccessRequest {
512
512
  */
513
513
  export interface GetDocumentAccessResponse {
514
514
  /**
515
- * @generated from protobuf field: resources.documents.access.DocumentAccess access = 1
515
+ * @generated from protobuf field: resources.access.Access access = 1
516
516
  */
517
- access?: DocumentAccess;
517
+ access?: Access;
518
518
  }
519
519
  /**
520
520
  * @generated from protobuf message services.documents.SetDocumentAccessRequest
@@ -525,9 +525,9 @@ export interface SetDocumentAccessRequest {
525
525
  */
526
526
  documentId: number;
527
527
  /**
528
- * @generated from protobuf field: resources.documents.access.DocumentAccess access = 2
528
+ * @generated from protobuf field: resources.access.Access access = 2
529
529
  */
530
- access?: DocumentAccess;
530
+ access?: Access;
531
531
  }
532
532
  /**
533
533
  * @generated from protobuf message services.documents.SetDocumentAccessResponse
@@ -914,7 +914,7 @@ class GetDocumentResponse$Type extends MessageType<GetDocumentResponse> {
914
914
  constructor() {
915
915
  super("services.documents.GetDocumentResponse", [
916
916
  { no: 1, name: "document", kind: "message", T: () => Document },
917
- { no: 2, name: "access", kind: "message", T: () => DocumentAccess }
917
+ { no: 2, name: "access", kind: "message", T: () => Access }
918
918
  ]);
919
919
  }
920
920
  create(value?: PartialMessage<GetDocumentResponse>): GetDocumentResponse {
@@ -931,8 +931,8 @@ class GetDocumentResponse$Type extends MessageType<GetDocumentResponse> {
931
931
  case /* resources.documents.Document document */ 1:
932
932
  message.document = Document.internalBinaryRead(reader, reader.uint32(), options, message.document);
933
933
  break;
934
- case /* resources.documents.access.DocumentAccess access */ 2:
935
- message.access = DocumentAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
934
+ case /* resources.access.Access access */ 2:
935
+ message.access = Access.internalBinaryRead(reader, reader.uint32(), options, message.access);
936
936
  break;
937
937
  default:
938
938
  let u = options.readUnknownField;
@@ -949,9 +949,9 @@ class GetDocumentResponse$Type extends MessageType<GetDocumentResponse> {
949
949
  /* resources.documents.Document document = 1; */
950
950
  if (message.document)
951
951
  Document.internalBinaryWrite(message.document, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
952
- /* resources.documents.access.DocumentAccess access = 2; */
952
+ /* resources.access.Access access = 2; */
953
953
  if (message.access)
954
- DocumentAccess.internalBinaryWrite(message.access, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
954
+ Access.internalBinaryWrite(message.access, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
955
955
  let u = options.writeUnknownFields;
956
956
  if (u !== false)
957
957
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -1948,8 +1948,8 @@ class UpdateDocumentRequest$Type extends MessageType<UpdateDocumentRequest> {
1948
1948
  { no: 5, name: "content_type", kind: "enum", T: () => ["resources.common.content.ContentType", ContentType, "CONTENT_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true } } } },
1949
1949
  { no: 6, name: "data", kind: "message", T: () => DocumentData },
1950
1950
  { no: 7, name: "meta", kind: "message", T: () => DocumentMeta, options: { "buf.validate.field": { required: true } } },
1951
- { no: 11, name: "access", kind: "message", T: () => DocumentAccess },
1952
- { no: 12, name: "files", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => File, options: { "tagger.tags": "alias:\"files\"" } }
1951
+ { no: 11, name: "access", kind: "message", T: () => Access },
1952
+ { no: 12, name: "files", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => File, options: { "buf.validate.field": { repeated: { maxItems: "5" } }, "tagger.tags": "alias:\"files\"" } }
1953
1953
  ]);
1954
1954
  }
1955
1955
  create(value?: PartialMessage<UpdateDocumentRequest>): UpdateDocumentRequest {
@@ -1988,8 +1988,8 @@ class UpdateDocumentRequest$Type extends MessageType<UpdateDocumentRequest> {
1988
1988
  case /* resources.documents.DocumentMeta meta */ 7:
1989
1989
  message.meta = DocumentMeta.internalBinaryRead(reader, reader.uint32(), options, message.meta);
1990
1990
  break;
1991
- case /* optional resources.documents.access.DocumentAccess access */ 11:
1992
- message.access = DocumentAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
1991
+ case /* optional resources.access.Access access */ 11:
1992
+ message.access = Access.internalBinaryRead(reader, reader.uint32(), options, message.access);
1993
1993
  break;
1994
1994
  case /* repeated resources.file.File files */ 12:
1995
1995
  message.files.push(File.internalBinaryRead(reader, reader.uint32(), options));
@@ -2027,9 +2027,9 @@ class UpdateDocumentRequest$Type extends MessageType<UpdateDocumentRequest> {
2027
2027
  /* resources.documents.DocumentMeta meta = 7; */
2028
2028
  if (message.meta)
2029
2029
  DocumentMeta.internalBinaryWrite(message.meta, writer.tag(7, WireType.LengthDelimited).fork(), options).join();
2030
- /* optional resources.documents.access.DocumentAccess access = 11; */
2030
+ /* optional resources.access.Access access = 11; */
2031
2031
  if (message.access)
2032
- DocumentAccess.internalBinaryWrite(message.access, writer.tag(11, WireType.LengthDelimited).fork(), options).join();
2032
+ Access.internalBinaryWrite(message.access, writer.tag(11, WireType.LengthDelimited).fork(), options).join();
2033
2033
  /* repeated resources.file.File files = 12; */
2034
2034
  for (let i = 0; i < message.files.length; i++)
2035
2035
  File.internalBinaryWrite(message.files[i], writer.tag(12, WireType.LengthDelimited).fork(), options).join();
@@ -2049,7 +2049,7 @@ class ListDocumentActivityRequest$Type extends MessageType<ListDocumentActivityR
2049
2049
  super("services.documents.ListDocumentActivityRequest", [
2050
2050
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
2051
2051
  { no: 2, name: "document_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
2052
- { no: 3, name: "activity_types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.activity.DocActivityType", DocActivityType, "DOC_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "10", items: { enum: { in: [13, 14, 15, 16, 17, 18] } } } } } }
2052
+ { no: 3, name: "activity_types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.activity.DocActivityType", DocActivityType, "DOC_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "10", items: { enum: { definedOnly: true, in: [13, 14, 15, 16, 17, 18] } } } } } }
2053
2053
  ]);
2054
2054
  }
2055
2055
  create(value?: PartialMessage<ListDocumentActivityRequest>): ListDocumentActivityRequest {
@@ -2280,7 +2280,7 @@ class CreateDocumentReqRequest$Type extends MessageType<CreateDocumentReqRequest
2280
2280
  constructor() {
2281
2281
  super("services.documents.CreateDocumentReqRequest", [
2282
2282
  { no: 1, name: "document_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
2283
- { no: 2, name: "request_type", kind: "enum", T: () => ["resources.documents.activity.DocActivityType", DocActivityType, "DOC_ACTIVITY_TYPE_"], options: { "buf.validate.field": { enum: { in: [13, 14, 15, 16, 17, 18] } } } },
2283
+ { no: 2, name: "request_type", kind: "enum", T: () => ["resources.documents.activity.DocActivityType", DocActivityType, "DOC_ACTIVITY_TYPE_"], options: { "buf.validate.field": { enum: { definedOnly: true, in: [13, 14, 15, 16, 17, 18] } } } },
2284
2284
  { no: 3, name: "reason", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
2285
2285
  { no: 4, name: "data", kind: "message", T: () => DocActivityData }
2286
2286
  ]);
@@ -2649,7 +2649,7 @@ export const GetDocumentAccessRequest = new GetDocumentAccessRequest$Type();
2649
2649
  class GetDocumentAccessResponse$Type extends MessageType<GetDocumentAccessResponse> {
2650
2650
  constructor() {
2651
2651
  super("services.documents.GetDocumentAccessResponse", [
2652
- { no: 1, name: "access", kind: "message", T: () => DocumentAccess, options: { "buf.validate.field": { required: true } } }
2652
+ { no: 1, name: "access", kind: "message", T: () => Access, options: { "buf.validate.field": { required: true } } }
2653
2653
  ]);
2654
2654
  }
2655
2655
  create(value?: PartialMessage<GetDocumentAccessResponse>): GetDocumentAccessResponse {
@@ -2663,8 +2663,8 @@ class GetDocumentAccessResponse$Type extends MessageType<GetDocumentAccessRespon
2663
2663
  while (reader.pos < end) {
2664
2664
  let [fieldNo, wireType] = reader.tag();
2665
2665
  switch (fieldNo) {
2666
- case /* resources.documents.access.DocumentAccess access */ 1:
2667
- message.access = DocumentAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
2666
+ case /* resources.access.Access access */ 1:
2667
+ message.access = Access.internalBinaryRead(reader, reader.uint32(), options, message.access);
2668
2668
  break;
2669
2669
  default:
2670
2670
  let u = options.readUnknownField;
@@ -2678,9 +2678,9 @@ class GetDocumentAccessResponse$Type extends MessageType<GetDocumentAccessRespon
2678
2678
  return message;
2679
2679
  }
2680
2680
  internalBinaryWrite(message: GetDocumentAccessResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
2681
- /* resources.documents.access.DocumentAccess access = 1; */
2681
+ /* resources.access.Access access = 1; */
2682
2682
  if (message.access)
2683
- DocumentAccess.internalBinaryWrite(message.access, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
2683
+ Access.internalBinaryWrite(message.access, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
2684
2684
  let u = options.writeUnknownFields;
2685
2685
  if (u !== false)
2686
2686
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -2696,7 +2696,7 @@ class SetDocumentAccessRequest$Type extends MessageType<SetDocumentAccessRequest
2696
2696
  constructor() {
2697
2697
  super("services.documents.SetDocumentAccessRequest", [
2698
2698
  { no: 1, name: "document_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
2699
- { no: 2, name: "access", kind: "message", T: () => DocumentAccess, options: { "buf.validate.field": { required: true } } }
2699
+ { no: 2, name: "access", kind: "message", T: () => Access, options: { "buf.validate.field": { required: true } } }
2700
2700
  ]);
2701
2701
  }
2702
2702
  create(value?: PartialMessage<SetDocumentAccessRequest>): SetDocumentAccessRequest {
@@ -2714,8 +2714,8 @@ class SetDocumentAccessRequest$Type extends MessageType<SetDocumentAccessRequest
2714
2714
  case /* int64 document_id */ 1:
2715
2715
  message.documentId = reader.int64().toNumber();
2716
2716
  break;
2717
- case /* resources.documents.access.DocumentAccess access */ 2:
2718
- message.access = DocumentAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);
2717
+ case /* resources.access.Access access */ 2:
2718
+ message.access = Access.internalBinaryRead(reader, reader.uint32(), options, message.access);
2719
2719
  break;
2720
2720
  default:
2721
2721
  let u = options.readUnknownField;
@@ -2732,9 +2732,9 @@ class SetDocumentAccessRequest$Type extends MessageType<SetDocumentAccessRequest
2732
2732
  /* int64 document_id = 1; */
2733
2733
  if (message.documentId !== 0)
2734
2734
  writer.tag(1, WireType.Varint).int64(message.documentId);
2735
- /* resources.documents.access.DocumentAccess access = 2; */
2735
+ /* resources.access.Access access = 2; */
2736
2736
  if (message.access)
2737
- DocumentAccess.internalBinaryWrite(message.access, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
2737
+ Access.internalBinaryWrite(message.access, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
2738
2738
  let u = options.writeUnknownFields;
2739
2739
  if (u !== false)
2740
2740
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -2790,7 +2790,7 @@ class ListUserDocumentsRequest$Type extends MessageType<ListUserDocumentsRequest
2790
2790
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
2791
2791
  { no: 2, name: "sort", kind: "message", T: () => Sort },
2792
2792
  { no: 3, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
2793
- { no: 4, name: "relations", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.relations.DocRelation", DocRelation, "DOC_RELATION_"], options: { "buf.validate.field": { repeated: { maxItems: "3" } } } },
2793
+ { no: 4, name: "relations", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.documents.relations.DocRelation", DocRelation, "DOC_RELATION_"], options: { "buf.validate.field": { repeated: { maxItems: "3", items: { enum: { definedOnly: true } } } } } },
2794
2794
  { no: 5, name: "closed", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
2795
2795
  { no: 6, name: "include_created", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
2796
2796
  ]);
@@ -3257,16 +3257,16 @@ export const DocumentsService = new ServiceType("services.documents.DocumentsSer
3257
3257
  { name: "ListDocuments", options: { "codegen.perms.perms": { enabled: true } }, I: ListDocumentsRequest, O: ListDocumentsResponse },
3258
3258
  { name: "GetDocument", options: { "codegen.perms.perms": { enabled: true, name: "ListDocuments" } }, I: GetDocumentRequest, O: GetDocumentResponse },
3259
3259
  { name: "CreateDocument", options: { "codegen.perms.perms": { enabled: true, name: "UpdateDocument" } }, I: CreateDocumentRequest, O: CreateDocumentResponse },
3260
- { name: "UpdateDocument", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "Lower_Rank", "Same_Rank", "Any"] }] } }, I: UpdateDocumentRequest, O: UpdateDocumentResponse },
3260
+ { name: "UpdateDocument", options: { "codegen.perms.perms": { enabled: true, names: ["UpdateDocument", "ListDocuments"], attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "Lower_Rank", "Same_Rank", "Any"] }] } }, I: UpdateDocumentRequest, O: UpdateDocumentResponse },
3261
3261
  { name: "DeleteDocument", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "Lower_Rank", "Same_Rank", "Any"] }] } }, I: DeleteDocumentRequest, O: DeleteDocumentResponse },
3262
3262
  { name: "ToggleDocument", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "Lower_Rank", "Same_Rank", "Any"] }] } }, I: ToggleDocumentRequest, O: ToggleDocumentResponse },
3263
3263
  { name: "ChangeDocumentOwner", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Access", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Own", "Lower_Rank", "Same_Rank", "Any"] }] } }, I: ChangeDocumentOwnerRequest, O: ChangeDocumentOwnerResponse },
3264
3264
  { name: "GetDocumentReferences", options: { "codegen.perms.perms": { enabled: true, name: "ListDocuments" } }, I: GetDocumentReferencesRequest, O: GetDocumentReferencesResponse },
3265
3265
  { name: "GetDocumentRelations", options: { "codegen.perms.perms": { enabled: true, name: "ListDocuments" } }, I: GetDocumentRelationsRequest, O: GetDocumentRelationsResponse },
3266
- { name: "AddDocumentReference", options: { "codegen.perms.perms": { enabled: true } }, I: AddDocumentReferenceRequest, O: AddDocumentReferenceResponse },
3267
- { name: "RemoveDocumentReference", options: { "codegen.perms.perms": { enabled: true, name: "AddDocumentReference" } }, I: RemoveDocumentReferenceRequest, O: RemoveDocumentReferenceResponse },
3268
- { name: "AddDocumentRelation", options: { "codegen.perms.perms": { enabled: true } }, I: AddDocumentRelationRequest, O: AddDocumentRelationResponse },
3269
- { name: "RemoveDocumentRelation", options: { "codegen.perms.perms": { enabled: true, name: "AddDocumentRelation" } }, I: RemoveDocumentRelationRequest, O: RemoveDocumentRelationResponse },
3266
+ { name: "AddDocumentReference", options: { "codegen.perms.perms": { enabled: true, names: ["AddDocumentReference", "ListDocuments"] } }, I: AddDocumentReferenceRequest, O: AddDocumentReferenceResponse },
3267
+ { name: "RemoveDocumentReference", options: { "codegen.perms.perms": { enabled: true, name: "ListDocuments" } }, I: RemoveDocumentReferenceRequest, O: RemoveDocumentReferenceResponse },
3268
+ { name: "AddDocumentRelation", options: { "codegen.perms.perms": { enabled: true, names: ["AddDocumentRelation", "ListDocuments"] } }, I: AddDocumentRelationRequest, O: AddDocumentRelationResponse },
3269
+ { name: "RemoveDocumentRelation", options: { "codegen.perms.perms": { enabled: true, name: "ListDocuments" } }, I: RemoveDocumentRelationRequest, O: RemoveDocumentRelationResponse },
3270
3270
  { name: "GetDocumentAccess", options: { "codegen.perms.perms": { enabled: true, name: "ListDocuments" } }, I: GetDocumentAccessRequest, O: GetDocumentAccessResponse },
3271
3271
  { name: "SetDocumentAccess", options: { "codegen.perms.perms": { enabled: true, name: "UpdateDocument" } }, I: SetDocumentAccessRequest, O: SetDocumentAccessResponse },
3272
3272
  { name: "ListDocumentActivity", options: { "codegen.perms.perms": { enabled: true } }, I: ListDocumentActivityRequest, O: ListDocumentActivityResponse },