@fivenet-app/gen 2026.8.5 → 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.
Files changed (63) hide show
  1. package/LICENSE +201 -0
  2. package/clients.ts +12 -0
  3. package/codegen/perms/perms.ts +331 -2
  4. package/google/protobuf/any.ts +47 -103
  5. package/google/protobuf/descriptor.ts +39 -32
  6. package/google/protobuf/struct.ts +33 -22
  7. package/google/protobuf/timestamp.ts +9 -8
  8. package/package.json +2 -2
  9. package/perms.ts +41 -13
  10. package/resources/centrum/dispatches/dispatches.ts +206 -13
  11. package/resources/centrum/units/units.ts +207 -0
  12. package/resources/cron/cron.ts +44 -3
  13. package/resources/documents/templates/templates.ts +3 -3
  14. package/resources/file/file.ts +3 -3
  15. package/resources/file/filestore.ts +26 -10
  16. package/resources/jobs/colleagues/activity/activity.ts +50 -8
  17. package/resources/jobs/colleagues/colleagues.ts +14 -1
  18. package/resources/jobs/groups/short/group_member_short.ts +129 -0
  19. package/resources/jobs/job_asset.ts +116 -0
  20. package/resources/jobs/user_selector.ts +1 -15
  21. package/resources/notifications/clientview/clientview.ts +5 -1
  22. package/resources/notifications/events/events.ts +35 -1
  23. package/resources/notifications/notifications.ts +322 -2
  24. package/resources/permissions/attributes/attributes.ts +164 -2
  25. package/resources/permissions/authorization/authorization.ts +86 -0
  26. package/resources/permissions/permissions/permissions.ts +16 -1
  27. package/resources/properties/properties.ts +1648 -0
  28. package/resources/qualifications/activity/activity.ts +328 -0
  29. package/resources/qualifications/exam/exam.ts +108 -4
  30. package/resources/qualifications/qualifications.ts +36 -2
  31. package/resources/settings/config.ts +3 -3
  32. package/resources/sync/activity/activity.ts +4 -4
  33. package/resources/sync/data/data.ts +16 -4
  34. package/resources/users/activity/activity.ts +220 -3
  35. package/resources/users/props/props.ts +13 -1
  36. package/resources/users/user.ts +13 -1
  37. package/resources/vehicles/activity/activity.ts +222 -3
  38. package/resources/vehicles/props/props.ts +13 -1
  39. package/resources/vehicles/vehicles.ts +13 -1
  40. package/services/auth/auth.ts +61 -67
  41. package/services/centrum/centrum.ts +103 -1
  42. package/services/centrum/dispatches.ts +25 -1
  43. package/services/centrum/units.ts +25 -1
  44. package/services/citizens/citizens.client.ts +49 -0
  45. package/services/citizens/citizens.ts +384 -7
  46. package/services/documents/documents.ts +1 -0
  47. package/services/documents/templates.ts +12 -1
  48. package/services/jobs/colleagues.ts +26 -1
  49. package/services/jobs/conduct.ts +1 -0
  50. package/services/jobs/groups.ts +62 -4
  51. package/services/notifications/notifications.client.ts +40 -1
  52. package/services/notifications/notifications.ts +483 -3
  53. package/services/qualifications/qualifications.client.ts +20 -7
  54. package/services/qualifications/qualifications.ts +265 -4
  55. package/services/settings/job_assets.client.ts +105 -0
  56. package/services/settings/job_assets.ts +373 -0
  57. package/services/settings/properties.client.ts +194 -0
  58. package/services/settings/properties.ts +1555 -0
  59. package/services/settings/system.ts +29 -9
  60. package/services/sync/sync.ts +115 -12
  61. package/services/vehicles/vehicles.client.ts +52 -0
  62. package/services/vehicles/vehicles.ts +385 -7
  63. package/svcs.ts +58 -0
@@ -14,11 +14,15 @@ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
14
14
  import type { PartialMessage } from "@protobuf-ts/runtime";
15
15
  import { reflectionMergePartial } from "@protobuf-ts/runtime";
16
16
  import { MessageType } from "@protobuf-ts/runtime";
17
+ import { File } from "../../resources/file/file";
18
+ import { PropertyChange } from "../../resources/properties/properties";
17
19
  import { UserProps } from "../../resources/users/props/props";
18
20
  import { UserActivity } from "../../resources/users/activity/activity";
21
+ import { Timestamp } from "../../resources/timestamp/timestamp";
19
22
  import { UserActivityType } from "../../resources/users/activity/activity";
20
23
  import { User } from "../../resources/users/user";
21
24
  import { PaginationResponse } from "../../resources/common/database/database";
25
+ import { PropertyFilter } from "../../resources/properties/properties";
22
26
  import { Sort } from "../../resources/common/database/database";
23
27
  import { PaginationRequest } from "../../resources/common/database/database";
24
28
  /**
@@ -69,6 +73,10 @@ export interface ListCitizensRequest {
69
73
  * @generated from protobuf field: optional float max_height = 10
70
74
  */
71
75
  maxHeight?: number;
76
+ /**
77
+ * @generated from protobuf field: repeated resources.properties.PropertyFilter property_filters = 11
78
+ */
79
+ propertyFilters: PropertyFilter[];
72
80
  }
73
81
  /**
74
82
  * @generated from protobuf message services.citizens.ListCitizensResponse
@@ -124,9 +132,25 @@ export interface ListUserActivityRequest {
124
132
  */
125
133
  userId: number;
