@proxima-nexus/openapi 1.0.0 → 2.0.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.
package/openapi.yaml CHANGED
@@ -25,6 +25,10 @@ paths:
25
25
  get:
26
26
  operationId: UserController_search
27
27
  summary: Search users
28
+ description: >-
29
+ Search for users. When requesterUserId is provided, HIDDEN users are filtered out unless the requester is
30
+ connected to them, and users who have blocked the requester are also filtered out. When requesterUserId is not
31
+ provided, all users are returned without visibility filtering.
28
32
  parameters:
29
33
  - name: displayName
30
34
  required: false
@@ -89,6 +93,14 @@ paths:
89
93
  schema:
90
94
  example: 100
91
95
  type: number
96
+ - name: X-Proxima-Nexus-Requester-User-Id
97
+ in: header
98
+ description: >-
99
+ ID of the user searching for users. If set, users will be filtered to only include users that the user can
100
+ see, and requesterConnection will be set on the results.
101
+ required: false
102
+ schema:
103
+ type: string
92
104
  responses:
93
105
  '200':
94
106
  description: Users returned
@@ -104,7 +116,7 @@ paths:
104
116
  - api_key: []
105
117
  /user/{userId}:
106
118
  get:
107
- operationId: UserController_findOne
119
+ operationId: UserController_get
108
120
  summary: Get a user by ID
109
121
  parameters:
110
122
  - name: userId
@@ -112,6 +124,14 @@ paths:
112
124
  in: path
113
125
  schema:
114
126
  type: string
127
+ - name: X-Proxima-Nexus-Requester-User-Id
128
+ in: header
129
+ description: >-
130
+ ID of the user getting a user by ID. If set, 401 may be returned if the user cannot view the user, otherwise
131
+ requesterConnection will be set on the result.
132
+ required: false
133
+ schema:
134
+ type: string
115
135
  responses:
116
136
  '200':
117
137
  description: User returned
@@ -132,6 +152,12 @@ paths:
132
152
  in: path
133
153
  schema:
134
154
  type: string
155
+ - name: X-Proxima-Nexus-Requester-User-Id
156
+ in: header
157
+ description: ID of the user updating the user
158
+ required: true
159
+ schema:
160
+ type: string
135
161
  requestBody:
136
162
  required: true
137
163
  content:
@@ -158,6 +184,12 @@ paths:
158
184
  in: path
159
185
  schema:
160
186
  type: string
187
+ - name: X-Proxima-Nexus-Requester-User-Id
188
+ in: header
189
+ description: ID of the user deleting the user
190
+ required: true
191
+ schema:
192
+ type: string
161
193
  responses:
162
194
  '204':
163
195
  description: User deleted
@@ -165,24 +197,40 @@ paths:
165
197
  - user
166
198
  security:
167
199
  - api_key: []
168
- /user/{userId}/friends/{friendUserId}:
200
+ /user/{userId}/connections/{targetUserId}:
169
201
  put:
170
- operationId: UserController_addFriend
171
- summary: Add a friend to a user
202
+ operationId: UserController_putConnection
203
+ summary: Create or update a connection with another user
204
+ description: >-
205
+ Create a friend request, accept a pending request, or block a user. For FRIEND type: creates REQUESTED state if
206
+ no connection exists; target user can accept by setting state to ACTIVE. For BLOCKED type: creates a mutual
207
+ block.
172
208
  parameters:
173
209
  - name: userId
174
210
  required: true
175
211
  in: path
176
212
  schema:
177
213
  type: string
178
- - name: friendUserId
214
+ - name: targetUserId
179
215
  required: true
180
216
  in: path
181
217
  schema:
182
218
  type: string
219
+ - name: X-Proxima-Nexus-Requester-User-Id
220
+ in: header
221
+ description: ID of the user creating/modifying the connection (must match userId)
222
+ required: true
223
+ schema:
224
+ type: string
225
+ requestBody:
226
+ required: true
227
+ content:
228
+ application/json:
229
+ schema:
230
+ $ref: '#/components/schemas/MutateUserConnectionDto'
183
231
  responses:
184
232
  '200':
185
- description: Friend added
233
+ description: Connection created or updated
186
234
  content:
187
235
  application/json:
188
236
  schema:
@@ -192,39 +240,95 @@ paths:
192
240
  security:
193
241
  - api_key: []
194
242
  delete:
195
- operationId: UserController_removeFriend
196
- summary: Remove a friend from a user
243
+ operationId: UserController_deleteConnection
244
+ summary: Delete a connection with another user
245
+ description: >-
246
+ Remove a friend connection or unblock a user. For BLOCKED connections, only the user who initiated the block can
247
+ unblock.
197
248
  parameters:
198
249
  - name: userId
199
250
  required: true
200
251
  in: path
201
252
  schema:
202
253
  type: string
203
- - name: friendUserId
254
+ - name: targetUserId
204
255
  required: true
205
256
  in: path
206
257
  schema:
207
258
  type: string
259
+ - name: type
260
+ required: true
261
+ in: query
262
+ description: Type of connection to delete
263
+ schema:
264
+ enum:
265
+ - friend
266
+ - blocked
267
+ type: string
268
+ - name: X-Proxima-Nexus-Requester-User-Id
269
+ in: header
270
+ description: ID of the user deleting the connection
271
+ required: true
272
+ schema:
273
+ type: string
208
274
  responses:
209
- '200':
210
- description: Friend removed
275
+ '204':
276
+ description: Connection deleted
211
277
  tags:
212
278
  - user
213
279
  security:
214
280
  - api_key: []
215
- /user/{userId}/friends:
281
+ /user/{userId}/connections:
216
282
  get:
217
- operationId: UserController_getFriends
218
- summary: Get friends of a user
283
+ operationId: UserController_getConnections
284
+ summary: Get connections of a user
285
+ description: >-
286
+ Get user connections with optional type and state filters. Visibility rules apply: HIDDEN/CONNECTIONS users only
287
+ show connections to self or connected users. Only the user themselves can see BLOCKED connections or non-ACTIVE
288
+ states.
219
289
  parameters:
220
290
  - name: userId
221
291
  required: true
222
292
  in: path
223
293
  schema:
224
294
  type: string
295
+ - name: state
296
+ required: false
297
+ in: query
298
+ description: Filter connections by state. Can be multiple values. Non-self requesters can only see ACTIVE connections.
299
+ explode: true
300
+ schema:
301
+ type: array
302
+ items:
303
+ type: string
304
+ enum:
305
+ - requested
306
+ - active
307
+ - rejected
308
+ - blocked
309
+ - name: type
310
+ required: false
311
+ in: query
312
+ description: Filter connections by type. Can be multiple values.
313
+ explode: true
314
+ schema:
315
+ type: array
316
+ items:
317
+ type: string
318
+ enum:
319
+ - friend
320
+ - blocked
321
+ - name: X-Proxima-Nexus-Requester-User-Id
322
+ in: header
323
+ description: >-
324
+ ID of the user viewing connections. Required for non-PUBLIC users. Only the user themselves can view BLOCKED
325
+ or non-ACTIVE connections.
326
+ required: false
327
+ schema:
328
+ type: string
225
329
  responses:
226
330
  '200':
227
- description: Friends returned
331
+ description: Connections returned
228
332
  content:
229
333
  application/json:
230
334
  schema:
@@ -239,7 +343,15 @@ paths:
239
343
  post:
240
344
  operationId: UserController_getBatch
241
345
  summary: Get a batch of users by IDs
242
- parameters: []
346
+ parameters:
347
+ - name: X-Proxima-Nexus-Requester-User-Id
348
+ in: header
349
+ description: >-
350
+ ID of the user getting a batch of users. If set, users will be filtered to only include users that the user
351
+ can see, and requesterConnection will be set on the results.
352
+ required: false
353
+ schema:
354
+ type: string
243
355
  requestBody:
244
356
  required: true
245
357
  content:
@@ -269,6 +381,14 @@ paths:
269
381
  in: path
270
382
  schema:
271
383
  type: string
384
+ - name: X-Proxima-Nexus-Requester-User-Id
385
+ in: header
386
+ description: >-
387
+ ID of the user getting groups of a user. If set, groups will be filtered to only include groups that the
388
+ user can see, and requesterConnection will be set on the results.
389
+ required: false
390
+ schema:
391
+ type: string
272
392
  responses:
273
393
  '200':
274
394
  description: Groups returned
@@ -292,6 +412,14 @@ paths:
292
412
  in: path
293
413
  schema:
294
414
  type: string
415
+ - name: X-Proxima-Nexus-Requester-User-Id
416
+ in: header
417
+ description: >-
418
+ ID of the user getting events of a user. If set, events will be filtered to only include events that the
419
+ user can see, and requesterConnection will be set on the results.
420
+ required: false
421
+ schema:
422
+ type: string
295
423
  responses:
296
424
  '200':
297
425
  description: Events returned
@@ -308,8 +436,14 @@ paths:
308
436
  /event:
309
437
  post:
310
438
  operationId: EventController_create
311
- summary: Create an event
312
- parameters: []
439
+ summary: Create an event. Owner will be the user creating the event or the group associated with the event (if set)
440
+ parameters:
441
+ - name: X-Proxima-Nexus-Requester-User-Id
442
+ in: header
443
+ description: ID of the user creating the event
444
+ required: true
445
+ schema:
446
+ type: string
313
447
  requestBody:
314
448
  required: true
315
449
  content:
@@ -323,10 +457,14 @@ paths:
323
457
  application/json:
324
458
  schema:
325
459
  type: string
460
+ '400':
461
+ description: Requester user not found, or associated group not found
462
+ '401':
463
+ description: User cannot create events for the associated group
326
464
  tags:
327
465
  - event
328
466
  security:
329
- - bearer: []
467
+ - api_key: []
330
468
  get:
331
469
  operationId: EventController_search
332
470
  summary: Search events
@@ -394,6 +532,14 @@ paths:
394
532
  schema:
395
533
  example: 100
396
534
  type: number
535
+ - name: X-Proxima-Nexus-Requester-User-Id
536
+ in: header
537
+ description: >-
538
+ ID of the user searching for events. If set, events will be filtered to only include events that the user
539
+ can see, and requesterConnection will be set on the results.
540
+ required: false
541
+ schema:
542
+ type: string
397
543
  responses:
398
544
  '200':
399
545
  description: Events returned
@@ -406,10 +552,10 @@ paths:
406
552
  tags:
407
553
  - event
408
554
  security:
409
- - bearer: []
555
+ - api_key: []
410
556
  /event/{eventId}:
411
557
  get:
412
- operationId: EventController_findOne
558
+ operationId: EventController_get
413
559
  summary: Get an event by ID
414
560
  parameters:
415
561
  - name: eventId
@@ -417,6 +563,14 @@ paths:
417
563
  in: path
418
564
  schema:
419
565
  type: string
566
+ - name: X-Proxima-Nexus-Requester-User-Id
567
+ in: header
568
+ description: >-
569
+ ID of the user searching for events. If set, 401 may be returned if the user cannot view the event,
570
+ otherwise requesterConnection will be set on the result.
571
+ required: false
572
+ schema:
573
+ type: string
420
574
  responses:
421
575
  '200':
422
576
  description: Event returned
@@ -427,7 +581,7 @@ paths:
427
581
  tags:
428
582
  - event
429
583
  security:
430
- - bearer: []
584
+ - api_key: []
431
585
  put:
432
586
  operationId: EventController_update
433
587
  summary: Update an event
@@ -437,6 +591,12 @@ paths:
437
591
  in: path
438
592
  schema:
439
593
  type: string
594
+ - name: X-Proxima-Nexus-Requester-User-Id
595
+ in: header
596
+ description: ID of the user updating the event
597
+ required: true
598
+ schema:
599
+ type: string
440
600
  requestBody:
441
601
  required: true
442
602
  content:
@@ -453,7 +613,7 @@ paths:
453
613
  tags:
454
614
  - event
455
615
  security:
456
- - bearer: []
616
+ - api_key: []
457
617
  delete:
458
618
  operationId: EventController_remove
459
619
  summary: Delete an event
@@ -465,7 +625,7 @@ paths:
465
625
  type: string
466
626
  - name: X-Proxima-Nexus-Requester-User-Id
467
627
  in: header
468
- description: Requester user ID
628
+ description: ID of the user deleting the event
469
629
  required: true
470
630
  schema:
471
631
  type: string
@@ -475,10 +635,10 @@ paths:
475
635
  tags:
476
636
  - event
477
637
  security:
478
- - bearer: []
479
- /event/{eventId}/attendees/{userId}:
638
+ - api_key: []
639
+ /event/{eventId}/connection/{userId}:
480
640
  put:
481
- operationId: EventController_addAttendee
641
+ operationId: EventController_addConnection
482
642
  summary: Add an attendee to an event
483
643
  parameters:
484
644
  - name: eventId
@@ -491,6 +651,18 @@ paths:
491
651
  in: path
492
652
  schema:
493
653
  type: string
654
+ - name: X-Proxima-Nexus-Requester-User-Id
655
+ in: header
656
+ description: ID of the user removing an attendee from the event
657
+ required: true
658
+ schema:
659
+ type: string
660
+ requestBody:
661
+ required: true
662
+ content:
663
+ application/json:
664
+ schema:
665
+ $ref: '#/components/schemas/MutateEventEntityConnectionDto'
494
666
  responses:
495
667
  '200':
496
668
  description: Attendee added
@@ -501,20 +673,74 @@ paths:
501
673
  tags:
502
674
  - event
503
675
  security:
504
- - bearer: []
505
- /event/{eventId}/attendees:
676
+ - api_key: []
677
+ delete:
678
+ operationId: EventController_removeConnection
679
+ summary: Remove an attendee from an event
680
+ parameters:
681
+ - name: eventId
682
+ required: true
683
+ in: path
684
+ schema:
685
+ type: string
686
+ - name: userId
687
+ required: true
688
+ in: path
689
+ schema:
690
+ type: string
691
+ - name: X-Proxima-Nexus-Requester-User-Id
692
+ in: header
693
+ description: ID of the user removing an attendee from the event
694
+ required: true
695
+ schema:
696
+ type: string
697
+ requestBody:
698
+ required: true
699
+ content:
700
+ application/json:
701
+ schema:
702
+ $ref: '#/components/schemas/MutateEventEntityConnectionDto'
703
+ responses:
704
+ '204':
705
+ description: Attendee removed
706
+ tags:
707
+ - event
708
+ security:
709
+ - api_key: []
710
+ /event/{eventId}/connections:
506
711
  get:
507
- operationId: EventController_getAttendees
508
- summary: Get attendees of an event
712
+ operationId: EventController_getConnections
713
+ summary: Get connections of an event
509
714
  parameters:
510
715
  - name: eventId
511
716
  required: true
512
717
  in: path
513
718
  schema:
514
719
  type: string
720
+ - name: type
721
+ required: false
722
+ in: query
723
+ description: Filter connections by type. Can be a single type or multiple types (comma-separated or array)
724
+ explode: true
725
+ schema:
726
+ type: array
727
+ items:
728
+ type: string
729
+ enum:
730
+ - attendee
731
+ - admin
732
+ - owner
733
+ - name: X-Proxima-Nexus-Requester-User-Id
734
+ in: header
735
+ description: >-
736
+ ID of the user getting connections of the event. If set, 401 may be returned if the user cannot view the
737
+ event connections.
738
+ required: false
739
+ schema:
740
+ type: string
515
741
  responses:
516
742
  '200':
517
- description: Attendees returned
743
+ description: Connections returned
518
744
  content:
519
745
  application/json:
520
746
  schema:
@@ -524,12 +750,20 @@ paths:
524
750
  tags:
525
751
  - event
526
752
  security:
527
- - bearer: []
753
+ - api_key: []
528
754
  /event/batch:
529
755
  post:
530
756
  operationId: EventController_getBatch
531
757
  summary: Get a batch of events by IDs
532
- parameters: []
758
+ parameters:
759
+ - name: X-Proxima-Nexus-Requester-User-Id
760
+ in: header
761
+ description: >-
762
+ ID of the user getting a batch of events. If set, events will be filtered to only include events that the
763
+ user can see, and requesterConnection will be set on the results.
764
+ required: false
765
+ schema:
766
+ type: string
533
767
  requestBody:
534
768
  required: true
535
769
  content:
@@ -548,12 +782,18 @@ paths:
548
782
  tags:
549
783
  - event
550
784
  security:
551
- - bearer: []
785
+ - api_key: []
552
786
  /group:
553
787
  post:
554
788
  operationId: GroupController_create
555
789
  summary: Create a group
556
- parameters: []
790
+ parameters:
791
+ - name: X-Proxima-Nexus-Requester-User-Id
792
+ in: header
793
+ description: ID of the user creating the group
794
+ required: true
795
+ schema:
796
+ type: string
557
797
  requestBody:
558
798
  required: true
559
799
  content:
@@ -570,7 +810,7 @@ paths:
570
810
  tags:
571
811
  - group
572
812
  security:
573
- - bearer: []
813
+ - api_key: []
574
814
  get:
575
815
  operationId: GroupController_search
576
816
  summary: Search groups
@@ -638,6 +878,14 @@ paths:
638
878
  schema:
639
879
  example: 100
640
880
  type: number
881
+ - name: X-Proxima-Nexus-Requester-User-Id
882
+ in: header
883
+ description: >-
884
+ ID of the user searching for groups. If set, groups will be filtered to only include groups that the user
885
+ can see, and requesterConnection will be set on the results.
886
+ required: false
887
+ schema:
888
+ type: string
641
889
  responses:
642
890
  '200':
643
891
  description: Groups returned
@@ -650,10 +898,10 @@ paths:
650
898
  tags:
651
899
  - group
652
900
  security:
653
- - bearer: []
901
+ - api_key: []
654
902
  /group/{groupId}:
655
903
  get:
656
- operationId: GroupController_findOne
904
+ operationId: GroupController_get
657
905
  summary: Get a group by ID
658
906
  parameters:
659
907
  - name: groupId
@@ -661,6 +909,14 @@ paths:
661
909
  in: path
662
910
  schema:
663
911
  type: string
912
+ - name: X-Proxima-Nexus-Requester-User-Id
913
+ in: header
914
+ description: >-
915
+ ID of the user getting a group by ID. If set, 401 may be returned if the user cannot view the group,
916
+ otherwise requesterConnection will be set on the result.
917
+ required: false
918
+ schema:
919
+ type: string
664
920
  responses:
665
921
  '200':
666
922
  description: Group returned
@@ -668,10 +924,12 @@ paths:
668
924
  application/json:
669
925
  schema:
670
926
  $ref: '#/components/schemas/GroupDto'
927
+ '401':
928
+ description: User cannot view this group
671
929
  tags:
672
930
  - group
673
931
  security:
674
- - bearer: []
932
+ - api_key: []
675
933
  patch:
676
934
  operationId: GroupController_update
677
935
  summary: Update a group
@@ -681,6 +939,12 @@ paths:
681
939
  in: path
682
940
  schema:
683
941
  type: string
942
+ - name: X-Proxima-Nexus-Requester-User-Id
943
+ in: header
944
+ description: ID of the user updating the group
945
+ required: true
946
+ schema:
947
+ type: string
684
948
  requestBody:
685
949
  required: true
686
950
  content:
@@ -697,7 +961,7 @@ paths:
697
961
  tags:
698
962
  - group
699
963
  security:
700
- - bearer: []
964
+ - api_key: []
701
965
  delete:
702
966
  operationId: GroupController_remove
703
967
  summary: Delete a group
@@ -709,7 +973,7 @@ paths:
709
973
  type: string
710
974
  - name: X-Proxima-Nexus-Requester-User-Id
711
975
  in: header
712
- description: Requester user ID
976
+ description: ID of the user deleting the group
713
977
  required: true
714
978
  schema:
715
979
  type: string
@@ -719,11 +983,11 @@ paths:
719
983
  tags:
720
984
  - group
721
985
  security:
722
- - bearer: []
723
- /group/{groupId}/members/{userId}:
986
+ - api_key: []
987
+ /group/{groupId}/connection/{userId}:
724
988
  put:
725
- operationId: GroupController_addMember
726
- summary: Add a member to a group
989
+ operationId: GroupController_addConnection
990
+ summary: Add or update a connection to a group (member, admin, or owner)
727
991
  parameters:
728
992
  - name: groupId
729
993
  required: true
@@ -735,20 +999,34 @@ paths:
735
999
  in: path
736
1000
  schema:
737
1001
  type: string
1002
+ - name: X-Proxima-Nexus-Requester-User-Id
1003
+ in: header
1004
+ description: ID of the user adding a connection to the group
1005
+ required: true
1006
+ schema:
1007
+ type: string
1008
+ requestBody:
1009
+ required: true
1010
+ content:
1011
+ application/json:
1012
+ schema:
1013
+ $ref: '#/components/schemas/MutateGroupEntityConnectionDto'
738
1014
  responses:
739
1015
  '200':
740
- description: Member added
1016
+ description: Connection added/updated
741
1017
  content:
742
1018
  application/json:
743
1019
  schema:
744
1020
  $ref: '#/components/schemas/EntityConnectionDto'
1021
+ '401':
1022
+ description: User cannot add this connection
745
1023
  tags:
746
1024
  - group
747
1025
  security:
748
- - bearer: []
1026
+ - api_key: []
749
1027
  delete:
750
- operationId: GroupController_removeMember
751
- summary: Remove a member from a group
1028
+ operationId: GroupController_removeConnection
1029
+ summary: Remove a connection from a group
752
1030
  parameters:
753
1031
  - name: groupId
754
1032
  required: true
@@ -760,40 +1038,87 @@ paths:
760
1038
  in: path
761
1039
  schema:
762
1040
  type: string
1041
+ - name: X-Proxima-Nexus-Requester-User-Id
1042
+ in: header
1043
+ description: ID of the user removing a connection from the group
1044
+ required: true
1045
+ schema:
1046
+ type: string
1047
+ requestBody:
1048
+ required: true
1049
+ content:
1050
+ application/json:
1051
+ schema:
1052
+ $ref: '#/components/schemas/MutateGroupEntityConnectionDto'
763
1053
  responses:
764
- '200':
765
- description: Member removed
766
- content:
767
- application/json:
768
- schema:
769
- type: string
1054
+ '204':
1055
+ description: Connection removed
1056
+ '401':
1057
+ description: User cannot remove this connection
770
1058
  tags:
771
1059
  - group
772
1060
  security:
773
- - bearer: []
774
- /group/{groupId}/members:
1061
+ - api_key: []
1062
+ /group/{groupId}/connections:
775
1063
  get:
776
- operationId: GroupController_getMembers
777
- summary: Get members of a group
1064
+ operationId: GroupController_getConnections
1065
+ summary: Get connections of a group
778
1066
  parameters:
779
1067
  - name: groupId
780
1068
  required: true
781
1069
  in: path
782
1070
  schema:
783
1071
  type: string
1072
+ - name: state
1073
+ required: false
1074
+ in: query
1075
+ description: Filter connections by state (e.g., requested for pending approvals)
1076
+ explode: true
1077
+ schema:
1078
+ type: array
1079
+ items:
1080
+ type: string
1081
+ enum:
1082
+ - requested
1083
+ - active
1084
+ - rejected
1085
+ - blocked
1086
+ - name: type
1087
+ required: false
1088
+ in: query
1089
+ description: Filter connections by type. Can be a single type or multiple types (comma-separated or array)
1090
+ explode: true
1091
+ schema:
1092
+ type: array
1093
+ items:
1094
+ type: string
1095
+ enum:
1096
+ - member
1097
+ - admin
1098
+ - owner
1099
+ - name: X-Proxima-Nexus-Requester-User-Id
1100
+ in: header
1101
+ description: >-
1102
+ ID of the user getting connections of the group. If set, 401 may be returned if the user cannot view the
1103
+ group connections.
1104
+ required: false
1105
+ schema:
1106
+ type: string
784
1107
  responses:
785
1108
  '200':
786
- description: Members returned
1109
+ description: Connections returned
787
1110
  content:
788
1111
  application/json:
789
1112
  schema:
790
1113
  type: array
791
1114
  items:
792
1115
  $ref: '#/components/schemas/UserEntityConnectionDto'
1116
+ '401':
1117
+ description: User cannot view connections of this group
793
1118
  tags:
794
1119
  - group
795
1120
  security:
796
- - bearer: []
1121
+ - api_key: []
797
1122
  /group/{groupId}/events:
798
1123
  get:
799
1124
  operationId: GroupController_getEvents
@@ -804,6 +1129,14 @@ paths:
804
1129
  in: path
805
1130
  schema:
806
1131
  type: string
1132
+ - name: X-Proxima-Nexus-Requester-User-Id
1133
+ in: header
1134
+ description: >-
1135
+ ID of the user getting events of the group. If set, events will be filtered to only include events that the
1136
+ user can see, and requesterConnection will be set on the results.
1137
+ required: false
1138
+ schema:
1139
+ type: string
807
1140
  responses:
808
1141
  '200':
809
1142
  description: Events returned
@@ -816,12 +1149,20 @@ paths:
816
1149
  tags:
817
1150
  - group
818
1151
  security:
819
- - bearer: []
1152
+ - api_key: []
820
1153
  /group/batch:
821
1154
  post:
822
1155
  operationId: GroupController_getBatch
823
1156
  summary: Get a batch of groups by IDs
824
- parameters: []
1157
+ parameters:
1158
+ - name: X-Proxima-Nexus-Requester-User-Id
1159
+ in: header
1160
+ description: >-
1161
+ ID of the user getting a batch of groups. If set, groups will be filtered to only include groups that the
1162
+ user can see, and requesterConnection will be set on the results.
1163
+ required: false
1164
+ schema:
1165
+ type: string
825
1166
  requestBody:
826
1167
  required: true
827
1168
  content:
@@ -840,7 +1181,7 @@ paths:
840
1181
  tags:
841
1182
  - group
842
1183
  security:
843
- - bearer: []
1184
+ - api_key: []
844
1185
  info:
845
1186
  title: proxima-nexus-data-plane-api
846
1187
  description: Proxima Nexus Data Plane API
@@ -877,10 +1218,6 @@ components:
877
1218
  type: string
878
1219
  description: Display name
879
1220
  example: Display Name
880
- requesterUserId:
881
- type: string
882
- description: User ID of the requester
883
- example: user-123
884
1221
  visibility:
885
1222
  type: string
886
1223
  description: Visibility of the entity
@@ -919,7 +1256,6 @@ components:
919
1256
  example: '1990-01-01'
920
1257
  required:
921
1258
  - displayName
922
- - requesterUserId
923
1259
  - visibility
924
1260
  - userId
925
1261
  - gender
@@ -933,6 +1269,41 @@ components:
933
1269
  example: user-123
934
1270
  required:
935
1271
  - userId
1272
+ EntityConnectionDto:
1273
+ type: object
1274
+ properties:
1275
+ createdAt:
1276
+ type: string
1277
+ description: Date/time the connection was created (ISO string)
1278
+ example: '2024-05-01T12:34:56.789Z'
1279
+ updatedAt:
1280
+ type: string
1281
+ description: Date/time the connection was last updated (ISO string)
1282
+ example: '2024-05-02T12:34:56.789Z'
1283
+ state:
1284
+ type: string
1285
+ description: Connection state
1286
+ enum:
1287
+ - requested
1288
+ - active
1289
+ - rejected
1290
+ - blocked
1291
+ type:
1292
+ type: string
1293
+ description: Connection type
1294
+ enum:
1295
+ - attendee
1296
+ - admin
1297
+ - owner
1298
+ - member
1299
+ - admin
1300
+ - owner
1301
+ - friend
1302
+ - blocked
1303
+ - none
1304
+ required:
1305
+ - state
1306
+ - type
936
1307
  UserDto:
937
1308
  type: object
938
1309
  properties:
@@ -940,10 +1311,6 @@ components:
940
1311
  type: string
941
1312
  description: Unique identifier for the entity
942
1313
  example: entity-123
943
- tenantId:
944
- type: string
945
- description: Tenant identifier the entity belongs to
946
- example: tenant-abc
947
1314
  displayName:
948
1315
  type: string
949
1316
  description: Display name of the entity
@@ -979,6 +1346,10 @@ components:
979
1346
  description: Required location information
980
1347
  allOf:
981
1348
  - $ref: '#/components/schemas/LocationDto'
1349
+ requesterConnection:
1350
+ description: Connection to the requester
1351
+ allOf:
1352
+ - $ref: '#/components/schemas/EntityConnectionDto'
982
1353
  gender:
983
1354
  type: string
984
1355
  description: Gender
@@ -993,10 +1364,6 @@ components:
993
1364
  UpdateUserDto:
994
1365
  type: object
995
1366
  properties:
996
- requesterUserId:
997
- type: string
998
- description: User ID of the requester
999
- example: user-123
1000
1367
  visibility:
1001
1368
  type: string
1002
1369
  description: Visibility of the entity
@@ -1034,30 +1401,21 @@ components:
1034
1401
  description: Birth date (ISO 8601)
1035
1402
  example: '1990-01-01'
1036
1403
  required:
1037
- - requesterUserId
1038
1404
  - displayName
1039
1405
  - gender
1040
1406
  - birthDate
1041
- EntityConnectionDto:
1407
+ MutateUserConnectionDto:
1042
1408
  type: object
1043
1409
  properties:
1044
- createdAt:
1045
- type: string
1046
- description: Date/time the connection was created (ISO string)
1047
- example: '2024-05-01T12:34:56.789Z'
1048
- updatedAt:
1049
- type: string
1050
- description: Date/time the connection was last updated (ISO string)
1051
- example: '2024-05-02T12:34:56.789Z'
1052
- state:
1410
+ type:
1053
1411
  type: string
1054
- description: Connection state
1412
+ description: Type of connection to create or modify
1055
1413
  enum:
1056
- - requested
1057
- - active
1058
- - rejected
1414
+ - friend
1415
+ - blocked
1416
+ example: friend
1059
1417
  required:
1060
- - state
1418
+ - type
1061
1419
  UserEntityConnectionDto:
1062
1420
  type: object
1063
1421
  properties:
@@ -1076,12 +1434,27 @@ components:
1076
1434
  - requested
1077
1435
  - active
1078
1436
  - rejected
1437
+ - blocked
1438
+ type:
1439
+ type: string
1440
+ description: Connection type
1441
+ enum:
1442
+ - attendee
1443
+ - admin
1444
+ - owner
1445
+ - member
1446
+ - admin
1447
+ - owner
1448
+ - friend
1449
+ - blocked
1450
+ - none
1079
1451
  userId:
1080
1452
  type: string
1081
1453
  description: User ID
1082
1454
  example: user-123
1083
1455
  required:
1084
1456
  - state
1457
+ - type
1085
1458
  - userId
1086
1459
  GetUsersDto:
1087
1460
  type: object
@@ -1114,12 +1487,27 @@ components:
1114
1487
  - requested
1115
1488
  - active
1116
1489
  - rejected
1490
+ - blocked
1491
+ type:
1492
+ type: string
1493
+ description: Connection type
1494
+ enum:
1495
+ - attendee
1496
+ - admin
1497
+ - owner
1498
+ - member
1499
+ - admin
1500
+ - owner
1501
+ - friend
1502
+ - blocked
1503
+ - none
1117
1504
  groupId:
1118
1505
  type: string
1119
1506
  description: Group ID
1120
1507
  example: group-123
1121
1508
  required:
1122
1509
  - state
1510
+ - type
1123
1511
  - groupId
1124
1512
  EventEntityConnectionDto:
1125
1513
  type: object
@@ -1139,12 +1527,27 @@ components:
1139
1527
  - requested
1140
1528
  - active
1141
1529
  - rejected
1530
+ - blocked
1531
+ type:
1532
+ type: string
1533
+ description: Connection type
1534
+ enum:
1535
+ - attendee
1536
+ - admin
1537
+ - owner
1538
+ - member
1539
+ - admin
1540
+ - owner
1541
+ - friend
1542
+ - blocked
1543
+ - none
1142
1544
  eventId:
1143
1545
  type: string
1144
1546
  description: Event ID
1145
1547
  example: event-123
1146
1548
  required:
1147
1549
  - state
1550
+ - type
1148
1551
  - eventId
1149
1552
  CreateEventDto:
1150
1553
  type: object
@@ -1153,10 +1556,6 @@ components:
1153
1556
  type: string
1154
1557
  description: Display name
1155
1558
  example: Display Name
1156
- requesterUserId:
1157
- type: string
1158
- description: User ID of the requester
1159
- example: user-123
1160
1559
  visibility:
1161
1560
  type: string
1162
1561
  description: Visibility of the entity
@@ -1201,9 +1600,12 @@ components:
1201
1600
  type: string
1202
1601
  description: Identifier of associated group which owns the event. Owners/admins of the group will be admins of the event.
1203
1602
  example: group-123
1603
+ maxNumAttendees:
1604
+ type: number
1605
+ description: Maximum number of attendees allowed (null = unlimited)
1606
+ example: 100
1204
1607
  required:
1205
1608
  - displayName
1206
- - requesterUserId
1207
1609
  - visibility
1208
1610
  - eventId
1209
1611
  - startTime
@@ -1216,10 +1618,6 @@ components:
1216
1618
  type: string
1217
1619
  description: Unique identifier for the entity
1218
1620
  example: entity-123
1219
- tenantId:
1220
- type: string
1221
- description: Tenant identifier the entity belongs to
1222
- example: tenant-abc
1223
1621
  displayName:
1224
1622
  type: string
1225
1623
  description: Display name of the entity
@@ -1255,6 +1653,10 @@ components:
1255
1653
  description: Required location information
1256
1654
  allOf:
1257
1655
  - $ref: '#/components/schemas/LocationDto'
1656
+ requesterConnection:
1657
+ description: Connection to the requester
1658
+ allOf:
1659
+ - $ref: '#/components/schemas/EntityConnectionDto'
1258
1660
  startTime:
1259
1661
  type: string
1260
1662
  description: Start time (ISO 8601)
@@ -1271,6 +1673,14 @@ components:
1271
1673
  type: string
1272
1674
  description: Identifier of associated group which owns the event. Owners/admins of the group will be admins of the event.
1273
1675
  example: group-123
1676
+ numAttendees:
1677
+ type: number
1678
+ description: Number of active attendees
1679
+ example: 42
1680
+ maxNumAttendees:
1681
+ type: number
1682
+ description: Maximum number of attendees allowed (null = unlimited)
1683
+ example: 100
1274
1684
  required:
1275
1685
  - startTime
1276
1686
  - endTime
@@ -1278,10 +1688,6 @@ components:
1278
1688
  UpdateEventDto:
1279
1689
  type: object
1280
1690
  properties:
1281
- requesterUserId:
1282
- type: string
1283
- description: User ID of the requester
1284
- example: user-123
1285
1691
  visibility:
1286
1692
  type: string
1287
1693
  description: Visibility of the entity
@@ -1322,12 +1728,27 @@ components:
1322
1728
  type: string
1323
1729
  description: Event type
1324
1730
  example: concert
1731
+ maxNumAttendees:
1732
+ type: number
1733
+ description: Maximum number of attendees allowed (null = unlimited)
1734
+ example: 100
1325
1735
  required:
1326
- - requesterUserId
1327
1736
  - displayName
1328
1737
  - startTime
1329
1738
  - endTime
1330
1739
  - type
1740
+ MutateEventEntityConnectionDto:
1741
+ type: object
1742
+ properties:
1743
+ type:
1744
+ type: string
1745
+ description: Connection type
1746
+ enum:
1747
+ - attendee
1748
+ - admin
1749
+ - owner
1750
+ required:
1751
+ - type
1331
1752
  GetEventsDto:
1332
1753
  type: object
1333
1754
  properties:
@@ -1348,10 +1769,6 @@ components:
1348
1769
  type: string
1349
1770
  description: Display name
1350
1771
  example: Display Name
1351
- requesterUserId:
1352
- type: string
1353
- description: User ID of the requester
1354
- example: user-123
1355
1772
  visibility:
1356
1773
  type: string
1357
1774
  description: Visibility of the entity
@@ -1383,10 +1800,13 @@ components:
1383
1800
  type:
1384
1801
  type: string
1385
1802
  description: Group type
1386
- example: club
1803
+ enum:
1804
+ - open
1805
+ - request
1806
+ - invite
1807
+ example: open
1387
1808
  required:
1388
1809
  - displayName
1389
- - requesterUserId
1390
1810
  - visibility
1391
1811
  - groupId
1392
1812
  - type
@@ -1397,10 +1817,6 @@ components:
1397
1817
  type: string
1398
1818
  description: Unique identifier for the entity
1399
1819
  example: entity-123
1400
- tenantId:
1401
- type: string
1402
- description: Tenant identifier the entity belongs to
1403
- example: tenant-abc
1404
1820
  displayName:
1405
1821
  type: string
1406
1822
  description: Display name of the entity
@@ -1436,19 +1852,27 @@ components:
1436
1852
  description: Required location information
1437
1853
  allOf:
1438
1854
  - $ref: '#/components/schemas/LocationDto'
1855
+ requesterConnection:
1856
+ description: Connection to the requester
1857
+ allOf:
1858
+ - $ref: '#/components/schemas/EntityConnectionDto'
1439
1859
  type:
1440
1860
  type: string
1441
1861
  description: Group type
1442
- example: club
1862
+ enum:
1863
+ - open
1864
+ - request
1865
+ - invite
1866
+ example: open
1867
+ numMembers:
1868
+ type: number
1869
+ description: Number of active members
1870
+ example: 150
1443
1871
  required:
1444
1872
  - type
1445
1873
  UpdateGroupDto:
1446
1874
  type: object
1447
1875
  properties:
1448
- requesterUserId:
1449
- type: string
1450
- description: User ID of the requester
1451
- example: user-123
1452
1876
  visibility:
1453
1877
  type: string
1454
1878
  description: Visibility of the entity
@@ -1480,11 +1904,26 @@ components:
1480
1904
  type:
1481
1905
  type: string
1482
1906
  description: Group type
1483
- example: club
1907
+ enum:
1908
+ - open
1909
+ - request
1910
+ - invite
1911
+ example: open
1484
1912
  required:
1485
- - requesterUserId
1486
1913
  - displayName
1487
1914
  - type
1915
+ MutateGroupEntityConnectionDto:
1916
+ type: object
1917
+ properties:
1918
+ type:
1919
+ type: string
1920
+ description: Connection type
1921
+ enum:
1922
+ - member
1923
+ - admin
1924
+ - owner
1925
+ required:
1926
+ - type
1488
1927
  GetGroupsDto:
1489
1928
  type: object
1490
1929
  properties: