@openchoreo/backstage-plugin-thunder-idp-client-node 1.1.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,2534 @@
1
+ import * as openapi_fetch from 'openapi-fetch';
2
+ import { Config } from '@backstage/config';
3
+ import { LoggerService } from '@backstage/backend-plugin-api';
4
+
5
+ /**
6
+ * This file was auto-generated by openapi-typescript.
7
+ * Do not make direct changes to the file.
8
+ */
9
+ interface paths$1 {
10
+ '/users': {
11
+ parameters: {
12
+ query?: never;
13
+ header?: never;
14
+ path?: never;
15
+ cookie?: never;
16
+ };
17
+ /** List users */
18
+ get: {
19
+ parameters: {
20
+ query?: {
21
+ /** @description Maximum number of records to return. */
22
+ limit?: components$1['parameters']['limitQueryParam'];
23
+ /** @description Number of records to skip for pagination. */
24
+ offset?: components$1['parameters']['offsetQueryParam'];
25
+ /**
26
+ * @description Filter users by attribute values.
27
+ * Supported operators: eq (ie. equals).
28
+ * Format: `attribute operator "value"`.
29
+ * Examples:
30
+ * - `username eq "john.doe"` - Users with username = "john.doe"'
31
+ * - `age eq 25` - Users with age = 25
32
+ * - `address.city eq "Mountain View"` - Users with address.city = "Mountain View"
33
+ */
34
+ filter?: components$1['parameters']['filterParam'];
35
+ };
36
+ header?: never;
37
+ path?: never;
38
+ cookie?: never;
39
+ };
40
+ requestBody?: never;
41
+ responses: {
42
+ /** @description List of users */
43
+ 200: {
44
+ headers: {
45
+ [name: string]: unknown;
46
+ };
47
+ content: {
48
+ /**
49
+ * @example {
50
+ * "totalResults": 5,
51
+ * "startIndex": 1,
52
+ * "count": 3,
53
+ * "users": [
54
+ * {
55
+ * "id": "9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3",
56
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001",
57
+ * "type": "customer",
58
+ * "attributes": {
59
+ * "age": 24,
60
+ * "email": "jane.doe@example.com",
61
+ * "mobile": "+1-650-555-1234",
62
+ * "address": {
63
+ * "city": "Mountain View",
64
+ * "zip": "94040"
65
+ * },
66
+ * "contactPreferences": [
67
+ * "email",
68
+ * "sms"
69
+ * ]
70
+ * }
71
+ * },
72
+ * {
73
+ * "id": "039bda67-a80d-4b7b-ac0f-36db85332089",
74
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001",
75
+ * "type": "customer",
76
+ * "attributes": {
77
+ * "age": 31,
78
+ * "email": "john.smith@example.com",
79
+ * "mobile": "+1-650-903-0002",
80
+ * "address": {
81
+ * "city": "Palo Alto",
82
+ * "zip": "94301"
83
+ * },
84
+ * "contactPreferences": [
85
+ * "sms"
86
+ * ]
87
+ * }
88
+ * },
89
+ * {
90
+ * "id": "e1b6ba6c-deb2-4d24-87b0-bbf79fa4487c",
91
+ * "organizationUnit": "26eec421-f1bb-4deb-a5d3-9ab6554c2ae6",
92
+ * "type": "employee",
93
+ * "attributes": {
94
+ * "username": "alice.wu",
95
+ * "firstname": "Alice",
96
+ * "lastname": "Wu",
97
+ * "department": "Engineering",
98
+ * "email": "alice.wu@company.inc"
99
+ * }
100
+ * }
101
+ * ],
102
+ * "links": [
103
+ * {
104
+ * "href": "users?offset=3&limit=3",
105
+ * "rel": "next"
106
+ * }
107
+ * ]
108
+ * }
109
+ */
110
+ 'application/json': components$1['schemas']['UserListResponse'];
111
+ };
112
+ };
113
+ /** @description Bad request */
114
+ 400: {
115
+ headers: {
116
+ [name: string]: unknown;
117
+ };
118
+ content: {
119
+ 'application/json': components$1['schemas']['Error'];
120
+ };
121
+ };
122
+ /** @description Internal server error */
123
+ 500: {
124
+ headers: {
125
+ [name: string]: unknown;
126
+ };
127
+ content?: never;
128
+ };
129
+ };
130
+ };
131
+ put?: never;
132
+ /** Create a new user */
133
+ post: {
134
+ parameters: {
135
+ query?: never;
136
+ header?: never;
137
+ path?: never;
138
+ cookie?: never;
139
+ };
140
+ requestBody: {
141
+ content: {
142
+ /**
143
+ * @example {
144
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001",
145
+ * "type": "customer",
146
+ * "groups": [
147
+ * "550e8400-e29b-41d4-a716-446655440000",
148
+ * "660e8400-e29b-41d4-a716-446655440001"
149
+ * ],
150
+ * "attributes": {
151
+ * "age": 24,
152
+ * "email": "jane.doe@example.com",
153
+ * "mobile": "+1-650-555-1234",
154
+ * "address": {
155
+ * "city": "Mountain View",
156
+ * "zip": "94040"
157
+ * },
158
+ * "contactPreferences": [
159
+ * "email",
160
+ * "sms"
161
+ * ]
162
+ * }
163
+ * }
164
+ */
165
+ 'application/json': components$1['schemas']['CreateUserRequest'];
166
+ };
167
+ };
168
+ responses: {
169
+ /** @description User created */
170
+ 201: {
171
+ headers: {
172
+ [name: string]: unknown;
173
+ };
174
+ content: {
175
+ /**
176
+ * @example {
177
+ * "id": "9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3",
178
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001",
179
+ * "type": "customer",
180
+ * "attributes": {
181
+ * "age": 24,
182
+ * "email": "jane.doe@example.com",
183
+ * "mobile": "+1-650-555-1234",
184
+ * "address": {
185
+ * "city": "Mountain View",
186
+ * "zip": "94040"
187
+ * },
188
+ * "contactPreferences": [
189
+ * "email",
190
+ * "sms"
191
+ * ]
192
+ * }
193
+ * }
194
+ */
195
+ 'application/json': components$1['schemas']['User'];
196
+ };
197
+ };
198
+ /** @description Bad request */
199
+ 400: {
200
+ headers: {
201
+ [name: string]: unknown;
202
+ };
203
+ content: {
204
+ 'application/json': components$1['schemas']['Error'];
205
+ };
206
+ };
207
+ /** @description Conflict */
208
+ 409: {
209
+ headers: {
210
+ [name: string]: unknown;
211
+ };
212
+ content: {
213
+ 'application/json': components$1['schemas']['Error'];
214
+ };
215
+ };
216
+ /** @description Internal server error */
217
+ 500: {
218
+ headers: {
219
+ [name: string]: unknown;
220
+ };
221
+ content?: never;
222
+ };
223
+ };
224
+ };
225
+ delete?: never;
226
+ options?: never;
227
+ head?: never;
228
+ patch?: never;
229
+ trace?: never;
230
+ };
231
+ '/users/{id}': {
232
+ parameters: {
233
+ query?: never;
234
+ header?: never;
235
+ path?: never;
236
+ cookie?: never;
237
+ };
238
+ /** Get a user by id */
239
+ get: {
240
+ parameters: {
241
+ query?: never;
242
+ header?: never;
243
+ path: {
244
+ /** @example 9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3 */
245
+ id: string;
246
+ };
247
+ cookie?: never;
248
+ };
249
+ requestBody?: never;
250
+ responses: {
251
+ /** @description User details */
252
+ 200: {
253
+ headers: {
254
+ [name: string]: unknown;
255
+ };
256
+ content: {
257
+ /**
258
+ * @example {
259
+ * "id": "9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3",
260
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001",
261
+ * "type": "customer",
262
+ * "attributes": {
263
+ * "age": 24,
264
+ * "email": "jane.doe@example.com",
265
+ * "mobile": "+1-650-555-1234",
266
+ * "address": {
267
+ * "city": "Mountain View",
268
+ * "zip": "94040"
269
+ * },
270
+ * "contactPreferences": [
271
+ * "email",
272
+ * "sms"
273
+ * ]
274
+ * }
275
+ * }
276
+ */
277
+ 'application/json': components$1['schemas']['User'];
278
+ };
279
+ };
280
+ /** @description User not found */
281
+ 404: {
282
+ headers: {
283
+ [name: string]: unknown;
284
+ };
285
+ content?: never;
286
+ };
287
+ /** @description Internal server error */
288
+ 500: {
289
+ headers: {
290
+ [name: string]: unknown;
291
+ };
292
+ content?: never;
293
+ };
294
+ };
295
+ };
296
+ /** Update a user by id */
297
+ put: {
298
+ parameters: {
299
+ query?: never;
300
+ header?: never;
301
+ path: {
302
+ /** @example 9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3 */
303
+ id: string;
304
+ };
305
+ cookie?: never;
306
+ };
307
+ requestBody: {
308
+ content: {
309
+ /**
310
+ * @example {
311
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001",
312
+ * "type": "customer",
313
+ * "groups": [
314
+ * "550e8400-e29b-41d4-a716-446655440000"
315
+ * ],
316
+ * "attributes": {
317
+ * "age": 25,
318
+ * "email": "jane.doe@example.com",
319
+ * "mobile": "+1-650-555-5678",
320
+ * "address": {
321
+ * "city": "Mountain View",
322
+ * "zip": "94040"
323
+ * },
324
+ * "contactPreferences": [
325
+ * "email"
326
+ * ]
327
+ * }
328
+ * }
329
+ */
330
+ 'application/json': components$1['schemas']['UpdateUserRequest'];
331
+ };
332
+ };
333
+ responses: {
334
+ /** @description User updated */
335
+ 200: {
336
+ headers: {
337
+ [name: string]: unknown;
338
+ };
339
+ content: {
340
+ /**
341
+ * @example {
342
+ * "id": "9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3",
343
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001",
344
+ * "type": "customer",
345
+ * "attributes": {
346
+ * "age": 25,
347
+ * "email": "jane.doe@example.com",
348
+ * "mobile": "+1-650-555-5678",
349
+ * "address": {
350
+ * "city": "Mountain View",
351
+ * "zip": "94040"
352
+ * },
353
+ * "contactPreferences": [
354
+ * "email"
355
+ * ]
356
+ * }
357
+ * }
358
+ */
359
+ 'application/json': components$1['schemas']['User'];
360
+ };
361
+ };
362
+ /** @description Bad request */
363
+ 400: {
364
+ headers: {
365
+ [name: string]: unknown;
366
+ };
367
+ content: {
368
+ 'application/json': components$1['schemas']['Error'];
369
+ };
370
+ };
371
+ /** @description User not found */
372
+ 404: {
373
+ headers: {
374
+ [name: string]: unknown;
375
+ };
376
+ content: {
377
+ /**
378
+ * @example {
379
+ * "code": "USR-1003",
380
+ * "message": "User not found",
381
+ * "description": "The user with the specified id does not exist"
382
+ * }
383
+ */
384
+ 'application/json': components$1['schemas']['Error'];
385
+ };
386
+ };
387
+ /** @description Internal server error */
388
+ 500: {
389
+ headers: {
390
+ [name: string]: unknown;
391
+ };
392
+ content?: never;
393
+ };
394
+ };
395
+ };
396
+ post?: never;
397
+ /** Delete a user by id */
398
+ delete: {
399
+ parameters: {
400
+ query?: never;
401
+ header?: never;
402
+ path: {
403
+ /** @example 9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3 */
404
+ id: string;
405
+ };
406
+ cookie?: never;
407
+ };
408
+ requestBody?: never;
409
+ responses: {
410
+ /** @description User deleted */
411
+ 204: {
412
+ headers: {
413
+ [name: string]: unknown;
414
+ };
415
+ content?: never;
416
+ };
417
+ /** @description User not found */
418
+ 404: {
419
+ headers: {
420
+ [name: string]: unknown;
421
+ };
422
+ content?: never;
423
+ };
424
+ /** @description Internal server error */
425
+ 500: {
426
+ headers: {
427
+ [name: string]: unknown;
428
+ };
429
+ content?: never;
430
+ };
431
+ };
432
+ };
433
+ options?: never;
434
+ head?: never;
435
+ patch?: never;
436
+ trace?: never;
437
+ };
438
+ '/users/{id}/groups': {
439
+ parameters: {
440
+ query?: never;
441
+ header?: never;
442
+ path?: never;
443
+ cookie?: never;
444
+ };
445
+ /** List groups that the user belongs to */
446
+ get: {
447
+ parameters: {
448
+ query?: {
449
+ /** @description Maximum number of records to return. */
450
+ limit?: components$1['parameters']['limitQueryParam'];
451
+ /** @description Number of records to skip for pagination. */
452
+ offset?: components$1['parameters']['offsetQueryParam'];
453
+ };
454
+ header?: never;
455
+ path: {
456
+ /**
457
+ * @description The unique identifier of the user
458
+ * @example 9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3
459
+ */
460
+ id: string;
461
+ };
462
+ cookie?: never;
463
+ };
464
+ requestBody?: never;
465
+ responses: {
466
+ /** @description List of groups that the user belongs to */
467
+ 200: {
468
+ headers: {
469
+ [name: string]: unknown;
470
+ };
471
+ content: {
472
+ /**
473
+ * @example {
474
+ * "totalResults": 3,
475
+ * "startIndex": 1,
476
+ * "count": 2,
477
+ * "groups": [
478
+ * {
479
+ * "id": "550e8400-e29b-41d4-a716-446655440000",
480
+ * "name": "Premium Customers",
481
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001"
482
+ * },
483
+ * {
484
+ * "id": "660e8400-e29b-41d4-a716-446655440001",
485
+ * "name": "Mobile App Users",
486
+ * "organizationUnit": "456e8400-e29b-41d4-a716-446655440001"
487
+ * }
488
+ * ],
489
+ * "links": [
490
+ * {
491
+ * "href": "users/9a475e1e-b0cb-4b29-8df5-2e5b24fb0ed3/groups?offset=2&limit=2",
492
+ * "rel": "next"
493
+ * }
494
+ * ]
495
+ * }
496
+ */
497
+ 'application/json': components$1['schemas']['UserGroupListResponse'];
498
+ };
499
+ };
500
+ /** @description Bad request */
501
+ 400: {
502
+ headers: {
503
+ [name: string]: unknown;
504
+ };
505
+ content: {
506
+ 'application/json': components$1['schemas']['Error'];
507
+ };
508
+ };
509
+ /** @description User not found */
510
+ 404: {
511
+ headers: {
512
+ [name: string]: unknown;
513
+ };
514
+ content: {
515
+ /**
516
+ * @example {
517
+ * "code": "USR-1003",
518
+ * "message": "User not found",
519
+ * "description": "The user with the specified id does not exist"
520
+ * }
521
+ */
522
+ 'application/json': components$1['schemas']['Error'];
523
+ };
524
+ };
525
+ /** @description Internal server error */
526
+ 500: {
527
+ headers: {
528
+ [name: string]: unknown;
529
+ };
530
+ content: {
531
+ /**
532
+ * @example {
533
+ * "code": "USR-5001",
534
+ * "message": "Internal server error",
535
+ * "description": "An unexpected error occurred while processing the request"
536
+ * }
537
+ */
538
+ 'application/json': components$1['schemas']['Error'];
539
+ };
540
+ };
541
+ };
542
+ };
543
+ put?: never;
544
+ post?: never;
545
+ delete?: never;
546
+ options?: never;
547
+ head?: never;
548
+ patch?: never;
549
+ trace?: never;
550
+ };
551
+ '/users/tree/{path}': {
552
+ parameters: {
553
+ query?: never;
554
+ header?: never;
555
+ path?: never;
556
+ cookie?: never;
557
+ };
558
+ /** List users in organization unit specified by handle path */
559
+ get: {
560
+ parameters: {
561
+ query?: {
562
+ /** @description Maximum number of records to return. */
563
+ limit?: components$1['parameters']['limitQueryParam'];
564
+ /** @description Number of records to skip for pagination. */
565
+ offset?: components$1['parameters']['offsetQueryParam'];
566
+ /**
567
+ * @description Filter users by attribute values.
568
+ * Supported operators: eq (ie. equals).
569
+ * Format: `attribute operator "value"`.
570
+ * Examples:
571
+ * - `username eq "john.doe"` - Users with username = "john.doe"'
572
+ * - `age eq 25` - Users with age = 25
573
+ * - `address.city eq "Mountain View"` - Users with address.city = "Mountain View"
574
+ */
575
+ filter?: components$1['parameters']['filterParam'];
576
+ };
577
+ header?: never;
578
+ path: {
579
+ /**
580
+ * @description Hierarchical path of organization unit handles separated by forward slashes.
581
+ * Examples:
582
+ * - `engineering` - Lists users in the "engineering" OU
583
+ * - `engineering/frontend` - Lists users in "engineering/frontend"
584
+ * @example engineering/frontend
585
+ */
586
+ path: string;
587
+ };
588
+ cookie?: never;
589
+ };
590
+ requestBody?: never;
591
+ responses: {
592
+ /** @description List of users in the organization unit */
593
+ 200: {
594
+ headers: {
595
+ [name: string]: unknown;
596
+ };
597
+ content: {
598
+ /**
599
+ * @example {
600
+ * "totalResults": 5,
601
+ * "startIndex": 1,
602
+ * "count": 2,
603
+ * "users": [
604
+ * {
605
+ * "id": "7a4b1f8e-5c69-4b60-9232-2b0aaf65ef3c"
606
+ * },
607
+ * {
608
+ * "id": "9f1e47d3-0347-4464-9f02-e0bfae02e896"
609
+ * }
610
+ * ],
611
+ * "links": [
612
+ * {
613
+ * "href": "users/tree/engineering/frontend?offset=10&limit=10",
614
+ * "rel": "next"
615
+ * }
616
+ * ]
617
+ * }
618
+ */
619
+ 'application/json': components$1['schemas']['UserListResponse'];
620
+ };
621
+ };
622
+ /** @description Bad request */
623
+ 400: {
624
+ headers: {
625
+ [name: string]: unknown;
626
+ };
627
+ content: {
628
+ 'application/json': components$1['schemas']['Error'];
629
+ };
630
+ };
631
+ /** @description Organization unit not found */
632
+ 404: {
633
+ headers: {
634
+ [name: string]: unknown;
635
+ };
636
+ content: {
637
+ 'application/json': components$1['schemas']['Error'];
638
+ };
639
+ };
640
+ /** @description Internal server error */
641
+ 500: {
642
+ headers: {
643
+ [name: string]: unknown;
644
+ };
645
+ content: {
646
+ /** @example Internal server error */
647
+ 'text/plain': string;
648
+ };
649
+ };
650
+ };
651
+ };
652
+ put?: never;
653
+ /** Create a new user under the organization unit specified by the handle path */
654
+ post: {
655
+ parameters: {
656
+ query?: never;
657
+ header?: never;
658
+ path: {
659
+ /**
660
+ * @description Hierarchical path of organization unit handles separated by forward slashes.
661
+ * The new user will be created under the organization unit specified by this path.
662
+ * Examples:
663
+ * - `engineering` - Creates a new user under the "engineering" OU
664
+ * - `engineering/frontend` - Creates a new user under "engineering/frontend"
665
+ * @example engineering/frontend
666
+ */
667
+ path: string;
668
+ };
669
+ cookie?: never;
670
+ };
671
+ requestBody: {
672
+ content: {
673
+ /**
674
+ * @example {
675
+ * "organizationUnit": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87",
676
+ * "type": "employee",
677
+ * "groups": [
678
+ * "880e8400-e29b-41d4-a716-446655440003",
679
+ * "990e8400-e29b-41d4-a716-446655440004"
680
+ * ],
681
+ * "attributes": {
682
+ * "username": "john.doe",
683
+ * "firstname": "John",
684
+ * "lastname": "Doe",
685
+ * "email": "john.doe@company.com",
686
+ * "department": "Engineering"
687
+ * }
688
+ * }
689
+ */
690
+ 'application/json': components$1['schemas']['CreateUserByPathRequest'];
691
+ };
692
+ };
693
+ responses: {
694
+ /** @description User created */
695
+ 201: {
696
+ headers: {
697
+ [name: string]: unknown;
698
+ };
699
+ content: {
700
+ /**
701
+ * @example {
702
+ * "id": "7a4b1f8e-5c69-4b60-9232-2b0aaf65ef3c",
703
+ * "organizationUnit": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87",
704
+ * "type": "employee",
705
+ * "attributes": {
706
+ * "username": "john.doe",
707
+ * "firstname": "John",
708
+ * "lastname": "Doe",
709
+ * "email": "john.doe@company.com",
710
+ * "department": "Engineering"
711
+ * }
712
+ * }
713
+ */
714
+ 'application/json': components$1['schemas']['User'];
715
+ };
716
+ };
717
+ /** @description Bad request */
718
+ 400: {
719
+ headers: {
720
+ [name: string]: unknown;
721
+ };
722
+ content: {
723
+ 'application/json': components$1['schemas']['Error'];
724
+ };
725
+ };
726
+ /** @description Organization unit not found */
727
+ 404: {
728
+ headers: {
729
+ [name: string]: unknown;
730
+ };
731
+ content: {
732
+ 'application/json': components$1['schemas']['Error'];
733
+ };
734
+ };
735
+ /** @description Conflict */
736
+ 409: {
737
+ headers: {
738
+ [name: string]: unknown;
739
+ };
740
+ content: {
741
+ 'application/json': components$1['schemas']['Error'];
742
+ };
743
+ };
744
+ /** @description Internal server error */
745
+ 500: {
746
+ headers: {
747
+ [name: string]: unknown;
748
+ };
749
+ content: {
750
+ /** @example Internal server error */
751
+ 'text/plain': string;
752
+ };
753
+ };
754
+ };
755
+ };
756
+ delete?: never;
757
+ options?: never;
758
+ head?: never;
759
+ patch?: never;
760
+ trace?: never;
761
+ };
762
+ '/user-schemas': {
763
+ parameters: {
764
+ query?: never;
765
+ header?: never;
766
+ path?: never;
767
+ cookie?: never;
768
+ };
769
+ /**
770
+ * List user type schemas
771
+ * @description Retrieves a list of all user type schemas that define the structure
772
+ * and attributes for different user types.
773
+ */
774
+ get: {
775
+ parameters: {
776
+ query?: {
777
+ /** @description Maximum number of records to return. */
778
+ limit?: components$1['parameters']['limitQueryParam'];
779
+ /** @description Number of records to skip for pagination. */
780
+ offset?: components$1['parameters']['offsetQueryParam'];
781
+ };
782
+ header?: never;
783
+ path?: never;
784
+ cookie?: never;
785
+ };
786
+ requestBody?: never;
787
+ responses: {
788
+ /** @description List of user type schemas */
789
+ 200: {
790
+ headers: {
791
+ [name: string]: unknown;
792
+ };
793
+ content: {
794
+ /**
795
+ * @example {
796
+ * "totalResults": 3,
797
+ * "startIndex": 1,
798
+ * "count": 3,
799
+ * "schemas": [
800
+ * {
801
+ * "id": "660e8400-e29b-41d4-a716-446655440001",
802
+ * "name": "employee"
803
+ * },
804
+ * {
805
+ * "id": "550e8400-e29b-41d4-a716-446655440000",
806
+ * "name": "customer"
807
+ * },
808
+ * {
809
+ * "id": "770e8400-e29b-41d4-a716-446655440002",
810
+ * "name": "partner"
811
+ * }
812
+ * ]
813
+ * }
814
+ */
815
+ 'application/json': components$1['schemas']['UserSchemaListResponse'];
816
+ };
817
+ };
818
+ /** @description Bad request */
819
+ 400: {
820
+ headers: {
821
+ [name: string]: unknown;
822
+ };
823
+ content: {
824
+ 'application/json': components$1['schemas']['Error'];
825
+ };
826
+ };
827
+ /** @description Internal server error */
828
+ 500: {
829
+ headers: {
830
+ [name: string]: unknown;
831
+ };
832
+ content?: never;
833
+ };
834
+ };
835
+ };
836
+ put?: never;
837
+ /**
838
+ * Create a new user type schema
839
+ * @description Creates a new user type schema that defines the structure and attributes
840
+ * for a specific user type.
841
+ */
842
+ post: {
843
+ parameters: {
844
+ query?: never;
845
+ header?: never;
846
+ path?: never;
847
+ cookie?: never;
848
+ };
849
+ requestBody: {
850
+ content: {
851
+ /**
852
+ * @example {
853
+ * "name": "partner",
854
+ * "schema": {
855
+ * "firstname": {
856
+ * "type": "string"
857
+ * },
858
+ * "lastname": {
859
+ * "type": "string",
860
+ * "required": true
861
+ * },
862
+ * "email": {
863
+ * "type": "string",
864
+ * "required": true,
865
+ * "unique": true
866
+ * },
867
+ * "company": {
868
+ * "type": "string"
869
+ * },
870
+ * "role": {
871
+ * "type": "string"
872
+ * },
873
+ * "partnershipType": {
874
+ * "type": "string",
875
+ * "enum": [
876
+ * "technology",
877
+ * "business",
878
+ * "strategic"
879
+ * ]
880
+ * },
881
+ * "phoneNumber": {
882
+ * "type": "string"
883
+ * }
884
+ * }
885
+ * }
886
+ */
887
+ 'application/json': components$1['schemas']['CreateUserSchemaRequest'];
888
+ };
889
+ };
890
+ responses: {
891
+ /** @description User schema created */
892
+ 201: {
893
+ headers: {
894
+ [name: string]: unknown;
895
+ };
896
+ content: {
897
+ /**
898
+ * @example {
899
+ * "id": "880e8400-e29b-41d4-a716-446655440003",
900
+ * "name": "partner",
901
+ * "schema": {
902
+ * "firstname": {
903
+ * "type": "string"
904
+ * },
905
+ * "lastname": {
906
+ * "type": "string",
907
+ * "required": true
908
+ * },
909
+ * "email": {
910
+ * "type": "string",
911
+ * "required": true,
912
+ * "unique": true
913
+ * },
914
+ * "company": {
915
+ * "type": "string"
916
+ * },
917
+ * "role": {
918
+ * "type": "string"
919
+ * },
920
+ * "partnershipType": {
921
+ * "type": "string",
922
+ * "enum": [
923
+ * "technology",
924
+ * "business",
925
+ * "strategic"
926
+ * ]
927
+ * },
928
+ * "phoneNumber": {
929
+ * "type": "string"
930
+ * }
931
+ * }
932
+ * }
933
+ */
934
+ 'application/json': components$1['schemas']['UserSchema'];
935
+ };
936
+ };
937
+ /** @description Bad request */
938
+ 400: {
939
+ headers: {
940
+ [name: string]: unknown;
941
+ };
942
+ content: {
943
+ 'application/json': components$1['schemas']['Error'];
944
+ };
945
+ };
946
+ /** @description Conflict */
947
+ 409: {
948
+ headers: {
949
+ [name: string]: unknown;
950
+ };
951
+ content: {
952
+ /**
953
+ * @example {
954
+ * "code": "USRS-1003",
955
+ * "message": "User schema name conflict",
956
+ * "description": "A user schema with the same name already exists"
957
+ * }
958
+ */
959
+ 'application/json': components$1['schemas']['Error'];
960
+ };
961
+ };
962
+ /** @description Internal server error */
963
+ 500: {
964
+ headers: {
965
+ [name: string]: unknown;
966
+ };
967
+ content?: never;
968
+ };
969
+ };
970
+ };
971
+ delete?: never;
972
+ options?: never;
973
+ head?: never;
974
+ patch?: never;
975
+ trace?: never;
976
+ };
977
+ '/user-schemas/{id}': {
978
+ parameters: {
979
+ query?: never;
980
+ header?: never;
981
+ path?: never;
982
+ cookie?: never;
983
+ };
984
+ /**
985
+ * Get a user type schema by ID
986
+ * @description Retrieves the details of a specific user type schema by its ID.
987
+ */
988
+ get: {
989
+ parameters: {
990
+ query?: never;
991
+ header?: never;
992
+ path: {
993
+ /** @example 550e8400-e29b-41d4-a716-446655440000 */
994
+ id: string;
995
+ };
996
+ cookie?: never;
997
+ };
998
+ requestBody?: never;
999
+ responses: {
1000
+ /** @description User schema details */
1001
+ 200: {
1002
+ headers: {
1003
+ [name: string]: unknown;
1004
+ };
1005
+ content: {
1006
+ 'application/json': components$1['schemas']['UserSchema'];
1007
+ };
1008
+ };
1009
+ /** @description User schema not found */
1010
+ 404: {
1011
+ headers: {
1012
+ [name: string]: unknown;
1013
+ };
1014
+ content: {
1015
+ /**
1016
+ * @example {
1017
+ * "code": "USRS-1002",
1018
+ * "message": "User schema not found",
1019
+ * "description": "The user schema with the specified id does not exist"
1020
+ * }
1021
+ */
1022
+ 'application/json': components$1['schemas']['Error'];
1023
+ };
1024
+ };
1025
+ /** @description Internal server error */
1026
+ 500: {
1027
+ headers: {
1028
+ [name: string]: unknown;
1029
+ };
1030
+ content?: never;
1031
+ };
1032
+ };
1033
+ };
1034
+ /**
1035
+ * Update a user type schema by ID
1036
+ * @description Updates an existing user type schema with new attribute definitions.
1037
+ * This operation replaces the entire schema definition.
1038
+ */
1039
+ put: {
1040
+ parameters: {
1041
+ query?: never;
1042
+ header?: never;
1043
+ path: {
1044
+ /** @example 550e8400-e29b-41d4-a716-446655440000 */
1045
+ id: string;
1046
+ };
1047
+ cookie?: never;
1048
+ };
1049
+ requestBody: {
1050
+ content: {
1051
+ /**
1052
+ * @example {
1053
+ * "name": "customer",
1054
+ * "schema": {
1055
+ * "email": {
1056
+ * "type": "string",
1057
+ * "required": true,
1058
+ * "unique": true
1059
+ * },
1060
+ * "age": {
1061
+ * "type": "number"
1062
+ * },
1063
+ * "mobile": {
1064
+ * "type": "string"
1065
+ * },
1066
+ * "preferredLanguage": {
1067
+ * "type": "string",
1068
+ * "enum": [
1069
+ * "en",
1070
+ * "es",
1071
+ * "fr",
1072
+ * "de",
1073
+ * "it"
1074
+ * ]
1075
+ * },
1076
+ * "loyaltyTier": {
1077
+ * "type": "string",
1078
+ * "enum": [
1079
+ * "bronze",
1080
+ * "silver",
1081
+ * "gold",
1082
+ * "platinum"
1083
+ * ]
1084
+ * }
1085
+ * }
1086
+ * }
1087
+ */
1088
+ 'application/json': components$1['schemas']['UpdateUserSchemaRequest'];
1089
+ };
1090
+ };
1091
+ responses: {
1092
+ /** @description User schema updated */
1093
+ 200: {
1094
+ headers: {
1095
+ [name: string]: unknown;
1096
+ };
1097
+ content: {
1098
+ /**
1099
+ * @example {
1100
+ * "id": "550e8400-e29b-41d4-a716-446655440000",
1101
+ * "name": "customer",
1102
+ * "schema": {
1103
+ * "email": {
1104
+ * "type": "string",
1105
+ * "required": true,
1106
+ * "unique": true
1107
+ * },
1108
+ * "age": {
1109
+ * "type": "number"
1110
+ * },
1111
+ * "mobile": {
1112
+ * "type": "string"
1113
+ * },
1114
+ * "preferredLanguage": {
1115
+ * "type": "string",
1116
+ * "enum": [
1117
+ * "en",
1118
+ * "es",
1119
+ * "fr",
1120
+ * "de",
1121
+ * "it"
1122
+ * ]
1123
+ * },
1124
+ * "loyaltyTier": {
1125
+ * "type": "string",
1126
+ * "enum": [
1127
+ * "bronze",
1128
+ * "silver",
1129
+ * "gold",
1130
+ * "platinum"
1131
+ * ]
1132
+ * }
1133
+ * }
1134
+ * }
1135
+ */
1136
+ 'application/json': components$1['schemas']['UserSchema'];
1137
+ };
1138
+ };
1139
+ /** @description Bad request */
1140
+ 400: {
1141
+ headers: {
1142
+ [name: string]: unknown;
1143
+ };
1144
+ content: {
1145
+ 'application/json': components$1['schemas']['Error'];
1146
+ };
1147
+ };
1148
+ /** @description User schema not found */
1149
+ 404: {
1150
+ headers: {
1151
+ [name: string]: unknown;
1152
+ };
1153
+ content: {
1154
+ /**
1155
+ * @example {
1156
+ * "code": "USRS-1002",
1157
+ * "message": "User schema not found",
1158
+ * "description": "The user schema with the specified id does not exist"
1159
+ * }
1160
+ */
1161
+ 'application/json': components$1['schemas']['Error'];
1162
+ };
1163
+ };
1164
+ /** @description User schema name already exists */
1165
+ 409: {
1166
+ headers: {
1167
+ [name: string]: unknown;
1168
+ };
1169
+ content: {
1170
+ /**
1171
+ * @example {
1172
+ * "code": "USRS-1003",
1173
+ * "message": "User schema name conflict",
1174
+ * "description": "A user schema with the same name already exists"
1175
+ * }
1176
+ */
1177
+ 'application/json': components$1['schemas']['Error'];
1178
+ };
1179
+ };
1180
+ /** @description Internal server error */
1181
+ 500: {
1182
+ headers: {
1183
+ [name: string]: unknown;
1184
+ };
1185
+ content?: never;
1186
+ };
1187
+ };
1188
+ };
1189
+ post?: never;
1190
+ /**
1191
+ * Delete a user type schema by ID
1192
+ * @description Deletes a user type schema. This operation will fail if there are
1193
+ * existing users of this type.
1194
+ */
1195
+ delete: {
1196
+ parameters: {
1197
+ query?: never;
1198
+ header?: never;
1199
+ path: {
1200
+ /** @example 550e8400-e29b-41d4-a716-446655440000 */
1201
+ id: string;
1202
+ };
1203
+ cookie?: never;
1204
+ };
1205
+ requestBody?: never;
1206
+ responses: {
1207
+ /** @description User schema deleted */
1208
+ 204: {
1209
+ headers: {
1210
+ [name: string]: unknown;
1211
+ };
1212
+ content?: never;
1213
+ };
1214
+ /** @description Bad request */
1215
+ 400: {
1216
+ headers: {
1217
+ [name: string]: unknown;
1218
+ };
1219
+ content: {
1220
+ /**
1221
+ * @example {
1222
+ * "code": "USRS-1004",
1223
+ * "message": "Invalid user schema request",
1224
+ * "description": "Cannot delete schema because users of this type exist"
1225
+ * }
1226
+ */
1227
+ 'application/json': components$1['schemas']['Error'];
1228
+ };
1229
+ };
1230
+ /** @description Internal server error */
1231
+ 500: {
1232
+ headers: {
1233
+ [name: string]: unknown;
1234
+ };
1235
+ content?: never;
1236
+ };
1237
+ };
1238
+ };
1239
+ options?: never;
1240
+ head?: never;
1241
+ patch?: never;
1242
+ trace?: never;
1243
+ };
1244
+ }
1245
+ type webhooks$1 = Record<string, never>;
1246
+ interface components$1 {
1247
+ schemas: {
1248
+ User: {
1249
+ /** Format: uuid */
1250
+ id: string;
1251
+ /** Format: uuid */
1252
+ organizationUnit?: string;
1253
+ type?: string;
1254
+ attributes?: {
1255
+ [key: string]: unknown;
1256
+ };
1257
+ };
1258
+ Link: {
1259
+ /** @example organization-units?offset=20&limit=10 */
1260
+ href?: string;
1261
+ /** @example next */
1262
+ rel?: string;
1263
+ };
1264
+ UserGroup: {
1265
+ /**
1266
+ * Format: uuid
1267
+ * @description The unique identifier of the group
1268
+ */
1269
+ id: string;
1270
+ /** @description The name of the group */
1271
+ name: string;
1272
+ /**
1273
+ * Format: uuid
1274
+ * @description The organization unit ID that the group belongs to
1275
+ */
1276
+ organizationUnit: string;
1277
+ };
1278
+ UserListResponse: {
1279
+ /**
1280
+ * @description Number of results that match the listing operation.
1281
+ * @example 25
1282
+ */
1283
+ totalResults?: number;
1284
+ /**
1285
+ * @description Index of the first element of the page, which will be equal to offset + 1.
1286
+ * @example 1
1287
+ */
1288
+ startIndex?: number;
1289
+ /**
1290
+ * @description Number of elements in the returned page.
1291
+ * @example 10
1292
+ */
1293
+ count?: number;
1294
+ users?: components$1['schemas']['User'][];
1295
+ links?: components$1['schemas']['Link'][];
1296
+ };
1297
+ UserGroupListResponse: {
1298
+ /**
1299
+ * @description Number of results that match the listing operation.
1300
+ * @example 8
1301
+ */
1302
+ totalResults?: number;
1303
+ /**
1304
+ * @description Index of the first element of the page, which will be equal to offset + 1.
1305
+ * @example 1
1306
+ */
1307
+ startIndex?: number;
1308
+ /**
1309
+ * @description Number of elements in the returned page.
1310
+ * @example 5
1311
+ */
1312
+ count?: number;
1313
+ groups?: components$1['schemas']['UserGroup'][];
1314
+ links?: components$1['schemas']['Link'][];
1315
+ };
1316
+ CreateUserByPathRequest: {
1317
+ /**
1318
+ * @description The type of user
1319
+ * @example employee
1320
+ */
1321
+ type: string;
1322
+ /** @description List of groups that the user should belong to */
1323
+ groups?: string[];
1324
+ /**
1325
+ * @description User attributes
1326
+ * @example {
1327
+ * "username": "john.doe",
1328
+ * "firstname": "John",
1329
+ * "lastname": "Doe",
1330
+ * "email": "john.doe@company.com",
1331
+ * "department": "Engineering"
1332
+ * }
1333
+ */
1334
+ attributes?: {
1335
+ [key: string]: unknown;
1336
+ };
1337
+ };
1338
+ CreateUserRequest: {
1339
+ /**
1340
+ * Format: uuid
1341
+ * @description The organization unit ID where the user will be created
1342
+ */
1343
+ organizationUnit: string;
1344
+ /**
1345
+ * @description The type of user
1346
+ * @example customer
1347
+ */
1348
+ type: string;
1349
+ /** @description List of groups that the user should belong to */
1350
+ groups?: string[];
1351
+ /** @description User attributes */
1352
+ attributes?: {
1353
+ [key: string]: unknown;
1354
+ };
1355
+ };
1356
+ UpdateUserRequest: {
1357
+ /**
1358
+ * Format: uuid
1359
+ * @description The organization unit ID where the user belongs
1360
+ */
1361
+ organizationUnit?: string;
1362
+ /** @description The type of user */
1363
+ type?: string;
1364
+ /** @description List of groups that the user should belong to */
1365
+ groups?: string[];
1366
+ /** @description User attributes */
1367
+ attributes?: {
1368
+ [key: string]: unknown;
1369
+ };
1370
+ };
1371
+ UserSchema: {
1372
+ /**
1373
+ * Format: uuid
1374
+ * @description The unique identifier of the user schema
1375
+ */
1376
+ id: string;
1377
+ /** @description The user type this schema defines */
1378
+ name: string;
1379
+ /**
1380
+ * @description JSON Schema definition for the user type
1381
+ * @example {
1382
+ * "email": {
1383
+ * "type": "string",
1384
+ * "required": true,
1385
+ * "unique": true,
1386
+ * "regex": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"
1387
+ * },
1388
+ * "password": {
1389
+ * "type": "string",
1390
+ * "required": true,
1391
+ * "regex": "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]).{8,}$"
1392
+ * },
1393
+ * "age": {
1394
+ * "type": "number"
1395
+ * },
1396
+ * "isActive": {
1397
+ * "type": "boolean"
1398
+ * },
1399
+ * "phoneNumber": {
1400
+ * "type": "string",
1401
+ * "regex": "^\\+?[1-9]\\d{1,14}$"
1402
+ * },
1403
+ * "role": {
1404
+ * "type": "string",
1405
+ * "enum": [
1406
+ * "admin",
1407
+ * "user",
1408
+ * "guest"
1409
+ * ]
1410
+ * },
1411
+ * "address": {
1412
+ * "type": "object",
1413
+ * "required": true,
1414
+ * "properties": {
1415
+ * "street": {
1416
+ * "type": "string"
1417
+ * },
1418
+ * "city": {
1419
+ * "type": "string",
1420
+ * "required": true
1421
+ * },
1422
+ * "zipCode": {
1423
+ * "type": "string",
1424
+ * "regex": "^\\d{5}(-\\d{4})?$"
1425
+ * }
1426
+ * }
1427
+ * },
1428
+ * "tags": {
1429
+ * "type": "array",
1430
+ * "items": {
1431
+ * "type": "string",
1432
+ * "enum": [
1433
+ * "vip",
1434
+ * "premium",
1435
+ * "standard"
1436
+ * ]
1437
+ * }
1438
+ * }
1439
+ * }
1440
+ */
1441
+ schema: {
1442
+ [key: string]: {
1443
+ /**
1444
+ * @description Data type of the property
1445
+ * @enum {string}
1446
+ */
1447
+ type: 'string' | 'number' | 'boolean';
1448
+ /**
1449
+ * @description Whether this attribute must be provided for the user type
1450
+ * @default false
1451
+ */
1452
+ required: boolean;
1453
+ /**
1454
+ * @description Whether this property must be unique across all users
1455
+ * @default false
1456
+ */
1457
+ unique: boolean;
1458
+ /** @description List of allowed values for this property */
1459
+ enum?: string[];
1460
+ /** @description Regular expression pattern for validating the property value */
1461
+ regex?: string;
1462
+ } | {
1463
+ /**
1464
+ * @description Data type (object)
1465
+ * @enum {string}
1466
+ */
1467
+ type: 'object';
1468
+ /**
1469
+ * @description Whether this attribute must be provided for the user type
1470
+ * @default false
1471
+ */
1472
+ required: boolean;
1473
+ /** @description Nested properties of the object */
1474
+ properties: {
1475
+ [key: string]: components$1['schemas']['UserSchema']['schema']['additionalProperties'];
1476
+ };
1477
+ } | {
1478
+ /**
1479
+ * @description Data type (array)
1480
+ * @enum {string}
1481
+ */
1482
+ type: 'array';
1483
+ /**
1484
+ * @description Whether this attribute must be provided for the user type
1485
+ * @default false
1486
+ */
1487
+ required: boolean;
1488
+ items: {
1489
+ /** @enum {string} */
1490
+ type: 'string' | 'number' | 'boolean';
1491
+ enum?: string[];
1492
+ } | {
1493
+ /** @enum {string} */
1494
+ type: 'object';
1495
+ properties: {
1496
+ [key: string]: components$1['schemas']['UserSchema']['schema']['additionalProperties'];
1497
+ };
1498
+ };
1499
+ };
1500
+ };
1501
+ };
1502
+ UserSchemaListResponse: {
1503
+ /**
1504
+ * @description Number of results that match the listing operation.
1505
+ * @example 5
1506
+ */
1507
+ totalResults?: number;
1508
+ /**
1509
+ * @description Index of the first element of the page, which will be equal to offset + 1.
1510
+ * @example 1
1511
+ */
1512
+ startIndex?: number;
1513
+ /**
1514
+ * @description Number of elements in the returned page.
1515
+ * @example 3
1516
+ */
1517
+ count?: number;
1518
+ schemas?: {
1519
+ /**
1520
+ * Format: uuid
1521
+ * @description The unique identifier of the user schema
1522
+ */
1523
+ id: string;
1524
+ /** @description The user type this schema defines */
1525
+ name: string;
1526
+ }[];
1527
+ links?: components$1['schemas']['Link'][];
1528
+ };
1529
+ CreateUserSchemaRequest: {
1530
+ /** @description The user type this schema will define */
1531
+ name: string;
1532
+ /** @description JSON Schema definition for the user type */
1533
+ schema: {
1534
+ [key: string]: components$1['schemas']['UserSchema']['schema']['additionalProperties'];
1535
+ };
1536
+ };
1537
+ UpdateUserSchemaRequest: {
1538
+ /** @description The user type this schema defines */
1539
+ name: string;
1540
+ /** @description JSON Schema definition for the user type */
1541
+ schema: {
1542
+ [key: string]: components$1['schemas']['UserSchema']['schema']['additionalProperties'];
1543
+ };
1544
+ };
1545
+ Error: {
1546
+ code: string;
1547
+ message: string;
1548
+ description?: string;
1549
+ };
1550
+ };
1551
+ responses: never;
1552
+ parameters: {
1553
+ /** @description Maximum number of records to return. */
1554
+ limitQueryParam: number;
1555
+ /** @description Number of records to skip for pagination. */
1556
+ offsetQueryParam: number;
1557
+ /**
1558
+ * @description Filter users by attribute values.
1559
+ * Supported operators: eq (ie. equals).
1560
+ * Format: `attribute operator "value"`.
1561
+ * Examples:
1562
+ * - `username eq "john.doe"` - Users with username = "john.doe"'
1563
+ * - `age eq 25` - Users with age = 25
1564
+ * - `address.city eq "Mountain View"` - Users with address.city = "Mountain View"
1565
+ */
1566
+ filterParam: string;
1567
+ };
1568
+ requestBodies: never;
1569
+ headers: never;
1570
+ pathItems: never;
1571
+ }
1572
+ type $defs$1 = Record<string, never>;
1573
+ type operations$1 = Record<string, never>;
1574
+
1575
+ declare namespace types_d$1 {
1576
+ export type { $defs$1 as $defs, components$1 as components, operations$1 as operations, paths$1 as paths, webhooks$1 as webhooks };
1577
+ }
1578
+
1579
+ /**
1580
+ * This file was auto-generated by openapi-typescript.
1581
+ * Do not make direct changes to the file.
1582
+ */
1583
+ interface paths {
1584
+ '/groups': {
1585
+ parameters: {
1586
+ query?: never;
1587
+ header?: never;
1588
+ path?: never;
1589
+ cookie?: never;
1590
+ };
1591
+ /** List groups */
1592
+ get: {
1593
+ parameters: {
1594
+ query?: {
1595
+ /** @description Maximum number of records to return. */
1596
+ limit?: components['parameters']['limitQueryParam'];
1597
+ /** @description Number of records to skip for pagination. */
1598
+ offset?: components['parameters']['offsetQueryParam'];
1599
+ };
1600
+ header?: never;
1601
+ path?: never;
1602
+ cookie?: never;
1603
+ };
1604
+ requestBody?: never;
1605
+ responses: {
1606
+ /** @description List of groups */
1607
+ 200: {
1608
+ headers: {
1609
+ [name: string]: unknown;
1610
+ };
1611
+ content: {
1612
+ /**
1613
+ * @example {
1614
+ * "totalResults": 5,
1615
+ * "startIndex": 1,
1616
+ * "count": 2,
1617
+ * "groups": [
1618
+ * {
1619
+ * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
1620
+ * "name": "Sports",
1621
+ * "description": "Sports group",
1622
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
1623
+ * },
1624
+ * {
1625
+ * "id": "257e528f-eb24-48b6-884d-20460e190957",
1626
+ * "name": "Managers",
1627
+ * "description": "Manager group",
1628
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
1629
+ * }
1630
+ * ],
1631
+ * "links": [
1632
+ * {
1633
+ * "href": "groups?offset=2&limit=2",
1634
+ * "rel": "next"
1635
+ * }
1636
+ * ]
1637
+ * }
1638
+ */
1639
+ 'application/json': components['schemas']['GroupListResponse'];
1640
+ };
1641
+ };
1642
+ /** @description Bad request */
1643
+ 400: {
1644
+ headers: {
1645
+ [name: string]: unknown;
1646
+ };
1647
+ content: {
1648
+ 'application/json': components['schemas']['Error'];
1649
+ };
1650
+ };
1651
+ /** @description Internal server error */
1652
+ 500: {
1653
+ headers: {
1654
+ [name: string]: unknown;
1655
+ };
1656
+ content: {
1657
+ /** @example Internal server error */
1658
+ 'text/plain': string;
1659
+ };
1660
+ };
1661
+ };
1662
+ };
1663
+ put?: never;
1664
+ /** Create a new group */
1665
+ post: {
1666
+ parameters: {
1667
+ query?: never;
1668
+ header?: never;
1669
+ path?: never;
1670
+ cookie?: never;
1671
+ };
1672
+ requestBody: {
1673
+ content: {
1674
+ /**
1675
+ * @example {
1676
+ * "name": "Sports",
1677
+ * "description": "Sports group",
1678
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87",
1679
+ * "members": [
1680
+ * {
1681
+ * "type": "user",
1682
+ * "id": "7a4b1f8e-5c69-4b60-9232-2b0aaf65ef3c"
1683
+ * },
1684
+ * {
1685
+ * "type": "user",
1686
+ * "id": "9f1e47d3-0347-4464-9f02-e0bfae02e896"
1687
+ * },
1688
+ * {
1689
+ * "type": "group",
1690
+ * "id": "6b1e7b8d-7e19-41eb-8fa2-c0ee5bb67a94"
1691
+ * }
1692
+ * ]
1693
+ * }
1694
+ */
1695
+ 'application/json': components['schemas']['CreateGroupRequest'];
1696
+ };
1697
+ };
1698
+ responses: {
1699
+ /** @description Group created */
1700
+ 201: {
1701
+ headers: {
1702
+ [name: string]: unknown;
1703
+ };
1704
+ content: {
1705
+ /**
1706
+ * @example {
1707
+ * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
1708
+ * "name": "Sports",
1709
+ * "description": "Sports group",
1710
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
1711
+ * }
1712
+ */
1713
+ 'application/json': components['schemas']['Group'];
1714
+ };
1715
+ };
1716
+ /** @description Bad request */
1717
+ 400: {
1718
+ headers: {
1719
+ [name: string]: unknown;
1720
+ };
1721
+ content: {
1722
+ 'application/json': components['schemas']['Error'];
1723
+ };
1724
+ };
1725
+ /** @description Conflict */
1726
+ 409: {
1727
+ headers: {
1728
+ [name: string]: unknown;
1729
+ };
1730
+ content: {
1731
+ /**
1732
+ * @example {
1733
+ * "code": "GRP-1004",
1734
+ * "message": "Group name conflict",
1735
+ * "description": "A group with the same name exists under the same organization unit"
1736
+ * }
1737
+ */
1738
+ 'application/json': components['schemas']['Error'];
1739
+ };
1740
+ };
1741
+ /** @description Internal server error */
1742
+ 500: {
1743
+ headers: {
1744
+ [name: string]: unknown;
1745
+ };
1746
+ content: {
1747
+ /** @example Internal server error */
1748
+ 'text/plain': string;
1749
+ };
1750
+ };
1751
+ };
1752
+ };
1753
+ delete?: never;
1754
+ options?: never;
1755
+ head?: never;
1756
+ patch?: never;
1757
+ trace?: never;
1758
+ };
1759
+ '/groups/{id}': {
1760
+ parameters: {
1761
+ query?: never;
1762
+ header?: never;
1763
+ path?: never;
1764
+ cookie?: never;
1765
+ };
1766
+ /** Get a group by id */
1767
+ get: {
1768
+ parameters: {
1769
+ query?: never;
1770
+ header?: never;
1771
+ path: {
1772
+ id: string;
1773
+ };
1774
+ cookie?: never;
1775
+ };
1776
+ requestBody?: never;
1777
+ responses: {
1778
+ /** @description Group details */
1779
+ 200: {
1780
+ headers: {
1781
+ [name: string]: unknown;
1782
+ };
1783
+ content: {
1784
+ /**
1785
+ * @example {
1786
+ * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
1787
+ * "name": "Sports",
1788
+ * "description": "Sports group",
1789
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
1790
+ * }
1791
+ */
1792
+ 'application/json': components['schemas']['Group'];
1793
+ };
1794
+ };
1795
+ /** @description Bad request */
1796
+ 400: {
1797
+ headers: {
1798
+ [name: string]: unknown;
1799
+ };
1800
+ content: {
1801
+ /**
1802
+ * @example {
1803
+ * "code": "GRP-1002",
1804
+ * "message": "Invalid request format",
1805
+ * "description": "Group ID is required"
1806
+ * }
1807
+ */
1808
+ 'application/json': components['schemas']['Error'];
1809
+ };
1810
+ };
1811
+ /** @description Group not found */
1812
+ 404: {
1813
+ headers: {
1814
+ [name: string]: unknown;
1815
+ };
1816
+ content: {
1817
+ /**
1818
+ * @example {
1819
+ * "code": "GRP-1003",
1820
+ * "message": "Group not found",
1821
+ * "description": "The group with the specified id does not exist"
1822
+ * }
1823
+ */
1824
+ 'application/json': components['schemas']['Error'];
1825
+ };
1826
+ };
1827
+ /** @description Internal server error */
1828
+ 500: {
1829
+ headers: {
1830
+ [name: string]: unknown;
1831
+ };
1832
+ content: {
1833
+ /** @example Internal server error */
1834
+ 'text/plain': string;
1835
+ };
1836
+ };
1837
+ };
1838
+ };
1839
+ /** Update a group by id */
1840
+ put: {
1841
+ parameters: {
1842
+ query?: never;
1843
+ header?: never;
1844
+ path: {
1845
+ id: string;
1846
+ };
1847
+ cookie?: never;
1848
+ };
1849
+ requestBody: {
1850
+ content: {
1851
+ /**
1852
+ * @example {
1853
+ * "name": "Activities",
1854
+ * "description": "Activities group",
1855
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87",
1856
+ * "members": [
1857
+ * {
1858
+ * "type": "user",
1859
+ * "id": "7a4b1f8e-5c69-4b60-9232-2b0aaf65ef3c"
1860
+ * },
1861
+ * {
1862
+ * "type": "user",
1863
+ * "id": "9f1e47d3-0347-4464-9f02-e0bfae02e896"
1864
+ * },
1865
+ * {
1866
+ * "type": "group",
1867
+ * "id": "6b1e7b8d-7e19-41eb-8fa2-c0ee5bb67a94"
1868
+ * }
1869
+ * ]
1870
+ * }
1871
+ */
1872
+ 'application/json': components['schemas']['UpdateGroupRequest'];
1873
+ };
1874
+ };
1875
+ responses: {
1876
+ /** @description Group updated */
1877
+ 200: {
1878
+ headers: {
1879
+ [name: string]: unknown;
1880
+ };
1881
+ content: {
1882
+ /**
1883
+ * @example {
1884
+ * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
1885
+ * "name": "Activities",
1886
+ * "description": "Activities group",
1887
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
1888
+ * }
1889
+ */
1890
+ 'application/json': components['schemas']['Group'];
1891
+ };
1892
+ };
1893
+ /** @description Bad request */
1894
+ 400: {
1895
+ headers: {
1896
+ [name: string]: unknown;
1897
+ };
1898
+ content: {
1899
+ 'application/json': components['schemas']['Error'];
1900
+ };
1901
+ };
1902
+ /** @description Group not found */
1903
+ 404: {
1904
+ headers: {
1905
+ [name: string]: unknown;
1906
+ };
1907
+ content: {
1908
+ /**
1909
+ * @example {
1910
+ * "code": "GRP-1003",
1911
+ * "message": "Group not found",
1912
+ * "description": "The group with the specified id does not exist"
1913
+ * }
1914
+ */
1915
+ 'application/json': components['schemas']['Error'];
1916
+ };
1917
+ };
1918
+ /** @description Conflict */
1919
+ 409: {
1920
+ headers: {
1921
+ [name: string]: unknown;
1922
+ };
1923
+ content: {
1924
+ /**
1925
+ * @example {
1926
+ * "code": "GRP-1004",
1927
+ * "message": "Group name conflict",
1928
+ * "description": "A group with the same name exists under the same organization unit"
1929
+ * }
1930
+ */
1931
+ 'application/json': components['schemas']['Error'];
1932
+ };
1933
+ };
1934
+ /** @description Internal server error */
1935
+ 500: {
1936
+ headers: {
1937
+ [name: string]: unknown;
1938
+ };
1939
+ content: {
1940
+ /** @example Internal server error */
1941
+ 'text/plain': string;
1942
+ };
1943
+ };
1944
+ };
1945
+ };
1946
+ post?: never;
1947
+ /** Delete a group by id */
1948
+ delete: {
1949
+ parameters: {
1950
+ query?: never;
1951
+ header?: never;
1952
+ path: {
1953
+ id: string;
1954
+ };
1955
+ cookie?: never;
1956
+ };
1957
+ requestBody?: never;
1958
+ responses: {
1959
+ /** @description Group deleted */
1960
+ 204: {
1961
+ headers: {
1962
+ [name: string]: unknown;
1963
+ };
1964
+ content?: never;
1965
+ };
1966
+ /** @description Bad request */
1967
+ 400: {
1968
+ headers: {
1969
+ [name: string]: unknown;
1970
+ };
1971
+ content: {
1972
+ 'application/json': components['schemas']['Error'];
1973
+ };
1974
+ };
1975
+ /** @description Internal server error */
1976
+ 500: {
1977
+ headers: {
1978
+ [name: string]: unknown;
1979
+ };
1980
+ content: {
1981
+ /** @example Internal server error */
1982
+ 'text/plain': string;
1983
+ };
1984
+ };
1985
+ };
1986
+ };
1987
+ options?: never;
1988
+ head?: never;
1989
+ patch?: never;
1990
+ trace?: never;
1991
+ };
1992
+ '/groups/{id}/members': {
1993
+ parameters: {
1994
+ query?: never;
1995
+ header?: never;
1996
+ path?: never;
1997
+ cookie?: never;
1998
+ };
1999
+ /** List members in group */
2000
+ get: {
2001
+ parameters: {
2002
+ query?: {
2003
+ /** @description Maximum number of records to return. */
2004
+ limit?: components['parameters']['limitQueryParam'];
2005
+ /** @description Number of records to skip for pagination. */
2006
+ offset?: components['parameters']['offsetQueryParam'];
2007
+ };
2008
+ header?: never;
2009
+ path: {
2010
+ id: string;
2011
+ };
2012
+ cookie?: never;
2013
+ };
2014
+ requestBody?: never;
2015
+ responses: {
2016
+ /** @description List of members in the group */
2017
+ 200: {
2018
+ headers: {
2019
+ [name: string]: unknown;
2020
+ };
2021
+ content: {
2022
+ /**
2023
+ * @example {
2024
+ * "totalResults": 5,
2025
+ * "startIndex": 1,
2026
+ * "count": 2,
2027
+ * "members": [
2028
+ * {
2029
+ * "type": "user",
2030
+ * "id": "7a4b1f8e-5c69-4b60-9232-2b0aaf65ef3c"
2031
+ * },
2032
+ * {
2033
+ * "type": "group",
2034
+ * "id": "8c2f8e9e-8f2a-4f5b-9c3d-4e5f6a7b8c9d"
2035
+ * }
2036
+ * ],
2037
+ * "links": [
2038
+ * {
2039
+ * "href": "groups/3fa85f64-5717-4562-b3fc-2c963f66afa6/members?offset=2&limit=2",
2040
+ * "rel": "next"
2041
+ * }
2042
+ * ]
2043
+ * }
2044
+ */
2045
+ 'application/json': components['schemas']['MemberListResponse'];
2046
+ };
2047
+ };
2048
+ /** @description Bad request */
2049
+ 400: {
2050
+ headers: {
2051
+ [name: string]: unknown;
2052
+ };
2053
+ content: {
2054
+ 'application/json': components['schemas']['Error'];
2055
+ };
2056
+ };
2057
+ /** @description Group not found */
2058
+ 404: {
2059
+ headers: {
2060
+ [name: string]: unknown;
2061
+ };
2062
+ content: {
2063
+ /**
2064
+ * @example {
2065
+ * "code": "GRP-1003",
2066
+ * "message": "Group not found",
2067
+ * "description": "The group with the specified id does not exist"
2068
+ * }
2069
+ */
2070
+ 'application/json': components['schemas']['Error'];
2071
+ };
2072
+ };
2073
+ /** @description Internal server error */
2074
+ 500: {
2075
+ headers: {
2076
+ [name: string]: unknown;
2077
+ };
2078
+ content: {
2079
+ /** @example Internal server error */
2080
+ 'text/plain': string;
2081
+ };
2082
+ };
2083
+ };
2084
+ };
2085
+ put?: never;
2086
+ post?: never;
2087
+ delete?: never;
2088
+ options?: never;
2089
+ head?: never;
2090
+ patch?: never;
2091
+ trace?: never;
2092
+ };
2093
+ '/groups/tree/{path}': {
2094
+ parameters: {
2095
+ query?: never;
2096
+ header?: never;
2097
+ path?: never;
2098
+ cookie?: never;
2099
+ };
2100
+ /** List groups in organization unit specified by handle path */
2101
+ get: {
2102
+ parameters: {
2103
+ query?: {
2104
+ /** @description Maximum number of records to return. */
2105
+ limit?: components['parameters']['limitQueryParam'];
2106
+ /** @description Number of records to skip for pagination. */
2107
+ offset?: components['parameters']['offsetQueryParam'];
2108
+ };
2109
+ header?: never;
2110
+ path: {
2111
+ /**
2112
+ * @description Hierarchical path of organization unit handles separated by forward slashes.
2113
+ * Examples:
2114
+ * - `engineering` - Lists groups in the "engineering" OU
2115
+ * - `engineering/frontend` - Lists groups in "engineering/frontend"
2116
+ * @example engineering/frontend
2117
+ */
2118
+ path: string;
2119
+ };
2120
+ cookie?: never;
2121
+ };
2122
+ requestBody?: never;
2123
+ responses: {
2124
+ /** @description List of groups in the organization unit */
2125
+ 200: {
2126
+ headers: {
2127
+ [name: string]: unknown;
2128
+ };
2129
+ content: {
2130
+ /**
2131
+ * @example {
2132
+ * "totalResults": 5,
2133
+ * "startIndex": 1,
2134
+ * "count": 2,
2135
+ * "groups": [
2136
+ * {
2137
+ * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2138
+ * "name": "Sports",
2139
+ * "description": "Sports group",
2140
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
2141
+ * },
2142
+ * {
2143
+ * "id": "257e528f-eb24-48b6-884d-20460e190957",
2144
+ * "name": "Managers",
2145
+ * "description": "Manager group",
2146
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
2147
+ * }
2148
+ * ],
2149
+ * "links": [
2150
+ * {
2151
+ * "href": "groups/tree/engineering/frontend?offset=2&limit=2",
2152
+ * "rel": "next"
2153
+ * }
2154
+ * ]
2155
+ * }
2156
+ */
2157
+ 'application/json': components['schemas']['GroupListResponse'];
2158
+ };
2159
+ };
2160
+ /** @description Bad request */
2161
+ 400: {
2162
+ headers: {
2163
+ [name: string]: unknown;
2164
+ };
2165
+ content: {
2166
+ 'application/json': components['schemas']['Error'];
2167
+ };
2168
+ };
2169
+ /** @description Organization unit not found */
2170
+ 404: {
2171
+ headers: {
2172
+ [name: string]: unknown;
2173
+ };
2174
+ content: {
2175
+ 'application/json': components['schemas']['Error'];
2176
+ };
2177
+ };
2178
+ /** @description Internal server error */
2179
+ 500: {
2180
+ headers: {
2181
+ [name: string]: unknown;
2182
+ };
2183
+ content: {
2184
+ /** @example Internal server error */
2185
+ 'text/plain': string;
2186
+ };
2187
+ };
2188
+ };
2189
+ };
2190
+ put?: never;
2191
+ /** Create a new group under the organization unit specified by the handle path */
2192
+ post: {
2193
+ parameters: {
2194
+ query?: never;
2195
+ header?: never;
2196
+ path: {
2197
+ /**
2198
+ * @description Hierarchical path of organization unit handles separated by forward slashes.
2199
+ * The new group will be created under the organization unit specified by this path.
2200
+ * Examples:
2201
+ * - `engineering` - Creates a new group under the "engineering" OU
2202
+ * - `engineering/frontend` - Creates a new group under "engineering/frontend"
2203
+ * @example engineering/frontend
2204
+ */
2205
+ path: string;
2206
+ };
2207
+ cookie?: never;
2208
+ };
2209
+ requestBody: {
2210
+ content: {
2211
+ /**
2212
+ * @example {
2213
+ * "name": "Sports",
2214
+ * "description": "Sports group",
2215
+ * "members": [
2216
+ * {
2217
+ * "type": "user",
2218
+ * "id": "7a4b1f8e-5c69-4b60-9232-2b0aaf65ef3c"
2219
+ * },
2220
+ * {
2221
+ * "type": "user",
2222
+ * "id": "9f1e47d3-0347-4464-9f02-e0bfae02e896"
2223
+ * },
2224
+ * {
2225
+ * "type": "group",
2226
+ * "id": "6b1e7b8d-7e19-41eb-8fa2-c0ee5bb67a94"
2227
+ * }
2228
+ * ]
2229
+ * }
2230
+ */
2231
+ 'application/json': components['schemas']['CreateGroupByPathRequest'];
2232
+ };
2233
+ };
2234
+ responses: {
2235
+ /** @description Group created */
2236
+ 201: {
2237
+ headers: {
2238
+ [name: string]: unknown;
2239
+ };
2240
+ content: {
2241
+ /**
2242
+ * @example {
2243
+ * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
2244
+ * "name": "Sports",
2245
+ * "description": "Sports group",
2246
+ * "organizationUnitId": "a839f4bd-39dc-4eaa-b5cc-210d8ecaee87"
2247
+ * }
2248
+ */
2249
+ 'application/json': components['schemas']['Group'];
2250
+ };
2251
+ };
2252
+ /** @description Bad request */
2253
+ 400: {
2254
+ headers: {
2255
+ [name: string]: unknown;
2256
+ };
2257
+ content: {
2258
+ 'application/json': components['schemas']['Error'];
2259
+ };
2260
+ };
2261
+ /** @description Organization unit not found */
2262
+ 404: {
2263
+ headers: {
2264
+ [name: string]: unknown;
2265
+ };
2266
+ content: {
2267
+ 'application/json': components['schemas']['Error'];
2268
+ };
2269
+ };
2270
+ /** @description Conflict */
2271
+ 409: {
2272
+ headers: {
2273
+ [name: string]: unknown;
2274
+ };
2275
+ content: {
2276
+ /**
2277
+ * @example {
2278
+ * "code": "GRP-1004",
2279
+ * "message": "Group name conflict",
2280
+ * "description": "A group with the same name exists under the same organization unit"
2281
+ * }
2282
+ */
2283
+ 'application/json': components['schemas']['Error'];
2284
+ };
2285
+ };
2286
+ /** @description Internal server error */
2287
+ 500: {
2288
+ headers: {
2289
+ [name: string]: unknown;
2290
+ };
2291
+ content: {
2292
+ /** @example Internal server error */
2293
+ 'text/plain': string;
2294
+ };
2295
+ };
2296
+ };
2297
+ };
2298
+ delete?: never;
2299
+ options?: never;
2300
+ head?: never;
2301
+ patch?: never;
2302
+ trace?: never;
2303
+ };
2304
+ }
2305
+ type webhooks = Record<string, never>;
2306
+ interface components {
2307
+ schemas: {
2308
+ Member: {
2309
+ /** Format: uuid */
2310
+ id: string;
2311
+ /** @enum {string} */
2312
+ type: 'user' | 'group';
2313
+ };
2314
+ Group: {
2315
+ /** Format: uuid */
2316
+ id: string;
2317
+ name: string;
2318
+ description?: string | null;
2319
+ /** Format: uuid */
2320
+ organizationUnitId: string;
2321
+ members?: components['schemas']['Member'][];
2322
+ };
2323
+ CreateGroupRequest: {
2324
+ name: string;
2325
+ description?: string;
2326
+ /** Format: uuid */
2327
+ organizationUnitId: string;
2328
+ members?: components['schemas']['Member'][];
2329
+ };
2330
+ UpdateGroupRequest: components['schemas']['CreateGroupRequest'];
2331
+ GroupListResponse: {
2332
+ /**
2333
+ * @description Number of results that match the listing operation.
2334
+ * @example 8
2335
+ */
2336
+ totalResults?: number;
2337
+ /**
2338
+ * @description Index of the first element of the page, which will be equal to offset + 1.
2339
+ * @example 1
2340
+ */
2341
+ startIndex?: number;
2342
+ /**
2343
+ * @description Number of elements in the returned page.
2344
+ * @example 5
2345
+ */
2346
+ count?: number;
2347
+ groups?: components['schemas']['Group'][];
2348
+ links?: components['schemas']['Link'][];
2349
+ };
2350
+ MemberListResponse: {
2351
+ /**
2352
+ * @description Number of results that match the listing operation.
2353
+ * @example 20
2354
+ */
2355
+ totalResults?: number;
2356
+ /**
2357
+ * @description Index of the first element of the page, which will be equal to offset + 1.
2358
+ * @example 1
2359
+ */
2360
+ startIndex?: number;
2361
+ /**
2362
+ * @description Number of elements in the returned page.
2363
+ * @example 10
2364
+ */
2365
+ count?: number;
2366
+ members?: components['schemas']['Member'][];
2367
+ links?: components['schemas']['Link'][];
2368
+ };
2369
+ CreateGroupByPathRequest: {
2370
+ /**
2371
+ * @description The display name of the group
2372
+ * @example Sports Team
2373
+ */
2374
+ name: string;
2375
+ /**
2376
+ * @description Optional description of the group
2377
+ * @example Group for sports activities and events
2378
+ */
2379
+ description?: string;
2380
+ /** @description Optional list of initial members (users and groups) */
2381
+ members?: components['schemas']['Member'][];
2382
+ };
2383
+ Link: {
2384
+ /** @example groups?offset=20&limit=10 */
2385
+ href?: string;
2386
+ /** @example next */
2387
+ rel?: string;
2388
+ };
2389
+ Error: {
2390
+ /**
2391
+ * @description Error code
2392
+ * @example GRP-1001
2393
+ */
2394
+ code: string;
2395
+ /**
2396
+ * @description Error message
2397
+ * @example Invalid request format
2398
+ */
2399
+ message: string;
2400
+ /**
2401
+ * @description Detailed error description
2402
+ * @example The request body is malformed or contains invalid data
2403
+ */
2404
+ description?: string;
2405
+ };
2406
+ };
2407
+ responses: never;
2408
+ parameters: {
2409
+ /** @description Maximum number of records to return. */
2410
+ limitQueryParam: number;
2411
+ /** @description Number of records to skip for pagination. */
2412
+ offsetQueryParam: number;
2413
+ };
2414
+ requestBodies: never;
2415
+ headers: never;
2416
+ pathItems: never;
2417
+ }
2418
+ type $defs = Record<string, never>;
2419
+ type operations = Record<string, never>;
2420
+
2421
+ type types_d_$defs = $defs;
2422
+ type types_d_components = components;
2423
+ type types_d_operations = operations;
2424
+ type types_d_paths = paths;
2425
+ type types_d_webhooks = webhooks;
2426
+ declare namespace types_d {
2427
+ export type { types_d_$defs as $defs, types_d_components as components, types_d_operations as operations, types_d_paths as paths, types_d_webhooks as webhooks };
2428
+ }
2429
+
2430
+ /**
2431
+ * Configuration options for Thunder IdP API clients
2432
+ */
2433
+ interface ThunderClientConfig {
2434
+ /**
2435
+ * Base URL for the Thunder IdP API
2436
+ * @example 'https://thunder.example.com:8090'
2437
+ */
2438
+ baseUrl: string;
2439
+ /**
2440
+ * Authentication token (Bearer token)
2441
+ * If not provided, requests will be made without authentication
2442
+ */
2443
+ token?: string;
2444
+ /**
2445
+ * Custom fetch implementation
2446
+ * Useful for testing or using a specific fetch polyfill
2447
+ */
2448
+ fetchApi?: typeof fetch;
2449
+ /**
2450
+ * Optional logger for debugging
2451
+ */
2452
+ logger?: LoggerService;
2453
+ }
2454
+ /**
2455
+ * Creates a Thunder User API client
2456
+ *
2457
+ * @param config - Configuration options for the client
2458
+ * @returns Configured User API client instance
2459
+ *
2460
+ * @example
2461
+ * ```typescript
2462
+ * const userClient = createThunderUserClient({
2463
+ * baseUrl: 'https://thunder.example.com:8090',
2464
+ * token: 'your-auth-token'
2465
+ * });
2466
+ *
2467
+ * const { data, error } = await userClient.GET('/users', {
2468
+ * params: { query: { limit: 10 } }
2469
+ * });
2470
+ * ```
2471
+ */
2472
+ declare function createThunderUserClient(config: ThunderClientConfig): openapi_fetch.Client<paths$1, `${string}/${string}`>;
2473
+ /**
2474
+ * Creates a Thunder Group API client
2475
+ *
2476
+ * @param config - Configuration options for the client
2477
+ * @returns Configured Group API client instance
2478
+ *
2479
+ * @example
2480
+ * ```typescript
2481
+ * const groupClient = createThunderGroupClient({
2482
+ * baseUrl: 'https://thunder.example.com:8090',
2483
+ * token: 'your-auth-token'
2484
+ * });
2485
+ *
2486
+ * const { data, error } = await groupClient.GET('/groups', {
2487
+ * params: { query: { limit: 10 } }
2488
+ * });
2489
+ * ```
2490
+ */
2491
+ declare function createThunderGroupClient(config: ThunderClientConfig): openapi_fetch.Client<paths, `${string}/${string}`>;
2492
+ /**
2493
+ * Creates Thunder API clients from Backstage configuration
2494
+ *
2495
+ * @param config - Backstage Config object
2496
+ * @param logger - Optional logger service
2497
+ * @returns Object containing both user and group API clients
2498
+ *
2499
+ * @example
2500
+ * ```typescript
2501
+ * // In your Backstage backend module
2502
+ * const clients = createThunderClientsFromConfig(config, logger);
2503
+ * const { data: users } = await clients.userClient.GET('/users', {
2504
+ * params: { query: { limit: 10 } }
2505
+ * });
2506
+ * const { data: groups } = await clients.groupClient.GET('/groups', {
2507
+ * params: { query: { limit: 10 } }
2508
+ * });
2509
+ * ```
2510
+ *
2511
+ * @remarks
2512
+ * Expects the following configuration in app-config.yaml:
2513
+ * ```yaml
2514
+ * thunder:
2515
+ * baseUrl: https://thunder.example.com:8090
2516
+ * token: ${THUNDER_TOKEN}
2517
+ * ```
2518
+ */
2519
+ declare function createThunderClientsFromConfig(config: Config, logger?: LoggerService): {
2520
+ userClient: openapi_fetch.Client<paths$1, `${string}/${string}`>;
2521
+ groupClient: openapi_fetch.Client<paths, `${string}/${string}`>;
2522
+ };
2523
+
2524
+ /**
2525
+ * Thunder IdP API Version
2526
+ * Auto-generated from package.json thunderVersion field
2527
+ * DO NOT EDIT MANUALLY
2528
+ *
2529
+ * @packageDocumentation
2530
+ */
2531
+ declare const THUNDER_VERSION = "v0.10.0";
2532
+
2533
+ export { types_d as GroupAPI, THUNDER_VERSION, types_d$1 as UserAPI, createThunderClientsFromConfig, createThunderGroupClient, createThunderUserClient };
2534
+ export type { ThunderClientConfig };