126
134
  /**
135
+ * Activity types to filter by. If empty, all activity types will be returned.
136
+ *
127
137
  * @generated from protobuf field: repeated resources.users.activity.UserActivityType types = 4
128
138
  */
129
139
  types: UserActivityType[];
140
+ /**
141
+ * @generated from protobuf field: optional resources.timestamp.Timestamp from = 5
142
+ */
143
+ from?: Timestamp;
144
+ /**
145
+ * @generated from protobuf field: optional resources.timestamp.Timestamp to = 6
146
+ */
147
+ to?: Timestamp;
148
+ /**
149
+ * Restricts generic PROPERTY activity entries to these custom property keys.
150
+ *
151
+ * @generated from protobuf field: repeated string property_keys = 7
152
+ */
153
+ propertyKeys: string[];
130
154
  }
131
155
  /**
132
156
  * @generated from protobuf message services.citizens.ListUserActivityResponse
@@ -153,6 +177,13 @@ export interface SetUserPropsRequest {
153
177
  * @generated from protobuf field: string reason = 2
154
178
  */
155
179
  reason: string;
180
+ /**
181
+ * Generic custom scalar properties. Managed system properties continue to
182
+ * use the dedicated fields above and produce their specialized activities.
183
+ *
184
+ * @generated from protobuf field: repeated resources.properties.PropertyChange property_changes = 3
185
+ */
186
+ propertyChanges: PropertyChange[];
156
187
  }
157
188
  /**
158
189
  * @generated from protobuf message services.citizens.SetUserPropsResponse
@@ -191,6 +222,62 @@ export interface DeleteMugshotRequest {
191
222
  */
192
223
  export interface DeleteMugshotResponse {
193
224
  }
225
+ /**
226
+ * CitizenFile is a restricted investigation attachment. The public profile
227
+ * avatar is deliberately not represented here.
228
+ *
229
+ * @generated from protobuf message services.citizens.CitizenFile
230
+ */
231
+ export interface CitizenFile {
232
+ /**
233
+ * @generated from protobuf field: resources.file.File file = 1
234
+ */
235
+ file?: File;
236
+ /**
237
+ * @generated from protobuf field: string kind = 2
238
+ */
239
+ kind: string;
240
+ }
241
+ /**
242
+ * @generated from protobuf message services.citizens.ListCitizenFilesRequest
243
+ */
244
+ export interface ListCitizenFilesRequest {
245
+ /**
246
+ * @generated from protobuf field: int32 user_id = 1
247
+ */
248
+ userId: number;
249
+ }
250
+ /**
251
+ * @generated from protobuf message services.citizens.ListCitizenFilesResponse
252
+ */
253
+ export interface ListCitizenFilesResponse {
254
+ /**
255
+ * @generated from protobuf field: repeated services.citizens.CitizenFile files = 1
256
+ */
257
+ files: CitizenFile[];
258
+ }
259
+ /**
260
+ * @generated from protobuf message services.citizens.DeleteCitizenFileRequest
261
+ */
262
+ export interface DeleteCitizenFileRequest {
263
+ /**
264
+ * @generated from protobuf field: int32 user_id = 1
265
+ */
266
+ userId: number;
267
+ /**
268
+ * @generated from protobuf field: int64 file_id = 2
269
+ */
270
+ fileId: number;
271
+ /**
272
+ * @generated from protobuf field: string reason = 3
273
+ */
274
+ reason: string;
275
+ }
276
+ /**
277
+ * @generated from protobuf message services.citizens.DeleteCitizenFileResponse
278
+ */
279
+ export interface DeleteCitizenFileResponse {
280
+ }
194
281
  // @generated message type with reflection information, may provide speed optimized methods
195
282
  class ListCitizensRequest$Type extends MessageType<ListCitizensRequest> {
196
283
  constructor() {
@@ -204,12 +291,14 @@ class ListCitizensRequest$Type extends MessageType<ListCitizensRequest> {
204
291
  { no: 7, name: "dateofbirth", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "10" } } } },
205
292
  { no: 8, name: "open_fines", kind: "scalar", opt: true, T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
206
293
  { no: 9, name: "min_height", kind: "scalar", opt: true, T: 2 /*ScalarType.FLOAT*/ },
207
- { no: 10, name: "max_height", kind: "scalar", opt: true, T: 2 /*ScalarType.FLOAT*/ }
294
+ { no: 10, name: "max_height", kind: "scalar", opt: true, T: 2 /*ScalarType.FLOAT*/ },
295
+ { no: 11, name: "property_filters", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PropertyFilter, options: { "buf.validate.field": { repeated: { maxItems: "8" } } } }
208
296
  ]);
209
297
  }
