@proxima-nexus/openapi 1.0.0 → 2.0.1

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 (4) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/openapi.json +722 -148
  3. package/openapi.yaml +563 -134
  4. package/package.json +23 -21
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,94 @@ 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
+ - incoming_request
306
+ - outgoing_request
307
+ - active
308
+ - name: type
309
+ required: false
310
+ in: query
311
+ description: Filter connections by type. Can be multiple values.
312
+ explode: true
313
+ schema:
314
+ type: array
315
+ items:
316
+ type: string
317
+ enum:
318
+ - friend
319
+ - blocked
320
+ - name: X-Proxima-Nexus-Requester-User-Id
321
+ in: header
322
+ description: >-
323
+ ID of the user viewing connections. Required for non-PUBLIC users. Only the user themselves can view BLOCKED
324
+ or non-ACTIVE connections.
325
+ required: false
326
+ schema:
327
+ type: string
225
328
  responses:
226
329
  '200':
227
- description: Friends returned
330
+ description: Connections returned
228
331
  content:
229
332
  application/json:
230
333
  schema:
@@ -239,7 +342,15 @@ paths:
239
342
  post:
240
343
  operationId: UserController_getBatch
241
344
  summary: Get a batch of users by IDs
242
- parameters: []
345
+ parameters:
346
+ - name: X-Proxima-Nexus-Requester-User-Id
347
+ in: header
348
+ description: >-
349
+ ID of the user getting a batch of users. If set, users will be filtered to only include users that the user
350
+ can see, and requesterConnection will be set on the results.
351
+ required: false
352
+ schema:
353
+ type: string
243
354
  requestBody:
244
355
  required: true
245
356
  content:
@@ -269,6 +380,14 @@ paths:
269
380
  in: path
270
381
  schema:
271
382
  type: string
383
+ - name: X-Proxima-Nexus-Requester-User-Id
384
+ in: header
385
+ description: >-
386
+ ID of the user getting groups of a user. If set, groups will be filtered to only include groups that the
387
+ user can see, and requesterConnection will be set on the results.
388
+ required: false
389
+ schema:
390
+ type: string
272
391
  responses:
273
392
  '200':
274
393
  description: Groups returned
@@ -292,6 +411,14 @@ paths:
292
411
  in: path
293
412
  schema:
294
413
  type: string
414
+ - name: X-Proxima-Nexus-Requester-User-Id
415
+ in: header
416
+ description: >-
417
+ ID of the user getting events of a user. If set, events will be filtered to only include events that the
418
+ user can see, and requesterConnection will be set on the results.
419
+ required: false
420
+ schema:
421
+ type: string
295
422
  responses:
296
423
  '200':
297
424
  description: Events returned
@@ -308,8 +435,14 @@ paths:
308
435
  /event:
309
436
  post:
310
437
  operationId: EventController_create
311
- summary: Create an event
312
- parameters: []
438
+ summary: Create an event. Owner will be the user creating the event or the group associated with the event (if set)
439
+ parameters:
440
+ - name: X-Proxima-Nexus-Requester-User-Id
441
+ in: header
442
+ description: ID of the user creating the event
443
+ required: true
444
+ schema:
445
+ type: string
313
446
  requestBody:
314
447
  required: true
315
448
  content:
@@ -323,10 +456,14 @@ paths:
323
456
  application/json:
324
457
  schema:
325
458
  type: string
459
+ '400':
460
+ description: Requester user not found, or associated group not found
461
+ '401':
462
+ description: User cannot create events for the associated group
326
463
  tags:
327
464
  - event
328
465
  security:
329
- - bearer: []
466
+ - api_key: []
330
467
  get:
331
468
  operationId: EventController_search
332
469
  summary: Search events
@@ -394,6 +531,14 @@ paths:
394
531
  schema:
395
532
  example: 100
396
533
  type: number
534
+ - name: X-Proxima-Nexus-Requester-User-Id
535
+ in: header
536
+ description: >-
537
+ ID of the user searching for events. If set, events will be filtered to only include events that the user
538
+ can see, and requesterConnection will be set on the results.
539
+ required: false
540
+ schema:
541
+ type: string
397
542
  responses:
398
543
  '200':
399
544
  description: Events returned
@@ -406,10 +551,10 @@ paths:
406
551
  tags:
