@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.
- package/CHANGELOG.md +5 -0
- package/README.md +411 -0
- package/dist/factory.cjs.js +51 -0
- package/dist/factory.cjs.js.map +1 -0
- package/dist/index.cjs.js +12 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +2534 -0
- package/dist/version.cjs.js +6 -0
- package/dist/version.cjs.js.map +1 -0
- package/package.json +56 -0
package/dist/index.d.ts
ADDED
|
@@ -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 };
|