210
298
  create(value?: PartialMessage<ListCitizensRequest>): ListCitizensRequest {
211
299
  const message = globalThis.Object.create((this.messagePrototype!));
212
300
  message.search = "";
301
+ message.propertyFilters = [];
213
302
  if (value !== undefined)
214
303
  reflectionMergePartial<ListCitizensRequest>(this, message, value);
215
304
  return message;
@@ -249,6 +338,9 @@ class ListCitizensRequest$Type extends MessageType<ListCitizensRequest> {
249
338
  case /* optional float max_height */ 10:
250
339
  message.maxHeight = reader.float();
251
340
  break;
341
+ case /* repeated resources.properties.PropertyFilter property_filters */ 11:
342
+ message.propertyFilters.push(PropertyFilter.internalBinaryRead(reader, reader.uint32(), options));
343
+ break;
252
344
  default:
253
345
  let u = options.readUnknownField;
254
346
  if (u === "throw")
@@ -291,6 +383,9 @@ class ListCitizensRequest$Type extends MessageType<ListCitizensRequest> {
291
383
  /* optional float max_height = 10; */
292
384
  if (message.maxHeight !== undefined)
293
385
  writer.tag(10, WireType.Bit32).float(message.maxHeight);
386
+ /* repeated resources.properties.PropertyFilter property_filters = 11; */
387
+ for (let i = 0; i < message.propertyFilters.length; i++)
388
+ PropertyFilter.internalBinaryWrite(message.propertyFilters[i], writer.tag(11, WireType.LengthDelimited).fork(), options).join();
294
389
  let u = options.writeUnknownFields;
295
390
  if (u !== false)
296
391
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -462,13 +557,17 @@ class ListUserActivityRequest$Type extends MessageType<ListUserActivityRequest>
462
557
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
463
558
  { no: 2, name: "sort", kind: "message", T: () => Sort },
464
559
  { no: 3, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
465
- { no: 4, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.users.activity.UserActivityType", UserActivityType, "USER_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "20", items: { enum: { definedOnly: true } } } } } }
560
+ { no: 4, name: "types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.users.activity.UserActivityType", UserActivityType, "USER_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "20", items: { enum: { definedOnly: true } } } } } },
561
+ { no: 5, name: "from", kind: "message", T: () => Timestamp },
562
+ { no: 6, name: "to", kind: "message", T: () => Timestamp },
563
+ { no: 7, name: "property_keys", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { repeated: { maxItems: "20", items: { string: { maxLen: "64" } } } } } }
466
564
  ]);
467
565
  }
468
566
  create(value?: PartialMessage<ListUserActivityRequest>): ListUserActivityRequest {
469
567
  const message = globalThis.Object.create((this.messagePrototype!));
470
568
  message.userId = 0;
471
569
  message.types = [];
570
+ message.propertyKeys = [];
472
571
  if (value !== undefined)
473
572
  reflectionMergePartial<ListUserActivityRequest>(this, message, value);
474
573
  return message;
@@ -494,6 +593,15 @@ class ListUserActivityRequest$Type extends MessageType<ListUserActivityRequest>
494
593
  else
495
594
  message.types.push(reader.int32());
496
595
  break;
596
+ case /* optional resources.timestamp.Timestamp from */ 5:
597
+ message.from = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.from);
598
+ break;
599
+ case /* optional resources.timestamp.Timestamp to */ 6:
600
+ message.to = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.to);
601
+ break;
602
+ case /* repeated string property_keys */ 7:
603
+ message.propertyKeys.push(reader.string());
604
+ break;
497
605
  default:
498
606
  let u = options.readUnknownField;
499
607
  if (u === "throw")
@@ -522,6 +630,15 @@ class ListUserActivityRequest$Type extends MessageType<ListUserActivityRequest>
522
630
  writer.int32(message.types[i]);
523
631
  writer.join();
524
632
  }
633
+ /* optional resources.timestamp.Timestamp from = 5; */
634
+ if (message.from)
635
+ Timestamp.internalBinaryWrite(message.from, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
636
+ /* optional resources.timestamp.Timestamp to = 6; */
637
+ if (message.to)
638
+ Timestamp.internalBinaryWrite(message.to, writer.tag(6, WireType.LengthDelimited).fork(), options).join();
639
+ /* repeated string property_keys = 7; */
640
+ for (let i = 0; i < message.propertyKeys.length; i++)
641
+ writer.tag(7, WireType.LengthDelimited).string(message.propertyKeys[i]);
525
642
  let u = options.writeUnknownFields;
526
643
  if (u !== false)
527
644
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -591,12 +708,14 @@ class SetUserPropsRequest$Type extends MessageType<SetUserPropsRequest> {
591
708
  constructor() {
592
709
  super("services.citizens.SetUserPropsRequest", [
593
710
  { no: 1, name: "props", kind: "message", T: () => UserProps, options: { "buf.validate.field": { required: true } } },
594
- { no: 2, name: "reason", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { ignore: "IGNORE_IF_ZERO_VALUE", string: { minLen: "3", maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } }
711
+ { no: 2, name: "reason", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { ignore: "IGNORE_IF_ZERO_VALUE", string: { minLen: "3", maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } },
712
+ { no: 3, name: "property_changes", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => PropertyChange, options: { "buf.validate.field": { repeated: { maxItems: "20" } } } }
595
713
  ]);
596
714
  }
597
715
  create(value?: PartialMessage<SetUserPropsRequest>): SetUserPropsRequest {
598
716
  const message = globalThis.Object.create((this.messagePrototype!));
599
717
  message.reason = "";
718
+ message.propertyChanges = [];
600
719
  if (value !== undefined)
601
720
  reflectionMergePartial<SetUserPropsRequest>(this, message, value);
602
721
  return message;
@@ -612,6 +731,9 @@ class SetUserPropsRequest$Type extends MessageType<SetUserPropsRequest> {
612
731
  case /* string reason */ 2:
613
732
  message.reason = reader.string();
614
733
  break;
734
+ case /* repeated resources.properties.PropertyChange property_changes */ 3:
735
+ message.propertyChanges.push(PropertyChange.internalBinaryRead(reader, reader.uint32(), options));
736
+ break;
615
737
  default:
616
738
  let u = options.readUnknownField;
617
739
  if (u === "throw")
@@ -630,6 +752,9 @@ class SetUserPropsRequest$Type extends MessageType<SetUserPropsRequest> {
630
752
  /* string reason = 2; */
631
753
  if (message.reason !== "")
632
754
  writer.tag(2, WireType.LengthDelimited).string(message.reason);
755
+ /* repeated resources.properties.PropertyChange property_changes = 3; */
756
+ for (let i = 0; i < message.propertyChanges.length; i++)
757
+ PropertyChange.internalBinaryWrite(message.propertyChanges[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
633
758
  let u = options.writeUnknownFields;
634
759
  if (u !== false)
635
760
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -855,16 +980,268 @@ class DeleteMugshotResponse$Type extends MessageType<DeleteMugshotResponse> {
855
980
  * @generated MessageType for protobuf message services.citizens.DeleteMugshotResponse
856
981
  */
857
982
  export const DeleteMugshotResponse = new DeleteMugshotResponse$Type();
983
+ // @generated message type with reflection information, may provide speed optimized methods
984
+ class CitizenFile$Type extends MessageType<CitizenFile> {
985
+ constructor() {
986
+ super("services.citizens.CitizenFile", [
987
+ { no: 1, name: "file", kind: "message", T: () => File, options: { "buf.validate.field": { required: true } } },
988
+ { no: 2, name: "kind", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { maxLen: "32" } } } }
989
+ ]);
990
+ }
991
+ create(value?: PartialMessage<CitizenFile>): CitizenFile {
992
+ const message = globalThis.Object.create((this.messagePrototype!));
993
+ message.kind = "";
994
+ if (value !== undefined)
995
+ reflectionMergePartial<CitizenFile>(this, message, value);
996
+ return message;
997
+ }
998
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CitizenFile): CitizenFile {
999
+ let message = target ?? this.create(), end = reader.pos + length;
1000
+ while (reader.pos < end) {
1001
+ let [fieldNo, wireType] = reader.tag();
1002
+ switch (fieldNo) {
1003
+ case /* resources.file.File file */ 1:
1004
+ message.file = File.internalBinaryRead(reader, reader.uint32(), options, message.file);
1005
+ break;
1006
+ case /* string kind */ 2:
1007
+ message.kind = reader.string();
1008
+ break;
1009
+ default:
1010
+ let u = options.readUnknownField;
1011
+ if (u === "throw")
1012
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1013
+ let d = reader.skip(wireType);
1014
+ if (u !== false)
1015
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1016
+ }
1017
+ }
1018
+ return message;
1019
+ }
1020
+ internalBinaryWrite(message: CitizenFile, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1021
+ /* resources.file.File file = 1; */
1022
+ if (message.file)
1023
+ File.internalBinaryWrite(message.file, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
1024
+ /* string kind = 2; */
1025
+ if (message.kind !== "")
1026
+ writer.tag(2, WireType.LengthDelimited).string(message.kind);
1027
+ let u = options.writeUnknownFields;
1028
+ if (u !== false)
1029
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1030
+ return writer;
1031
+ }
1032
+ }
1033
+ /**
1034
+ * @generated MessageType for protobuf message services.citizens.CitizenFile
1035
+ */
1036
+ export const CitizenFile = new CitizenFile$Type();
1037
+ // @generated message type with reflection information, may provide speed optimized methods
1038
+ class ListCitizenFilesRequest$Type extends MessageType<ListCitizenFilesRequest> {
1039
+ constructor() {
1040
+ super("services.citizens.ListCitizenFilesRequest", [
1041
+ { no: 1, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } }
1042
+ ]);
1043
+ }
1044
+ create(value?: PartialMessage<ListCitizenFilesRequest>): ListCitizenFilesRequest {
1045
+ const message = globalThis.Object.create((this.messagePrototype!));
1046
+ message.userId = 0;
1047
+ if (value !== undefined)
1048
+ reflectionMergePartial<ListCitizenFilesRequest>(this, message, value);
1049
+ return message;
1050
+ }
1051
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListCitizenFilesRequest): ListCitizenFilesRequest {
1052
+ let message = target ?? this.create(), end = reader.pos + length;
1053
+ while (reader.pos < end) {
1054
+ let [fieldNo, wireType] = reader.tag();
1055
+ switch (fieldNo) {
1056
+ case /* int32 user_id */ 1:
1057
+ message.userId = reader.int32();
1058
+ break;
1059
+ default:
1060
+ let u = options.readUnknownField;
1061
+ if (u === "throw")
1062
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1063
+ let d = reader.skip(wireType);
1064
+ if (u !== false)
1065
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1066
+ }
1067
+ }
1068
+ return message;
1069
+ }
1070
+ internalBinaryWrite(message: ListCitizenFilesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1071
+ /* int32 user_id = 1; */
1072
+ if (message.userId !== 0)
1073
+ writer.tag(1, WireType.Varint).int32(message.userId);
1074
+ let u = options.writeUnknownFields;
1075
+ if (u !== false)
1076
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1077
+ return writer;
1078
+ }
1079
+ }
1080
+ /**
1081
+ * @generated MessageType for protobuf message services.citizens.ListCitizenFilesRequest
1082
+ */
1083
+ export const ListCitizenFilesRequest = new ListCitizenFilesRequest$Type();
1084
+ // @generated message type with reflection information, may provide speed optimized methods
1085
+ class ListCitizenFilesResponse$Type extends MessageType<ListCitizenFilesResponse> {
1086
+ constructor() {
1087
+ super("services.citizens.ListCitizenFilesResponse", [
1088
+ { no: 1, name: "files", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => CitizenFile, options: { "codegen.itemslen.enabled": true } }
1089
+ ]);
1090
+ }
1091
+ create(value?: PartialMessage<ListCitizenFilesResponse>): ListCitizenFilesResponse {
1092
+ const message = globalThis.Object.create((this.messagePrototype!));
1093
+ message.files = [];
1094
+ if (value !== undefined)
1095
+ reflectionMergePartial<ListCitizenFilesResponse>(this, message, value);
1096
+ return message;
1097
+ }
1098
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListCitizenFilesResponse): ListCitizenFilesResponse {
1099
+ let message = target ?? this.create(), end = reader.pos + length;
1100
+ while (reader.pos < end) {
1101
+ let [fieldNo, wireType] = reader.tag();
1102
+ switch (fieldNo) {
1103
+ case /* repeated services.citizens.CitizenFile files */ 1:
1104
+ message.files.push(CitizenFile.internalBinaryRead(reader, reader.uint32(), options));
1105
+ break;
1106
+ default:
1107
+ let u = options.readUnknownField;
1108
+ if (u === "throw")
1109
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1110
+ let d = reader.skip(wireType);
1111
+ if (u !== false)
1112
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1113
+ }
1114
+ }
1115
+ return message;
1116
+ }
1117
+ internalBinaryWrite(message: ListCitizenFilesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1118
+ /* repeated services.citizens.CitizenFile files = 1; */
1119
+ for (let i = 0; i < message.files.length; i++)
1120
+ CitizenFile.internalBinaryWrite(message.files[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
1121
+ let u = options.writeUnknownFields;
1122
+ if (u !== false)
1123
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1124
+ return writer;
1125
+ }
1126
+ }
1127
+ /**
1128
+ * @generated MessageType for protobuf message services.citizens.ListCitizenFilesResponse
1129
+ */
1130
+ export const ListCitizenFilesResponse = new ListCitizenFilesResponse$Type();
1131
+ // @generated message type with reflection information, may provide speed optimized methods
1132
+ class DeleteCitizenFileRequest$Type extends MessageType<DeleteCitizenFileRequest> {
1133
+ constructor() {
1134
+ super("services.citizens.DeleteCitizenFileRequest", [
1135
+ { no: 1, name: "user_id", kind: "scalar", T: 5 /*ScalarType.INT32*/, options: { "buf.validate.field": { int32: { gt: 0 } } } },
1136
+ { no: 2, name: "file_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/, options: { "buf.validate.field": { int64: { gt: "0" } } } },
1137
+ { no: 3, name: "reason", kind: "scalar", T: 9 /*ScalarType.STRING*/, options: { "buf.validate.field": { string: { minLen: "3", maxLen: "255" } }, "codegen.sanitizer.sanitizer": { enabled: true } } }
1138
+ ]);
1139
+ }
1140
+ create(value?: PartialMessage<DeleteCitizenFileRequest>): DeleteCitizenFileRequest {
1141
+ const message = globalThis.Object.create((this.messagePrototype!));
1142
+ message.userId = 0;
1143
+ message.fileId = 0;
1144
+ message.reason = "";
1145
+ if (value !== undefined)
1146
+ reflectionMergePartial<DeleteCitizenFileRequest>(this, message, value);
1147
+ return message;
1148
+ }
1149
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteCitizenFileRequest): DeleteCitizenFileRequest {
1150
+ let message = target ?? this.create(), end = reader.pos + length;
1151
+ while (reader.pos < end) {
1152
+ let [fieldNo, wireType] = reader.tag();
1153
+ switch (fieldNo) {
1154
+ case /* int32 user_id */ 1:
1155
+ message.userId = reader.int32();
1156
+ break;
1157
+ case /* int64 file_id */ 2:
1158
+ message.fileId = reader.int64().toNumber();
1159
+ break;
1160
+ case /* string reason */ 3:
1161
+ message.reason = reader.string();
1162
+ break;
1163
+ default:
1164
+ let u = options.readUnknownField;
1165
+ if (u === "throw")
1166
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1167
+ let d = reader.skip(wireType);
1168
+ if (u !== false)
1169
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1170
+ }
1171
+ }
1172
+ return message;
1173
+ }
1174
+ internalBinaryWrite(message: DeleteCitizenFileRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1175
+ /* int32 user_id = 1; */
1176
+ if (message.userId !== 0)
1177
+ writer.tag(1, WireType.Varint).int32(message.userId);
1178
+ /* int64 file_id = 2; */
1179
+ if (message.fileId !== 0)
1180
+ writer.tag(2, WireType.Varint).int64(message.fileId);
1181
+ /* string reason = 3; */
1182
+ if (message.reason !== "")
1183
+ writer.tag(3, WireType.LengthDelimited).string(message.reason);
1184
+ let u = options.writeUnknownFields;
1185
+ if (u !== false)
1186
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1187
+ return writer;
1188
+ }
1189
+ }
1190
+ /**
1191
+ * @generated MessageType for protobuf message services.citizens.DeleteCitizenFileRequest
1192
+ */
1193
+ export const DeleteCitizenFileRequest = new DeleteCitizenFileRequest$Type();
1194
+ // @generated message type with reflection information, may provide speed optimized methods
1195
+ class DeleteCitizenFileResponse$Type extends MessageType<DeleteCitizenFileResponse> {
1196
+ constructor() {
1197
+ super("services.citizens.DeleteCitizenFileResponse", []);
1198
+ }
1199
+ create(value?: PartialMessage<DeleteCitizenFileResponse>): DeleteCitizenFileResponse {
1200
+ const message = globalThis.Object.create((this.messagePrototype!));
1201
+ if (value !== undefined)
1202
+ reflectionMergePartial<DeleteCitizenFileResponse>(this, message, value);
1203
+ return message;
1204
+ }
1205
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteCitizenFileResponse): DeleteCitizenFileResponse {
1206
+ let message = target ?? this.create(), end = reader.pos + length;
1207
+ while (reader.pos < end) {
1208
+ let [fieldNo, wireType] = reader.tag();
1209
+ switch (fieldNo) {
1210
+ default:
1211
+ let u = options.readUnknownField;
1212
+ if (u === "throw")
1213
+ throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
1214
+ let d = reader.skip(wireType);
1215
+ if (u !== false)
1216
+ (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
1217
+ }
1218
+ }
1219
+ return message;
1220
+ }
1221
+ internalBinaryWrite(message: DeleteCitizenFileResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
1222
+ let u = options.writeUnknownFields;
1223
+ if (u !== false)
1224
+ (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
1225
+ return writer;
1226
+ }
1227
+ }
1228
+ /**
1229
+ * @generated MessageType for protobuf message services.citizens.DeleteCitizenFileResponse
1230
+ */
1231
+ export const DeleteCitizenFileResponse = new DeleteCitizenFileResponse$Type();
858
1232
  /**
859
1233
  * @generated ServiceType for protobuf service services.citizens.CitizensService
860
1234
  */
861
1235
  export const CitizensService = new ServiceType("services.citizens.CitizensService", [
862
- { name: "ListCitizens", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Fields", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["PhoneNumber", "Licenses", "UserProps.Wanted", "UserProps.Job", "UserProps.TrafficInfractionPoints", "UserProps.OpenFines", "UserProps.BloodType", "UserProps.Mugshot", "UserProps.Labels", "UserProps.Email"] }] } }, I: ListCitizensRequest, O: ListCitizensResponse },
1236
+ { name: "ListCitizens", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Properties", type: "ATTRIBUTE_TYPE_PROPERTY_LIST", propertyScope: "PROPERTY_SCOPE_USER" }] } }, I: ListCitizensRequest, O: ListCitizensResponse },
863
1237
  { name: "GetUser", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Jobs", type: "ATTRIBUTE_TYPE_JOB_GRADE_LIST" }] } }, I: GetUserRequest, O: GetUserResponse },
864
1238
  { name: "ListUserActivity", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Fields", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["SourceUser", "Own"] }] } }, I: ListUserActivityRequest, O: ListUserActivityResponse },
865
- { name: "SetUserProps", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Fields", type: "ATTRIBUTE_TYPE_STRING_LIST", validStringList: ["Wanted", "Job", "TrafficInfractionPoints", "Mugshot", "Labels"] }] } }, I: SetUserPropsRequest, O: SetUserPropsResponse },
1239
+ { name: "SetUserProps", options: { "codegen.perms.perms": { enabled: true, attrs: [{ key: "Properties", type: "ATTRIBUTE_TYPE_PROPERTY_LIST", propertyScope: "PROPERTY_SCOPE_USER" }] } }, I: SetUserPropsRequest, O: SetUserPropsResponse },
866
1240
  { name: "UploadAvatar", clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, name: "Any" } }, I: UploadFileRequest, O: UploadFileResponse },
867
1241
  { name: "DeleteAvatar", options: { "codegen.perms.perms": { enabled: true, name: "Any" } }, I: DeleteAvatarRequest, O: DeleteAvatarResponse },
868
1242
  { name: "UploadMugshot", clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, name: "SetUserProps" } }, I: UploadFileRequest, O: UploadFileResponse },
869
- { name: "DeleteMugshot", options: { "codegen.perms.perms": { enabled: true, name: "SetUserProps" } }, I: DeleteMugshotRequest, O: DeleteMugshotResponse }
870
- ], { "codegen.perms.perms_svc": { order: 30, icon: "i-mdi-account-multiple-outline" } });
1243
+ { name: "DeleteMugshot", options: { "codegen.perms.perms": { enabled: true, name: "SetUserProps" } }, I: DeleteMugshotRequest, O: DeleteMugshotResponse },
1244
+ { name: "ListCitizenFiles", options: { "codegen.perms.perms": { enabled: true, name: "ListCitizens" } }, I: ListCitizenFilesRequest, O: ListCitizenFilesResponse },
1245
+ { name: "UploadCitizenFile", clientStreaming: true, options: { "codegen.perms.perms": { enabled: true, name: "SetUserProps" } }, I: UploadFileRequest, O: UploadFileResponse },
1246
+ { name: "DeleteCitizenFile", options: { "codegen.perms.perms": { enabled: true } }, I: DeleteCitizenFileRequest, O: DeleteCitizenFileResponse }
1247
+ ], { "codegen.perms.perms_svc": { order: 30, icon: "i-mdi-account-multiple-outline", systemProperties: [{ scope: "PROPERTY_SCOPE_USER", key: "user.dateofbirth", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.date_of_birth", behavior: "PROPERTY_BEHAVIOR_MANAGED", groupKey: "personal", sortOrder: 100, implicit: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.sex", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.sex", behavior: "PROPERTY_BEHAVIOR_MANAGED", groupKey: "personal", sortOrder: 200, implicit: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.height", valueType: "PROPERTY_VALUE_TYPE_NUMBER", enabled: true, displayKey: "common.height", behavior: "PROPERTY_BEHAVIOR_MANAGED", renderer: "PROPERTY_RENDERER_HEIGHT", groupKey: "personal", sortOrder: 300, implicit: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.phone_number", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.phone_number", searchable: true, behavior: "PROPERTY_BEHAVIOR_MANAGED", renderer: "PROPERTY_RENDERER_PHONE", groupKey: "contact", sortOrder: 100 }, { scope: "PROPERTY_SCOPE_USER", key: "user.visum", valueType: "PROPERTY_VALUE_TYPE_INTEGER", enabled: true, displayKey: "common.visum", groupKey: "contact", sortOrder: 300, implicit: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.licenses", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.license", behavior: "PROPERTY_BEHAVIOR_MANAGED", groupKey: "licenses", sortOrder: 100 }, { scope: "PROPERTY_SCOPE_USER", key: "user.wanted", valueType: "PROPERTY_VALUE_TYPE_BOOL", enabled: true, displayKey: "common.wanted", searchable: true, valueFormat: "PROPERTY_VALUE_FORMAT_PLAIN", behavior: "PROPERTY_BEHAVIOR_MANAGED", displayMode: "PROPERTY_DISPLAY_MODE_PROFILE_BADGE", groupKey: "status", sortOrder: 100, pinned: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.job", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.job", searchable: true, displayMode: "PROPERTY_DISPLAY_MODE_PROFILE_BADGE", groupKey: "status", sortOrder: 400, pinned: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.traffic_infraction_points", valueType: "PROPERTY_VALUE_TYPE_INTEGER", enabled: true, displayKey: "common.traffic_infraction_points", searchable: true, renderer: "PROPERTY_RENDERER_TRAFFIC_POINTS", groupKey: "status", sortOrder: 200, pinned: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.open_fines", valueType: "PROPERTY_VALUE_TYPE_INTEGER", enabled: true, displayKey: "common.fine", searchable: true, valueFormat: "PROPERTY_VALUE_FORMAT_MONEY", renderer: "PROPERTY_RENDERER_MONEY", groupKey: "status", sortOrder: 300, pinned: true }, { scope: "PROPERTY_SCOPE_USER", key: "user.blood_type", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.blood_type", searchable: true, groupKey: "personal", sortOrder: 400 }, { scope: "PROPERTY_SCOPE_USER", key: "user.mugshot", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.mugshot", groupKey: "personal", sortOrder: 500 }, { scope: "PROPERTY_SCOPE_USER", key: "user.files", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.file", behavior: "PROPERTY_BEHAVIOR_MANAGED", groupKey: "personal", sortOrder: 600 }, { scope: "PROPERTY_SCOPE_USER", key: "user.labels", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.label", behavior: "PROPERTY_BEHAVIOR_MANAGED", groupKey: "labels", sortOrder: 500 }, { scope: "PROPERTY_SCOPE_USER", key: "user.email", valueType: "PROPERTY_VALUE_TYPE_STRING", enabled: true, displayKey: "common.mail", searchable: true, behavior: "PROPERTY_BEHAVIOR_MANAGED", renderer: "PROPERTY_RENDERER_EMAIL", groupKey: "contact", sortOrder: 200 }], propertyGroups: [{ scope: "PROPERTY_SCOPE_USER", key: "personal", displayKey: "components.settings.property_definitions.groups.personal", sortOrder: 100 }, { scope: "PROPERTY_SCOPE_USER", key: "contact", displayKey: "components.settings.property_definitions.groups.contact", sortOrder: 200 }, { scope: "PROPERTY_SCOPE_USER", key: "status", displayKey: "components.settings.property_definitions.groups.status", sortOrder: 300 }, { scope: "PROPERTY_SCOPE_USER", key: "labels", displayKey: "components.settings.property_definitions.groups.labels", sortOrder: 400 }, { scope: "PROPERTY_SCOPE_USER", key: "licenses", displayKey: "components.settings.property_definitions.groups.licenses", sortOrder: 500 }] } });
@@ -374,6 +374,7 @@ export interface ListDocumentActivityRequest {
374
374
  documentId: number;
375
375
  /**
376
376
  * Search params
377
+ * Activity types to filter by. If empty, all activity types will be returned.
377
378
  *
378
379
  * @generated from protobuf field: repeated resources.documents.activity.DocActivityType activity_types = 3
379
380
  */
@@ -45,6 +45,10 @@ export interface GetTemplateRequest {
45
45
  * @generated from protobuf field: optional resources.documents.templates.TemplateSelection selection = 4
46
46
  */
47
47
  selection?: TemplateSelection;
48
+ /**
49
+ * @generated from protobuf field: optional bool allow_missing = 5
50
+ */
51
+ allowMissing?: boolean;
48
52
  }
49
53
  /**
50
54
  * @generated from protobuf message services.documents.GetTemplateResponse
@@ -222,7 +226,8 @@ class GetTemplateRequest$Type extends MessageType<GetTemplateRequest> {
222
226
  super("services.documents.GetTemplateRequest", [
223
227
  { no: 1, name: "template_id", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 2 /*LongType.NUMBER*/ },
224
228
  { no: 3, name: "render", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ },
225
- { no: 4, name: "selection", kind: "message", T: () => TemplateSelection }
229
+ { no: 4, name: "selection", kind: "message", T: () => TemplateSelection },
230
+ { no: 5, name: "allow_missing", kind: "scalar", opt: true, T: 8 /*ScalarType.BOOL*/ }
226
231
  ]);
227
232
  }
228
233
  create(value?: PartialMessage<GetTemplateRequest>): GetTemplateRequest {
@@ -246,6 +251,9 @@ class GetTemplateRequest$Type extends MessageType<GetTemplateRequest> {
246
251
  case /* optional resources.documents.templates.TemplateSelection selection */ 4:
247
252
  message.selection = TemplateSelection.internalBinaryRead(reader, reader.uint32(), options, message.selection);
248
253
  break;
254
+ case /* optional bool allow_missing */ 5:
255
+ message.allowMissing = reader.bool();
256
+ break;
249
257
  default:
250
258
  let u = options.readUnknownField;
251
259
  if (u === "throw")
@@ -267,6 +275,9 @@ class GetTemplateRequest$Type extends MessageType<GetTemplateRequest> {
267
275
  /* optional resources.documents.templates.TemplateSelection selection = 4; */
268
276
  if (message.selection)
269
277
  TemplateSelection.internalBinaryWrite(message.selection, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
278
+ /* optional bool allow_missing = 5; */
279
+ if (message.allowMissing !== undefined)
280
+ writer.tag(5, WireType.Varint).bool(message.allowMissing);
270
281
  let u = options.writeUnknownFields;
271
282
  if (u !== false)
272
283
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -16,6 +16,7 @@ import { LabelCount } from "../../resources/jobs/labels/labels";
16
16
  import { Label } from "../../resources/jobs/labels/labels";
17
17
  import { ColleagueProps } from "../../resources/jobs/colleagues/colleagues";
18
18
  import { ColleagueActivity } from "../../resources/jobs/colleagues/activity/activity";
19
+ import { Timestamp } from "../../resources/timestamp/timestamp";
19
20
  import { ColleagueActivityType } from "../../resources/jobs/colleagues/activity/activity";
20
21
  import { Colleague } from "../../resources/jobs/colleagues/colleagues";
21
22
  import { PaginationResponse } from "../../resources/common/database/database";
@@ -135,9 +136,19 @@ export interface ListColleagueActivityRequest {
135
136
  */
136
137
  users?: UserSelector;
137
138
  /**
139
+ * Activity types to filter by. If empty, all user-permitted activity types will be returned.
140
+ *
138
141
  * @generated from protobuf field: repeated resources.jobs.colleagues.activity.ColleagueActivityType activity_types = 4
139
142
  */
140
143
  activityTypes: ColleagueActivityType[];
144
+ /**
145
+ * @generated from protobuf field: optional resources.timestamp.Timestamp from = 5
146
+ */
147
+ from?: Timestamp;
148
+ /**
149
+ * @generated from protobuf field: optional resources.timestamp.Timestamp to = 6
150
+ */
151
+ to?: Timestamp;
141
152
  }
142
153
  /**
143
154
  * @generated from protobuf message services.jobs.ListColleagueActivityResponse
@@ -613,7 +624,9 @@ class ListColleagueActivityRequest$Type extends MessageType<ListColleagueActivit
613
624
  { no: 1, name: "pagination", kind: "message", T: () => PaginationRequest, options: { "buf.validate.field": { required: true } } },
614
625
  { no: 2, name: "sort", kind: "message", T: () => Sort },
615
626
  { no: 3, name: "users", kind: "message", T: () => UserSelector },
616
- { no: 4, name: "activity_types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.colleagues.activity.ColleagueActivityType", ColleagueActivityType, "COLLEAGUE_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "10", items: { enum: { definedOnly: true } } } } } }
627
+ { no: 4, name: "activity_types", kind: "enum", repeat: 1 /*RepeatType.PACKED*/, T: () => ["resources.jobs.colleagues.activity.ColleagueActivityType", ColleagueActivityType, "COLLEAGUE_ACTIVITY_TYPE_"], options: { "buf.validate.field": { repeated: { maxItems: "10", items: { enum: { definedOnly: true } } } } } },
628
+ { no: 5, name: "from", kind: "message", T: () => Timestamp },
629
+ { no: 6, name: "to", kind: "message", T: () => Timestamp }
617
630
  ]);
618
631
  }
619
632
  create(value?: PartialMessage<ListColleagueActivityRequest>): ListColleagueActivityRequest {
@@ -644,6 +657,12 @@ class ListColleagueActivityRequest$Type extends MessageType<ListColleagueActivit
644
657
  else
645
658
  message.activityTypes.push(reader.int32());
646
659
  break;
660
+ case /* optional resources.timestamp.Timestamp from */ 5:
661
+ message.from = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.from);
662
+ break;
663
+ case /* optional resources.timestamp.Timestamp to */ 6:
664
+ message.to = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.to);
665
+ break;
647
666
  default:
648
667
  let u = options.readUnknownField;
649
668
  if (u === "throw")
@@ -672,6 +691,12 @@ class ListColleagueActivityRequest$Type extends MessageType<ListColleagueActivit
672
691
  writer.int32(message.activityTypes[i]);
673
692
  writer.join();
674
693
  }
694
+ /* optional resources.timestamp.Timestamp from = 5; */
695
+ if (message.from)
696
+ Timestamp.internalBinaryWrite(message.from, writer.tag(5, WireType.LengthDelimited).fork(), options).join();
697
+ /* optional resources.timestamp.Timestamp to = 6; */
698
+ if (message.to)
699
+ Timestamp.internalBinaryWrite(message.to, writer.tag(6, WireType.LengthDelimited).fork(), options).join();
675
700
  let u = options.writeUnknownFields;
676
701
  if (u !== false)
677
702
  (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
@@ -36,6 +36,7 @@ export interface ListConductEntriesRequest {
36
36
  sort?: Sort;
37
37
  /**
38
38
  * Search params
39
+ * Conduct types to filter by. If empty, all conduct types will be returned.
39
40
  *
40
41
  * @generated from protobuf field: repeated resources.jobs.conduct.ConductType types = 3
41
42
  */