407
552
  - event
408
553
  security:
409
- - bearer: []
554
+ - api_key: []
410
555
  /event/{eventId}:
411
556
  get:
412
- operationId: EventController_findOne
557
+ operationId: EventController_get
413
558
  summary: Get an event by ID
414
559
  parameters:
415
560
  - name: eventId
@@ -417,6 +562,14 @@ paths:
417
562
  in: path
418
563
  schema:
419
564
  type: string
565
+ - name: X-Proxima-Nexus-Requester-User-Id
566
+ in: header
567
+ description: >-
568
+ ID of the user searching for events. If set, 401 may be returned if the user cannot view the event,
569
+ otherwise requesterConnection will be set on the result.
570
+ required: false
571
+ schema:
572
+ type: string
420
573
  responses:
421
574
  '200':
422
575
  description: Event returned
@@ -427,7 +580,7 @@ paths:
427
580
  tags:
428
581
  - event
429
582
  security:
430
- - bearer: []
583
+ - api_key: []
431
584
  put:
432
585
  operationId: EventController_update
433
586
  summary: Update an event
@@ -437,6 +590,12 @@ paths:
437
590
  in: path
438
591
  schema:
439
592
  type: string
593
+ - name: X-Proxima-Nexus-Requester-User-Id
594
+ in: header
595
+ description: ID of the user updating the event
596
+ required: true
597
+ schema:
598
+ type: string
440
599
  requestBody:
441
600
  required: true
442
601
  content:
@@ -453,7 +612,7 @@ paths:
453
612
  tags:
454
613
  - event
455
614
  security:
456
- - bearer: []
615
+ - api_key: []
457
616
  delete:
458
617
  operationId: EventController_remove
459
618
  summary: Delete an event
@@ -465,7 +624,7 @@ paths:
465
624
  type: string
466
625
  - name: X-Proxima-Nexus-Requester-User-Id
467
626
  in: header
468
- description: Requester user ID
627
+ description: ID of the user deleting the event
469
628
  required: true
470
629
  schema:
471
630
  type: string
@@ -475,10 +634,10 @@ paths:
475
634
  tags:
476
635
  - event
477
636
  security:
478
- - bearer: []
479
- /event/{eventId}/attendees/{userId}:
637
+ - api_key: []
638
+ /event/{eventId}/connection/{userId}:
480
639
  put:
481
- operationId: EventController_addAttendee
640
+ operationId: EventController_addConnection
482
641
  summary: Add an attendee to an event
483
642
  parameters:
484
643
  - name: eventId
@@ -491,6 +650,18 @@ paths:
491
650
  in: path
492
651
  schema:
493
652
  type: string
653
+ - name: X-Proxima-Nexus-Requester-User-Id
654
+ in: header
655
+ description: ID of the user removing an attendee from the event
656
+ required: true
657
+ schema:
658
+ type: string
659
+ requestBody:
660
+ required: true
661
+ content:
662
+ application/json:
663
+ schema:
664
+ $ref: '#/components/schemas/MutateEventEntityConnectionDto'
494
665
  responses:
495
666
  '200':
496
667
  description: Attendee added
@@ -501,20 +672,74 @@ paths:
501
672
  tags:
502
673
  - event
503
674
  security:
504
- - bearer: []
505
- /event/{eventId}/attendees:
675
+ - api_key: []
676
+ delete:
677
+ operationId: EventController_removeConnection
678
+ summary: Remove an attendee from an event
679
+ parameters:
680
+ - name: eventId
681
+ required: true
682
+ in: path
683
+ schema:
684
+ type: string
685
+ - name: userId
686
+ required: true
687
+ in: path
688
+ schema:
689
+ type: string
690
+ - name: X-Proxima-Nexus-Requester-User-Id
691
+ in: header
692
+ description: ID of the user removing an attendee from the event
693
+ required: true
694
+ schema:
695
+ type: string
696
+ requestBody:
697
+ required: true
698
+ content:
699
+ application/json:
700
+ schema:
701
+ $ref: '#/components/schemas/MutateEventEntityConnectionDto'
702
+ responses:
703
+ '204':
704
+ description: Attendee removed
705
+ tags:
706
+ - event
707
+ security:
708
+ - api_key: []
709
+ /event/{eventId}/connections:
506
710
  get:
507
- operationId: EventController_getAttendees
508
- summary: Get attendees of an event
711
+ operationId: EventController_getConnections
712
+ summary: Get connections of an event
509
713
  parameters:
510
714
  - name: eventId
511
715
  required: true
512
716
  in: path
513
717
  schema:
514
718
  type: string
719
+ - name: type
720
+ required: false
721
+ in: query
722
+ description: Filter connections by type. Can be a single type or multiple types (comma-separated or array)
723
+ explode: true
724
+ schema:
725
+ type: array
726
+ items:
727
+ type: string
728
+ enum:
729
+ - attendee
730
+ - admin
731
+ - owner
732
+ - name: X-Proxima-Nexus-Requester-User-Id
733
+ in: header
734
+ description: >-
735
+ ID of the user getting connections of the event. If set, 401 may be returned if the user cannot view the
736
+ event connections.
737
+ required: false
738
+ schema:
739
+ type: string
515
740
  responses:
516
741
  '200':
517
- description: Attendees returned
742
+ description: Connections returned
518
743
  content:
519
744
  application/json:
520
745
  schema:
@@ -524,12 +749,20 @@ paths:
524
749
  tags:
525
750
  - event
526
751
  security:
527
- - bearer: []
752
+ - api_key: []
528
753
  /event/batch:
529
754
  post:
530
755
  operationId: EventController_getBatch
531
756
  summary: Get a batch of events by IDs
532
- parameters: []
757
+ parameters:
758
+ - name: X-Proxima-Nexus-Requester-User-Id
759
+ in: header
760
+ description: >-
761
+ ID of the user getting a batch of events. If set, events will be filtered to only include events that the
762
+ user can see, and requesterConnection will be set on the results.
763
+ required: false
764
+ schema:
765
+ type: string
533
766
  requestBody:
534
767
  required: true
535
768
  content:
@@ -548,12 +781,18 @@ paths:
548
781
  tags:
549
782
  - event
550
783
  security:
551
- - bearer: []
784
+ - api_key: []
552
785
  /group:
553
786
  post:
554
787
  operationId: GroupController_create
555
788
  summary: Create a group
556
- parameters: []
789
+ parameters:
790
+ - name: X-Proxima-Nexus-Requester-User-Id
791
+ in: header
792
+ description: ID of the user creating the group
793
+ required: true
794
+ schema:
795
+ type: string
557
796
  requestBody:
558
797
  required: true
559
798
  content:
@@ -570,7 +809,7 @@ paths:
570
809
  tags:
571
810
  - group
572
811
  security:
573
- - bearer: []
812
+ - api_key: []
574
813
  get:
575
814
  operationId: GroupController_search
576
815
  summary: Search groups
@@ -638,6 +877,14 @@ paths:
638
877
  schema:
639
878
  example: 100
640
879
  type: number
880
+ - name: X-Proxima-Nexus-Requester-User-Id
881
+ in: header
882
+ description: >-
883
+ ID of the user searching for groups. If set, groups will be filtered to only include groups that the user
884
+ can see, and requesterConnection will be set on the results.
885
+ required: false
886
+ schema:
887
+ type: string
641
888
  responses:
642
889
  '200':
643
890
  description: Groups returned
@@ -650,10 +897,10 @@ paths:
650
897
  tags:
651
898
  - group
652
899
  security:
653
- - bearer: []
900
+ - api_key: []
654
901
  /group/{groupId}:
655
902
  get:
656
- operationId: GroupController_findOne
903
+ operationId: GroupController_get
657
904
  summary: Get a group by ID
658
905
  parameters:
659
906
  - name: groupId
@@ -661,6 +908,14 @@ paths:
661
908
  in: path
662
909
  schema:
663
910
  type: string
911
+ - name: X-Proxima-Nexus-Requester-User-Id
912
+ in: header
913
+ description: >-
914
+ ID of the user getting a group by ID. If set, 401 may be returned if the user cannot view the group,
915
+ otherwise requesterConnection will be set on the result.
916
+ required: false
917
+ schema:
918
+ type: string
664
919
  responses:
665
920
  '200':
666
921
  description: Group returned
@@ -668,10 +923,12 @@ paths:
668
923
  application/json:
669
924
  schema:
670
925
  $ref: '#/components/schemas/GroupDto'
926
+ '401':
927
+ description: User cannot view this group
671
928
  tags:
672
929
  - group
673
930
  security:
674
- - bearer: []
931
+ - api_key: []
675
932
  patch:
676
933
  operationId: GroupController_update
677
934
  summary: Update a group
@@ -681,6 +938,12 @@ paths:
681
938
  in: path
682
939
  schema:
683
940
  type: string
941
+ - name: X-Proxima-Nexus-Requester-User-Id
942
+ in: header
943
+ description: ID of the user updating the group
944
+ required: true
945
+ schema:
946
+ type: string
684
947
  requestBody:
685
948
  required: true
686
949
  content:
@@ -697,7 +960,7 @@ paths:
697
960
  tags:
698
961
  - group
699
962
  security:
700
- - bearer: []
963
+ - api_key: []
701
964
  delete:
702
965
  operationId: GroupController_remove
703
966
  summary: Delete a group
@@ -709,7 +972,7 @@ paths:
709
972
  type: string
710
973
  - name: X-Proxima-Nexus-Requester-User-Id
711
974
  in: header
712
- description: Requester user ID
975
+ description: ID of the user deleting the group
713
976
  required: true
714
977
  schema:
715
978
  type: string
@@ -719,11 +982,11 @@ paths:
719
982
  tags:
720
983
  - group
721
984
  security:
722
- - bearer: []
723
- /group/{groupId}/members/{userId}:
985
+ - api_key: []
986
+ /group/{groupId}/connection/{userId}:
724
987
  put:
725
- operationId: GroupController_addMember
726
- summary: Add a member to a group
988
+ operationId: GroupController_addConnection
989
+ summary: Add or update a connection to a group (member, admin, or owner)
727
990
  parameters:
728
991
  - name: groupId
729
992
  required: true
@@ -735,20 +998,34 @@ paths:
735
998
  in: path
736
999
  schema:
737
1000
  type: string
1001
+ - name: X-Proxima-Nexus-Requester-User-Id
1002
+ in: header
1003
+ description: ID of the user adding a connection to the group
1004
+ required: true
1005
+ schema:
1006
+ type: string
1007
+ requestBody:
1008
+ required: true
1009
+ content:
1010
+ application/json:
1011
+ schema:
1012
+ $ref: '#/components/schemas/MutateGroupEntityConnectionDto'
738
1013
  responses:
739
1014
  '200':
740
- description: Member added
1015
+ description: Connection added/updated
741
1016
  content:
742
1017
  application/json:
743
1018
  schema:
744
1019
  $ref: '#/components/schemas/EntityConnectionDto'
1020
+ '401':
1021
+ description: User cannot add this connection
745
1022
  tags:
746
1023
  - group
747
1024
  security:
748
- - bearer: []
1025
+ - api_key: []
749
1026
  delete:
750
- operationId: GroupController_removeMember
751
- summary: Remove a member from a group
1027
+ operationId: GroupController_removeConnection
1028
+ summary: Remove a connection from a group
752
1029
  parameters:
753
1030
  - name: groupId
754
1031
  required: true
@@ -760,40 +1037,86 @@ paths:
760
1037
  in: path
761
1038
  schema:
762
1039
  type: string
1040
+ - name: X-Proxima-Nexus-Requester-User-Id
1041
+ in: header
1042
+ description: ID of the user removing a connection from the group
1043
+ required: true
1044
+ schema:
1045
+ type: string
1046
+ requestBody:
1047
+ required: true
1048
+ content:
1049
+ application/json:
1050
+ schema:
1051
+ $ref: '#/components/schemas/MutateGroupEntityConnectionDto'
763
1052
  responses:
764
- '200':
765
- description: Member removed
766
- content:
767
- application/json:
768
- schema:
769
- type: string
1053
+ '204':
1054
+ description: Connection removed
1055
+ '401':
1056
+ description: User cannot remove this connection
770
1057
  tags:
771
1058
  - group
772
1059
  security:
773
- - bearer: []
774
- /group/{groupId}/members:
1060
+ - api_key: []
1061
+ /group/{groupId}/connections:
775
1062
  get:
776
- operationId: GroupController_getMembers
777
- summary: Get members of a group
1063
+ operationId: GroupController_getConnections
1064
+ summary: Get connections of a group
778
1065
  parameters:
779
1066
  - name: groupId
780
1067
  required: true
781
1068
  in: path
782
1069
  schema:
783
1070
  type: string
1071
+ - name: state
1072
+ required: false
1073
+ in: query
1074
+ description: Filter connections by state (e.g., requested for pending approvals)
1075
+ explode: true
1076
+ schema:
1077
+ type: array
1078
+ items:
1079
+ type: string
1080
+ enum:
1081
+ - requested
1082
+ - active
1083
+ - invited
1084
+ - name: type
1085
+ required: false
1086
+ in: query
1087
+ description: Filter connections by type. Can be a single type or multiple types (comma-separated or array)
1088
+ explode: true
1089
+ schema:
1090
+ type: array
1091
+ items:
1092
+ type: string
1093
+ enum:
1094
+ - member
1095
+ - admin
1096
+ - owner
1097
+ - name: X-Proxima-Nexus-Requester-User-Id
1098
+ in: header
1099
+ description: >-
1100
+ ID of the user getting connections of the group. If set, 401 may be returned if the user cannot view the
1101
+ group connections.
1102
+ required: false
1103
+ schema:
1104
+ type: string
784
1105
  responses:
785
1106
  '200':
786
- description: Members returned
1107
+ description: Connections returned
787
1108
  content:
788
1109
  application/json:
789
1110
  schema:
790
1111
  type: array
791
1112
  items:
792
1113
  $ref: '#/components/schemas/UserEntityConnectionDto'
1114
+ '401':
1115
+ description: User cannot view connections of this group
793
1116
  tags:
794
1117
  - group
795
1118
  security:
796
- - bearer: []
1119
+ - api_key: []
797
1120
  /group/{groupId}/events:
798
1121
  get:
799
1122
  operationId: GroupController_getEvents
@@ -804,6 +1127,14 @@ paths:
804
1127
  in: path
805
1128
  schema:
806
1129
  type: string
1130
+ - name: X-Proxima-Nexus-Requester-User-Id
1131
+ in: header
1132
+ description: >-
1133
+ ID of the user getting events of the group. If set, events will be filtered to only include events that the
1134
+ user can see, and requesterConnection will be set on the results.
1135
+ required: false
1136
+ schema:
1137
+ type: string
807
1138
  responses:
808
1139
  '200':
809
1140
  description: Events returned
@@ -816,12 +1147,20 @@ paths:
816
1147
  tags:
817
1148
  - group
818
1149
  security:
819
- - bearer: []
1150
+ - api_key: []
820
1151
  /group/batch:
821
1152
  post:
822
1153
  operationId: GroupController_getBatch
823
1154
  summary: Get a batch of groups by IDs
824
- parameters: []
1155
+ parameters:
1156
+ - name: X-Proxima-Nexus-Requester-User-Id
1157
+ in: header
1158
+ description: >-
1159
+ ID of the user getting a batch of groups. If set, groups will be filtered to only include groups that the
1160
+ user can see, and requesterConnection will be set on the results.
1161
+ required: false
1162
+ schema:
1163
+ type: string
825
1164
  requestBody:
826
1165
  required: true
827
1166
  content:
@@ -840,7 +1179,7 @@ paths:
840
1179
  tags:
841
1180
  - group
842
1181
  security:
843
- - bearer: []
1182
+ - api_key: []
844
1183
  info:
845
1184
  title: proxima-nexus-data-plane-api
846
1185
  description: Proxima Nexus Data Plane API
@@ -877,10 +1216,6 @@ components:
877
1216
  type: string
878
1217
  description: Display name
879
1218
  example: Display Name
880
- requesterUserId:
881
- type: string
882
- description: User ID of the requester
883
- example: user-123
884
1219
  visibility:
885
1220
  type: string
886
1221
  description: Visibility of the entity
@@ -919,7 +1254,6 @@ components:
919
1254
  example: '1990-01-01'
920
1255
  required:
921
1256
  - displayName
922
- - requesterUserId
923
1257
  - visibility
924
1258
  - userId
925
1259
  - gender
@@ -933,6 +1267,39 @@ components:
933
1267
  example: user-123
934
1268
  required:
935
1269
  - userId
1270
+ EntityConnectionDto:
1271
+ type: object
1272
+ properties:
1273
+ createdAt:
1274
+ type: string
1275
+ description: Date/time the connection was created (ISO string)
1276
+ example: '2024-05-01T12:34:56.789Z'
1277
+ updatedAt:
1278
+ type: string
1279
+ description: Date/time the connection was last updated (ISO string)
1280
+ example: '2024-05-02T12:34:56.789Z'
1281
+ type:
1282
+ type: string
1283
+ description: Connection type
1284
+ enum:
1285
+ - attendee
1286
+ - admin
1287
+ - owner
1288
+ - member
1289
+ - friend
1290
+ - blocked
1291
+ - none
1292
+ state:
1293
+ type: string
1294
+ description: Connection state
1295
+ enum:
1296
+ - incoming_request
1297
+ - outgoing_request
1298
+ - active
1299
+ - requested
1300
+ - invited
1301
+ required:
1302
+ - type
936
1303
  UserDto:
937
1304
  type: object
938
1305
  properties:
@@ -940,10 +1307,6 @@ components:
940
1307
  type: string
941
1308
  description: Unique identifier for the entity
942
1309
  example: entity-123
943
- tenantId:
944
- type: string
945
- description: Tenant identifier the entity belongs to
946
- example: tenant-abc
947
1310
  displayName:
948
1311
  type: string
949
1312
  description: Display name of the entity
@@ -979,6 +1342,10 @@ components:
979
1342
  description: Required location information
980
1343
  allOf:
981
1344
  - $ref: '#/components/schemas/LocationDto'
1345
+ requesterConnection:
1346
+ description: Connection to the requester
1347
+ allOf:
1348
+ - $ref: '#/components/schemas/EntityConnectionDto'
982
1349
  gender:
983
1350
  type: string
984
1351
  description: Gender
@@ -993,10 +1360,6 @@ components:
993
1360
  UpdateUserDto:
994
1361
  type: object
995
1362
  properties:
996
- requesterUserId:
997
- type: string
998
- description: User ID of the requester
999
- example: user-123
1000
1363
  visibility:
1001
1364
  type: string
1002
1365
  description: Visibility of the entity
@@ -1034,30 +1397,21 @@ components:
1034
1397
  description: Birth date (ISO 8601)
1035
1398
  example: '1990-01-01'
1036
1399
  required:
1037
- - requesterUserId
1038
1400
  - displayName
1039
1401
  - gender
1040
1402
  - birthDate
1041
- EntityConnectionDto:
1403
+ MutateUserConnectionDto:
1042
1404
  type: object
1043
1405
  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:
1406
+ type:
1053
1407
  type: string
1054
- description: Connection state
1408
+ description: Type of connection to create or modify
1055
1409
  enum:
1056
- - requested
1057
- - active
1058
- - rejected
1410
+ - friend
1411
+ - blocked
1412
+ example: friend
1059
1413
  required:
1060
- - state
1414
+ - type
1061
1415
  UserEntityConnectionDto:
1062
1416
  type: object
1063
1417
  properties:
@@ -1069,19 +1423,32 @@ components:
1069
1423
  type: string
1070
1424
  description: Date/time the connection was last updated (ISO string)
1071
1425
  example: '2024-05-02T12:34:56.789Z'
1426
+ type:
1427
+ type: string
1428
+ description: Connection type
1429
+ enum:
1430
+ - attendee
1431
+ - admin
1432
+ - owner
1433
+ - member
1434
+ - friend
1435
+ - blocked
1436
+ - none
1072
1437
  state:
1073
1438
  type: string
1074
1439
  description: Connection state
1075
1440
  enum:
1076
- - requested
1441
+ - incoming_request
1442
+ - outgoing_request
1077
1443
  - active
1078
- - rejected
1444
+ - requested
1445
+ - invited
1079
1446
  userId:
1080
1447
  type: string
1081
1448
  description: User ID
1082
1449
  example: user-123
1083
1450
  required:
1084
- - state
1451
+ - type
1085
1452
  - userId
1086
1453
  GetUsersDto:
1087
1454
  type: object
@@ -1107,19 +1474,32 @@ components:
1107
1474
  type: string
1108
1475
  description: Date/time the connection was last updated (ISO string)
1109
1476
  example: '2024-05-02T12:34:56.789Z'
1477
+ type:
1478
+ type: string
1479
+ description: Connection type
1480
+ enum:
1481
+ - attendee
1482
+ - admin
1483
+ - owner
1484
+ - member
1485
+ - friend
1486
+ - blocked
1487
+ - none
1110
1488
  state:
1111
1489
  type: string
1112
1490
  description: Connection state
1113
1491
  enum:
1114
- - requested
1492
+ - incoming_request
1493
+ - outgoing_request
1115
1494
  - active
1116
- - rejected
1495
+ - requested
1496
+ - invited
1117
1497
  groupId:
1118
1498
  type: string
1119
1499
  description: Group ID
1120
1500
  example: group-123
1121
1501
  required:
1122
- - state
1502
+ - type
1123
1503
  - groupId
1124
1504
  EventEntityConnectionDto:
1125
1505
  type: object
@@ -1132,19 +1512,32 @@ components:
1132
1512
  type: string
1133
1513
  description: Date/time the connection was last updated (ISO string)
1134
1514
  example: '2024-05-02T12:34:56.789Z'
1515
+ type:
1516
+ type: string
1517
+ description: Connection type
1518
+ enum:
1519
+ - attendee
1520
+ - admin
1521
+ - owner
1522
+ - member
1523
+ - friend
1524
+ - blocked
1525
+ - none
1135
1526
  state:
1136
1527
  type: string
1137
1528
  description: Connection state
1138
1529
  enum:
1139
- - requested
1530
+ - incoming_request
1531
+ - outgoing_request
1140
1532
  - active
1141
- - rejected
1533
+ - requested
1534
+ - invited
1142
1535
  eventId:
1143
1536
  type: string
1144
1537
  description: Event ID
1145
1538
  example: event-123
1146
1539
  required:
1147
- - state
1540
+ - type
1148
1541
  - eventId
1149
1542
  CreateEventDto:
1150
1543
  type: object
@@ -1153,10 +1546,6 @@ components:
1153
1546
  type: string
1154
1547
  description: Display name
1155
1548
  example: Display Name
1156
- requesterUserId:
1157
- type: string
1158
- description: User ID of the requester
1159
- example: user-123
1160
1549
  visibility:
1161
1550
  type: string
1162
1551
  description: Visibility of the entity
@@ -1201,9 +1590,12 @@ components:
1201
1590
  type: string
1202
1591
  description: Identifier of associated group which owns the event. Owners/admins of the group will be admins of the event.
1203
1592
  example: group-123
1593
+ maxNumAttendees:
1594
+ type: number
1595
+ description: Maximum number of attendees allowed (null = unlimited)
1596
+ example: 100
1204
1597
  required:
1205
1598
  - displayName
1206
- - requesterUserId
1207
1599
  - visibility
1208
1600
  - eventId
1209
1601
  - startTime
@@ -1216,10 +1608,6 @@ components:
1216
1608
  type: string
1217
1609
  description: Unique identifier for the entity
1218
1610
  example: entity-123
1219
- tenantId:
1220
- type: string
1221
- description: Tenant identifier the entity belongs to
1222
- example: tenant-abc
1223
1611
  displayName:
1224
1612
  type: string
1225
1613
  description: Display name of the entity
@@ -1255,6 +1643,10 @@ components:
1255
1643
  description: Required location information
1256
1644
  allOf:
1257
1645
  - $ref: '#/components/schemas/LocationDto'
1646
+ requesterConnection:
1647
+ description: Connection to the requester
1648
+ allOf:
1649
+ - $ref: '#/components/schemas/EntityConnectionDto'
1258
1650
  startTime:
1259
1651
  type: string
1260
1652
  description: Start time (ISO 8601)
@@ -1271,6 +1663,14 @@ components:
1271
1663
  type: string
1272
1664
  description: Identifier of associated group which owns the event. Owners/admins of the group will be admins of the event.
1273
1665
  example: group-123
1666
+ numAttendees:
1667
+ type: number
1668
+ description: Number of active attendees
1669
+ example: 42
1670
+ maxNumAttendees:
1671
+ type: number
1672
+ description: Maximum number of attendees allowed (null = unlimited)
1673
+ example: 100
1274
1674
  required:
1275
1675
  - startTime
1276
1676
  - endTime
@@ -1278,10 +1678,6 @@ components:
1278
1678
  UpdateEventDto:
1279
1679
  type: object
1280
1680
  properties:
1281
- requesterUserId:
1282
- type: string
1283
- description: User ID of the requester
1284
- example: user-123
1285
1681
  visibility:
1286
1682
  type: string
1287
1683
  description: Visibility of the entity
@@ -1322,12 +1718,27 @@ components:
1322
1718
  type: string
1323
1719
  description: Event type
1324
1720
  example: concert
1721
+ maxNumAttendees:
1722
+ type: number
1723
+ description: Maximum number of attendees allowed (null = unlimited)
1724
+ example: 100
1325
1725
  required:
1326
- - requesterUserId
1327
1726
  - displayName
1328
1727
  - startTime
1329
1728
  - endTime
1330
1729
  - type
1730
+ MutateEventEntityConnectionDto:
1731
+ type: object
1732
+ properties:
1733
+ type:
1734
+ type: string
1735
+ description: Connection type
1736
+ enum:
1737
+ - attendee
1738
+ - admin
1739
+ - owner
1740
+ required:
1741
+ - type
1331
1742
  GetEventsDto:
1332
1743
  type: object
1333
1744
  properties:
@@ -1348,10 +1759,6 @@ components:
1348
1759
  type: string
1349
1760
  description: Display name
1350
1761
  example: Display Name
1351
- requesterUserId:
1352
- type: string
1353
- description: User ID of the requester
1354
- example: user-123
1355
1762
  visibility:
1356
1763
  type: string
1357
1764
  description: Visibility of the entity
@@ -1383,10 +1790,13 @@ components:
1383
1790
  type:
1384
1791
  type: string
1385
1792
  description: Group type
1386
- example: club
1793
+ enum:
1794
+ - open
1795
+ - request
1796
+ - invite
1797
+ example: open
1387
1798
  required:
1388
1799
  - displayName
1389
- - requesterUserId
1390
1800
  - visibility
1391
1801
  - groupId
1392
1802
  - type
@@ -1397,10 +1807,6 @@ components:
1397
1807
  type: string
1398
1808
  description: Unique identifier for the entity
1399
1809
  example: entity-123
1400
- tenantId:
1401
- type: string
1402
- description: Tenant identifier the entity belongs to
1403
- example: tenant-abc
1404
1810
  displayName:
1405
1811
  type: string
1406
1812
  description: Display name of the entity
@@ -1436,19 +1842,27 @@ components:
1436
1842
  description: Required location information
1437
1843
  allOf:
1438
1844
  - $ref: '#/components/schemas/LocationDto'
1845
+ requesterConnection:
1846
+ description: Connection to the requester
1847
+ allOf:
1848
+ - $ref: '#/components/schemas/EntityConnectionDto'
1439
1849
  type:
1440
1850
  type: string
1441
1851
  description: Group type
1442
- example: club
1852
+ enum:
1853
+ - open
1854
+ - request
1855
+ - invite
1856
+ example: open
1857
+ numMembers:
1858
+ type: number
1859
+ description: Number of active members
1860
+ example: 150
1443
1861
  required:
1444
1862
  - type
1445
1863
  UpdateGroupDto:
1446
1864
  type: object
1447
1865
  properties:
1448
- requesterUserId:
1449
- type: string
1450
- description: User ID of the requester
1451
- example: user-123
1452
1866
  visibility:
1453
1867
  type: string
1454
1868
  description: Visibility of the entity
@@ -1480,11 +1894,26 @@ components:
1480
1894
  type:
1481
1895
  type: string
1482
1896
  description: Group type
1483
- example: club
1897
+ enum:
1898
+ - open
1899
+ - request
1900
+ - invite
1901
+ example: open
1484
1902
  required:
1485
- - requesterUserId
1486
1903
  - displayName
1487
1904
  - type
1905
+ MutateGroupEntityConnectionDto:
1906
+ type: object
1907
+ properties:
1908
+ type:
1909
+ type: string
1910
+ description: Connection type
1911
+ enum:
1912
+ - member
1913
+ - admin
1914
+ - owner
1915
+ required:
1916
+ - type
1488
1917
  GetGroupsDto:
1489
1918
  type: object
1490
1919
  properties: