@pidgr/proto 0.36.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.
@@ -0,0 +1,672 @@
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
2
+ // @generated from file pidgr/v1/group.proto (package pidgr.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
+ import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
8
+ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
9
+ import type { Pagination, PaginationMeta } from "./common_pb";
10
+ import { file_pidgr_v1_common } from "./common_pb";
11
+ import type { User } from "./user_pb";
12
+ import { file_pidgr_v1_user } from "./user_pb";
13
+ import type { Message } from "@bufbuild/protobuf";
14
+
15
+ /**
16
+ * Describes the file pidgr/v1/group.proto.
17
+ */
18
+ export const file_pidgr_v1_group: GenFile = /*@__PURE__*/
19
+ fileDesc("ChRwaWRnci92MS9ncm91cC5wcm90bxIIcGlkZ3IudjEi1AEKBUdyb3VwEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSFAoMbWVtYmVyX2NvdW50GAQgASgFEi4KCmNyZWF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCmlzX2RlZmF1bHQYByABKAgSEgoKY3JlYXRlZF9ieRgIIAEoCSI3ChJDcmVhdGVHcm91cFJlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCSI1ChNDcmVhdGVHcm91cFJlc3BvbnNlEh4KBWdyb3VwGAEgASgLMg8ucGlkZ3IudjEuR3JvdXAiIwoPR2V0R3JvdXBSZXF1ZXN0EhAKCGdyb3VwX2lkGAEgASgJIjIKEEdldEdyb3VwUmVzcG9uc2USHgoFZ3JvdXAYASABKAsyDy5waWRnci52MS5Hcm91cCI9ChFMaXN0R3JvdXBzUmVxdWVzdBIoCgpwYWdpbmF0aW9uGAEgASgLMhQucGlkZ3IudjEuUGFnaW5hdGlvbiJoChJMaXN0R3JvdXBzUmVzcG9uc2USHwoGZ3JvdXBzGAEgAygLMg8ucGlkZ3IudjEuR3JvdXASMQoPcGFnaW5hdGlvbl9tZXRhGAIgASgLMhgucGlkZ3IudjEuUGFnaW5hdGlvbk1ldGEiSQoSVXBkYXRlR3JvdXBSZXF1ZXN0EhAKCGdyb3VwX2lkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiNQoTVXBkYXRlR3JvdXBSZXNwb25zZRIeCgVncm91cBgBIAEoCzIPLnBpZGdyLnYxLkdyb3VwIiYKEkRlbGV0ZUdyb3VwUmVxdWVzdBIQCghncm91cF9pZBgBIAEoCSIVChNEZWxldGVHcm91cFJlc3BvbnNlIjwKFkFkZEdyb3VwTWVtYmVyc1JlcXVlc3QSEAoIZ3JvdXBfaWQYASABKAkSEAoIdXNlcl9pZHMYAiADKAkiOQoXQWRkR3JvdXBNZW1iZXJzUmVzcG9uc2USHgoFZ3JvdXAYASABKAsyDy5waWRnci52MS5Hcm91cCI/ChlSZW1vdmVHcm91cE1lbWJlcnNSZXF1ZXN0EhAKCGdyb3VwX2lkGAEgASgJEhAKCHVzZXJfaWRzGAIgAygJIjwKGlJlbW92ZUdyb3VwTWVtYmVyc1Jlc3BvbnNlEh4KBWdyb3VwGAEgASgLMg8ucGlkZ3IudjEuR3JvdXAiVQoXTGlzdEdyb3VwTWVtYmVyc1JlcXVlc3QSEAoIZ3JvdXBfaWQYASABKAkSKAoKcGFnaW5hdGlvbhgCIAEoCzIULnBpZGdyLnYxLlBhZ2luYXRpb24ibAoYTGlzdEdyb3VwTWVtYmVyc1Jlc3BvbnNlEh0KBXVzZXJzGAEgAygLMg4ucGlkZ3IudjEuVXNlchIxCg9wYWdpbmF0aW9uX21ldGEYAiABKAsyGC5waWRnci52MS5QYWdpbmF0aW9uTWV0YSJHChNVc2VyR3JvdXBNZW1iZXJzaGlwEg8KB3VzZXJfaWQYASABKAkSHwoGZ3JvdXBzGAIgAygLMg8ucGlkZ3IudjEuR3JvdXAiMgoeR2V0VXNlckdyb3VwTWVtYmVyc2hpcHNSZXF1ZXN0EhAKCHVzZXJfaWRzGAEgAygJIlUKH0dldFVzZXJHcm91cE1lbWJlcnNoaXBzUmVzcG9uc2USMgoLbWVtYmVyc2hpcHMYASADKAsyHS5waWRnci52MS5Vc2VyR3JvdXBNZW1iZXJzaGlwMoIGCgxHcm91cFNlcnZpY2USSgoLQ3JlYXRlR3JvdXASHC5waWRnci52MS5DcmVhdGVHcm91cFJlcXVlc3QaHS5waWRnci52MS5DcmVhdGVHcm91cFJlc3BvbnNlEkEKCEdldEdyb3VwEhkucGlkZ3IudjEuR2V0R3JvdXBSZXF1ZXN0GhoucGlkZ3IudjEuR2V0R3JvdXBSZXNwb25zZRJHCgpMaXN0R3JvdXBzEhsucGlkZ3IudjEuTGlzdEdyb3Vwc1JlcXVlc3QaHC5waWRnci52MS5MaXN0R3JvdXBzUmVzcG9uc2USSgoLVXBkYXRlR3JvdXASHC5waWRnci52MS5VcGRhdGVHcm91cFJlcXVlc3QaHS5waWRnci52MS5VcGRhdGVHcm91cFJlc3BvbnNlEkoKC0RlbGV0ZUdyb3VwEhwucGlkZ3IudjEuRGVsZXRlR3JvdXBSZXF1ZXN0Gh0ucGlkZ3IudjEuRGVsZXRlR3JvdXBSZXNwb25zZRJWCg9BZGRHcm91cE1lbWJlcnMSIC5waWRnci52MS5BZGRHcm91cE1lbWJlcnNSZXF1ZXN0GiEucGlkZ3IudjEuQWRkR3JvdXBNZW1iZXJzUmVzcG9uc2USXwoSUmVtb3ZlR3JvdXBNZW1iZXJzEiMucGlkZ3IudjEuUmVtb3ZlR3JvdXBNZW1iZXJzUmVxdWVzdBokLnBpZGdyLnYxLlJlbW92ZUdyb3VwTWVtYmVyc1Jlc3BvbnNlElkKEExpc3RHcm91cE1lbWJlcnMSIS5waWRnci52MS5MaXN0R3JvdXBNZW1iZXJzUmVxdWVzdBoiLnBpZGdyLnYxLkxpc3RHcm91cE1lbWJlcnNSZXNwb25zZRJuChdHZXRVc2VyR3JvdXBNZW1iZXJzaGlwcxIoLnBpZGdyLnYxLkdldFVzZXJHcm91cE1lbWJlcnNoaXBzUmVxdWVzdBopLnBpZGdyLnYxLkdldFVzZXJHcm91cE1lbWJlcnNoaXBzUmVzcG9uc2VCNlo0Z2l0aHViLmNvbS9waWRnci9waWRnci1wcm90by9nZW4vZ28vcGlkZ3IvdjE7cGlkZ3J2MWIGcHJvdG8z", [file_google_protobuf_timestamp, file_pidgr_v1_common, file_pidgr_v1_user]);
20
+
21
+ /**
22
+ * A named collection of users within an organization, used for campaign
23
+ * audience targeting (recipient groups).
24
+ *
25
+ * @generated from message pidgr.v1.Group
26
+ */
27
+ export type Group = Message<"pidgr.v1.Group"> & {
28
+ /**
29
+ * Unique identifier for the group.
30
+ *
31
+ * @generated from field: string id = 1;
32
+ */
33
+ id: string;
34
+
35
+ /**
36
+ * Human-readable display name (unique within the organization).
37
+ * Constraints: Max length 200 characters.
38
+ *
39
+ * @generated from field: string name = 2;
40
+ */
41
+ name: string;
42
+
43
+ /**
44
+ * Optional description of the group's purpose.
45
+ * Constraints: Max length 1000 characters.
46
+ *
47
+ * @generated from field: string description = 3;
48
+ */
49
+ description: string;
50
+
51
+ /**
52
+ * Number of users currently in the group.
53
+ *
54
+ * @generated from field: int32 member_count = 4;
55
+ */
56
+ memberCount: number;
57
+
58
+ /**
59
+ * Timestamp when the group was created.
60
+ *
61
+ * @generated from field: google.protobuf.Timestamp created_at = 5;
62
+ */
63
+ createdAt?: Timestamp;
64
+
65
+ /**
66
+ * Timestamp when the group was last updated.
67
+ *
68
+ * @generated from field: google.protobuf.Timestamp updated_at = 6;
69
+ */
70
+ updatedAt?: Timestamp;
71
+
72
+ /**
73
+ * Whether this is the organization's default group (cannot be deleted or renamed).
74
+ *
75
+ * @generated from field: bool is_default = 7;
76
+ */
77
+ isDefault: boolean;
78
+
79
+ /**
80
+ * ID of the user who created this group. Empty for system-seeded defaults.
81
+ *
82
+ * @generated from field: string created_by = 8;
83
+ */
84
+ createdBy: string;
85
+ };
86
+
87
+ /**
88
+ * Describes the message pidgr.v1.Group.
89
+ * Use `create(GroupSchema)` to create a new message.
90
+ */
91
+ export const GroupSchema: GenMessage<Group> = /*@__PURE__*/
92
+ messageDesc(file_pidgr_v1_group, 0);
93
+
94
+ /**
95
+ * Request to create a new group.
96
+ *
97
+ * @generated from message pidgr.v1.CreateGroupRequest
98
+ */
99
+ export type CreateGroupRequest = Message<"pidgr.v1.CreateGroupRequest"> & {
100
+ /**
101
+ * Display name for the group. Required.
102
+ * Constraints: Max length 200 characters.
103
+ *
104
+ * @generated from field: string name = 1;
105
+ */
106
+ name: string;
107
+
108
+ /**
109
+ * Optional description.
110
+ * Constraints: Max length 1000 characters.
111
+ *
112
+ * @generated from field: string description = 2;
113
+ */
114
+ description: string;
115
+ };
116
+
117
+ /**
118
+ * Describes the message pidgr.v1.CreateGroupRequest.
119
+ * Use `create(CreateGroupRequestSchema)` to create a new message.
120
+ */
121
+ export const CreateGroupRequestSchema: GenMessage<CreateGroupRequest> = /*@__PURE__*/
122
+ messageDesc(file_pidgr_v1_group, 1);
123
+
124
+ /**
125
+ * Response after creating a group.
126
+ *
127
+ * @generated from message pidgr.v1.CreateGroupResponse
128
+ */
129
+ export type CreateGroupResponse = Message<"pidgr.v1.CreateGroupResponse"> & {
130
+ /**
131
+ * The newly created group.
132
+ *
133
+ * @generated from field: pidgr.v1.Group group = 1;
134
+ */
135
+ group?: Group;
136
+ };
137
+
138
+ /**
139
+ * Describes the message pidgr.v1.CreateGroupResponse.
140
+ * Use `create(CreateGroupResponseSchema)` to create a new message.
141
+ */
142
+ export const CreateGroupResponseSchema: GenMessage<CreateGroupResponse> = /*@__PURE__*/
143
+ messageDesc(file_pidgr_v1_group, 2);
144
+
145
+ /**
146
+ * Request to retrieve a group by ID.
147
+ *
148
+ * @generated from message pidgr.v1.GetGroupRequest
149
+ */
150
+ export type GetGroupRequest = Message<"pidgr.v1.GetGroupRequest"> & {
151
+ /**
152
+ * ID of the group to retrieve. Required.
153
+ *
154
+ * @generated from field: string group_id = 1;
155
+ */
156
+ groupId: string;
157
+ };
158
+
159
+ /**
160
+ * Describes the message pidgr.v1.GetGroupRequest.
161
+ * Use `create(GetGroupRequestSchema)` to create a new message.
162
+ */
163
+ export const GetGroupRequestSchema: GenMessage<GetGroupRequest> = /*@__PURE__*/
164
+ messageDesc(file_pidgr_v1_group, 3);
165
+
166
+ /**
167
+ * Response containing the requested group.
168
+ *
169
+ * @generated from message pidgr.v1.GetGroupResponse
170
+ */
171
+ export type GetGroupResponse = Message<"pidgr.v1.GetGroupResponse"> & {
172
+ /**
173
+ * The requested group.
174
+ *
175
+ * @generated from field: pidgr.v1.Group group = 1;
176
+ */
177
+ group?: Group;
178
+ };
179
+
180
+ /**
181
+ * Describes the message pidgr.v1.GetGroupResponse.
182
+ * Use `create(GetGroupResponseSchema)` to create a new message.
183
+ */
184
+ export const GetGroupResponseSchema: GenMessage<GetGroupResponse> = /*@__PURE__*/
185
+ messageDesc(file_pidgr_v1_group, 4);
186
+
187
+ /**
188
+ * Request to list groups in the organization with pagination.
189
+ *
190
+ * @generated from message pidgr.v1.ListGroupsRequest
191
+ */
192
+ export type ListGroupsRequest = Message<"pidgr.v1.ListGroupsRequest"> & {
193
+ /**
194
+ * Pagination parameters.
195
+ *
196
+ * @generated from field: pidgr.v1.Pagination pagination = 1;
197
+ */
198
+ pagination?: Pagination;
199
+ };
200
+
201
+ /**
202
+ * Describes the message pidgr.v1.ListGroupsRequest.
203
+ * Use `create(ListGroupsRequestSchema)` to create a new message.
204
+ */
205
+ export const ListGroupsRequestSchema: GenMessage<ListGroupsRequest> = /*@__PURE__*/
206
+ messageDesc(file_pidgr_v1_group, 5);
207
+
208
+ /**
209
+ * Response containing a page of groups.
210
+ *
211
+ * @generated from message pidgr.v1.ListGroupsResponse
212
+ */
213
+ export type ListGroupsResponse = Message<"pidgr.v1.ListGroupsResponse"> & {
214
+ /**
215
+ * Groups in this page.
216
+ *
217
+ * @generated from field: repeated pidgr.v1.Group groups = 1;
218
+ */
219
+ groups: Group[];
220
+
221
+ /**
222
+ * Pagination metadata for fetching subsequent pages.
223
+ *
224
+ * @generated from field: pidgr.v1.PaginationMeta pagination_meta = 2;
225
+ */
226
+ paginationMeta?: PaginationMeta;
227
+ };
228
+
229
+ /**
230
+ * Describes the message pidgr.v1.ListGroupsResponse.
231
+ * Use `create(ListGroupsResponseSchema)` to create a new message.
232
+ */
233
+ export const ListGroupsResponseSchema: GenMessage<ListGroupsResponse> = /*@__PURE__*/
234
+ messageDesc(file_pidgr_v1_group, 6);
235
+
236
+ /**
237
+ * Request to update a group's name and/or description.
238
+ *
239
+ * @generated from message pidgr.v1.UpdateGroupRequest
240
+ */
241
+ export type UpdateGroupRequest = Message<"pidgr.v1.UpdateGroupRequest"> & {
242
+ /**
243
+ * ID of the group to update. Required.
244
+ *
245
+ * @generated from field: string group_id = 1;
246
+ */
247
+ groupId: string;
248
+
249
+ /**
250
+ * New display name. If empty, the name is not changed.
251
+ * Default groups cannot be renamed.
252
+ * Constraints: Max length 200 characters.
253
+ *
254
+ * @generated from field: string name = 2;
255
+ */
256
+ name: string;
257
+
258
+ /**
259
+ * New description. If empty, the description is not changed.
260
+ * Constraints: Max length 1000 characters.
261
+ *
262
+ * @generated from field: string description = 3;
263
+ */
264
+ description: string;
265
+ };
266
+
267
+ /**
268
+ * Describes the message pidgr.v1.UpdateGroupRequest.
269
+ * Use `create(UpdateGroupRequestSchema)` to create a new message.
270
+ */
271
+ export const UpdateGroupRequestSchema: GenMessage<UpdateGroupRequest> = /*@__PURE__*/
272
+ messageDesc(file_pidgr_v1_group, 7);
273
+
274
+ /**
275
+ * Response after updating a group.
276
+ *
277
+ * @generated from message pidgr.v1.UpdateGroupResponse
278
+ */
279
+ export type UpdateGroupResponse = Message<"pidgr.v1.UpdateGroupResponse"> & {
280
+ /**
281
+ * The updated group.
282
+ *
283
+ * @generated from field: pidgr.v1.Group group = 1;
284
+ */
285
+ group?: Group;
286
+ };
287
+
288
+ /**
289
+ * Describes the message pidgr.v1.UpdateGroupResponse.
290
+ * Use `create(UpdateGroupResponseSchema)` to create a new message.
291
+ */
292
+ export const UpdateGroupResponseSchema: GenMessage<UpdateGroupResponse> = /*@__PURE__*/
293
+ messageDesc(file_pidgr_v1_group, 8);
294
+
295
+ /**
296
+ * Request to delete a group.
297
+ *
298
+ * @generated from message pidgr.v1.DeleteGroupRequest
299
+ */
300
+ export type DeleteGroupRequest = Message<"pidgr.v1.DeleteGroupRequest"> & {
301
+ /**
302
+ * ID of the group to delete. Required.
303
+ * Default groups cannot be deleted.
304
+ *
305
+ * @generated from field: string group_id = 1;
306
+ */
307
+ groupId: string;
308
+ };
309
+
310
+ /**
311
+ * Describes the message pidgr.v1.DeleteGroupRequest.
312
+ * Use `create(DeleteGroupRequestSchema)` to create a new message.
313
+ */
314
+ export const DeleteGroupRequestSchema: GenMessage<DeleteGroupRequest> = /*@__PURE__*/
315
+ messageDesc(file_pidgr_v1_group, 9);
316
+
317
+ /**
318
+ * Response after deleting a group.
319
+ *
320
+ * @generated from message pidgr.v1.DeleteGroupResponse
321
+ */
322
+ export type DeleteGroupResponse = Message<"pidgr.v1.DeleteGroupResponse"> & {
323
+ };
324
+
325
+ /**
326
+ * Describes the message pidgr.v1.DeleteGroupResponse.
327
+ * Use `create(DeleteGroupResponseSchema)` to create a new message.
328
+ */
329
+ export const DeleteGroupResponseSchema: GenMessage<DeleteGroupResponse> = /*@__PURE__*/
330
+ messageDesc(file_pidgr_v1_group, 10);
331
+
332
+ /**
333
+ * Request to add users to a group.
334
+ *
335
+ * @generated from message pidgr.v1.AddGroupMembersRequest
336
+ */
337
+ export type AddGroupMembersRequest = Message<"pidgr.v1.AddGroupMembersRequest"> & {
338
+ /**
339
+ * ID of the group to add members to. Required.
340
+ *
341
+ * @generated from field: string group_id = 1;
342
+ */
343
+ groupId: string;
344
+
345
+ /**
346
+ * IDs of users to add. Must belong to the same organization.
347
+ * Adding an existing member is a no-op (idempotent).
348
+ * Constraints: Max 100 user IDs per request.
349
+ *
350
+ * @generated from field: repeated string user_ids = 2;
351
+ */
352
+ userIds: string[];
353
+ };
354
+
355
+ /**
356
+ * Describes the message pidgr.v1.AddGroupMembersRequest.
357
+ * Use `create(AddGroupMembersRequestSchema)` to create a new message.
358
+ */
359
+ export const AddGroupMembersRequestSchema: GenMessage<AddGroupMembersRequest> = /*@__PURE__*/
360
+ messageDesc(file_pidgr_v1_group, 11);
361
+
362
+ /**
363
+ * Response after adding group members.
364
+ *
365
+ * @generated from message pidgr.v1.AddGroupMembersResponse
366
+ */
367
+ export type AddGroupMembersResponse = Message<"pidgr.v1.AddGroupMembersResponse"> & {
368
+ /**
369
+ * The group with updated member_count.
370
+ *
371
+ * @generated from field: pidgr.v1.Group group = 1;
372
+ */
373
+ group?: Group;
374
+ };
375
+
376
+ /**
377
+ * Describes the message pidgr.v1.AddGroupMembersResponse.
378
+ * Use `create(AddGroupMembersResponseSchema)` to create a new message.
379
+ */
380
+ export const AddGroupMembersResponseSchema: GenMessage<AddGroupMembersResponse> = /*@__PURE__*/
381
+ messageDesc(file_pidgr_v1_group, 12);
382
+
383
+ /**
384
+ * Request to remove users from a group.
385
+ *
386
+ * @generated from message pidgr.v1.RemoveGroupMembersRequest
387
+ */
388
+ export type RemoveGroupMembersRequest = Message<"pidgr.v1.RemoveGroupMembersRequest"> & {
389
+ /**
390
+ * ID of the group to remove members from. Required.
391
+ *
392
+ * @generated from field: string group_id = 1;
393
+ */
394
+ groupId: string;
395
+
396
+ /**
397
+ * IDs of users to remove. Removing a non-member is a no-op (idempotent).
398
+ * Constraints: Max 100 user IDs per request.
399
+ *
400
+ * @generated from field: repeated string user_ids = 2;
401
+ */
402
+ userIds: string[];
403
+ };
404
+
405
+ /**
406
+ * Describes the message pidgr.v1.RemoveGroupMembersRequest.
407
+ * Use `create(RemoveGroupMembersRequestSchema)` to create a new message.
408
+ */
409
+ export const RemoveGroupMembersRequestSchema: GenMessage<RemoveGroupMembersRequest> = /*@__PURE__*/
410
+ messageDesc(file_pidgr_v1_group, 13);
411
+
412
+ /**
413
+ * Response after removing group members.
414
+ *
415
+ * @generated from message pidgr.v1.RemoveGroupMembersResponse
416
+ */
417
+ export type RemoveGroupMembersResponse = Message<"pidgr.v1.RemoveGroupMembersResponse"> & {
418
+ /**
419
+ * The group with updated member_count.
420
+ *
421
+ * @generated from field: pidgr.v1.Group group = 1;
422
+ */
423
+ group?: Group;
424
+ };
425
+
426
+ /**
427
+ * Describes the message pidgr.v1.RemoveGroupMembersResponse.
428
+ * Use `create(RemoveGroupMembersResponseSchema)` to create a new message.
429
+ */
430
+ export const RemoveGroupMembersResponseSchema: GenMessage<RemoveGroupMembersResponse> = /*@__PURE__*/
431
+ messageDesc(file_pidgr_v1_group, 14);
432
+
433
+ /**
434
+ * Request to list members of a group with pagination.
435
+ *
436
+ * @generated from message pidgr.v1.ListGroupMembersRequest
437
+ */
438
+ export type ListGroupMembersRequest = Message<"pidgr.v1.ListGroupMembersRequest"> & {
439
+ /**
440
+ * ID of the group whose members to list. Required.
441
+ *
442
+ * @generated from field: string group_id = 1;
443
+ */
444
+ groupId: string;
445
+
446
+ /**
447
+ * Pagination parameters.
448
+ *
449
+ * @generated from field: pidgr.v1.Pagination pagination = 2;
450
+ */
451
+ pagination?: Pagination;
452
+ };
453
+
454
+ /**
455
+ * Describes the message pidgr.v1.ListGroupMembersRequest.
456
+ * Use `create(ListGroupMembersRequestSchema)` to create a new message.
457
+ */
458
+ export const ListGroupMembersRequestSchema: GenMessage<ListGroupMembersRequest> = /*@__PURE__*/
459
+ messageDesc(file_pidgr_v1_group, 15);
460
+
461
+ /**
462
+ * Response containing a page of group members.
463
+ *
464
+ * @generated from message pidgr.v1.ListGroupMembersResponse
465
+ */
466
+ export type ListGroupMembersResponse = Message<"pidgr.v1.ListGroupMembersResponse"> & {
467
+ /**
468
+ * Users in this page.
469
+ *
470
+ * @generated from field: repeated pidgr.v1.User users = 1;
471
+ */
472
+ users: User[];
473
+
474
+ /**
475
+ * Pagination metadata for fetching subsequent pages.
476
+ *
477
+ * @generated from field: pidgr.v1.PaginationMeta pagination_meta = 2;
478
+ */
479
+ paginationMeta?: PaginationMeta;
480
+ };
481
+
482
+ /**
483
+ * Describes the message pidgr.v1.ListGroupMembersResponse.
484
+ * Use `create(ListGroupMembersResponseSchema)` to create a new message.
485
+ */
486
+ export const ListGroupMembersResponseSchema: GenMessage<ListGroupMembersResponse> = /*@__PURE__*/
487
+ messageDesc(file_pidgr_v1_group, 16);
488
+
489
+ /**
490
+ * A group membership entry for batch lookups.
491
+ *
492
+ * @generated from message pidgr.v1.UserGroupMembership
493
+ */
494
+ export type UserGroupMembership = Message<"pidgr.v1.UserGroupMembership"> & {
495
+ /**
496
+ * ID of the user.
497
+ *
498
+ * @generated from field: string user_id = 1;
499
+ */
500
+ userId: string;
501
+
502
+ /**
503
+ * Groups the user belongs to.
504
+ *
505
+ * @generated from field: repeated pidgr.v1.Group groups = 2;
506
+ */
507
+ groups: Group[];
508
+ };
509
+
510
+ /**
511
+ * Describes the message pidgr.v1.UserGroupMembership.
512
+ * Use `create(UserGroupMembershipSchema)` to create a new message.
513
+ */
514
+ export const UserGroupMembershipSchema: GenMessage<UserGroupMembership> = /*@__PURE__*/
515
+ messageDesc(file_pidgr_v1_group, 17);
516
+
517
+ /**
518
+ * Request to get group memberships for a batch of users.
519
+ *
520
+ * @generated from message pidgr.v1.GetUserGroupMembershipsRequest
521
+ */
522
+ export type GetUserGroupMembershipsRequest = Message<"pidgr.v1.GetUserGroupMembershipsRequest"> & {
523
+ /**
524
+ * IDs of users to look up. Required.
525
+ * Constraints: Max 200 user IDs per request.
526
+ *
527
+ * @generated from field: repeated string user_ids = 1;
528
+ */
529
+ userIds: string[];
530
+ };
531
+
532
+ /**
533
+ * Describes the message pidgr.v1.GetUserGroupMembershipsRequest.
534
+ * Use `create(GetUserGroupMembershipsRequestSchema)` to create a new message.
535
+ */
536
+ export const GetUserGroupMembershipsRequestSchema: GenMessage<GetUserGroupMembershipsRequest> = /*@__PURE__*/
537
+ messageDesc(file_pidgr_v1_group, 18);
538
+
539
+ /**
540
+ * Response containing group memberships for the requested users.
541
+ *
542
+ * @generated from message pidgr.v1.GetUserGroupMembershipsResponse
543
+ */
544
+ export type GetUserGroupMembershipsResponse = Message<"pidgr.v1.GetUserGroupMembershipsResponse"> & {
545
+ /**
546
+ * Group memberships per user. Only users with at least one group are included.
547
+ *
548
+ * @generated from field: repeated pidgr.v1.UserGroupMembership memberships = 1;
549
+ */
550
+ memberships: UserGroupMembership[];
551
+ };
552
+
553
+ /**
554
+ * Describes the message pidgr.v1.GetUserGroupMembershipsResponse.
555
+ * Use `create(GetUserGroupMembershipsResponseSchema)` to create a new message.
556
+ */
557
+ export const GetUserGroupMembershipsResponseSchema: GenMessage<GetUserGroupMembershipsResponse> = /*@__PURE__*/
558
+ messageDesc(file_pidgr_v1_group, 19);
559
+
560
+ /**
561
+ * Manages groups and group membership within an organization.
562
+ * Groups are recipient collections used for campaign audience targeting.
563
+ * All RPCs operate within the caller's org (extracted from JWT).
564
+ *
565
+ * @generated from service pidgr.v1.GroupService
566
+ */
567
+ export const GroupService: GenService<{
568
+ /**
569
+ * Create a new group in the organization.
570
+ * Authorization: Requires PERMISSION_GROUPS_WRITE or PERMISSION_GROUPS_ALL_WRITE.
571
+ *
572
+ * @generated from rpc pidgr.v1.GroupService.CreateGroup
573
+ */
574
+ createGroup: {
575
+ methodKind: "unary";
576
+ input: typeof CreateGroupRequestSchema;
577
+ output: typeof CreateGroupResponseSchema;
578
+ },
579
+ /**
580
+ * Retrieve a group by ID.
581
+ * Authorization: Caller must be a member of the group, or have
582
+ * PERMISSION_GROUPS_ALL_READ or PERMISSION_GROUPS_ALL_WRITE.
583
+ *
584
+ * @generated from rpc pidgr.v1.GroupService.GetGroup
585
+ */
586
+ getGroup: {
587
+ methodKind: "unary";
588
+ input: typeof GetGroupRequestSchema;
589
+ output: typeof GetGroupResponseSchema;
590
+ },
591
+ /**
592
+ * List groups in the organization with pagination.
593
+ * Without PERMISSION_GROUPS_ALL_READ/ALL_WRITE, returns only groups the caller belongs to.
594
+ *
595
+ * @generated from rpc pidgr.v1.GroupService.ListGroups
596
+ */
597
+ listGroups: {
598
+ methodKind: "unary";
599
+ input: typeof ListGroupsRequestSchema;
600
+ output: typeof ListGroupsResponseSchema;
601
+ },
602
+ /**
603
+ * Update a group's name and/or description.
604
+ * Authorization: Requires PERMISSION_GROUPS_WRITE (own groups) or PERMISSION_GROUPS_ALL_WRITE (any).
605
+ *
606
+ * @generated from rpc pidgr.v1.GroupService.UpdateGroup
607
+ */
608
+ updateGroup: {
609
+ methodKind: "unary";
610
+ input: typeof UpdateGroupRequestSchema;
611
+ output: typeof UpdateGroupResponseSchema;
612
+ },
613
+ /**
614
+ * Delete a group and all its membership records. Default groups cannot be deleted.
615
+ * Authorization: Requires PERMISSION_GROUPS_WRITE (own groups) or PERMISSION_GROUPS_ALL_WRITE (any).
616
+ *
617
+ * @generated from rpc pidgr.v1.GroupService.DeleteGroup
618
+ */
619
+ deleteGroup: {
620
+ methodKind: "unary";
621
+ input: typeof DeleteGroupRequestSchema;
622
+ output: typeof DeleteGroupResponseSchema;
623
+ },
624
+ /**
625
+ * Add one or more users to a group (idempotent).
626
+ * Authorization: Requires PERMISSION_GROUPS_WRITE (own groups) or PERMISSION_GROUPS_ALL_WRITE (any).
627
+ *
628
+ * @generated from rpc pidgr.v1.GroupService.AddGroupMembers
629
+ */
630
+ addGroupMembers: {
631
+ methodKind: "unary";
632
+ input: typeof AddGroupMembersRequestSchema;
633
+ output: typeof AddGroupMembersResponseSchema;
634
+ },
635
+ /**
636
+ * Remove one or more users from a group (idempotent).
637
+ * Authorization: Requires PERMISSION_GROUPS_WRITE (own groups) or PERMISSION_GROUPS_ALL_WRITE (any).
638
+ *
639
+ * @generated from rpc pidgr.v1.GroupService.RemoveGroupMembers
640
+ */
641
+ removeGroupMembers: {
642
+ methodKind: "unary";
643
+ input: typeof RemoveGroupMembersRequestSchema;
644
+ output: typeof RemoveGroupMembersResponseSchema;
645
+ },
646
+ /**
647
+ * List members of a group with pagination.
648
+ * Authorization: Caller must be a member of the group, or have
649
+ * PERMISSION_GROUPS_ALL_READ or PERMISSION_GROUPS_ALL_WRITE.
650
+ *
651
+ * @generated from rpc pidgr.v1.GroupService.ListGroupMembers
652
+ */
653
+ listGroupMembers: {
654
+ methodKind: "unary";
655
+ input: typeof ListGroupMembersRequestSchema;
656
+ output: typeof ListGroupMembersResponseSchema;
657
+ },
658
+ /**
659
+ * Get group memberships for a batch of users.
660
+ * Used by campaign audience to show group badges.
661
+ * Authorization: Requires PERMISSION_GROUPS_ALL_READ or PERMISSION_GROUPS_ALL_WRITE.
662
+ *
663
+ * @generated from rpc pidgr.v1.GroupService.GetUserGroupMemberships
664
+ */
665
+ getUserGroupMemberships: {
666
+ methodKind: "unary";
667
+ input: typeof GetUserGroupMembershipsRequestSchema;
668
+ output: typeof GetUserGroupMembershipsResponseSchema;
669
+ },
670
+ }> = /*@__PURE__*/
671
+ serviceDesc(file_pidgr_v1_group, 0);
672
+